⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 smpsrecipes.lib

📁 开关电源的设计及仿真.rar
💻 LIB
📖 第 1 页 / 共 2 页
字号:
**** Lib files for Christophe BASSO's book
**** OrCAD PSpice compatible
* ------------------------------------------------------------ *
*
* Original models from Ben-Gurion University (ISRAEL)
* http://www.ee.bgu.ac.il/~pel
* Models translated by Christophe BASSO, Toulouse (FRANCE)
* These models automatically toggle between DCM and CCM
* Please report bugs to CBASSO@WANADOO.FR
* OrCAD's PSpice compatible
* Last modified: October 10th 1999
*
* VM extension: voltage-mode models
* CM extension: current-mode models with:
* RI = current sense element
* MC = ramp compensation in V/s
*
* ------------------------------------------------------------ *
*$
.SUBCKT FLYBACKVM DON IN OUT GND PARAMS: FS=75k L=180u
* Set N to 1 if an external XFMR is used
GIN IN GND VALUE = { I(VLM)*V(DON)/(V(DON)+V(DOFF)) }
ELM OUT1 GND VALUE = { V(IN)*V(DON)-V(OUT)*V(DOFF) }
RM OUT1 5 1M
LM 5 8 {L}
VLM 8 GND
GOUT GND OUT VALUE = { I(VLM)*V(DOFF)/(V(DON)+V(DOFF)) }
VCLP VC 0 9M
D2 VC DOFF DBREAK
D1 DOFF 6 DBREAK
R4 DOFF 7 10
EDOFFM 6 GND VALUE = { 1-V(DON)-9M }
EDOFF 7 GND VALUE = { 2*I(VLM)*{FS}*{L}/(V(DON))/(V(IN))-V(DON) }
.MODEL DBREAK D (TT=1N CJO=10P N=0.01)
.ENDS
*$
*******
.SUBCKT FLYBACKCM CONTROL IN OUT GND PARAMS: FS=100k L=2m MC=1 RI=2
* Set N to 1 if an external XFMR is used
GIN IN GND VALUE = { I(VLM)*V(DON)/(V(DON)+V(DOFF)) }
ELM OUT1 GND VALUE = { V(IN)*V(DON)-V(OUT)*V(DOFF) }
RM OUT1 5 1M
LM 5 8 {L}
VLM 8 GND
GOUT GND OUT VALUE = { I(VLM)*V(DOFF)/(V(DON)+V(DOFF)) }
VCLP VC 0 9M
D2 VC DOFF DBREAK
D1 DOFF 6 DBREAK
R4 DOFF 7 10
EDOFFM 6 GND VALUE = { 1-V(DON)-9M }
EDOFF 7 GND VALUE = { 2*I(VLM)*{FS}*{L}/(V(DON))/(V(IN))-V(DON) }
EDON  DON GND TABLE { ((V(CONTROL)-I(VLM)*{RI})*{FS})/({MC}+((0.5*{RI}*V(IN))/{L})) } 
+ ( (10m,10m) (.999,.999) )
.MODEL DBREAK D (TT=1N CJO=10P N=0.01)
.ENDS
*$
*******
.SUBCKT BUCKVM DON IN OUT GND PARAMS: FS=200k L=60u RS=50m
GA IN GND VALUE = { I(VLM)*V(DON)/(V(DON)+V(DOFF)) }
GB B GND VALUE = { V(DOFF)*I(VLM)/(V(DON)+V(DOFF)) }
D1 GND B DBREAK
ELM OUT1 GND VALUE = { V(DON)*V(IN,C)+V(DOFF)*V(B,C) }
RM OUT1 5 {RS}
LM 5 8 {L}
VLM 8 GND
GC GND C VALUE = { I(VLM) }
Rx C OUT 1u
VCLP VC 0 9M
D2 VC DOFF DBREAK
D3 DOFF 6 DBREAK
R4 DOFF 7 10
EDOFFM 6 GND VALUE = { 1-V(DON)-9M }
EDOFF 7 GND VALUE = { 2*I(VLM)*{L}/({1/FS}*(V(IN)-V(C))*V(DON))-V(DON) }
.MODEL DBREAK D (TT=1N CJO=10P N=0.01)
.ENDS
*$
***********
.SUBCKT BUCKCM CONTROL IN OUT GND PARAMS: FS={FS} L={L} RS={RS} MC={MC} RI={RI}
GA IN GND VALUE = { I(VLM)*V(DON)/(V(DON)+V(DOFF)) }
GB B GND VALUE = { V(DOFF)*I(VLM)/(V(DON)+V(DOFF)) }
D1 GND B DBREAK
ELM OUT1 GND VALUE = { V(DON)*V(IN,C)+V(DOFF)*V(B,C) }
RM OUT1 5 {RS}
LM 5 8 {L}
VLM 8 GND
GC GND C VALUE = { I(VLM) }
Rx C OUT 1u
VCLP VC 0 9M
D2 VC DOFF DBREAK
D3 DOFF 6 DBREAK
R4 DOFF 7 10
EDOFFM 6 GND VALUE = { 1-V(DON)-9M }
EDOFF 7 GND VALUE = { 2*I(VLM)*{L}/({1/FS}*(V(IN)-V(C))*V(DON))-V(DON) }
EDON  DON GND TABLE { ((V(CONTROL)-I(VLM)*{RI})*{FS})/({MC}+((0.5*{RI}*V(IN,C))/{L})) } 
+ ( (10m,10m) (.999,.999) )
.MODEL DBREAK D (TT=1N CJO=10P N=0.01)
.ENDS
*$
*********
.SUBCKT FORWARDVM DON IN OUT GND PARAMS: FS={FS} Ls={Ls} Rs={RS} N={N}
.PARAM L={Ls/N^2}
.PARAM R = {Rs/N^2}
GA IN GND VALUE = { I(VLM)*V(DON)/(V(DON)+V(DOFF)) }
GB B GND VALUE = { V(DOFF)*I(VLM)/(V(DON)+V(DOFF)) }
D1 GND B DBREAK
ELM OUT1 GND VALUE = { V(DON)*V(IN,C)+V(DOFF)*V(B,C) }
RM OUT1 5 {R}
LM 5 8 {L}
VLM 8 GND
GC GND C VALUE = { I(VLM) }
Rx C OUT 1u
VCLP VC 0 9M
D2 VC DOFF DBREAK
D3 DOFF 6 DBREAK
R4 DOFF 7 10
EDOFFM 6 GND VALUE = { 1-V(DON)-9M }
EDOFF 7 GND VALUE = { 2*I(VLM)*{L}/({1/FS}*(V(IN)-V(C))*V(DON))-V(DON) }
.MODEL DBREAK D (TT=1N CJO=10P N=0.01)
.ENDS
*$
***********
.SUBCKT FORWARDCM CONTROL IN OUT GND PARAMS: FS={FS} Ls={Ls} Rs={RS} MC={MC} RI={RI} N={N}
.PARAM L={Ls/N^2}
.PARAM R = {Rs/N^2}
GA IN GND VALUE = { I(VLM)*V(DON)/(V(DON)+V(DOFF)) }
GB B GND VALUE = { V(DOFF)*I(VLM)/(V(DON)+V(DOFF)) }
D1 GND B DBREAK
ELM OUT1 GND VALUE = { V(DON)*V(IN,C)+V(DOFF)*V(B,C) }
RM OUT1 5 {R}
LM 5 8 {L}
VLM 8 GND
GC GND C VALUE = { I(VLM) }
Rx C OUT 1u
VCLP VC 0 9M
D2 VC DOFF DBREAK
D3 DOFF 6 DBREAK
R4 DOFF 7 10
EDOFFM 6 GND VALUE = { 1-V(DON)-9M }
EDOFF 7 GND VALUE = { 2*I(VLM)*{L}/({1/FS}*(V(IN)-V(C))*V(DON))-V(DON) }
EDON  DON GND TABLE { ((V(CONTROL)-I(VLM)*{RI})*{FS})/({MC}+((0.5*{RI}*V(IN,C))/{L})) } 
+ ( (10m,10m) (.999,.999) )
.MODEL DBREAK D (TT=1N CJO=10P N=0.01)
.ENDS
*$
***********
.SUBCKT BOOSTVM DON IN OUT GND PARAMS: FS=200k L=2.5u RS=20m
GC IN GND VALUE = { I(VLM) }
ELM OUT1 GND VALUE = { -(V(DON)*V(GND,IN)+V(DOFF)*V(B,IN)) }
RM OUT1 5 {RS}
LM 5 8 {L}
VLM 8 GND
GB GND B VALUE = { V(DOFF)*I(VLM)/(V(DON)+V(DOFF)) }
D5 B OUT DBREAK
VCLP VC 0 9M
D2 VC DOFF DBREAK
D3 DOFF 6 DBREAK
R4 DOFF 7 10
EDOFFM 6 GND VALUE = { 1-V(DON)-9M }
EDOFF 7 GND VALUE = { 2*I(VLM)*{L}/({1/FS}*V(IN)*(V(DON)))-V(DON) }
.MODEL DBREAK D (TT=1N CJO=10P N=0.01)
.ENDS
*$
************
.SUBCKT BOOSTCM CONTROL IN OUT GND PARAMS: RI={RI} FS={FS} MC={MC} L={L} RS={RS}
GC IN GND VALUE = { I(VLM) }
ELM OUT1 GND VALUE = { -(V(DON)*V(GND,IN)+V(DOFF)*V(B,IN)) }
RM OUT1 5 {RS}
LM 5 8 {L}
VLM 8 GND
GB GND B VALUE = { V(DOFF)*I(VLM)/(V(DON)+V(DOFF)) }
D5 B OUT DBREAK
VCLP VC 0 9M
D2 VC DOFF DBREAK
D3 DOFF 6 DBREAK
R4 DOFF 7 10
EDOFFM 6 GND VALUE = { 1-V(DON)-9M }
EDOFF 7 GND VALUE = { 2*I(VLM)*{L}/({1/FS}*V(IN)*(V(DON)))-V(DON) }
EDON  DON GND TABLE { ((V(CONTROL)-I(VLM)*{RI})*{FS})/({MC}+((0.5*{RI}*V(IN))/{L})) } 
+ ( (10m,10m) (.999,.999) )
.MODEL DBREAK D (TT=1N CJO=10P N=0.01)
.ENDS
*$
******
.SUBCKT SEPICVM DON IN GND CP CS PARAMS: RON=50m LP=9.75u LS=9.75u
GCS GND CS VALUE = { -I(LP)*V(DON)+I(LS)*(1-V(DON)) }
RCS CS GND 1MEG
GVDON  GND DION VALUE = { I(Ls)+I(Lp) }
ELS 1 GND VALUE = { (I(LS)+I(LP))*RON*V(DON)+(V(CS)+V(dion)+v(cp))*(1-v(Don)) }
ELP 7 GND VALUE = { (v(cs)-(I(LS)+I(LP))*RON)*v(Don)-(v(dion)+v(cp))*(1-v(Don)) }
GCP GND CP VALUE = { (I(LS)+I(LP))*(1-v(Don)) }
D1  DION GND DBREAK
LS IN 100 {LS}
RLS 100 1 1m
LP 7 3 {LP}
RLP 3 GND 1m
RDON DON GND 1MEG
.MODEL DBREAK D (TT=1N CJO=10P N=0.01)
.ENDS
*$
******
.SUBCKT SEPICCM CONTROL IN GND CP CS PARAMS: RON={RON} LP={LP} LS={LS} MC={MC} RI={RI} FS={FS}
GCS GND CS VALUE = { -I(LP)*V(DON)+I(LS)*(1-V(DON)) }
RCS CS GND 1MEG
GVDON  GND DION VALUE = { I(Ls)+I(Lp) }
ELS 1 GND VALUE = { (I(LS)+I(LP))*RON*V(DON)+(V(CS)+V(dion)+v(cp))*(1-v(Don)) }
ELP 7 GND VALUE = { (v(cs)-(I(LS)+I(LP))*RON)*v(Don)-(v(dion)+v(cp))*(1-v(Don)) }
GCP GND CP VALUE = { (I(LS)+I(LP))*(1-v(Don)) }
D1  DION GND DBREAK
LS IN 100 {LS}
RLS 100 1 1m
LP 7 3 {LP}
RLP 3 GND 1m
EDON  DON GND TABLE { ((V(CONTROL)-(I(LS)+I(LP))*{RI})*{FS})/({MC}+0.5*{RI}*
+((V(IN)/{LS})+(V(CS)/{LP})))} ( (10m,10m) (.999,.999) )
.MODEL DBREAK D (TT=1N CJO=10P N=0.01)
.ENDS
*$
******
.SUBCKT SIM_VM a b c DON PARAMS: FS=100k L=50u RS=100m
GA a 0 VALUE = { I(VIL)*V(DON)/(V(DON)+V(DOFF)) }
GB 0 b VALUE = { (VIL)*V(DOFF)/(V(DON)+V(DOFF)) }
GC 0 c VALUE = { I(VIL) }
EL el 0 VALUE = { V(a,c)*V(DON)+V(b,c)*V(DOFF) }
L1 el erl {L}
RL erl vil {RS}
vil vil 0 0
EDOFF doffc 0 VALUE = { (2*I(VIL)*{L}*{FS}/(V(a,c)*V(DON)))-V(DON) }
Rdoffc doffc 0 10E10
Rlmt doffc doff 1
Dlmtz 0 doff Dclamp
Dlmtc doff doffm Dclamp
Eclamp doffm 0 VALUE = { 1-V(DON) }
Rdoff doff 0 10E10
.Model Dclamp D (N=0.01 Rs=10m TT=10n)
.ENDS
*$
*******
* Series-parallel model
.SUBCKT SERPA FREQ IN GND OUT PARAMS: LR=78u CS=43n CP=43n
.PARAM PI=3.14159
RDUM IN GND 100Meg
EW W GND VALUE = { 2*pi*V(FREQ) }
Ein FUND GND VALUE = { 4/pi*V(IN) }
ERac RAC GND VALUE = { 1u + (pi*pi/8)*abs(v(out)/(-i(ecp)+1u)) }
Ecp OUT GND VALUE = { v(fund)*(2/pi)*v(w)*cs*v(rac)/sqrt(v(den1)*v(den1)+v(den2)*v(den2)) }
Eden1 den1 GND VALUE = { 1-v(w)*v(w)*Lr*Cs }
Eden2 den2 GND VALUE = { v(w)*v(rac)*(Cs+Cp-V(w)*V(w)*Cs*Cp*Lr) }
.ENDS
*******
*$
* -------------------------------------------------------- *
* PSpice AC (only) models library for SMPS 
* operating in Continuous Conduction Mode (CCM) or 
* Discontinuous Conduction Mode (DCM)
* Models originally developed by Raymond RIDLEY in SPICE2
* SPICE3 version by Christophe BASSO, Toulouse (FRANCE)
* Please report any bugs or non-convergence problems to:
* CBASSO@WANADOO.FR
* Last modified: September 26th 1999
* -------------------------------------------------------- *
*$
.SUBCKT PWMCCM 1 2 3 4 5 PARAMS: RI=0.33 L=37.5U FS=50K RL=1 D=0.45 VAP=11 VAC=6 IC=0.8 VP=2
*              A P C C'Control
.PARAM TS = {1/FS}	; Switching time
.PARAM PI = 3.14159	; PI constant
.PARAM KF= {-(D*TS*RI/L)*(1-D/2)}
.PARAM KR= {((1-D)^2*TS*RI)/(2*L)}
**** PWM Switch model ****
E2 7 1 VALUE = { V(17)*(VAP/D) }
G1 1 2 VALUE = { V(17)*IC }
Gxf 7 2 VALUE = { I(Vxf)*D }
Exf 9 2 VALUE = { V(7,2)*D }
Vxf 9 3 0                               
Rvc 5 0 10MEG                            
**** He(s) Circuit ****
Hi 10 0  Vxf  1                                
C1 10 12 {TS/PI}
L1 12 13 {TS/PI}                        
C2 13 14 {TS/PI}
Re 14 15  -1.57                            
E1 15 0 12 0 -1E6                            
R2 12 0 10MEG                            
**** Summing gains ****
Ed 16 0 VALUE = { V(1,4)*KF + V(4,2)*KR + V(15)*RI + V(5) }
Rd 16 0 10MEG                            
**** Modulator Gain ****
EFm 17 0 VALUE = { V(16)*1/(VP+(VAC*TS*RI/L)) }
RFm 17 0 10MEG  
.ENDS PWMCCM
*$
**************
.SUBCKT PWMDCM 1 2 3 4 5 PARAMS: RI=0.33 L=37.5U FS=50K RL=1 D=0.45 VAP=11 VAC=6 VCP=5 IC=0.8 IA=0.16 IP=0.64 VP=2V
*              A P C C'Control
.PARAM TS = {1/FS}	; Switching time
.PARAM KF = {-(D*TS*RI/L)}
**** PWM Switch Model ****
Ri 1 3 { VAC/IA }
Gdi 1 3 VALUE= { V(17)*2*IA/D }
Gf 2 3 VALUE = { V(1,3)*2*IP/VAC }
Gdo 2 3 VALUE = { V(17)*2*IP/D }
Ro 2 3 { VCP/IP }
Rvc 5 0 10MEG
**** Summing Gains ****
Ed 16 0 VALUE = { V(1,4)*KF + V(5) }
Rd 16 0 10MEG
**** Modulator Gain ****
EFm 17 0 VALUE = { V(16)*1/(VP+(VAC*TS*RI/L)) }
RFm 17 0 10MEG
.ENDS PWMDCM
*$
**************
.SUBCKT BOOSTDCM Vin Vout Gnd Control D PARAMS: RI=0.803 L=2.93U RS=90M FS=219K VOUT=12V RL=12 VIN=9.9V MC=1 VR=2

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -