Right Half Plane Zero

by Brad Suppanz


This paper studies the movement of the RHP zero for a bilateral boost converter.  It will be shown that the zero actually moves to the LHP depending on the inductor current direction.  The results may be applied to a standard non-bilateral boost converter in Continuous Conduction Mode (CCM) with the condition that the inductor current is kept positive.

The boost converter is shown below.

Positive inductor current is defined as flowing to the right as shown.  If both switches are actively driven (e.g.. two MOSFETs instead of a MOSFET and a diode), then the converter can process current/power in either direction and is thus called bilateral.  Because of the active switching in both switches, a bilateral converter is always in CCM.

The boost converter is well known to have a RHP zero in CCM.  The location of this zero is usually expressed as:

In working with a bilateral converter, I found the expression
wz = Vin / ( L * IL )        (Equation 2)
to be more useful.  It clearly shows that the sign of zero follows the sign of the inductor current.  Thus, the direction of the inductor current determines whether the zero is in the RHP or the LHP.


Derivation:

Find the AC transfer function of d to io:

The following State Space Averaged (SSA) equation represents the average voltage applied to the inductor:

The first term is from when the D (boost) switch is ON and the second term is from when the (1-D) (buck) switch is ON.  Simplified: Each State Space Averaged variable contains a DC and an AC component.  This will be represented using the following notation - for example: To find the linearized small-signal equation for DvL, partial derivatives are taken about the DC operating point: These derivatives are the AC gains.  I am using a D in front of small letters (instead of hats on top) to represent the AC component (perturbation) and capitol letters to represent the DC operating point values.  Applying the chain rule: The AC components of Dvi and Dvout are small and are thus ignored yielding: In Laplace domain: Next, the AC current for any inductor (in Laplace domain) is: Thus for our inductor, Next, write the state space averaged equation for io: Find the small-signal equation for Dio about the DC operating point: Substituting Eq. 6b into Eq. 9c yields: Next, find the transfer function from d(s) to io(s): So, The zero in this transfer function will result in a zero in the voltage regulation loop due to Ohm's law.

To find the zero, set the right hand side of Eq. 10b equal to zero and solve for s:

 
    sz = Vin /(L*IL )        (Equation 10d)
A positive IL results in a positive (RHP) sz.  The zero moves to lower frequencies (worse) as IL increases.  As IL approaches zero, the zero moves off to the right toward infinity.  As IL passes through zero and reverses, the zero appears at the far left of the s-plane.  The zero is of most concern when it is at low frequencies in the RHP where it causes phase lag at low frequencies which limits the available bandwidth for the converter to operate as a stable regulator.


Verification

A very basic closed loop bilateral circuit was entered into the DEMO (FREE) version of PSPICE as shown below.  (A Bello type SSA model was used).  Current source I1 was stepped from 9 to 11 Amps in 0.5 Amp steps.  Since 10 Amps always flows in R1, the converter sees plus and minus currents.

It is evident from looking at the phase that the zero moves from the RHP to the LHP.
 
 
 

Tabulated Results:

 
ISRC [Amps]
IO [Amps]
IL [Amps]
sz = V1/(L1*IL ) [rad/sec]
fez [KHz]
9.0
1.0
2.0
500K
79.6 RHP
9.5
0.5
1.0
1Meg
159.2 RHP
10.0
0.0
0.0
infinity
infinity
10.5
-0.5
-0.5
-1Meg
-159.2 LHP
11.0
-1.0
-1.0
-500K
-79.6 LHP
 

Netlist

**** 08/29/97 17:32:17 ******* Win32s Evaluation PSpice (April 1996) *********

 * C:\DATA\RHPZ.SCH
 

 ****     CIRCUIT DESCRIPTION
 

******************************************************************************
 
 
 

* Schematics Version 6.3 - April 1996
* Fri Aug 29 17:21:15 1997

.NODESET         V([$N_0008 ])=180
.PARAM         I_SRC=15

** Analysis setup **
.ac DEC 101 10 1.00Meg
.STEP LIN PARAM I_SRC 9 11 0.5
.OP
.OP
 

* From [SCHEMATICS NETLIST] section of msim.ini:
.lib nom.lib

.INC "RHPZ.net"

**** INCLUDING RHPZ.net ****
* Schematics Netlist *
 
 

V_V1         $N_0001 0 80
E_DIFF1         $N_0002 0 VALUE {V($N_0004,$N_0003)}
E_GAIN1         HS1_ratio 0 VALUE {1E3 * V($N_0002)}
R_R1         $N_0008 0  16
V_V2         $N_0004 0 160
L_L1         $N_0009 $N_0001  80uH
C_C1         $N_0008 0  400u
V_V10         $N_0003 $N_0008  AC 1
I_I1         0 $N_0008 DC {I_SRC}
E_HS1_E3         $N_0007 0 VALUE { V($N_0008, 0)*(1-V(HS1_ratio)) }
G_HS1_G3         0 $N_0008 VALUE { 1000*V($N_0009, $N_0007)*(1-V(HS1_ratio)) }
R_HS1_R3         $N_0008 0  1MEG
R_HS1_R4         $N_0007 $N_0009  1m
R_HS1_R5         HS1_ratio 0  1MEG

**** RESUMING RHPZ.CIR ****
.INC "RHPZ.als"

**** INCLUDING RHPZ.als ****
* Schematics Aliases *

.ALIASES
V_V1            V1(+=$N_0001 -=0 )
E_DIFF1          DIFF1(OUT=$N_0002 IN2=$N_0004 IN1=$N_0003 )
E_GAIN1          GAIN1(OUT=HS1_ratio IN=$N_0002 )
R_R1            R1(1=$N_0008 2=0 )
V_V2            V2(+=$N_0004 -=0 )
L_L1            L1(1=$N_0009 2=$N_0001 )
C_C1            C1(1=$N_0008 2=0 )
V_V10           V10(+=$N_0003 -=$N_0008 )
I_I1            I1(+=0 -=$N_0008 )
_   HS1(SRC=$N_0008 DUTY=HS1_ratio BAT=$N_0009 RTN=0 0=0 )
E_HS1_E3          HS1.E3(OUT+=$N_0007 OUT-=0 IN+=$N_0008 IN-=0 )
G_HS1_G3          HS1.G3(OUT+=0 OUT-=$N_0008 IN+=$N_0009 IN-=$N_0007 )
R_HS1_R3          HS1.R3(1=$N_0008 2=0 )
R_HS1_R4          HS1.R4(1=$N_0007 2=$N_0009 )
R_HS1_R5          HS1.R5(1=HS1_ratio 2=0 )
_    _(HS1.ratio=HS1_ratio)
.ENDALIASES
 

**** RESUMING RHPZ.CIR ****
 

.probe
 

.END




Return to SMPS Notes Index


© Copyright 1997 Brad Suppanz.  All rights reserved.
Links to this page are encouraged.
Email comments and suggestions to:

Written 8/29/97
Last updated 7/20/04 
Number of hits: Counter