Main Content

Feedback Amplifier Design for Voltage-Mode Boost Converter

This example shows how to tune the components of a power supply controller to control the output voltage of a boost converter using loop-shape design and fixed-structure tuning methods. This workflow is demonstrated using a boost converter model and a type-III controller.

You need a Mixed Signal Blockset® license to run this example.

Power Train

This example uses the boost converter and feedback amplifier circuit defined in [1].

Power train and compensator circuit

The power supply system consists of a voltage source, boost power train, load, feedback amplifier and pulse width modulator. The boost power train converts the voltage from the voltage source Vg to a voltage Vo driving a load RLoad in parallel with a load current ILoad. This conversion is controlled by the pulse duty cycle d at the output of the pulse width modulator, which is in turn controlled by the feedback amplifier. The feedback amplifier senses the output voltage and attempts to make it a fixed multiple of the reference voltage Vref, in response to changes in the source voltage, load current, and load resistance.

Boost Converter Model

Create a transfer function model for the boost converter with defined component values and at an operating point specified using the duty cycle and output voltage values observed in [2]. Here, use the getBoostConverterPlant helper function (available in the file directory for this example) to set up this model. For more information, see Design Controller for Power Electronics Model Using Frequency Response Data (Simulink Control Design).

boostConverterPlant = getBoostConverterPlant();
boostConverterPlant.InputName = {'d'};
boostConverterPlant.OutputName = {'Vo'};

Tunable Control Architecture with Type-III Compensator

Now, set up a closed-loop system for the boost converter using a type-III compensator as a feedback amplifier and a simple gain block as the modulator gain, as shown in the following architecture diagram.

Feedback architecture

The objective is to tune the resistance (R1, R2, R3) and capacitance (C1, C2, C3) values of the type-III compensator which amplifies the error between the reference voltage and output voltage. A type-III compensator can increase phase in the mid-frequency range while improving both low and high frequency responses.

Create Tunable Linear System for Type-III Compensator

The type-III compensator structure is defined in the netlist file TypeIII_simple.sp. Run the getControlModel helper function, which uses a Linear Circuit Wizard block to parse the file and extract a tunable linear model. Configure the compensator using the configureTunableBlock helper function, and use a tunable gain in series to get the final controlBlock.

modelName = 'TypeIIICompensator';
load_system(modelName);
lcwBlock = [modelName,'/Linear Circuit Wizard'];

compensator = getControlModel(lcwBlock,{'R1','R2','R3','C1','C2','C3'});
compensator = configureTunableBlock(compensator);

K = realp('K',-1);
K.Minimum = -1.2;
K.Maximum = 0;

controlBlock = K*compensator;
controlBlock.InputName = {'e'};
controlBlock.OutputName = {'d'};

Connect Tunable and Fixed Blocks to Create Closed Loop System

eSum = sumblk('e = Vref - VoMeasured');
dSum = sumblk('VoMeasured = dVo + Vo');

closedLoopSystem = connect(controlBlock,boostConverterPlant,eSum,dSum,{'Vref','dVo'},'VoMeasured',{'e','d'});

Loop-Shaping Design

First, view the stability margins and frequency response of the open-loop boost converter plant.

figure;
margin(boostConverterPlant);

Figure contains 2 axes objects. Axes object 1 with title From: d To: Vo contains an object of type line. This object represents boostConverterPlant. Axes object 2 contains an object of type line. This object represents boostConverterPlant.

Design Requirements

Use the following design requirements to define a stable target loop shape:

  • Increase gain at low frequencies. This improves the transient performance of reference voltage and output voltage disturbance rejection steady state error.

  • Add phase in middle frequencies to increase bandwidth (reduce response time) and achieve stability with positive gain and phase margins.

  • Reduce gain at high frequencies to make the closed loop system robust by attenuating oscillations in the control signal created by introduced harmonics and noisy measurements in the output voltage.

Use the helper function getTuningGoals to create the following tuning goal objects, which help you define constraints and objectives when you tune the system.

  • marginsGoal - TuningGoal.Margins (Control System Toolbox) with a gain margin constraint of 5 dB and phase margin constraint of 30 degrees. These constraints enforce stability and also help you visualize, using viewGoal, how much uncertainty the loop can tolerate at different frequencies before going unstable.

  • minLoopGainGoal - TuningGoal.MinLoopGain (Control System Toolbox) with an integral action gain profile and a bandwidth of 1 KHz. The constraint is enforced in the low frequency range (10 Hz to 200 Hz).

  • maxLoopGainGoal - TuningGoal.MaxLoopGain (Control System Toolbox) with a double integrator gain profile and a roll-off of -40 dB/decade, enforced in the high frequency range (1.5 KHz to 15 KHz).

[marginsGoal, minLoopGainGoal, maxLoopGainGoal] = getTuningGoals();

Tune System

Now, use systune to tune the system, that is, compute the values of the tunable parameters (C1, C2, C3, R1, R2, R3, and K) such that the open loop response meets the desired design requirements.

