主题中讨论的其他器件: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 *。。。"
这是预期的吗?
用户感到困惑、您是否会解释它通常饱和的原因?
黄维恩