Feedback controller design for boost converter

In summary, the conversation discusses designing a boost converter that would operate in DCM and the process of calculating the duty cycle D. The load R and output voltage Vo are fixed, but the parameters Vi, L, and f can be varied with the addition of a feedback controller. The conversation also mentions two app notes on voltage mode control and current mode control, with the latter being a preferred method. The topic of pole/zero placement in the compensation network is also discussed, with current mode control being a better choice for improving converter response. Overall, there is also a mention of using optimization to fine-tune the design parameters for better performance.
  • #1
Ntip
53
5
TL;DR Summary
I am trying to design control feedback for a boost converter
I recently started looking into a boost converter design that would be no load most of the time which causes it to operate in DCM. After calculating the duty cycle D, it is dependent on Vi, Vo, L, f, and R. The load R and output voltage Vo are fixed, but I would like to vary the other parameters (Vi, L, and f) without having to worry about the duty cycle. To be able to do that, I think I need to add a feedback controller.

Is designing a the controller the same when designing it to operate in DCM as it is in CCM? I found two app note so I'm just trying to figure out what all of it means. One is using voltage mode control and the other is current mode control. It looks like current mode control is pretty much the same as voltage mode control, except it sesnes the switch current and combines that with a ramp instead of just a sawtooth ramp on voltage mode control. Actually, I just noticed that the current mode controller is a type III (PID) compensator whereas the current mode controller is a type I (P). Does this sound right?

I understand that they are placing the poles using the equations on page 8 of each document, but how do you determine a good frequency to place them at? I think that placing them optimally will speed up the response of the controller but if I just want it to do the job and I'm not concerned with load transients, is there a way to simplify this and fine tune it later when more parameters are known?

I know this is a lot since I know very little other than the basic concepts. All the help possible is greatly appreciated.
https://www.ti.com/lit/an/slva633/slva633.pdf?ts=1606772723225&ref_url=https%3A%2F%2Fwww.google.com%2F

https://www.ti.com/lit/an/slva636/slva636.pdf?ts=1606768601489&ref_url=https%3A%2F%2Fwww.google.com%2F
 
Last edited:
Engineering news on Phys.org
  • #2
Ntip said:
I know this is a lot since I know very little other than the basic concepts. All the help possible is greatly appreciated.
There are too many degrees of freedom remaining in the design parameters. You seem to be designing it backwards.

You really must specify the input, output and maximum ripple voltages, and the range of output current. Then you can design the power converter circuit, followed by identifying the control mode or modes required.

Positioning the poles will probably be the last thing you do.
 
  • #3
There are a lot of degrees of freedom but I would like to do an optimization on those parameters. I have a range of input voltages possible, but I need to specify one. The output is specified. Maximum ripple voltage is based on the capacitor and will be selected after the other components are designed. I was hoping to use the controller to automatically adjust the duty cycle so I can maintain the same output voltage regardless of the parameters. Then vary the parameters and see how it affected the currents mainly. As long as my circuit is stable with my controller, I think I should be able to do this.

I do have a range for Vin, L, and f.
 
  • #4
Ntip said:
The load R and output voltage Vo are fixed, but I would like to vary the other parameters (Vi, L, and f) without having to worry about the duty cycle. To be able to do that, I think I need to add a feedback controller.
I'm not sure you HAVE to have feedback, if you just want to experiment. Yes, maybe you wouldn't have to worry about the Duty Cycle, but you'll have to worry about a lot of stability stuff instead.

Ntip said:
Is designing a the controller the same when designing it to operate in DCM as it is in CCM?
No. The dynamic response is different. You may be able to use the same feedback compensation if it is slower than all of the converter dynamics. Which is what I would do if I was changing things like f and L which have a significant effect on the frequency response.

Ntip said:
I just noticed that the current mode controller is a type III (PID) compensator whereas the current mode controller is a type I (P).
Personally, I was never a fan of these descriptions (type III, type I, PID, etc.) The way I do it is pole/zero placement in the compensation network to get the response you desire. I guess it all amounts to the same thing. The reason I don't like those terms is that I feel it makes people think these are magic, fundamental, the best choice, or the only choice. For example, I have often used a network you would have to describe as IPDPII, I guess. Anyway, I digress. Just because they chose one or the other scheme for their requirements doesn't mean you would do the same.

Current mode control is usually a better way to go, IMO. When done well it improves the response of the converter by essentially removing much (but not necessarily all) of the effects of the inductor, by controlling the inductor current on a cycle-by-cycle basis. So, there is (ideally) no memory (i.e. no state variable) from cycle to cycle. However, analytically current mode control is difficult to model. It also is easier to set safe operating limits (in a crude sense) because it is easy to keep the inductor current in control, even open loop.