First, create a systuneOptions object and adjust the values for the minimum decay rate and maximum spectral radius to suit tuning for high bandwidth loop shapes. Also, reduce the relative tolerance criteria for termination.

opts = systuneOptions;
opts.MinDecay = 1e-15;
opts.MaxRadius = 1e15;
opts.SoftTol = 1e-10;

Tune the system using systune, with the margin goals enforced as objectives (soft goals) and minimum and maximum loop gain goals enforces as constraints (hard goals). The tuning returns a converged result that satisfies the hard goals and optimizes the soft goals. The best achieved values for the soft and hard goals are both less than 1.

tunedClosedLoopSystem = systune(closedLoopSystem,marginsGoal,[minLoopGainGoal,maxLoopGainGoal],opts);
Final: Soft = 0.838, Hard = 0.99976, Iterations = 1213

Analyze Results

View Tuned System Results Against Desired Specifications

Create plots of the tuned system against the tuning goals to indicate how closely it meets the desired specifications. The shaded regions in each plot represent where the tuning goal is violated. The plots show that the constraints of tracking error and stability margins are met, while the objectives of minimum and maximum loop gains in specific frequency ranges are optimized.

viewGoal(marginsGoal,tunedClosedLoopSystem);

Figure contains 2 axes objects. Axes object 1 contains an object of type line. These objects represent Required margins, Stability margins. Axes object 2 contains an object of type line. These objects represent Required margins, Stability margins, Tuned lower bound.

viewGoal(minLoopGainGoal,tunedClosedLoopSystem);

Figure contains an axes object. The axes object contains 3 objects of type line. These objects represent inv(S), Loop gain(s), Min loop gain, inv(S) bound.

viewGoal(maxLoopGainGoal,tunedClosedLoopSystem);

Figure contains an axes object. The axes object contains 3 objects of type line. These objects represent T, Loop gain(s), Max loop gain, T bound.

View Tuned Loop Shape and Stability Margins

The margin plot of the tuned open loop system indicates the bandwidth and robustness along with the achieved gain and phase margins.

tunedLoopShape = getLoopTransfer(tunedClosedLoopSystem,'d',-1);
figure;
margin(boostConverterPlant);
hold on;
margin(tunedLoopShape); 
grid on;
legend('show','Location','best');

Figure contains 2 axes objects. Axes object 1 with title From: d To: Vo contains 2 objects of type line. These objects represent boostConverterPlant, tunedLoopShape. Axes object 2 contains 2 objects of type line. These objects represent boostConverterPlant, tunedLoopShape.

View Step Responses of Closed Loop System

Step response plots of reference voltage tracking and output voltage disturbance tracking show that the response settles without any steady state error with an acceptably small settling time.

figure;
step(getIOTransfer(tunedClosedLoopSystem,'Vref','VoMeasured')); 
title('Step Tracking of Reference Voltage');
grid on;

Figure contains an axes object. The axes object with title From: Vref To: VoMeasured contains an object of type line. This object represents untitled1.

figure;
step(getIOTransfer(tunedClosedLoopSystem,'dVo','VoMeasured')); 
title('Step Rejection of Output Voltage Disturbance');
grid on;

Figure contains an axes object. The axes object with title From: dVo To: VoMeasured contains an object of type line. This object represents untitled1.

Tuned Component Values

Get the transfer function from the controller input e to the duty cycle d and display the tuned component values.

tunedCompensator = getIOTransfer(tunedClosedLoopSystem,'e','d','d');
showTunable(tunedCompensator);
C1 = 5.63e-08
-----------------------------------
C2 = 2.56e-09
-----------------------------------
C3 = 1e-11
-----------------------------------
K = -1.2
-----------------------------------
R1 = 2.37e+05
-----------------------------------
R2 = 1.12e+04
-----------------------------------
R3 = 1e+04

Simulation Results

Simulation Result with Tuned Controller

open_system("VoltageControlledBoostConverter.slx");

Use an LTI System Block to implement the type-III compensator and simulate the model to examine the performance. The model uses the following disturbances:

  • Line disturbance at t = 0.04 seconds, which increases the input voltage Vin from 5 V to 10 V.

  • Load disturbance at t = 0.065 seconds, which increases the load resistance RLoad from 3 ohms to 6 ohms.

Simulink model of voltage controlled boost converter

The results show that the tuned feedback amplifier rejects the line and load disturbances well.

Output voltage

References

[1] Lee, S. W. "Practical Feedback Loop Analysis for Voltage-Mode Boost Converter." Application Report No. SLVA633. Texas Instruments, January 2014. www.ti.com/lit/an/slva633/slva633.pdf.

[2] Ahmadi, Reza, and Mehdi Ferdowsi, "Modeling Closed-Loop Input and Output Impedances of DC-DC Power Converters Operating inside DC Distribution Systems." 2014 IEEE Applied Power Electronics Conference and Exposition - APEC 2014. IEEE, March 2014. https://ieeexplore.ieee.org/document/6803449.