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.

TMS320F28035: ILPFC SFRA question

Part Number: TMS320F28035
Other Parts Discussed in Thread: SFRA

Hi, for ILPFC kit, the code for SFRA is shown below:

interrupt void ILPFC_ISR_wFRA()
{
GpioDataRegs.GPATOGGLE.bit.GPIO2 = 1;
#if INCR_BUILD == 1
DutyA = SFRA_IQ_INJECT(DutyA_DC); //Duty1ASetSlewed - Slewed Duty command (Duty1A_Set - set buy user)
#elif INCR_BUILD == 2
#if BUILD2_SELECT == 0
Icmd = SFRA_IQ_INJECT(Icmd_DC);
#elif BUILD2_SELECT == 1
PFCIcmd_wInj = SFRA_IQ_INJECT(PFCIcmd);
#endif
#elif INCR_BUILD == 3
#if SFRA_TYPE == 0
VloopCtr2++;
if (VloopCtr2 == VOLTAGE_LOOP_RUN_RATIO)
{
VbusTargetSlewed_wINJ = SFRA_IQ_INJECT(VbusTargetSlewed);
PFCIcmd_wInj = PFCIcmd;
VloopCtr2 = 0;
}
#else
PFCIcmd_wInj = SFRA_IQ_INJECT(PFCIcmd);
VbusTargetSlewed_wINJ = VbusTargetSlewed;
#endif
#endif

DPL_Func();

#if INCR_BUILD != 3
SFRA_IQ_COLLECT(&DutyA,&Ipfc_fltr);
#else
#if SFRA_TYPE == 0
SFRA_IQ_COLLECT(&VbusVcmd, &Vbus);
#else
SFRA_IQ_COLLECT(&DutyA,&Ipfc_fltr);
#endif
#endif

}

1. For INCR_BUILD=1, the parameters of SFRA_IQ_COLLECT is DutyA and Ipfc_fltr, so the plant transfer function is from duty cycle to PFC current, if I change the parameters to DutyA and Vbus, I will get the bode plot of transfer function from duty cycle to DC voltage, right?

2. For INCR_BUILD=2. the parameters of SFRA_IQ_COLLECT is DutyA and Ipfc_fltr. Now it's current closed loop, so parameter Ipfc_fltr makes sense, but what's the parameter DutyA for? 

3. The same question as before. Now for INCR_BUILD=3. the parameter Vbus and Ipfc_fltr make sense, but why VbusVcmd and DutyA?

4.  For INCR_BUILD=1, I sweep the circuit and get the data for OL magnitude, phase and Plant magnitude and phase, and they are different. What's the open loop at this moment? I don't think there are any loop at this moment.

Thanks.

  • Hi Howard,

    1. For INCR_BUILD=1, the parameters of SFRA_IQ_COLLECT is DutyA and Ipfc_fltr, so the plant transfer function is from duty cycle to PFC current, if I change the parameters to DutyA and Vbus, I will get the bode plot of transfer function from duty cycle to DC voltage, right?

    Yes.

    2. For INCR_BUILD=2. the parameters of SFRA_IQ_COLLECT is DutyA and Ipfc_fltr. Now it's current closed loop, so parameter Ipfc_fltr makes sense, but what's the parameter DutyA for

    The dutyA is the input to the model if you consider only the current loop as you can see in the figure above.

    3. The same question as before. Now for INCR_BUILD=3. the parameter Vbus and Ipfc_fltr make sense, but why VbusVcmd and DutyA?

    According to the sample code in ILPFC project in controlSUIT. The collected information are (&VbusVcmd, &Vbus) for voltage loop frequency response and (&DutyA,&Ipfc_fltr) for current loop frequency response. The reason is the same with question 2.

    #if SFRA_TYPE == 0  (voltage loop)
    SFRA_IQ_COLLECT(&VbusVcmd, &Vbus);
    #else                           (current loop)
    SFRA_IQ_COLLECT(&DutyA,&Ipfc_fltr);

    4.  For INCR_BUILD=1, I sweep the circuit and get the data for OL magnitude, phase and Plant magnitude and phase, and they are different. What's the open loop at this moment? I don't think there are any loop at this moment.

    Since you are under BUILD 1, the only result makes sense is the Plant transfer function. 

    Best regards,

    Chen

  • Chen,

    For question 3, my understanding is that VbusVcmd is the output of the voltage 2p2z controller, DutyA is the output of the current 2p2z controller. I guess that's why it's used in the SFRA_IQ_COLLECT function, correct?

  • Howard,

    Yes, the better way to illustrate this is , for voltage loop response, to consider VbusVcmd as the input to a current closed loop system (because current loop is the inner loop) and Vbus as the feedback. Same thing for current loop, DutyA is the the input to the plant model while Ipfc_fltr is the feedback. Thanks.

    Chen