This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] UCD3138A:更改 PID 参数

Guru**** 2539500 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/780635/ucd3138a-change-pid-parameters

器件型号:UCD3138A

关于 TI 演示代码:

 CONFIG_UARGE_compensation (volatile filter_PMBus_regs *源)

volatile struct filter_regs *dest;
 
 if (source =&filter1_PMBus_regs)
 {
  DEST =&Filter1Regs;
 }
 其他
 {
  DEST =&Filter0Regs;
 }

dest->COEFCONFIG.all = 0;

 //使用新的 bin 0系数配置 bin 1
 dest->FILTERKPCOEF0.bit.KP_COEF_1 = source->FILTERKPCOEF0.bit.KP_COEF_0;
 dest->FILTERKICOEF0.bit.KI_COEF_1 = SOURCE->FILTERKICOEF0.bit.KI_COEF_0;
 dest->FILTERKDCOEF0.bit.KD_COEF_1 = source->FILTERKDCOEF0.bit.KD_COEF_0;
 dest->FILTERKDALPHA.bit.KD_alpha_1 = source->FILTERKDALPHA.bit.KD_alpha_0;

 //将筛选器配置为仅使用 bin 1系数
 dest->COEFCONFIG.all = filter_config_BIN1;

 //使用新的 bin 0系数配置 bin 0
 dest->FILTERKPCOEF0.bit.KP_COEF_0 = source->FILTERKPCOEF0.bit.KP_COEF_0;
 dest->FILTERKICOEF0.bit.KI_COEF_0 = SOURCE->FILTERKICOEF0.bit.KI_COEF_0;
 dest->FILTERKDCOEF0.bit.KD_COEF_0 = source->FILTERKDCOEF0.bit.KD_COEF_0;
 dest->FILTERKDALPHA.bit.KD_alpha_0 = source->FILTERKDALPHA.bit.KD_alpha_0;

 //配置过滤器以仅使用 bin 0系数
 dest->COEFCONFIG.all = 0;

 //重新编程剩余的滤波器系数
 dest->FILTERKPCOEF0.all = SOURCE->FILTERKPCOEF0.ALL;
 dest->FILTERKPCOEF1.all = source->FILTERKPCOEF1.all;
 dest->FILTERKICOEF0.ALL = SOURCE->FILTERKICOEF0.ALL;
 dest->FILTERKICOEF1.all = SOURCE->FILTERKICOEF1.ALL;
 dest->FILTERKDCOEF0.all = SOURCE->FILTERKDCOEF0.ALL;
 dest->FILTERKDCOEF1.all = source->FILTERKDCOEF1.all;
 dest->FILTERKDALPHA.ALL = SOURCE->FILTERKDALPHA.ALL;

 //配置过滤器以使用定义的容器
 dest->COEFCONFIG.all = source->COEFCONFIG.ALL;

将旧 PID 参数更改为新参数。

 为什么首先配置“COEFCONFIG.ALL = 0”,然后配置“DESIG->COEFCONFIG.ALL = SOURCEEFCONFIG.ALL”? 为什么使用新的 Seta 系数 、然后更改为新的 SetA/B/C 系数?

为什么不直接使用“configure dest->COEFCONFIG.all = source->COEFCONFIG.all”?  只需  直接从旧的 SetA/B/C 系数更改新的 SetA/B/C 系数?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您看到了哪种演示代码?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    此问题已出现在您创建的单独/原始帖子中。
    因此,我将关闭这个问题,并试图在原来的帖子上回答这个问题。
    此致、