using MATLAB/Simulink
MATLAB: programming and scripting environment
Simulink: blockdiagram modeling environment inside MATLAB Simulink: block diagram modeling environment inside MATLAB
Motivation:
Powerful environment for system modeling and simulation
More sophisticated controller models, analysis and design tools
But*:
Blockdiagram based Simulink models unidirectional signals Blockdiagram based Simulink models, unidirectional signals
Not a traditional circuit simulator; specialized physicsbased Spice
device models or component libraries are not readily available
*Various addons to Simulink are available to allow traditional circuit diagram
entry and circuit simulations (e.g. SimPowerSystems, PLECS), or to embed
Spice within MATLAB/Simulink environment These addons are not required
ECEN5807
1
Spice within MATLAB/Simulink environment. These addons are not required
and will not be used in ECEN5807.
Introduction through an example
i
Load
i
g
L R
R
on1
+
_
v
L
i
Synchronous buck converter
+
v
out
v
g
+
_
R
esr
C
+
_
v
L R
L
R
on2
i
C
i
Bode Diagram
40
20
0
20
40
From: vc To: SyncBuck/vout
a
g
n
itu
d
e
(
d
B
)
PWM
v
c
dT
s
T
s
V
M
c
10
1
10
2
10
3
10
4
10
5
10
6
180
135
90
45
0
P
h
a
s
e
(
d
e
g
)
80
60
40
M
a
c
5
Vg
v g
v
i
v
Switching model
Averaged model
Frequency (Hz)
10 10 10 10 10 10
0
0.36
Vc
v c
iLoad
i
v out
ig
i
v out
Smallsignal linearization and
frequency responses
See MATLAB/Simulink page on the course
ECEN5807
2
i Load
ig
SyncBuck
Scope
ig
Simulink model: syncbuck_OL.mdl
See MATLAB/Simulink page on the course
website (Materials page) for complete stepby
step details, and to download the example files
Synchronous Buck Converter
i
Load
i
g
+
L R
R
on1
+
_
v
L
i
+
v
out
v
g
+
R
esr
C
+
v
L R
L
R
on2
i
C
i
dT
s
_
C
_
v
c
PWM
v
T
s
V
M
v
c
Inputs: v
g
, i
Load
, v
c
Outputs: v
o t
i
g
ECEN5807
3
Outputs: v
out
, i
g
State variables: v, i
Converter state equations
i
Load
i
g
+
R
L R
L
R
on1
+
_
v
L
i
+
v
out
v
g
_
R
esr
C
+
_
v
R
on2
i
C
PWM
dT
s
T
s
V
M
c
v
c
State equations Output equations
( )
( ) ) 0 (
) 1 (
2
1
=
=
+
+
= =
c
c
v i R R
v i R R v
dt
di
L v
out L on
out L on g
L
d
) 0 (
) 1 (
0 =
=
=
c
c i
i
g
ECEN5807
4
Load C
i i
dt
dv
C i = =
( )
Load esr out
i i R v v + =
Simulink
model
5
Vg
v g
v
v
SyncBuck subsystem block
0
0.36
Vc
v c
iL d
i
v out
i
v out
0
i Load
iLoad
ig
SyncBuck
Scope
ig
1
v
1
s
capaci tor i ntegrator
v c c 2
1
vg
dv /dt v
c
SyncBuck
subsystem
block
internals
3
2
i
1
s
i nductor i ntegrator
PWM
u y CCMbuck
CCM buck
3
i Load
vc
i di/dt
v out
y u
c
4
i g
vout
v out
ig
ECEN5807
5
Synchronous buck (SyncBuck) subsystem
1
vg
Integration of
state variables
PWM
2
1
v
1
1
s
capaci tor i ntegrator
v c c
PWM
2
vc
vg
dv /dt v
c
c
Inputs
PWM
subsystem
3
vout
2
i
s
i nductor i ntegrator
PWM
u y CCMbuck
CCM buck
3
i Load
i di/dt
v out
y u
Outputs
4
i g
vout
ig
Converter
state
equations
ECEN5807
6
PWM operation and model
c
c
1
c
Add
1
vc
c
PWM ramp
Comparator
Add
ECEN5807
7
Simulink PWM model
Converter state equations: embedded MATLAB script
1
3
vout
2
i
1
v
1
s
i nductor i ntegrator
1
s
capaci tor i ntegrator
v c c
PWM
u y CCMbuck
CCM buck
3
i Load
2
vc
1
vg
dv /dt v
i di/dt
v out
y u
c
c
u = inputs = [vg c iLoad v i]
y = outputs = [ic/C vL/L vout ig]
u y
4
i g
ig
Converter
state
equations
( ) i i R v v +
) 0 (
) 1 (
0 =
=
=
c
c i
i
g
( )
Load esr out
i i R v v + =
( ) ) 1 (
1
=
+ c v i R R v
di
L
out L on g
Load C
i i
dt
dv
C i = =
ECEN5807
8
( )
( ) ) 0 (
) (
2
1
=
+
= =
c v i R R dt
L v
out L on
out L on g
L
Numerical example
i
Load
i
g
+
R
esr
L R
L
R
on1
+
_
v
L
i
Switching frequency:
f
s
= 1MHz
+
dT
v
out
v
g
_
esr
C
+
_
v
R
on2
i
C
c
I
out
= 0
V
g
= 5 V
PWM
v
c
dT
s
T
s
V
M
L = 1 H
R
L
= 10 mO
R
on1
= R
on2
= 20 mO
C = 200 F
5
Vg
v g
v
i
v
R
esr
= 0.8 mO
PWM ramp amplitude
V
M
= 1 V
0
0.36
Vc
v c
iLoad
i
v out
i
v out
ECEN5807
9
M
V
c
= 0.36, D = 0.36
0
i Load
iLoad
ig
SyncBuck
Scope
ig
Simulink model: syncbuck_OL.mdl
Numerical example: synchronous buck converter model
5
Vg
v g
v
v
0
0.36
Vc
v c
iL d
i
v out
i
v out
0
i Load
iLoad
ig
SyncBuck
Scope
ig
Masking a Simulink subsystem
allows parameterization
Same subsystem model can be
reused
Models and MATLAB scripts can
ECEN5807
10
p
be collected in a library
Switching simulation: openloop startup transient
v
i
v
out
i
g
Zoom in 1 s/div 20 s/div
ECEN5807
11
Zoom in, 1 s/div 20 s/div
Averaged model
( )
( ) ) 0 (
) 1 (
2
1
=
=
+
+
= =
c
c
v i R R
v i R R v
dt
di
L v
out L on
out L on g
L
dv
Switching model
Load C
i i
dt
dv
C i = =
) 0 (
) 1 (
0 =
=
=
c
c i
i
g
) 0 ( 0 =
c
( )
Load esr out
i i R v v + =
Statespace averaging (review Textbook Sections 7.17.3)
v d
( ) ( ) ( ) ( ) ( )
s s s s
s
s
s
T
out
T
L on
T
out
T
L on
T
g
T
T
L
v i R R d v i R R v d
dt
i d
L v + + + = =
2 1
1
p g g ( )
s s
s
s
T
Load
T
T
T
C
i i
dt
v d
C i = =
s
s
T
T
g
i d i =
Largesignal
averaged model
ECEN5807
12
( )
s s s s
T
Load
T
esr
T T
out
i i R v v + =
Converter averaged state equations: MATLAB
The MATLAB function stays exactly the same, except d (dutycycle) replaces c (switch control)
ECEN5807
13
Synchronous buck (SyncBuck) subsystem:
switching or averaged model
1
Integration of
state
variables
Inputs
2
1
v
1
sw
constant
1
s
capaci tor i ntegrator
1/VM
v c c
PWM 2
vc
vg
dv /dt v
d
c
3
vout
2
i
s
i nductor i ntegrator
Swi tch
1/VM
PWM Gai n
u
y CCMbuck
CCM buck
3
i Load
i di/dt
v out
y
u
d
Converter
4
i g
ig
Converter
state
equations
Outputs
Averaged
model of the
PWM
Outputs
ECEN5807
14
Startup transient simulations
Switching model Averaged model
v
i
v
out
i
g
ECEN5807
15
Linearization of the largesignal averaged model
Largesignal (nonlinear) averaged model
Linearization at an operating point
L
V
g
d
i
L
R
L
Linearization at an operating point
+
R
+
v v
g
+
D v
g
D i
L
R
esr
Smallsignal
averaged
C
g
I
o
d
g
model
The smallsignal model can be solved for all important converter transfer functions:
d
v
s G
vd
) ( =
vg
v
v
s G
) ( =
l d
out
i
v
s Z
) ( =
ECEN5807
16
d g
v
load
i
Controltooutput Linetooutput Output impedance
Synchronous buck converter example
Review textbook Chapter 8
L
+
V
g
d
i
L
R
L
d
v
s G
o
vd
) ( =
Buck SSM
+
C
R
+
v
v
g
+
D v
g
I
o
d
D i
L
R
esr
2
1
) (
 
+
=
esr
g vd
s
V s G
e
d
G
vd
(s)
2
1
1
) (


.

\

+ +
o o
g vd
s s
Q e e
P i f l
d
kHz 11
2
1
= =
CL
f
o
t dBV 14 V 5 =
vdo
G
Pair of poles:
Lowfrequency gain:
MHz 1
1
f
dB 2 . 7 3 . 2
/
=
+
=
L esr
loss
R R
C L
Q
5
/
> =
C L
R
Q
load
Q Q
ESR zero:
ECEN5807
MHz 1
2
= =
esr
esr
CR
f
t
dB 2 . 7 3 . 2  <
+
= =
load loss
load loss
load loss
Q Q
Q Q
Q Q Q
17
Magnitude and phase Bode plots of G
vd
60dB
80dB
(1/V
M
)G
vd
(s)
20dB
40dB
dB 14 5 ) / 1 ( =
M vdo
V G
dB 2 . 7 3 . 2 = Q
0dB
20dB
Q 2 / 1
kHz 11 =
o
f
dB/dec 40
0
o
o
Q
f
2 / 1
10
90
o
MHz 1 =
esr
f
f 10 / 1
Q
f
2 / 1
10
+
dB/dec 20
ECEN5807
100 KHz 10 KHz 1 KHz 100 Hz 10 Hz 1 MHz
180
o
esr
f 10 / 1
o
Q
f 10
18
Linearization and frequency responses in
MATLAB/Simulink
5
Vg
vg
v
vg
v
0.36
Vc
vc
i
vout
vc
i
vout
1. Set transfer
function input
and output
points
0
iLoad
iLoad
ig
SyncBuck
Scope
iLoad
ig
2. MATLAB script (BodePlotter_script.m) computes DC operating point, linearizes the p ( _ p ) p p g p ,
model, computes and plots the transfer function magnitude and phase responses
ECEN5807
19
Magnitude and phase Bode plots of G
vd
Bode Diagram
20
40
From: vc To: SyncBuck/vout
40
20
0
20
a
g
n
i
t
u
d
e
(
d
B
)
0
80
60
40
M
a
90
45
a
s
e
(
d
e
g
)
10
1
10
2
10
3
10
4
10
5
10
6
180
135
P
h
a
ECEN5807
20
Frequency (Hz)
Closedloop (voltagemode) control
Review Textbook Chapter 9
L
i
L
(t)
+
+
I
out
+
L
+
V
g
_
+
v
o
_
C R
Deadtime control
_
f
s
= 1 MHz
dutycycle
command
V
ref
+
+
PWM Compensator
error
command
G
c
(s)
1/V
M
= 1.8 V
PointofLoad (POL) Synchronous Buck Regulator
ECEN5807
21
Closedloop SMPS block diagram
Review Textbook Chapter 9
Control objectives: tight output voltage regulation
S i d i di b Static or dynamic disturbances
Input (line) voltage v
g
Load current i
load
ECEN5807
Component tolerances
22
Smallsignal model: loop gain T
T(s) ( )
Loop gain:
T(s) = H(s)G
c
(s)(1/V
M
)G
vd
(s)
ECEN5807
23
Smallsignal model: closedloop responses
T(s) ( )
ECEN5807
24
Feedback loop design objectives
T(s) ( )
To meet the control objectives, design T as large as possible in as
wide frequency range as possible, i.e. with as high f
c
as possible
ECEN5807
Limitation: stability and quality of closedloop responses
25
Uncompensated loop gain T
u
L
i
L
(t)
+
+
I
out
+
V
g
_
v
o
_
C
Dead time control
R
H 1
G
vd
(s)
Deadtime control
_
+
PWM Compensator
f
s
= 1 MHz
error
dutycycle
command
H
sense
= 1
(in this
example)
V
ref
+
G
c
(s) = 1
1/V
M
T
u
(s) = H
sense
(1/V
M
)G
vd
(s)
Plot magnitude and phase responses of T
u
(s) to plan how to design G
c
(s)
ECEN5807
26
Magnitude and phase Bode plots of T
u
60dB
80dB
T
u
(s) = H
sense
(1/V
M
)G
vd
(s)
20dB
40dB
dB 14 5 ) / 1 ( = =
sense M vdo uo
H V G T
dB 2 . 7 3 . 2 = Q
0dB
20dB
Q 2 / 1
kHz 11 =
o
f
dB/dec 40
2




o
uo
f
f
T
0
o
o
Q
f
2 / 1
10
target f
c

.
\ c
uo
f
90
o
MHz 1 =
esr
f
f 10 / 1
Q
f
2 / 1
10
+
dB/dec 20
ECEN5807
100 KHz 10 KHz 1 KHz 100 Hz 10 Hz 1 MHz
180
o
esr
f 10 / 1
o
Q
f 10
27
Lead (PD) compensator design
o
m
53 = = u
kHz 100 =
c
f
1. Choose:
kH 3 3
2. Compute:
kHz 3 3 =
kHz 00 3 =
2
 
f
f 1
2
 
f f
3. Find G
co
to position the crossover frequency:
1 =


.

\

z
p
co
c
o
uo
f
f
G
f
f
T dB 15 45 . 5
1
=


.

\

=
p
z
o
c
uo
co
f
f
f
f
T
G
ECEN5807
Magnitude
of T
u
at f
c
Magnitude
of G
c
at f
c
28
Lead (PD) compensator summary


.

\

+
1
1
) (
z
s
e
dB 15 45 . 5 =
co
G
kHz 33 f


.

\

+


.

\

+
. \
=
2 1
1
1
1
) (
p p
z
co c
s s
G s G
e e
kHz 33 =
z
f
kHz 300
1
=
p
f
kHz 100 f
(=1/10 of f )
kHz 100 =
c
f
(=1/10 of f
s
)
Lead
compensator
HF pole
MHz 1
2
=
p
f
(= f
esr
= f
s
in this example) Added highfrequency pole:
Highfrequency gain of the lead compensator: G
co
f
p1
/f
z
= 49 (34 dB)
2 p
(
esr s
p ) g q y p
ECEN5807
29
Loop gain with lead (PD) compensator
60dB
80dB


.

\

+
1
1
) (
z
s
G G
e
20dB
40dB
dB 7 . 29 7 . 28 =
co uo
G T


.

\

+


.

\

+
. \
=
2 1
1 1
) (
p p
co c
s s
G s G
e e
0dB
20dB
kHz 100 =
c
f
kHz 10 =
z
f
0
o
kHz 300 =
p
f kHz 33 =
z
f
90
o
ECEN5807
100 KHz 10 KHz 1 KHz 100 Hz 10 Hz 1 MHz
180
o
o
m
53 =
30
Add lag (PI) compensator
Integrator at low frequencies
Choose 10f
L
< f
c
so that phase margin stays approximately the same: f
L
= 8 kHz
Keep the same cross over frequency:
dB 15 45 5 G G G
ECEN5807
Keep the same crossover frequency:
dB 15 45 . 5 = = =
cm co c
G G G
31
Adding PI Compensator
60dB
80dB
20dB
40dB
kHz 8 f
0dB
20dB
kHz 8 =
L
f
kHz 100 =
c
f
0
o
L
f 10
90
o
L
f 10 / 1
PI compensator phase
ECEN5807
100 KHz 10 KHz 1 KHz 100 Hz 10 Hz 1 MHz
180
o
o
m
53 =
32
Complete PID compensator: summary
dB 15 45 . 5 =
cm
G
kHz 8 =
L
f
kHz 33 =
z
f
kHz 300
1
=
p
f
MHz 1
2
=
p
f
kHz 100 =
c
f
(=1/10 of f
s
)
Crossover frequency:
ECEN5807
53
o
m
=
Phase margin:
33
Magnitude and phase Bode plots of T
60dB
80dB
20dB
40dB
0dB
20dB
kHz 100 =
c
f
Ph f d T
0
o
Phase of uncompensated T
u
90
o
Phase of compensated T
ECEN5807
100 KHz 10 KHz 1 KHz 100 Hz 10 Hz 1 MHz
180
o
o
m
53 =
34
Closedloop voltage regulator in Simulink
5 vg
v
vg
v
Simulink model: syncbuck_CL.mdl
Vg
vc
i
vout
i
x
iLoad
vout
ig
Step
Scope
iLoad
vout
ig
SyncBuck
Scope
1
H
v
y
v
x
PID compensator
1.8
Vref
1/(2*pi*33e3)s+1
1/(2*pi*300e3)s+1
PD Compensator
1
Injection
point
1
1/(2*pi*1e6)s+1
HF pole
5.45
Gcm
1/(2*pi*8e3)s+1
1/(2*pi*8e3)s
Inverted zero
y
ECEN5807
35
Input and output linearization points for finding the loopgain, T = v
y
/v
x
The output point (y) should be Open Loop , as shown by an x symbol next to the output arrow
Loop gain and stability margins
MATLAB script
BodePlotter_scriptT.m
(computes dc op,
linearizes calculates linearizes, calculates
and plots frequency
response and stability
margins)
Bode Diagram
Gm Inf dB (at Inf Hz) Pm 51 6 deg (at 1 05e+005 Hz)
50
100
From: x To: Gcm/y
e
(
d
B
)
Gm = Inf dB (at Inf Hz) , Pm = 51.6 deg (at 1.05e+005 Hz)
100
50
0
M
a
g
n
i
t
u
d
e
4
135
90
45
P
h
a
s
e
(
d
e
g
)
ECEN5807
36
10
2
10
3
10
4
10
5
10
6
10
7
180
135
P
Frequency (Hz)
Closedloop 05 Astepload transient responses
Averaged model Switching model
v
i
v
out
i
g
5 s/div 5 s/div
ECEN5807
37
5 s/div 5 s/div
See MATLAB/Simulink page on the course website (Materials page)
for complete stepbystep details, and to download the example files