MATLAB Examples

Control Design of a Boost Converter Using Frequency Response Data

This example shows how to design a controller for a voltage-mode boost converter modeled in Simulink® using Simscape Power Systems™ components. The frequency response of the model is estimated using the Linear Analysis Tool, and a PID controller is then tuned using the estimated frequency response data.


Voltage-Mode Controlled Boost Converter

For this example, use the following model of a voltage-mode boost converter.

mdl = 'scdboostconverter';

Parameters of the components in the boost converter are based on [1].

A boost converter circuit converts a DC voltage to another, typically higher, DC voltage by controlled chopping or switching of the source voltage. In this model, a MOSFET driven by a pulse-width modulation (PWM) signal is used for switching. For this example, you estimate the frequency response from the PWM duty cycle to the load voltage $Vout$. The output voltage $Vout$ should be regulated to the reference value $Vref$. A digital PID controller adjusts the PWM duty cycle based on the voltage error signal.

Collect Frequency Response Data

To collect frequency response data, use the Linear Analysis Tool. To open the Linear Analysis Tool, in the Simulink model window, select Analysis > Control Design > Frequency Response Estimation.

To analyze the boost converter circuit, the frequency response is estimated from a steady-state operating point. To do so, create a new operating point from a simulation snapshot.

In the Linear Analysis Tool, on the Estimation tab, in the Operating Point drop-down list, select Take Simulation Snapshot.

In the Enter snapshot times to linearize dialog box, in the Simulation snapshot times field, enter 0.04, which is enough time for the closed loop system to reach steady state.

Click Take Snapshots.

To use a fixed-step sinestream for frequency response estimation, in the Input Signal drop-down list, select Fixed Sample Time Sinestream.

In the Specify fixed sample time dialog box, specify a Sample time of 5e-6 seconds.

Click OK.

In the Create sinestream input with fixed sample time dialog box, configure the parameters of the sinestream signal.

Specify the frequency units for estimation. In the Frequency units drop-down list, select Hz.

For this example, the frequency response estimation can either use one simulation per frequency or one simulation for all frequencies. In the Simulation order drop-down list, select the default option Single simulation for all frequencies. If you have Parallel Computing Toolbox™ software, you can speed up the frequency response estimation by choosing One frequency per simulation and enabling the parallel pool for estimation. To enable the parallel pool, on the Estimation tab, click More Options, then in the dialog box, select *Use parallel pool during estimation.

Specify 15 logarithmically-spaced frequencies ranging from 50 Hz to 5k Hz.

Set the amplitude at all frequencies to 0.01 to ensure the system is properly excited. If the input amplitude is too large, the boost converter will operate in discontinuous-current mode. If the input amplitude is too small, the sinestream will be indistinguishable from ripples in the power electronics circuits. Both situations produce inaccurate frequency response estimation results.

Leave all other sinestream settings at their default values.

To create the sinestream signal, click OK.

For more information on defining sinestream input signals, see docid:slcontrol_ug.br9upc7-1.

The model has time-varying line and load disturbances modeled as step functions that will interfere with the frequency response estimation. To hold these constant during the experiment, click More Options. Then, in the Options for frequency reponse estimation dialog box, on the Time Varying Sources Tab, click Find and add time varying source blocks automatically.

To estimate and plot the frequency response, on the Estimation tab, click Bode.

The software estimates the frequency response and displays the result in Bode Plot 1. The frequency response is plotted using discrete points and shows the peak response between 210 Hz and 250 Hz.

To tune a PID controller, you must first export the frequency response to the MATLAB® workspace. In the Data Browser, drag estsys1 from Linear Analysis Workspace to MATLAB Workspace.

Tune Controller

To tune the controller, in the Simulink model window, open the Block Parameters dialog box for the PID Controller block.

To open PID Tuner, click Tune.

When PID Tuner first opens, it attempts to linearize the model. Due to the PWM components, the model analytically linearizes to zero For this example, you instead tune the controller using the estimated frequency response data. To import the frequency response data, in PID Tuner, in the Plant drop-down list, select Import.

In the Obtain plant model dialog box, select Importing an LTI System, and, in the table, select estsys1.

Click OK.

In the Add Plot drop-down list, under Bode, select Open-loop.

The Bode plot shows a block response (dashed line) and a tuned response (solid line). The block response is the open-loop response for the current PID gains in the PID Controller block. The tuned response is the open-loop response using the tuned PID gains in PID Tuner.

To tune the controller in terms of bandwidth and phase margin, design the controller in the frequency domain. In the Domain drop-down list, select Frequency.

Set the Bandwidth and Phase Margin to 9425 rad/s (1.5 kHz) and 60 deg, respectively according to the design criteria specified in [1].

To view the tuned controller parameters and performance metrics, including the gain and phase margins, click Show Parameters. The tuned result has an infinite gain margin and 65 deg phase margin at about 1.5 kHz.

To update the PID Controller block with the tuned gains, click Update Block.

Validate Controller

You can examine the tuned controller performance using a simulation with line and load disturbances. To examine the controller dynamic performance, the Simulink model uses the following disturbances:

  • Line disturbance at t = 0.05 sec increases Vin from 5V to 10V.
  • Load disturbance at t = 0.10 sec increased load current from 3A to 6A.

To initialize the model with the operating point used for estimation, in the Linear Analysis Tool, in the Linear Analysis Workspace, double-click op_snapshot1.

In the Edit dialog box, click Initialize model.

Then, in the Initialize Model dialog box, select MATLAB Workspace, and click OK.

Simulate the model.

The controller rejects the line and load disturbances well.


[1] Lee, S. W. "Practical Feedback Loop Analysis for Voltage-Mode Boost Converter." Application Report No. SLVA057. Texas Instruments. January 2014.