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.

[参考译文] TIDM-02008:阐明电流环路及其补偿器

Guru**** 2558250 points
Other Parts Discussed in Thread: SFRA, TIDM-02008

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1036513/tidm-02008-clarify-current-loop-and-its-compensator

器件型号:TIDM-02008
主题中讨论的其他器件:SFRA

尊敬的香榭丽舍

我向我们的客户提出这一问题。

在"ttplpfc.h"中、有一个函数、

#pragma FUNC_ALWAYS_INLINE (TTPLPFC_runCurrentLoop)
静态内联 void TTPLPFC_runCurrentLoop ()

if (TTPLPFC_closeGiLoop = 1)

//
//离散 PI 稳压器。
//
#if TTPLPFC_SFRA_TYPE = TTPLPFC_SFRA_CURRENT
TTPLPFC_gi_out = GI_run (&TTPLPFC_gi、TTPLPFC_ac_cur_sensed_pu、
SFRA_F32_INPUT (TTPLPFC_ac_cur_ref_inst_pu));
其他
TTPLPFC_gi_out = GI_run (&TTPLPFC_gi、
TTPLPFC_ac_cur_sensed_pu、
TTPLPFC_ac_cur_ref_inst_pu);
#endif

//
//电流环路 PI 稳压器输出加上前馈输出。
//
TTPLPFC_dutyPU =(TTPLPFC_gi_out +(TTPLPFC_ac_vol_sensed_pu *
(float32_t) TTPLPFC_VAC_MAX_SENSE_VOLT /
(float32_t) TTPLPFC_VDCBUS_MAX_SENSE_VOLT)
- TTPLPFC_电 感器电压压压压降前馈)
/(TTPLPFC_vbus _sensed_pu);

//
//饱和。
//
TTPLPFC_dutyPU =(TTPLPFC_dutyPU >
(float32_t)(1.0f))?(float32_t)(1.0f):TTPLPFC_dutyPU;
TTPLPFC_dutyPU =(TTPLPFC_dutyPU <
(float32_t)(-1.0f))?(float32_t)(-1.0f):TTPLPFC_dutyPU;

其他

TTPLPFC_dutyPU = 0.01f;

问题:

1)  GI_run、即 DCL 中的"DCL_runPI_C1"。 其定义如下:

float32_t DCL_runPI_C1 (DCL_PI *p、float32_t rk、float32_t YK)

它显示参考位于第二个参数中、但反馈位于第三个参数中。

但在上面的代码中、调用 GI_run 会将引用放在第三个参数中、并在第二个参数中进行反馈。

这使我感到困惑、这似乎是相反的、并导致负面结果。

请您帮助澄清一下吗?

这是目的吗?

逻辑是什么?

2) 2)关于"电流环路 PI 稳压器输出加上前馈输出"、用户了解  TTPLPFC_dutyPU 通常大于1并从方程式"TTPLPFC_dutyPU =(TTPLPFC_gi_out +(TTPLPFC_ac_vol_sensed_pu *。。。"

这是预期的吗?  

用户感到困惑、您是否会解释它通常饱和的原因?

黄维恩