the pwm switch model introduced by vatché vorpérian in ... · the pwm switch model introduced by...
TRANSCRIPT
The PWM switch model introduced by Vatché Vorpérian in 1986 describes a way to model a voltage-mode switching converter with the VM-PWM switch model. The large-signal model is equivalent to a dc transformer whose turns ratio is D, the controlled duty ratio. Later, in 1990, Vatché published another model, the CM-PWM switch model, targetting peak current mode controlled converters. The model nicely predicts subharmonic oscillations and works in large-signal conditions: it can compute its bias point and it works in transient analysis. This current mode model was preceded by that developed by Ray Ridley using sampled data analysis. Ridley’s model predicts the same dynamic response than what the CM-PWM switch does, but it only works in ac and cannot compute its bias point. The CM-PWM switch is sometimes prone to convergence problems and Vatché published a revised netlist in his 2004 book Fast Analytical Techniques for Electrical and Electronic Circuits. The fix is to add a coefficient in front of the two sources setting the peak and average values. It appears below:
Christophe Basso – June 2017
For some designers, the CC-PWM switch was troublesome given its difficulty – in some cases – to converge. The VM-PWM switch model is more robust and converges well. Ridley used the small-signal version of this VM-PWM switch to which he added a pair of RHP zeros to represent the sampling action in the current loop.
This extra circuit uses a negative resistance value to produce a negative quality factor and thus RHP zeroes.
Rather than implementing a complex circuitry, the idea here is to reuse the classical VM-PWM switch and by adding a simple extra dummy source plus a capacitor, simulate the response of a current mode converter subject to subharmonic oscillations.
Ca=1/Fsw/3.14159La=1/Fsw/3.14159
Christophe Basso – June 2017
The implementation is very simple. Build a clamped source driving the duty ratio input of the PWM switch model. It is a voltage source clamped between 10 mV and 999 mV (1 to 99% duty ratio).
((V(Vc)-I(VIC)*{Ri})*{Fsw})/({Se}+{Ri}*(V(a,c)+1u)/(2*{L})) > 0.99 ? 0.99 :+((V(Vc)-I(VIC)*{Ri})*{Fsw})/({Se}+{Ri}*(V(a,c)+1u)/(2*{L})) < 10m ? 10m :+((V(Vc)-I(VIC)*{Ri})*{Fsw})/({Se}+{Ri}*(V(a,c)+1u)/(2*{L}))
It is actually the equation described in the book Switch-Mode Power Supplies: Spice Simulations and Practical Designs sec. ed. on page 199. Add a dummy voltage source in series with the c terminal that you call VIC plus a resonating capacitor between terminals c and p. The capacitor value is classically
Cs=1/(L*(Fsw*3.14)^2)
The control voltage Vc is transformed into a duty ratio via the in-line equation to generate the correct duty ratio D. The following slide shows the final implementation around the VM-PWM switch model. This is a CCM simulation only here and I am not sure it would be easy to have the D generator toggle into a DCM expression easily.
Christophe Basso – June 2017
Vstim{Vc}AC = 1
DVc
Cres{Cs}
4
L2{L}
11
C3100uF
R45
R5100m
Vout
parameters
Fsw=100k
L=100u
Cs=1/(L*(Fsw*3.14)^2)
Ri=-250m
Se=0
Vc=1.6
R61u
c
a
p
B1Voltage
((V(Vc)-I(VIC)*{Ri})*{Fsw})/({Se}+{Ri}*(V(a,c)+1u)/(2*{L})) > 0.99 ? 0.99 :+((V(Vc)-I(VIC)*{Ri})*{Fsw})/({Se}+{Ri}*(V(a,c)+1u)/(2*{L})) < 10m ? 10m :+((V(Vc)-I(VIC)*{Ri})*{Fsw})/({Se}+{Ri}*(V(a,c)+1u)/(2*{L}))
5
rL10m
p
c
Vin10
dac
PW
M s
witch V
Mp
7X1PWMVM
c
a D
p
VIC
Clamped expression for the duty ratio expression in CCM current-mode:
((V(Vc)-I(VIC)*{Ri})*{Fsw})/({Se}+{Ri}*(V(a,c)+1u)/(2*{L})) > 0.99 ? 0.99 :
+((V(Vc)-I(VIC)*{Ri})*{Fsw})/({Se}+{Ri}*(V(a,c)+1u)/(2*{L}))
1.60V
9.94V
17.5V
9.94V
0V
2.68uV
433mV
10.0V
9.94V
This is a CCM current mode boost converter built around the voltage mode PWM switch model to which a duty ratio generator has been added, together with a resonating capacitor.
Dummy 0-V source VIC
Resonating cap.
Duty ratio generator
Christophe Basso – June 2017
This is the CCM current mode boost converter built around the original CM-PWM switch purposely thought to model current mode control power supplies. It only uses current sources. As you can see from the schematic, all operating points are similar to those from the previous slide.
5
4
1
vc
p
L1{L}
R15
C1100uF
R2100m
Vout
parameters
Fsw=100k
L=100u
Cs=1/(L*(Fsw*3.14)^2)
Ri=-250m
Se=0
Vc=1.6
a
R31u
B1Voltage
D
B2Current
V(D)*I(VIC)
B3Current
V(Vc)/{Ri}
VIC
B4Current
{Se}*V(D)/({Ri}*{Fsw}) + v(c,p)*(1-V(D))*({1/Fsw}/(2*{L}))
v(c,p)/v(a,p)
c
c
Vstim{Vc}AC = 1
C2{Cs}
a
p
9
rL10m
Vin10V
9.94V
9.94V
17.5V
0V
9.94V
2.68uV
433mV1.60V
10.0V
Christophe Basso – June 2017
3.00
9.00
15.0
21.0
27.0
vdb
ou
t#1
, vd
bo
ut
in d
b(v
olts
)P
lot1
13
10 100 1k 10k 100kfrequency in hertz
-360
-270
-180
-90.0
0
ph
_vo
ut#
1,
ph
_vo
ut
in d
eg
ree
sP
lot2
24
The graphs are well coincident and a small deviation appears as we approach Fsw but it is reasonably low.
out
c
V f
V f
out
c
V f
V f
Christophe Basso – June 2017
Here in LTSpice, I compared a buck converter in CM driven by theVM-PWM switch model developped by Didier to which I added theresonating cap.
Christophe Basso – June 2017
Vin210V
L
{L}
C
220µF
R
5
AC 1
VInj{Vc_set}
PWM-VM
D
U1
Lsw={L} Fsw={Fsw}DCMin=0.05 DCMax=0.95
VIC
0
V=if( V(D_raw) > 0.99, 0.99, if( V(D_raw) < {D_lo}, {D_lo}, V(D_raw) ) )B1
B2V= ( (V(Vc) - I(VIC)*{Ri} ) * {Fsw}) / ( {Se}+{Ri}*(V(a,c)+1u) / (2*{L}) )
Cres{Cs}
PWM-CM
D
VCtrl
DCMin=0.05 DCMax=0.95
Lsw={L} Fsw={Fsw}RISense={Ri} Slope={Se}
X1
Vin110V
L1
{L}
C1
220µF
R1
5
a OutVMc
Du
ty
D_rawVc
dc
Vc
OutCM
.Param L=75uH
.ac dec 1000 10 1000kHz
.param Vc_set = 1
.param Fsw=100k
.param Ri=0.8
.param Se=0
.param D_lo = 7u
.param D_hi = 0.99
.param Cs = {1/ ( L * (Fsw * 3.14)**2 ) }
5.4224815V
542.46503mV
5.4226832V
542.48518mV
Dynamic responses from the VM-PWM switch with the addedcapacitor and the CM-PWM switch model. Fsw = 100 kHz.
Christophe Basso – June 2017
10Hz 100Hz 1KHz 10KHz 100KHz 1MHz-81dB
-72dB
-63dB
-54dB
-45dB
-36dB
-27dB
-18dB
-9dB
0dB
9dB
18dB
-90°
-60°
-30°
0°
30°
60°
90°
120°
150°
180° V(outcm) V(outvm)
Vin210V
L
{L} C
220µF
R
5
AC 1
VInj{Vc_set}
PW
M-V
M D
Lsw={L} Fsw={Fsw}DCMin=0.05 DCMax=0.95
U1
VIC
0
V=if( V(D_raw) > 0.99, 0.99, if( V(D_raw) < {D_lo}, {D_lo}, V(D_raw) ) )B1
B2V= ( (V(Vc) - I(VIC)*{Ri} ) * {Fsw}) / ( {Se}+{Ri}*(V(a,c)+1u) / (2*{L}) )
Cres
{Cs}
PW
M-C
M
D
VC
trl
DCMin=0.05 DCMax=0.95Lsw={L} Fsw={Fsw}RISense={Ri} Slope={Se}
X1
Vin110V
L1
{L}
C1
220µF
R1
5
a
OutVM
c
Du
ty
D_rawVc
Vc
OutCM
dc
.Param L=75uH
.ac dec 1000 10 1000kHz
.param Vc_set = 2
.param Fsw=100k
.param Ri=0.3
.param Se=0
.param D_lo = 7u
.param D_hi = 0.99
.param Cs = {1/ ( L * (Fsw * 3.14)**2 ) }
-13.407595V
573.32522mV
573.33124mV
-13.407927V
A buck-boost converter with the two differentmodels. Dc points are identical.
Christophe Basso – June 2017
10Hz 100Hz 1KHz 10KHz 100KHz 1MHz-24dB
-20dB
-16dB
-12dB
-8dB
-4dB
0dB
4dB
8dB
12dB
16dB
20dB
60°
90°
120°
150°
180°
210°
240°
270°
300°
330° V(outcm) V(outvm)
Dynamic responses from the VM-PWM switch with the addedcapacitor and the CM-PWM switch model. Fsw = 100 kHz.
Fsw
Christophe Basso – June 2017
Vin210V
L
{L}
C
220µF
R
5
AC 1
VInj{Vc_set}
PW
M-V
M
D
Lsw={L} Fsw={Fsw}DCMin=0.05 DCMax=0.95
U1
VIC
0
V=if( V(D_raw) > 0.99, 0.99, if( V(D_raw) < {D_lo}, {D_lo}, V(D_raw) ) )B1
B2V= ( (V(Vc) - I(VIC)*{Ri} ) * {Fsw}) / ( {Se}+{Ri}*(V(a,c)+1u) / (2*{L}) )
Cres
{Cs}
PW
M-C
M D
VC
trl
DCMin=0.05 DCMax=0.95Lsw={L} Fsw={Fsw}
RISense={Ri} Slope={Se}
X1
R2
1µ
Vin110V
L1
{L}
C1
220µF
R1
5
OutVM
c
Du
ty
D_rawVc
a
Duty
Vc
dc
OutCM
.Param L=50uH
.ac dec 1000 10 1000kHz
.param Vc_set = 2.2
.param Fsw=300k
.param Ri=-0.3
.param Se=0
.param D_lo = 7u
.param D_hi = 0.99
.param Cs = {1/ ( L * (Fsw * 3.14)**2 ) }
18.92837V
472.45076mV
0V
18.928526V
0V
A boost converter with the two differentmodels. Dc points are identical.
Christophe Basso – June 2017
10Hz 100Hz 1KHz 10KHz 100KHz 1MHz-8dB
-4dB
0dB
4dB
8dB
12dB
16dB
20dB
24dB
28dB
32dB
36dB
-270°
-240°
-210°
-180°
-150°
-120°
-90°
-60°
-30°
0° V(outcm) V(outvm)
Dynamic responses from the VM-PWM switch with the addedcapacitor and the CM-PWM switch model. Fsw = 300 kHz.
Fsw
Christophe Basso – June 2017
Special thanks to Marc Dimattina for helping me on this approach and of
course to Didier Balocco for porting my models to LTSpice.