If you really want to do this with maximum understanding, you'll need to know the following stuff.
1) Control system design for simple or at least stable machines.
2) SMPS frequency response models, which is basically state-space averaging. In particular for boost converters, which is one of the more difficult converters to deal with. [BTW, If you want to really work with SMPS for a while, state-space averaging is good to know about.]
3) Maybe, or not, modeling current mode control dynamics.

I can tell you from experience, I've never really heard of anyone outside of academia that would really completely solve a boost converter with current mode control analytically. It's really hard. However, most would choose current mode control, because, IMO, it works better.

So how do we really do it?
1) You look at standard models and figure out which parameters matter in general.
2) Then you restrict the range of those parameters as @Baluncore said and determine a few "worst case" or extreme combinations.
3) Then you build them and measure in the lab (or simulate, if you can trust your modelling) to find the frequency response in the extreme cases.
4) Then you design some feed back compensation that works for all configurations.
5) Build the real thing and measure to verify and/or adjust your design. Personally, at this point I wouldn't trust simulators, but that may be OK if you put a lot of work into verifying that the simulator matches your real circuit. I always have found the simulator verification and detailed modelling harder than just using the real hardware. Plus, the people you work for will only care about testing real hardware, so you'll want to have tested it more than them.

Of course this is much easier if you identify a low bandwidth compensation that avoids the complex stuff at higher frequencies. That is probably what you want to do initially.

edit: I also suspect that there is a less dramatic change from CCM to DCM when a good current-mode controller is used, since the big dynamic difference is whether the inductor current acts as a state variable or not. In DCM, it has no memory of previous cycles, which is the same for the outer feedback loop in current-mode control.
 
Last edited:
  • #5
DaveE said:
No. The dynamic response is different. You may be able to use the same feedback compensation if it is slower than all of the converter dynamics. Which is what I would do if I was changing things like f and L which have a significant effect on the frequency response.

Thanks for all of the feedback (no pun intended...but it does go well lol). That's actually what I'm hoping to do. I don't mind it being slow since I'm just wanting to vary those parameters. Once I determine a design candidate, I can work on building a better controller. I'll be taking a controls class next semester. Hopefully I'll understand this a lot more after. I think I'll be doing things similar to the steps your outlined once I can get this done. Then I'll be able to narrow down the parameter values by selecting a frequency etc.
 
  • #6
Ntip said:
Maximum ripple voltage is based on the capacitor and will be selected after the other components are designed.
You must specify maximum ripple voltage, then you can compute the required capacitance. That completes the signal path that you will control. Your controller poles cannot be placed until after the power path is designed and the reservoir capacitor selected.

With zero load, I would expect the MOSFET to switch on, only once every few seconds, while it maintains the output voltage across the resistive divider in the voltage regulator.
When and how will it switch control modes ?
 
  • #7
Ok I see. That's easy enough to define upfront too since I'm really optimizing the other parameters and the controller would be changed later anyway.

As far as when and how it would switch on, that's a good question. I found some papers that talk about current mode control for a boost converter that works with small error in CCM and DCM so I suspect I'll try something like that when the time comes. Right now this controller is just to prevent me from needing to adjust the duty cycle with each simulation. It will allow me to do as many combinations of parameter sweeps as I have time and memory for, then analyze after. I'll be able to just leave it running and step away. I'm also using this to get an introduction to controller design which I'll hopefully understand more after the class in it next semester.
 
  • #8
Ntip said:
Right now this controller is just to prevent me from needing to adjust the duty cycle with each simulation. It will allow me to do as many combinations of parameter sweeps as I have time and memory for, then analyze after.

What is the purpose of simulation?

If you want to obtain dynamic behavior information, such as input transient response, load transient response, stability, this controller will not hinder your simulation, instead, this is an important object of simulation..

If you only want to obtain information about static behavior, then you already have the voltage transfer and duty cycle equation. For other information about input regulation, load regulation, power consumption and efficiency, you may use simple calculation methods to evaluate it yourself.

If you really want to perform dynamic simulation while keeping the output voltage constant, then I am afraid that the controller is inevitable for the DCM operation of boost converter. You can try to minimize the gain and increase the response time of the feedback control loop to achieve system stability. :smile:
 
Last edited:
  • #9
alan123hk said:
What is the purpose of simulation?

If you want to obtain dynamic behavior information, such as input transient response, load transient response, stability, this controller will not hinder your simulation, instead, this is an important object of simulation..

If you only want to obtain information about static behavior, then you already have the voltage transfer and duty cycle equation. For other information about input regulation, load regulation, power consumption and efficiency, you may use simple calculation methods to evaluate it yourself.

If you really want to perform dynamic simulation while keeping the output voltage constant, then I am afraid that the controller is inevitable for the DCM operation of boost converter. You can try to minimize the gain and increase the response time of the feedback control loop to achieve system stability. :smile:

I only want static behavior at the moment, but the other things you mentioned will be of interest at a later time. I do have the duty cycle equation but that is not sufficient for what I want to do. For what I want to do, I still need a controller. I want to use LTspice to vary parameters so I can optimize the sizing of my inductor, switching frequency, and input voltage. The duty cycle is a function of all of these and I do not want to have to calculate the duty cycle for each combination and adjust it every time. I would prefer to have feedback control that automatically controls the duty cycle since that's the way the duty cycle will be controlled in the actual circuit anyway. I don't care about fine tuning the controller at this stage because I only have a range of circuit parameters at the moment and the fine tuning will happen after power stage is finalized.
 
  • #10
I think I might understand what you mean. I have an idea for your consideration. Just input all parameters (including input voltage, output voltage, inductance, load resistance, switching frequency, etc.) into LTspice, and then let LTspice perform arithmetic operations to find the corresponding duty cycle for simulation. In this case, you don't need a negative feedback and controller at all.
 
  • Like
Likes DaveE and Ntip
  • #11
alan123hk said:
I think I might understand what you mean. I have an idea for your consideration. Just input all parameters (including input voltage, output voltage, inductance, load resistance, switching frequency, etc.) into LTspice, and then let LTspice perform arithmetic operations to find the corresponding duty cycle for simulation. In this case, you don't need a negative feedback and controller at all.
Finally, someone who gets it! lol.

I thought about doing this but the duty cycle is ideal and doesn't account for other parasitics or effects that would cause it to deviate. I'll try the duty cycle calculation to at least get me started with a rough idea of the parameter values. I'll try to work on the DCM controller design too because it seems to be more complicated that I originally though. I'm sure that is mostly because I'm not really confident with doing it even in CCM.
 
  • Like
Likes alan123hk
  • #12
Ntip said:
Finally, someone who gets it! lol.

I thought about doing this but the duty cycle is ideal and doesn't account for other parasitics or effects that would cause it to deviate. I'll try the duty cycle calculation to at least get me started with a rough idea of the parameter values. I'll try to work on the DCM controller design too because it seems to be more complicated that I originally though. I'm sure that is mostly because I'm not really confident with doing it even in CCM.
They're both complicated IMO, LOL.
 
  • Like
Likes alan123hk
  • #13
DaveE said:
They're both complicated IMO, LOL.
So I implemented the duty cycle calculation and it works somewhat ok. Unfortunately, if I add actual models it will start to have more deviation since there will be more losses, but I guess it's as good as I can get for now. In case anyone is interested, I used...

.param D=sqrt((Vo**2-Vo*Vi)*K)/(Vi**2))

where all of the necessary parameters were also defined by .param statements.

Here's the output after ~55 ms with the output set to 9.64 V with a .ic statement. Setting it to 9.65 V the voltage starts to slowly drop overtime so the steady state is 9.64-9.65 V. The comanded voltage is 10 V so it is really close.

A closed loop controller would be ideal, but hey this gets the job done.
 

Attachments

  • BoostOutput_DCM.PNG
    BoostOutput_DCM.PNG
    11 KB · Views: 167
  • #14
If you want to perform this operation, you must first tell the simulator how to determine whether the converter should work in CCM mode or DCM mode based on input parameters. In other words, you must provide the simulator with the boundary condition equation between CCM and DCM. Then, you need to create two different duty cycle signal sources, one for CCM and the other for DCM, and let the simulator choose which signal source should be used to perform the simulation.

Of course, another method is to try to design a simple feedback controller. In any case, sooner or later you will have to face this challenging design process. :smile:
 
  • #15
alan123hk said:
If you want to perform this operation, you must first tell the simulator how to determine whether the converter should work in CCM mode or DCM mode based on input parameters. In other words, you must provide the simulator with the boundary condition equation between CCM and DCM. Then, you need to create two different duty cycle signal sources, one for CCM and the other for DCM, and let the simulator choose which signal source should be used to perform the simulation.

Of course, another method is to try to design a simple feedback controller. In any case, sooner or later you will have to face this challenging design process. :smile:
I've watched several youtube videos on the feedback controller design but I guess my brain is fried right now because its just not clicking. I have found plenty of references for the boost converter transfer function in CCM, but not DCM. It seems that I need to know the pole/zero locations to do the feedback controller using the app notes that I've found for that. But even at that, the app notes state that it's for CCM would that even work?

Is it possible to just make a simple controller with a slow response that's almost sure to work without doing the specific pole placement? All I really need it to do is set a fixed duty cycle based on the parameter values once a steady state is reached. I can easily set a capacitor initial voltage so there is little to no charging requiring the controller to do very little work.
 
  • #16
I can work on a better controller once I have my f, L, and Vi pinned down.
 
  • #17
It's really hard to simulate SMPS with feedback controls since the time scales are so different. Sort of by definition, or maybe good design, the time scale for feedback loops is really slow compared to the time scale required to simulate the fast (cycle by cycle) operation. As a really crude approximation: if you are switching at 100KHz then your simulator will need at least 1usec steps (probably much faster, actually). Yet the bandwidth of the feedback controls would be something like 1Khz with perhaps a 350usec response time. So, for you to see your feedback working, you'll have to look at something like 40-100 switching cycles. This is where state-space averaging is useful, to replace the high frequency behavior with an averaged model that is accurate at low frequencies.

In my experience, simulators are best for the very fast stuff, like what happens in 1 or 2 switching cycles, or slow stuff, like the control system. I always used analysis on paper to solve the in between time periods. I think you need to be really clear on what data you need to get from the simulator, and don't waste effort on things that you can solve in other ways. I think there is a huge difference between simulating a circuit and understanding a circuit.

Still, I like LTSpice, and those guys certainly know about SMPS design, so I would look to see if they have any support (app notes, or simulations) for their boost converter designs. It may not be the same as your design, but they may have good examples about how to simulate that stuff that you can then modify.
 
  • #18
I've found some controller designs that I've been able to modify to work for my circuits, like CCM buck and boost converters, in LTspice and it definitely slows down the computation. I usually end up having to change the minimum timestep to something like 1 usec (as you suggested) or even 0.1 usec for it to converge. I've found that changing the integration method or adding small parasitics can help it converge quicker in some cases. I agree though, state space modeling is quicker when possible. Unfortunately, this is just the front end of the circuit and finding the state space model is quite a bit more complicated. After I get this part figured out, will likely use Matllab/Simulink for the controller design. The simulations are MUCH quicker (seconds compared to several several minutes possibly) and they seem to have simple design toolboxes.

Thanks for the suggestions so far. I'll look around for some LTspice examples. They may actually already have a LTspice subcircuit for one of their own controllers.
 

What is a boost converter?

A boost converter is a type of DC-DC converter that steps up the input voltage to a higher output voltage. It is commonly used in power supply applications to provide a stable and regulated output voltage.

Why is feedback control important in boost converter design?

Feedback control is important in boost converter design because it allows for the regulation of the output voltage. By continuously monitoring the output voltage and adjusting the input voltage accordingly, the feedback controller ensures that the output voltage remains stable and within a desired range.

What is the purpose of a feedback controller in a boost converter?

The purpose of a feedback controller in a boost converter is to regulate the output voltage and maintain it at a set value. The controller compares the output voltage to a reference voltage and adjusts the input voltage to keep the output voltage stable.

What are the components of a feedback controller for a boost converter?

A feedback controller for a boost converter typically consists of a sensor to measure the output voltage, a comparator to compare the output voltage to a reference voltage, and a feedback loop to adjust the input voltage based on the comparison. It may also include a compensator to improve the stability and performance of the controller.

What are some common design considerations for a feedback controller in a boost converter?

Some common design considerations for a feedback controller in a boost converter include choosing appropriate components with suitable parameters, ensuring stability and transient response, and minimizing losses in the converter circuit. It is also important to consider the load and input variations that the controller may need to compensate for.

Similar threads

  • Electrical Engineering
Replies
23
Views
3K
Replies
55
Views
3K
  • Electrical Engineering
Replies
32
Views
2K
  • Electrical Engineering
Replies
9
Views
3K
Replies
7
Views
2K
  • Electrical Engineering
Replies
6
Views
3K
  • Electrical Engineering
Replies
14
Views
811
  • Electrical Engineering
Replies
8
Views
2K
  • Electrical Engineering
Replies
12
Views
4K
Replies
8
Views
988
Back
Top