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-BUCKBOOST-BIDIR: Questions about compensator design

Part Number: TIDM-BUCKBOOST-BIDIR
Other Parts Discussed in Thread: SFRA

Dear Champs,

I am asking this for our customers.

We are aware that you use SFRA for the 3P3Z compensator design.

1) How did you set the initial coefficients for the 3P3Z compensator? Did you use PID tuning for the initial coefficients and then use SFRA/compensator designer for the later pole/zero allocation and fine tuning?

As we know, if the initial coefficients are very improper, the system may go damaged.

2) In the code "BuckBoostBiDir-Main.c" for PID,

b2, b1, b0 are updated, but it seems b3, a1, a2, a3 are not updated accordingly.

Did you set b3=0, a1=1, a2=0, a3=0?

It seems b3, a1, a2, a3 are not explicitly set... or do we missing anything?

 if(UpdateCoef==1)
 {

    CNTL_3P3Z_CoefStruct1.b2   =Dgain_V;                            // B2
    CNTL_3P3Z_CoefStruct1.b1   =(Igain_V-Pgain_V-Dgain_V-Dgain_V);  // B1
    CNTL_3P3Z_CoefStruct1.b0   =(Pgain_V + Igain_V + Dgain_V);      // B0
    CNTL_3P3Z_CoefStruct1.max  =Dmax_V;            //Clamp Hi

    UpdateCoef=0;
 }

Wayne

  • Wayne,

    1) How did you set the initial coefficients for the 3P3Z compensator? Did you use PID tuning for the initial coefficients and then use SFRA/compensator designer for the later pole/zero allocation and fine tuning?

    As we know, if the initial coefficients are very improper, the system may go damaged.

    -> Wayne , one can run SFRA in open loop and get the plant information. Then one can use this as a black box method to tune the compensator for the board. It has been some time that this design was released, and also my knowledge of control design was novice, so tracing the exact method used may not be possible. But i do remember running SFRA in open loop and then tuning for the closed loop operation.

    2) In the code "BuckBoostBiDir-Main.c" for PID,

    b2, b1, b0 are updated, but it seems b3, a1, a2, a3 are not updated accordingly.

    Did you set b3=0, a1=1, a2=0, a3=0?

    -> I think the portion of the code you are referring to is "dead code" was never executed nor intended to be used. I should have removed that code before release. However, we do use something similar in our old DP workshop kit and it's a copy paste from that code.
    And yes in thata case those variables will be assumed to be set as you outlined b3=0, a1=1, a2=0, a3=0.

    Currently this design/software is in a not maintained state and hence i cannot file a bug to get it fixed or changed.