📄 power456.lib
字号:
**** Lib files for Christophe BASSO's book
**** OrCAD PSpice compatible
**** Last modified on January 2007
* ---------------------------------------------------------- *
* PSpice generic models library for PWM controllers working in
* Voltage Mode (PWMVM) or Current Mode (PWMCM)
* Models developped by Christophe BASSO, Toulouse (FRANCE)
* Please report any bugs or non-convergence problems to:
* CBASSO@WANADOO.FR
* These models require PSpice version 6.2a or higher
* ---------------------------------------------------------- *
******
*$
.SUBCKT PWMCM2 1 2 3 4 5 6 PARAMS:
* OUT GND COMP FB SENSE VOSC
+REF=2.5, PERIOD=5U, DUTYMAX=0.8, RAMP=5V, VOUTHI=15V,
+ROUT=10, VHIGH=3, ISINK=15M, ISOURCE=500U,
+VLOW=100M, POLE=30, GAIN=31622, VOUTLO=100M, RATIO=0.333
*
* Generic Model for Current Mode PWM controller
* Developed by Christophe BASSO, France
* PSpice compatible format
* Last modified: October 25th 1996
*
***** Generic PWM controller parameters *******
* REF ; internal reference voltage
* PERIOD ; switching period
* DUTYMAX ; maximum duty cycle
* RAMP ; ramp amplitude for compensation
* VOUTHI ; driver output voltage high
* VOUTLO ; driver output voltage low
* ROUT ; driver output resistor
***** Internal error amplifier parameters *****
* VHIGH ; maximum output voltage
* VLOW ; minimum output voltage
* ISINK ; sink capability
* ISOURCE ; source capability
* POLE ; first pole in Hertz
* GAIN ; DC open-loop gain (default=90dB)
* RATIO ; maximum peak current at max output error level
; (CM only)
***********************************************
XERR 10 4 3 2 ERRAMP PARAMS: VHIGH={VHIGH} ISINK={ISINK} ISOURCE={ISOURCE} ; error amplifier
+ VLOW={VLOW} POLE={POLE} GAIN={GAIN}
VREF 10 2 {REF} ; reference voltage
ELIM 500 2 VALUE = { V(3)*RATIO } ; max peak current = VOH*RATIO / Rsense
XCOM 5 500 12 COMP ; limit comparator
XFFL 11 82 14 13 FFLOP ; flip-flop
RDUM 13 2 1MEG
VCLK 11 2 PULSE 0 5 0 1N 1N 10N {PERIOD} ; Clock set pulses
VRAMP 6 2 PULSE 0 {RAMP} 0 {PERIOD-2N} 1N 1N {PERIOD}
VDUT 80 2 PULSE 0 5 {PERIOD*DUTYMAX} 1N 1N {(PERIOD-PERIOD*DUTYMAX)-2N} {PERIOD} ; max. duty cycle (=delay/period) delay=period-(tr+tf+tpuls)
XOR1 11 14 81 OR2 ; Clock OR FFlopD
XOR2 80 12 82 OR2 ; IMAX OR MAXduty Reset
E_BOUT 15 2 VALUE = { IF ( V(81) > 3.5, {VOUTHI}, {VOUTLO} ) }
ROUT 15 1 {ROUT} ; output resistor
.ENDS PWMCM2
******
.SUBCKT PWMCMS out1 2 3 4 5 6 out2 PARAMS:
* OUT GND COMP FB SENSE VOSC
+REF=2.5, PERIOD=5U, DUTYMAX=0.8, RAMP=5V, VOUTHI=15V,
+RO1=10, RO2=10, VHIGH=3, ISINK=15M, ISOURCE=500U,
+VLOW=100M, POLE=30, GAIN=31622, VOUTLO=100M, RATIO=0.333, DT=100N
*
* Generic Model for Current Mode PWM controller
* Developed by Christophe BASSO, France
* PSpice compatible format
* Last modified: December 18th 2005
*
***** Generic PWM controller parameters *******
* REF ; internal reference voltage
* PERIOD ; switching period
* DUTYMAX ; maximum duty cycle
* RAMP ; ramp amplitude for compensation
* VOUTHI ; driver output voltage high
* VOUTLO ; driver output voltage low
* ROUT ; driver output resistor
***** Internal error amplifier parameters *****
* VHIGH ; maximum output voltage
* VLOW ; minimum output voltage
* ISINK ; sink capability
* ISOURCE ; source capability
* POLE ; first pole in Hertz
* GAIN ; DC open-loop gain (default=90dB)
* RATIO ; maximum peak current at max output error level
; (CM only)
***********************************************
.PARAM Rd={DT/(0.693*1n)}
XERR 10 4 3 2 ERRAMP PARAMS: VHIGH={VHIGH} ISINK={ISINK} ISOURCE={ISOURCE} ; error amplifier
+ VLOW={VLOW} POLE={POLE} GAIN={GAIN}
VREF 10 2 {REF} ; reference voltage
ELIM 500 2 VALUE = { V(3)*RATIO } ; max peak current = VOH*RATIO / Rsense
XCOM 5 500 12 COMP ; limit comparator
XFFL 11 82 14 13 FFLOP ; flip-flop
RDUM 13 2 1MEG
VCLK 11 2 PULSE 0 5 0 1N 1N 10N {PERIOD} ; Clock set pulses
VRAMP 6 2 PULSE 0 {RAMP} 0 {PERIOD-2N} 1N 1N {PERIOD}
VDUT 80 2 PULSE 0 5 {PERIOD*DUTYMAX} 1N 1N {(PERIOD-PERIOD*DUTYMAX)-2N} {PERIOD} ; max. duty cycle (=delay/period) delay=period-(tr+tf+tpuls)
XOR1 11 14 81 OR2 ; Clock OR FFlopD
XOR2 80 12 82 OR2 ; IMAX OR MAXduty Reset
E_BOUT din 2 VALUE = { IF ( V(81) > 3.5, 5, 0 ) }
X1 550 din out10 AND2DT
X2 700 800 out20 AND2DT
EB100 300 0 Value = { IF ( V(out10) > 2.5, {VOUTHI}, {VOUTLO} ) }
EB200 310 0 Value = { IF ( V(out20) > 2.5, {VOUTHI}, {VOUTLO} ) }
Rout1 300 out1 {Ro1}
Rout2 310 out2 {Ro2}
R3 din 550 {Rd}
C1 550 0 1n
R4 800 700 {Rd}
C2 700 0 1n
X3 din 800 INVDT
.ENDS PWMCMS
******
.SUBCKT 2SWITCHCM 1 8 7 2 3 4 5 6 PARAMS:
* OUT1 GNF OUT2 GND COMP FB SENS OSC
+REF=2.5, PERIOD=5U, DUTYMAX=0.8, RAMP=5V, VOUTHI=15V,
+ROUT=10, VHIGH=3, ISINK=15M, ISOURCE=500U,
+VLOW=100M, POLE=30, GAIN=31622, VOUTLO=100M, RATIO=0.333
*
* Generic Model for 2 switch Current Mode PWM controller
* Developed by Christophe BASSO, France
* PSpice compatible format
* Last modified: October 1999
*
VREF 10 2 {REF} ; reference voltage
XCOM 5 500 12 COMP ; limit comparator
ELIM 500 2 VALUE = { V(3)*RATIO } ; max peak current = VOH*RATIO / Rsense
XFFL 11 82 14 13 FFLOP ; RS latch flipflop
RDUM 13 2 1MEG
VCLK 11 2 PULSE 0 5 0 1N 1N 10N {PERIOD}; Clock set pulses
VDUT 80 2 PULSE 0 5 {PERIOD*DUTYMAX} 1N 1N {(PERIOD-PERIOD*DUTYMAX)-2N} {PERIOD}
VRAMP 6 2 PULSE 0 {RAMP} 0 {PERIOD-2N} 1N 1N {PERIOD}
XOR1 11 14 81 OR2 ; Clock OR FFlopD
XOR2 80 12 82 OR2 ; IMAX OR MAXduty Reset
EOUT1 25 8 VALUE = { IF ( V(81) > 3.5, {VOUTHI}, {VOUTLO} ) }
ROUT1 25 1 {ROUT} ; Output resistor 1
RDUMF 8 2 10MEG
EOUT2 250 2 VALUE = { IF ( V(81) > 3.5, {VOUTHI}, {VOUTLO} ) }
ROUT2 250 7 {ROUT} ; Output resistor 2
CP1 110 0 {1/(6.28*(GAIN/100U)*POLE)}
E1 50 0 110 0 1
R9 50 200 5
D14 200 130 DMOD
IS1 130 0 {ISINK/100}
Q1 0 130 160 QPMOD
IS2 70 3 {ISOURCE}
D12 3 70 DMOD
D15 0 110 DCLAMP
G1 0 110 10 4 100U
V1 70 0 {VHIGH-0.6}
V2 3 160 {VLOW-40M}
RP1 110 0 {GAIN/100U}
.MODEL QPMOD PNP
.MODEL DCLAMP D (RS=10 BV=10 IBV=0.01)
.MODEL DMOD D
.ENDS
*$
******
.SUBCKT PWMVM2 1 2 3 4 5 PARAMS:
* OUT GND COMP FB IMAX
+REF=2.5, PERIOD=5U, DUTYMAX=0.8, IMAX=2.5V, VOUTHI=15V,
+ROUT=10, VHIGH=3, ISINK=15M, ISOURCE=500U,
+VLOW=100M, POLE=30, GAIN=31622, DUTYMIN=0.1, VOUTLO=100M
*
* Generic Model for Voltage Mode PWM controller
* Developed by Christophe BASSO, France
* PSpice compatible format
* Last modified: October 26th 1996
*
***** Generic PWM controller parameters *******
* REF ; internal reference voltage
* PERIOD ; switching period
* DUTYMAX ; maximum duty cycle
* DUTYMIN ; minimum duty cycle
* IMAX ; max voltage upon (external) RSENSE resistor
* VOUTHI ; driver output voltage high
* VOUTLO ; driver output voltage low
* ROUT ; driver output resistor
***** Internal error amplifier parameters *****
* VHIGH ; maximum output voltage
* VLOW ; minimum output voltage
* ISINK ; sink capability
* ISOURCE ; source capability
* POLE ; first pole in Hertz
* GAIN ; DC open-loop gain (default=90dB)
***********************************************
.PARAM VP = { (VLOW*DUTYMAX-VHIGH*DUTYMIN+VHIGH-VLOW)/(DUTYMAX-DUTYMIN) } ; valley ramp voltage
.PARAM VV = { (VLOW-DUTYMIN*VP)/(1-DUTYMIN)} ; peak ramp voltage
XERR 10 4 3 2 ERRAMP PARAMS: VHIGH={VHIGH} ISINK={ISINK} ISOURCE={ISOURCE} ; error amplifier
+VLOW={VLOW} POLE={POLE} GAIN={GAIN}
VREF 10 2 {REF} ; reference voltage
VRAMP 16 2 PULSE {VV} {VP} 0 {PERIOD-2N} 1N 1N {PERIOD} ; comparison ramp
XCOM1 16 3 18 COMP ; PWM comparator
XCOM2 5 19 12 COMP ; I limit comparator
VLIMT 19 2 {IMAX} ; I limit level (Max voltage upon external sense resistor)
XOR2 12 18 20 OR2 ; Reset by IMAX OR PWM
XFFL 11 20 14 13 FFLOP ; flip-flop
RDUM 13 2 1MEG
VCLK 11 2 PULSE 0 5 0 1N 1N 10N {PERIOD} ; Clock set pulses
E_BOUT 15 2 VALUE = { IF ( V(14) > 3.5, {VOUTHI}, {VOUTLO} ) }
ROUT 15 1 {ROUT} ; output resitor
.ENDS PWMVM2
*$
************
.SUBCKT PUSH_CM 1 7 2 3 4 5 6 PARAMS:
* OUT1 OUT2 GND COMP FB SENS OSC
+REF=2.5, PERIOD=5U, DEAD=0.95, RAMP=5V, VOUTHI=15V,
+ROUT=10, VHIGH=3, ISINK=15M, ISOURCE=500U,
+VLOW=100M, POLE=30, GAIN=31622, VOUTLO=100M, RATIO=1
*
* Generic Model for Current Mode Push-Pull PWM controller
* Developed by Christophe BASSO, France
* PSpice compatible format
* Last modified: July 5th 2001
*
***** Generic PWM controller parameters *******
* REF ; internal reference voltage
* PERIOD ; switching period
* DEAD ; dead time between OUT1 and OUT2
* RAMP ; ramp amplitude for compensation
* VOUTHI ; driver output voltage high
* VOUTLO ; driver output voltage low
* ROUT ; driver output resistor
***** Internal error amplifier parameters *****
* VHIGH ; maximum output voltage
* VLOW ; minimum output voltage
* ISINK ; sink capability
* ISOURCE ; source capability
* POLE ; first pole in Hertz
* GAIN ; DC open-loop gain (default=90dB)
***********************************************
VREF 10 2 {REF} ; reference voltage
XCOM 5 500 12 COMP ; limit comparator
EBLIM 500 2 Value = { V(3)*{RATIO} } ; max peak current = VOH*RATIO / Rsense
XFFL1 82 11 14 13 FFLOP ; RS latch flipflop
RDUM 13 2 1MEG
VCLK 11 2 PULSE 0 5 0 1N 1N 10N {PERIOD}; Clock reset pulses
VDUT 80 2 PULSE 0 5 {PERIOD*DEAD} 1N 1N {(PERIOD-PERIOD*DEAD)-2N} {PERIOD}
VRAMP 6 2 PULSE 0 {RAMP} 0 {PERIOD-2N} 1N 1N {PERIOD}
XOR1 11 14 81 OR2 ; Clock OR FFlopD
XOR2 80 12 82 OR2 ; IMAX OR MAXduty set
XFFL2 81 300 2 2 300 301 TOGGLE
XNOR1 301 81 303 NOR2
XNOR2 300 81 304 NOR2
EBOUT1 15 2 Value = { IF ( V(303) > 3.5, {VOUTHI}, {VOUTLO} ) }
ROUT1 15 1 {ROUT} ; Output resistor 1
EBOUT2 250 2 Value = { IF ( V(304) > 3.5, {VOUTHI}, {VOUTLO} ) }
ROUT2 250 7 {ROUT} ; Output resistor 2
RDUM1 10 4 8MEG
CP1 110 0 {1/(6.28*(GAIN/100U)*POLE)}
E1 50 0 110 0 1
R9 50 200 5
D14 200 130 DMOD
IS1 130 0 {ISINK/100}
Q1 0 130 160 QPMOD
IS2 70 3 {ISOURCE}
D12 3 70 DMOD
D15 0 110 DCLAMP
G1 0 110 10 4 100U
V1 70 0 {VHIGH-0.6}
V2 3 160 {VLOW-40M}
RP1 110 0 {GAIN/100U}
.MODEL QPMOD PNP
.MODEL DCLAMP D (RS=10 BV=10 IBV=0.01)
.MODEL DMOD D
.ENDS PUSH_CM
*$
******
.SUBCKT PUSH_VM 1 7 2 3 4 5 PARAMS:
* OUT1 OUT2 GND COMP FB IMAX
+REF=2.5, PERIOD=5U, DUTYMAX=0.95, IMAX=2.5, VOUTHI=15V,
+ROUT=10, VHIGH=3, ISINK=15M, ISOURCE=500U,
+VLOW=100M, POLE=30, GAIN=31622, DUTYMIN=0.1, VOUTLO=100M
*
* Generic Model for Voltage Mode Push-Pull PWM controller
* Developed by Christophe BASSO, France
* PSpice compatible format
* Last modified: November 18th 1996
*
***** Generic PWM controller parameters *******
* REF ; internal reference voltage
* PERIOD ; switching period
* DUTYMAX ; maximum duty cycle (naturally limited at 0.5 or less)
* DUTYMIN ; minimum duty cycle
* IMAX ; max voltage upon (external) RSENSE resistor
* VOUTHI ; driver output voltage high
* VOUTLO ; driver output voltage low
* ROUT ; driver output resistor
***** Internal error amplifier parameters *****
* VHIGH ; maximum output voltage
* VLOW ; minimum output voltage
* ISINK ; sink capability
* ISOURCE ; source capability
* POLE ; first pole in Hertz
* GAIN ; DC open-loop gain (default=90dB)
***********************************************
.PARAM VP = { (VLOW*DUTYMAX-VHIGH*DUTYMIN+VHIGH-VLOW)/(DUTYMAX-DUTYMIN) } ; valley ramp voltage
.PARAM VV = { (VLOW-DUTYMIN*VP)/(1-DUTYMIN)} ; peak ramp voltage
XERR 10 4 3 2 ERRAMP PARAMS: VHIGH={VHIGH} ISINK={ISINK} ISOURCE={ISOURCE} ; error amplifier
+VLOW={VLOW} POLE={POLE} GAIN={GAIN}
VREF 10 2 {REF} ; reference voltage
VRAMP 16 2 PULSE {VV} {VP} 0 {PERIOD-2N} 1N 1N {PERIOD} ; comparison ramp
XCOM1 16 3 18 COMP ; PWM comparator
XCOM2 5 19 12 COMP ; I limit comparator
VLIMT 19 2 {IMAX} ; I limit level (Max voltage upon external sense resistor)
XOR2 12 18 20 OR2 ; Set by IMAX OR PWM
XFFL 20 11 14 13 FFLOP ; flip-flop
RDUM 13 2 1MEG
VCLK 11 2 PULSE 0 5 0 1N 1N 10N {PERIOD} ; Clock Reset pulses
XNOR1 301 14 303 NOR2
XNOR2 300 14 304 NOR2
XFFL2 14 300 2 2 300 301 TOGGLE
E_BOUT1 15 2 VALUE = { IF ( V(303) > 3.5, {VOUTHI}, {VOUTLO} ) }
ROUT1 15 1 {ROUT} ; output resitor
E_BOUT2 250 2 VALUE = { IF ( V(304) > 3.5, {VOUTHI}, {VOUTLO} ) }
ROUT2 250 7 {ROUT} ; output resitor
.ENDS PUSH_VM
*$
********
.SUBCKT HALF_CM 1 8 7 2 3 4 5 6 PARAMS:
* OUT GNF OUT2 GND COMP FB SENSE VOSC
+REF=2.5, PERIOD=5U, DUTYMAX=0.95, RAMP=5V, VOUTHI=15V,
+ROUT=10, VHIGH=3, ISINK=15M, ISOURCE=500U,
+VLOW=100M, POLE=30, GAIN=31622, VOUTLO=100M, RATIO=0.333
*
* Generic Model for Current Mode Half-bridge PWM controller
* Developed by Christophe BASSO, France
* PSpice compatible format
* Last modified: November 21st 1996
*
***** Generic PWM controller parameters *******
* REF ; internal reference voltage
* PERIOD ; switching period
* DUTYMAX ; maximum duty cycle on both outputs
* RAMP ; ramp amplitude for compensation
* VOUTHI ; driver output voltage high
* VOUTLO ; driver output voltage low
* ROUT ; driver output resistor
***** Internal error amplifier parameters *****
* VHIGH ; maximum output voltage
* VLOW ; minimum output voltage
* ISINK ; sink capability
* ISOURCE ; source capability
* POLE ; first pole in Hertz
* GAIN ; DC open-loop gain (default=90dB)
***********************************************
XERR 10 4 3 2 ERRAMP PARAMS: VHIGH={VHIGH} ISINK={ISINK} ISOURCE={ISOURCE} ; error amplifier
+ VLOW={VLOW} POLE={POLE} GAIN={GAIN}
VREF 10 2 {REF} ; reference voltage
ELIM 500 2 VALUE = { V(3)*RATIO } ; max peak current = VOH*RATIO / Rsense
XCOM 5 500 12 COMP ; limit comparator
XFFL 82 11 14 13 FFLOP ; flip-flop
RDUM 13 2 1MEG
VCLK 11 2 PULSE 0 5 0 1N 1N 10N {PERIOD} ; Clock set pulses
VRAMP 6 2 PULSE 0 {RAMP} 0 {PERIOD-2N} 1N 1N {PERIOD}
VDUT 80 2 PULSE 0 5 {PERIOD*DUTYMAX} 1N 1N {(PERIOD-PERIOD*DUTYMAX)-2N} {PERIOD} ; max. duty cycle (=delay/period) delay=period-(tr+tf+tpuls)
XOR1 11 14 81 OR2 ; Clock OR FFlopD
XOR2 80 12 82 OR2 ; IMAX OR MAXduty Reset
XNOR1 301 81 303 NOR2
XNOR2 300 81 304 NOR2
XFFL2 81 300 2 2 300 301 TOGGLE
E_BOUT1 25 8 VALUE = { IF ( V(303) > 3.5, {VOUTHI}, {VOUTLO} ) }
ROUT1 25 1 {ROUT} ; Output resistor 1
RDUMF 8 2 10MEG
E_BOUT2 250 2 VALUE = { IF ( V(304) > 3.5, {VOUTHI}, {VOUTLO} ) }
ROUT2 250 7 {ROUT}
.ENDS HALF_CM
*$
***********
.SUBCKT HALF_VM 1 8 7 2 3 4 5 PARAMS:
* OUT1 GNF OUT2 GND COMP FB IMAX
+REF=2.5, PERIOD=5U, DUTYMAX=0.8, IMAX=2.5V, VOUTHI=15V,
+ROUT=10, VHIGH=3, ISINK=15M, ISOURCE=500U,
+VLOW=100M, POLE=30, GAIN=31622, DUTYMIN=0.1, VOUTLO=100M
*
* Generic Model for Voltage Mode Half-Bridge PWM controller
* Developed by Christophe BASSO, France
* PSpice compatible format
* Last modified: November 21st 1996
*
***** Generic PWM controller parameters *******
* REF ; internal reference voltage
* PERIOD ; switching period
* DUTYMAX ; maximum duty cycle
* DUTYMIN ; minimum duty cycle
* IMAX ; max voltage upon (external) RSENSE resistor
* VOUTHI ; driver output voltage high
* VOUTLO ; driver output voltage low
* ROUT ; driver output resistor
***** Internal error amplifier parameters *****
* VHIGH ; maximum output voltage
* VLOW ; minimum output voltage
* ISINK ; sink capability
* ISOURCE ; source capability
* POLE ; first pole in Hertz
* GAIN ; DC open-loop gain (default=90dB)
***********************************************
.PARAM VP = { (VLOW*DUTYMAX-VHIGH*DUTYMIN+VHIGH-VLOW)/(DUTYMAX-DUTYMIN) } ; valley ramp voltage
.PARAM VV = { (VLOW-DUTYMIN*VP)/(1-DUTYMIN)} ; peak ramp voltage
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -