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-01168: Poles&Zero compensation strategy for digital outer voltage control loop

Part Number: TIDA-01168
Other Parts Discussed in Thread: TMS320F28027F, LM5170, , LM5170-Q1

Hello,

im currently working on an bidiretional converter 12/48V 3KW 4phases. Im using the LM5170 as inner current loop compensator and want to use the TMS320F28027F Launchpad as outer voltage loop control.

The inner current loop controller is perfectly described by TI an the poles&zero placement is well documented for the transconductance amplifier.

But now to my problem:

I reverse calculated w_cp0 , w_cp1 and w_cz1 with:

B_0 = (T_s*w_CP0*w_CP1*(2+T_s*w_CZ1))/(2*(2+T_s*w_CP1)*w_CZ1);

B_1 = (T_s^2*w_CP0*w_CP1)/(2+T_s*w_CP1);

B_2 = (T_s*w_CP0*w_CP1*(-2+T_s*w_CZ1))/(2*(2+T_s*w_CP1)*w_CZ1);

A_1 = 4/(2+T_s*w_CP1);

A_2 = (-2+T_s*w_CP1)/(2+T_s*w_CP1);

and for B_0 trough A_2 i used the values in TIDA-01168 on Page 62. Ts = 1/48.828125 kHz

The results i got are for the buck:

w_cp1= 115048 rad/s = 18300Hz

w_cp0= 3662 rad/s = 582Hz

w_cz1= 750 rad/s = 120Hz

But how did TI calculated these values? Whats there compensation strategy? The Poles and Zero i calculated with the LM5170DESIGN-CALC.xlsx (avalible at TIs LM5170 page) are not even close the the values i reverse engineered. I'm looking for something like: Place w_cz1 at a fifth of the crossover frequency.

I would be realy thankfull for some help.

Kind regards,

Jochen Rohm

  • Hello Jochen Rohm,

    We understand your query and definitely will help in calculating the values and compensation strategy. The engineer who worked on this project is on business travel, we will get back to you as soon as he is back to office.

    Thanks for understanding.

    Regards,
    Sandeep

  • Dear Jochen,
    Thank you for reaching us out on the e2e forum. I am the author of the TIDA-01168. It is possible that compensation values which are a part of the software package are incorrect due to copy&paste between various boards.
    For initial testings, I recommend starting with the crossover frequency of the inner current loop set at 1/6 to 1/10 of the switching frequency. The external current loop compensator shall have again the crossover frequency set to 1/6 to 1/10 of the inner current loop.

    Example:
    Switching frequency fsw=100kHz
    Current loop crossover frequency fco(current) = 10kHz
    Voltage loop crossover frequency fco(voltage) = 1kHz

    Please keep in mind that compensation values which you get are only rough estimations. There are many other considerations which are not taken into account for the sake of simplicity. For example, when the system operates with one phase only the effective output capacitance differs. Also, such a high-power design has larger dimensions which add significant parasitic inductance to output capacitors.

    Summary:
    # Disconnect the voltage error amplifier and stabilize the inner current loop. Use the loop response analyzer to get the bode plot for the plant, compensator and open loop response. Use a resistive load and make sure your DC/DC operates in the CCM mode (ISETA=constant).
    # Carefully investigate the behavior also in the time domain (transient response)
    # Implement the voltage error amplifier and repeat the first steps for the external voltage loop.

    I hope this helps.

    Best Regards,
    Jiri Panacek
  • Hello Jiri,

    thank you for your helpful answer!

    If you could answer me one more question i would be really thankful:

    Now knowing a starting point for the fco i'm asking myself where should i place my 2 poles and 1 zero. I can’t find any hints in literature, because a Type2 comps in standalone operation are not used for VMC.
    Since we are operating a cascaded control scheme, we can use a Type2 for the outer voltage loop. But on with frequency do I place p0 p1 and z0 as a starting point for the buck converter?


    The same for p0 , p1 and z0 for boost compensation. I would asume, that fco for the boost converter should be around 1/5 of the RHP Zero?

    Aganin thank you very much!

    Kind regards,
    Jochen Rohm

  • Hello Jochen,

    this is exactly the situation when a systems engineer goes and asks an applications engineer for an advice :-). There is not a simple answer to this. Let me share my thoughs with you. The ultimate goal is to create a loop response where the bode plot hits the 0dB level (the crossover point) at 1/10 (conservative) to 1/6th (performance) of the switching frequency. It is important that the slope of the bode plot is -20dB/dek at the time the trace hits the 0dB point. For this reason, the compenasator cicuit shall add poles and zeros to the plant (PWM compensator + the power stage) the way it achieves so. But here's the catch. The bode plot of the plant has different shape in the voltage and current mode. The voltage mode is a dual-pole system due to the L-Cout. The current mode is a single pole system because the inductor acts as a current source. When you think about it the LM5170-Q1 is a constant current source therefore it requires only type-2 compensation for both modes (buck, boost).

    Note that hysteretic based control schemes (const. ton, DCAP, etc.) are inherently stable and don't require any compensation.

    Here are few resources you can find useful:

    Power Design Seminar from the famous PDS team at Texas Instruments (videos available!):

    Biricha Power (definitely create a login and read the articles. Also some Youtube vides are available) Mainly focus to basics and differences between average current control and voltage control.

    I'll try to get an answer for the second part of your question from our apps engineer.

    Best Regards, Jiri

  • This is the material I wanted to find for you:
    training.ti.com/average-current-mode-control-bidirectional-dcdc-systems

    I believe this will explain the subject in detail.
  • Hello Jiri,

    i'm so thankful for the support! I’m starting to realize that it would be highly useful to own one of those Bode100 devices from Omicron. Biricha is also well known to me, but at the moment i sadly can't afford a course. Someday in the near future i definitely will! Currently reading the two files you attached for me.

    I did a realtime simulation with PLECS and the voltage control loop worked quite decent. But the reality seems to be a little bit different.

    I know that my control algorithm on the µC is working, because the output’s RMS voltage is exactly 12V at the real existing hardware. Only downside is, that it is oscillating around this value (-5V/+3V). Current loop on the other hand works flawlessly as far as I can tell without having a bode plot.

    One last thing: Sadly I’m not able to open the link you attached for me (I’m locked in of course). Getting the following error massage:

    Access Denied

    The course you are trying to access is either no longer available, or you do not have permission to view the course. Please return to the TI Training home page to search/browse additional training.

    Again, thank you very much! I’ve learned a lot thanks to your help!

    Kind regards,

    Jochen Rohm

  • Hello Jochen, which of the links are you trying to open?

    for the PDS seminars, try to google "Power Design Seminar Texas Instruments". I believe (and hope) that this training material is not limited to attendees only.

    For the second link, go to the LM5170-Q1 product page and navigate for this button.

    Let me know if this worked.

    Best Regards, Jiri

  • Hi Jiri,

    now it works the embedded average current mode control link didn’t work, but the video playback does! So thank you again for your valuable time!