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.

TIDA-010062: 关于里面的电流环 算法问题

Part Number: TIDA-010062
Other Parts Discussed in Thread: TIDM-02008

不知版主,有没有拿到资料,也分享一下。我也比较关注

  • 最好能有一份文档解释,电流环,和电压环 算法

    、代码中计算电流环代码如下:

    TTPLPFC_gi_out = GI_RUN(&TTPLPFC_gi,TTPLPFC_ac_cur_sensed_pu,TTPLPFC_ac_cur_ref_inst_pu);

    2、输出前馈代码如下,该怎么理解?

    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_inductor_voltage_drop_feedforward )
    / (TTPLPFC_vBus_sensed_pu);

    3、计算电感电压降前馈代码如下,该怎么理解?

    TTPLPFC_inductor_voltage_drop_feedforward = -(float32_t)1.0 *
    (TTPLPFC_ac_cur_ref_inst_pu -
    TTPLPFC_ac_cur_ref_inst_prev_pu) *
    ((float32_t)TTPLPFC_PFC_INDUCTOR_VALUE *
    TTPLPFC_CONTROL_ISR_FREQUENCY *
    TTPLPFC_IL_MAX_SENSE_AMPS /
    TTPLPFC_VDCBUS_MAX_SENSE_VOLT);

    TTPLPFC_ac_cur_ref_inst_prev_pu = TTPLPFC_ac_cur_ref_inst_pu;

    4、这部分代码的意义

    if(fabsf(TTPLPFC_vBusRef_pu - TTPLPFC_vBusRefSlewed_pu) > 0.0001f)
    {
    if(TTPLPFC_vBusRef_pu > TTPLPFC_vBusRefSlewed_pu)
    {
    TTPLPFC_vBusRefSlewed_pu = TTPLPFC_vBusRefSlewed_pu + 0.0001f;
    }
    else
    {
    TTPLPFC_vBusRefSlewed_pu = TTPLPFC_vBusRefSlewed_pu - 0.0001f;
    }
    }
    else
    {
    TTPLPFC_vBusRefSlewed_pu = TTPLPFC_vBusRef_pu;
    }

  • 你好,我将咨询相关资深工程师,一旦有回复会立即回复您。

  • 好的,多谢

  • 请问一下版主,有这个代码的解释了吗,我也想知道

  • 最好能有一份文档解释,电流环,和电压环 算法

    对于TTPL PFC,你可以参考TIDM-02008用户指南。

    代码中计算电流环代码如下:

    TTPLPFC_gi_out = GI_RUN(&TTPLPFC_gi,TTPLPFC_ac_cur_sensed_pu,TTPLPFC_ac_cur_ref_inst_pu);

    GI_Run是一个控制循环函数。输入是参考电流和反馈电流。gi 包含控制函数的系数。

    输出前馈代码如下,该怎么理解?

    你可以参考TIDM-02008用户指南。

    if(fabsf(TTPLPFC_vBusRef_pu - TTPLPFC_vBusRefSlewed_pu) > 0.0001f)
    {
    if(TTPLPFC_vBusRef_pu > TTPLPFC_vBusRefSlewed_pu)
    {
    TTPLPFC_vBusRefSlewed_pu = TTPLPFC_vBusRefSlewed_pu + 0.0001f;
    }
    else
    {
    TTPLPFC_vBusRefSlewed_pu = TTPLPFC_vBusRefSlewed_pu - 0.0001f;
    }
    }
    else
    {
    TTPLPFC_vBusRefSlewed_pu = TTPLPFC_vBusRef_pu;
    }

    这只是为了控制输出电压参考在您更改参考时线性上升。

  • 版主你好,有这个代码的解释了吗,我也想知道

  • 你好,请参考我上一条回复。您还有其他问题可以重新发帖来提问,会有相关工程师回复你的。

  • 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_inductor_voltage_drop_feedforward )
    / (TTPLPFC_vBus_sensed_pu)

    没有找到对这些参数的实际说明算法?第一个TTPLPFC_gi_out是PI控制器输出,后面的感觉是前馈计算,但后面这计算是那个公式推导的,如何推导,看不懂这个

  • 我将在下面这个帖子中回复你:

    e2echina.ti.com/.../tida-010062-tms320f280049

  • 谢谢。。