# Controller for boost converter

I'm trying to design a controller for a boost converter by the "shaping loop gain" method as in the Fundamentals of Power Electronics textbook by Ericson and Maksimovic.

I see that there is a RHP Zero, which if we have just a unity feedback system makes it unstable, so we need a controller of say Gc transfer function.

Now I chose the desired crossover frequency, etc. for Gc, but unless I add an RHP pole to cancel out the RHP zero, the system is always going to be unstable. Can I have my controller to be just a lag compensator?

EDIT 1: This is my loop gain when there is no controller, only the plant transfer function is being plotted :- Now I want this to be operating at 20 kHz switching frequency, so I need to move the gain crossover frequency, and I set it to 3 kHz. To do this, at present the plant gain at 3 kHz is 20.23 dB, so my compensator should have a -20.23 dB = 0.097 gain. I set my pole at

$$\dfrac{fp_0}{3000} = 0.097, fp_0 = 292.16 Hz$$

So my compensator is $$G_c = \dfrac{2\pi(292.16)}{s}$$

While this does move my GCF to 3 kHz, I get a weird gain margin which I don't understand how to proceed with the design. • No, you can't just cancel the RHP zero with a RHP pole. You have to close your loop at a bandwidth significantly lower than the RHP zero frequency. Nov 22, 2022 at 23:04
• @JohnD But even a unity feedback system with RHPZ will give instability, and as long as that RHPZ remains in the system, its closed loop will always be unstable right?
– SM32
Nov 22, 2022 at 23:10
• No, incorrect. Every boost/flyback converter has a RHPZ. If it's far enough away from your loop bandwidth the phase contribution won't cause your loop to be unstable. You can't add a RHP pole to cancel it, THAT will make it unstable. Nov 22, 2022 at 23:15

The two-step conversion process in a boost or a buck-boost converter introduces a delay modeled by a right-half-plane zero or RHPZ. When a sudden load step occurs, the loop reacts by increasing the duty ratio $$\d\$$ in an attempt to increase the energy stored in the inductor. However, this cannot happen instantaneously and the reaction time depends on the applied V-s and the inductance value. See this paper I wrote some time ago.

Considering the average current in the diode defined as $$\I_d=I_L(1-d)\$$, you see that if the loop instructs $$\d\$$ to increase, then (1-$$\d\$$) goes does down and counteracts the effect of increasing the average inductor current cycle-by-cycle. Unless you purposely slow down the loop reaction speed and give more time for the inductor current to build up. In other terms, despite a fast change in the output current, the change in the duty ratio will not be fast, allowing the energy to build up in the inductor while (1-$$\d\$$) slowly reduces.

As a summary, you have to slow down the loop by limiting the crossover frequency. You do that by first determining the lowest position of the RHPZ and then choosing a crossover frequency around 20-25% of this lowest position. If you try to push crossover higher, then phase margin may reduce and instability is likely to occur. Below is a picture excerpted from my APEC 2021 seminar showing that the choice of crossover is intimately linked to the structure and not just 1/5th or 1/10th of $$\F_{sw}\$$ as I have often seen: To stabilize your boost converter, you can use analytical analysis as I did in my last book on transfer functions, use an averaged model or go to the bench and build a prototype. Another option consists of using a piece-wise linear (PWL) simulator such as SIMPLIS and extract the control-to-output transfer function from a switching circuit. This is what I propose with my 80+ free ready-made templates you can download from my webpage: Please note that the RHP zero exists at the same location regardless of the control mode, voltage- or current-mode control. There has been many attempts to get rid of the RHPZ by using specific scheme such a leading-edge modulation - see this paper for instance - but I am not sure if it has ever been practically implemented in volume applications. And no, you don't want to insert a RHP pole in a system to cancel a RHP zero.

• Thank you for your reply! I have been looking at your other book on control loops design and I have a doubt: following it, I am getting infinite gain margin at infinite Hz from MATLAB, although I like my PM and where the crossover frequency is. How to fix this?
– SM32
Nov 25, 2022 at 19:01
• @SM32, hi, the control-to-output transfer function of the boost operated in voltage-mode is a second-order system in CCM (also in DCM but heavily damped). You should see the gain naturally rolling off after the double-pole peak while the phase hits -180°. Did you try the boost example from my templates, just to compare with your Matlab expression? Nov 26, 2022 at 8:56
• I added some edits to my question, it'd be great if you could look at it
– SM32
Nov 26, 2022 at 20:05