spice语言建模功率器件语法学习-基于CreeC2M0080120D
参考教材1:《电力电子学的spice仿真-第三版》
参考教材2:Semiconductor Device Modeling With SPICE
Ltspice 帮助文档
spice语言建模功率器件语法学习-基于CreeC2M0080120D
参考教材1:《电力电子学的spice仿真-第三版》
参考教材2:Semiconductor Device Modeling With SPICE
Ltspice 帮助文档
基础知识
缩写对应的模型
基础语句:缩写<元器件名> <正结点> <负节点> <值>
缩写 | 对应器件 |
---|---|
R | Resistor |
C | Capacitor |
K | Mutual inductor |
T | Transmission lines (lossless) |
V | Independent voltage source |
I | Independent current source |
G | (Non)linear voltage-controlled current source |
E | (Non)linear voltage-controlled voltage source |
F | (Non)linear current-controlled current source |
H | (Non)linear current-controlled voltage source |
Q | BJT |
D | DIODE |
J | J-FET |
M | MOST |
X | Sub-circuit |
B | GaAs MES FET |
W | current-controlled switch(not available in spice 2 but in spice 3) |
The R and T elements must be constants, while the C, L, G, E, F, H elements may be expressed as nonlinear polynomials.
常用单位
不区分大小写
单位 | value |
---|---|
T | 1E12 |
G | 1E9 |
MEG | 1E6 |
K | 1E3 |
MIL | 25.4E-6 |
M | 1E-3 |
U | 1E-6 |
N | 1E-9 |
P | 1E-12 |
F | 1E-15 |
行为模型语句-截取帮助文档中任意行为电源
数学语句
Spice库中VALUE描述的受控源的传递函数可以写成一个标准形式的数学表达 式。其一般形式为:
器件实例-以Cree C2M0080120D model为例
spice 语言中注释是* 和 ;,这里为了美观采用了c语言注释//
以下代码参照最后一张原理图读可以快速掌握spice的一些基础语言
.subckt C2M0080120D d g s Tj Tc //C2M0080120D子电路,包括了d g s Tj Tc五个节点
.param p11 = -10;//.param 定义一个参数P11,并赋值为10
.param p12 = 25
.param Rgint = 3.9
*//R<name> N+ N- value;R 必须是常数
R1022 Tjc 0 1E6 ;//Tjc到0(GND)节点的电阻R1022,电阻值为1E6
*//E<name> N+ N- value
E1022 Tjc 0 value {limit(v(Tj),-55,260)};//Tjc到节点的VCVS,E1022(VCVS),受控电流源的值value=v(Tj),且limit在-55,260之间
R100 gk s1 1E6//无源器件语句实例,同上,gk端和s1之间定义一个电阻R100,阻值为1E6,之后不再复述该语句
*//E<name> N+ N-
E100 gk s1 value {limit(v(g1,s1),-10,25)}//受控电压源E100,value=v(g1,s1),limit在-10到25之间
e33 NET3 0 Value {23.299u*V(Tjc)**2-9.88m*V(Tjc)+3.441};//VNET3,通过后面代码可以判断它为阈值电压,它的值是与Tjc,结温有关的函数
R_cc NET3 0 1E6
*//x<name> nodes SUBNAME
xgmos d3 d1 gk s1 Tjc NET3 gmos_C2M0080120D;//调用子模型gmos_C2M0080120D,x是调用指令,调用gmos_c2M0080120D这个子电路,且将其重命名为gmos(xgmos),原子电路对应的参数d3 d1 gk s1 Tjc NET3一一对应
*//源极寄生电感和寄生电阻
RS s sa 6.436m
Ls sa s1 4.3n
*//R_Ls sa s1 5
*//栅极寄生电感和寄生电阻
R_g g1 g2 {Rgint}
RG g ga 34.443m
Lg ga g2 7.5763n
*//漏极寄生电感和寄生电阻
Rd d da 64.94u
Ld da d3 3.648n
R_Ld da d3 5
Ed Id 0 value {I(Vdrain_s)};//悬空了一个Id节点,其中节点的电压值大小=Ids,为了获得Id
Rdd Id 0 1E6
vdrain_s d3 d1 0;//作为一个电流标定点存在
Gheat 0 Tj value {abs((V(d1,s1)*v(Id)))+abs((V(g1,g2)**2/Rgint))}
xCGD d3 g1 cgdmos_C2M0080120D;//调用cgd子电路
CGS g1 s1 1122p;//Cgs电容大小,可见Cgs基本为常数,不随着Vds变化而变化
*e16 dd1 d1 value {-1.9}
e15 dd1 d1 value {//if语句与C语言类似,+号表示换行,起美化代码作用
+ if (V(gk,s1)>V(NET3),
+ Limit(((3.524m*V(Tjc)**2+0.2432*V(Tjc)-116.284)*(V(gk,s1)**2)+
+ (-0.1232*V(Tjc)**2-8.5098*V(Tj)+4069.77)*v(gk,s1)+
+ (0.4982*V(Tjc)**2+49.32*V(Tjc)-18544.4))/1000,-3.2,15)
+ ,
+ 0
+ )
+ };//体二极管的温度特性,其正向导通压降e15随着温度Tjc变化
D1 s1 dd1 bodydiode_C2M0080120D;//调用体二极管model,可见model不需要调用
xCds d3 s1 cdsmos_C2M0080120D;//调用Cds子电路
R_DS1 d1 s1 0.5G
D_cd1 dk d3 ideal_diodev;//反向串联两个理想二极管,意义不明
D_cd2 d3 dk ideal_diodew
.model ideal_diodev d(is=1 rs=6 Cjo=0.1p)// .model 定义一个器件,期间名称ideal_diodev,器件类型d(diode),具体参数可以查阅ltspice帮助手册
.model ideal_diodew d(is=1 rs=100m Cjo=0.1p)
*.options temp =v(Tj);//下方是一个13阶foster RC热阻抗网络
R0 N1 Tj 13.3m
R1 N2 N1 13.3m
R2 N3 N2 37.8m
R3 N4 N3 36.9m
R4 N5 N4 83.6m
R5 N6 N5 58.4m
R6 N7 N6 43.2m
R7 N8 N7 51.2m
R8 N9 N8 51.9m
R9 N10 N9 47.5m
R10 N11 N10 46.6m
R11 N12 N11 58.7m
R12 N13 N12 40.8m
R13 Tc N13 10.4m
C0 Tj 0 0.424m
C1 N1 0 0.341m
C2 N2 0 1.32m
C3 N3 0 1.58m
C4 N4 0 1.88m
C5 N5 0 2.64m
C6 N6 0 8.5m
C7 N7 0 14.2m
C8 N8 0 26m
C9 N9 0 47.8m
C10 N10 0 0.102
C11 N11 0 0.165
C12 N12 0 0.282
C13 N13 0 2.41
.ends C2M0080120D //结束对子电路C2M0080120D的编辑
*****************************************
.subckt gmos_C2M0080120D d3 d1 gk s1 Tjc NET3;//此处是子电路gmos,在上方进行过调用,器件的动态特性,表征了Vgd,Vds和Vth以及温度的关系
e1 NET1 0 Value {Limit(((13.574u*V(Tjc)**2+7.332m*V(Tjc)-1.6578)*(V(gk,s1)**3)+
+ (-525.04u*V(Tjc)**2-0.4372*V(Tjc)+89.857)*(V(gk,s1)**2)+
+ (4.2988m*V(Tjc)**2+8.2695*V(Tjc)-1468)*v(gk,s1)+
+ (-16.785m*V(Tjc)**2-45.09*V(Tjc)+7939.4))/1000,0.01,10)
+ }
R_a NET1 0 1E6
*e9 P9 0 value {2.15}
e9 P9 0 value {Limit(((667.32u*V(Tjc)**2-0.15998*V(Tjc)+11.582)*(V(gk,s1)**2)+
+ (-25.74m*V(Tjc)**2+6.128*V(Tjc)-435.11)*v(gk,s1)+
+ (0.25273*V(Tjc)**2-59.668*V(Tjc)+4213.7))/1000,0.001,5)}
R_s P9 0 1E6
e2 NET2 0 Value {15.35m*V(gk,s1)+371.85m}
R_B NET2 0 1E6
e6 NET6 0 Value {0.1}
e4 NET4 0 Value {Limit((-20m*V(gk,s1)+0.2),0,0.5)}
R_d NET4 0 1E6
e5 NET5 0 value {
+ Limit(((4.4369u*V(Tjc)**2-541.48u*V(Tjc)-19.602m)*V(gk,s1)**4+
+ (-310.13u*V(Tjc)**2+34.571m*V(Tjc)+1.6976)*V(gk,s1)**3+
+ (7.7835m*V(Tjc)**2-0.75887*V(Tjc)-51.553)*V(gk,s1)**2+
+ (-81.382m*V(Tjc)**2+6.3743*V(Tjc)+618.31)*V(gk,s1)+
+ (0.28845*V(Tjc)**2-15.09*V(Tjc)-1989.7))
*+ /10100,0.0041,1)
+ /(14.878m*V(Tjc)**2-5.80366*v(Tjc)+10.6358k),0.004,1)
+ }
R_e NET5 0 1E6
e7 NET7 0 Value {
+ if (V(gk,s1)<=9.85 ,
+ (-3.91m*V(Tjc)**2+0.2482*V(Tjc)+34.94)*V(gk,s1)**2+
+ (75.77m*V(Tjc)**2-4.339*V(Tjc)-653.9)*V(gk,s1)+
+ (-0.367*V(Tjc)**2+18.65*V(Tjc)+3043)
+ ,
+ 0
+ )
+ }
R_f NET7 0 1E6
e10 NET10 0 Value {Limit((-334.15n*V(Tjc)**2-397.52u*V(Tjc)+0.1021),0,0.8)}
R_K NET10 0 1E6
e_p8 P8 0 Value {Limit((220n*V(Tjc)**2+19.1u*V(Tjc)+10.385m),0.0005,0.8)}
R_R P8 0 1E6
R_T NET3 0 1E6
R_V gk s1 1E6
********************************
//G(VCCS)压控电流源,G1和G2表示了器件导通和关断时电压(Vgs)对应的电流(Ids)的关系,mosfet压控电流型器件。
G1 d1 s1 value {
+ if(V(s1,d3)<=0,
+ 0
+ ,
+ if (V(gk,s1)<v(NET3) ,
+ 0
+ ,
+ -((((v(NET5)+v(NET4))*(v(gk,s1)-V(NET3))))*(1+v(P9)*v(s1,d3))*(((log(1+exp(v(gk,s1)-V(NET3))))**2)-
+ ((log(1+exp(v(gk,s1)-V(NET3)-(V(NET2)*v(s1,d3)*((1+exp(-v(NET10)*v(s1,d3)))**v(NET1))))))**2)))
+ )
+ )
+ }
G2 d1 s1 value {
+ if(V(d3,s1)<=0,
+ 0
+ ,
+ if (V(gk,s1)<v(NET3) ,
+ 0
+ ,
+ (((v(NET5))*(v(gk,s1)-V(NET3))))*(1+v(P8)*v(d3,s1))*(((log(1+exp(v(gk,s1)-V(NET3))))**2)-
+ ((log(1+exp(v(gk,s1)-V(NET3)-(V(NET2)*v(d3,s1)*((1+exp(-v(NET10)*v(d3,s1)))**v(NET1))))))**2))
+ )
+ )
+ }
.ends gmos_C2M0080120D
****************************************
.model bodydiode_C2M0080120D d(is=1.85u bv=1500 EG=4.6 n=9.5;//体二极管,依据理想二极管建模,没有热模型,具体参数指代参考Ltspice帮助手册
+ rs=0.030 trs1=-0.0037 trs2=0.000013 Tnom=25
+ tt=15n ibv=500u Xti=0.5 level=1)
****************************************
.subckt cgdmos_C2M0080120D d3 g1//五个参数拟合Cgd,自行判断是物理模型还是实验模型
.param k1=821p
.param k2=0.41
.param ka=250
.param kb=0.38
.param kc=5
G11 g1 d1 value {
+ k1*(
+ (1+(limit(v(d3,g1),0,430))*(1+ka*(1+TANH(kb*V(d3,g1)-kc))/2))**(-k2)
+ )*ddt(v(g1,d3))
+ }
R_CGD d1 d3 1E-4
.ends cgdmos_C2M0080120D
.subckt cdsmos_C2M0080120D d3 s1
.param Cjo = 1291p
.param Vj = 4.4365
.param M = 0.545
G12 d1 s1 value {
+ if(V(d3,s1)>0,
+ (Cjo/(1+(limit(v(d3,s1),0,580)/Vj)**M))*ddt(v(d3,s1))
+ ,
+ 0
+ )
+ }
R_CDS d1 d3 1E-4
.ends cdsmos_C2M0080120D;//ends语句,表示结束一个子电路
根据spice model绘制对应的原理图如下图所示:
基础知识
缩写对应的模型
基础语句:缩写<元器件名> <正结点> <负节点> <值>
缩写 | 对应器件 |
---|---|
R | Resistor |
C | Capacitor |
K | Mutual inductor |
T | Transmission lines (lossless) |
V | Independent voltage source |
I | Independent current source |
G | (Non)linear voltage-controlled current source |
E | (Non)linear voltage-controlled voltage source |
F | (Non)linear current-controlled current source |
H | (Non)linear current-controlled voltage source |
Q | BJT |
D | DIODE |
J | J-FET |
M | MOST |
X | Sub-circuit |
B | GaAs MES FET |
W | current-controlled switch(not available in spice 2 but in spice 3) |
The R and T elements must be constants, while the C, L, G, E, F, H elements may be expressed as nonlinear polynomials.
常用单位
不区分大小写
单位 | value |
---|---|
T | 1E12 |
G | 1E9 |
MEG | 1E6 |
K | 1E3 |
MIL | 25.4E-6 |
M | 1E-3 |
U | 1E-6 |
N | 1E-9 |
P | 1E-12 |
F | 1E-15 |
行为模型语句-截取帮助文档中任意行为电源
数学语句
Spice库中VALUE描述的受控源的传递函数可以写成一个标准形式的数学表达 式。其一般形式为:
器件实例-以Cree C2M0080120D model为例
spice 语言中注释是* 和 ;,这里为了美观采用了c语言注释//
.subckt C2M0080120D d g s Tj Tc //C2M0080120D子电路,包括了d g s Tj Tc五个节点
.param p11 = -10
.param p12 = 25
.param Rgint = 3.9
*//R<name> N+ N- value;R 必须是常数
R1022 Tjc 0 1E6 ;//Tjc到0(GND)节点的电阻R1022
*//E<name> N+ N- value
E1022 Tjc 0 value {limit(v(Tj),-55,260)};//Tjc到节点的VCCS,E1022(VCCS)
R100 gk s1 1E6//无源器件语句实例
*//E<name> N+ N-
E100 gk s1 value {limit(v(g1,s1),-10,25)}
e33 NET3 0 Value {23.299u*V(Tjc)**2-9.88m*V(Tjc)+3.441};//VNET3,阈值电压
R_cc NET3 0 1E6
*//x<name> nodes SUBNAME
xgmos d3 d1 gk s1 Tjc NET3 gmos_C2M0080120D;//调用子模型gmos_C2M0080120D,x是调用指令
*//源极寄生电感和寄生电阻
RS s sa 6.436m
Ls sa s1 4.3n
*//R_Ls sa s1 5
*//栅极寄生电感和寄生电阻
R_g g1 g2 {Rgint}
RG g ga 34.443m
Lg ga g2 7.5763n
*//漏极寄生电感和寄生电阻
Rd d da 64.94u
Ld da d3 3.648n
R_Ld da d3 5
Ed Id 0 value {I(Vdrain_s)};//悬空了一个Id节点,其中节点的电压值大小=Ids,为了获得Id
Rdd Id 0 1E6
vdrain_s d3 d1 0;//作为一个电流标定点存在
Gheat 0 Tj value {abs((V(d1,s1)*v(Id)))+abs((V(g1,g2)**2/Rgint))}
xCGD d3 g1 cgdmos_C2M0080120D;//调用cgd子电路
CGS g1 s1 1122p;//Cgs电容大小,可见Cgs基本为常数,不随着Vds变化而变化
*e16 dd1 d1 value {-1.9}
e15 dd1 d1 value {
+ if (V(gk,s1)>V(NET3),
+ Limit(((3.524m*V(Tjc)**2+0.2432*V(Tjc)-116.284)*(V(gk,s1)**2)+
+ (-0.1232*V(Tjc)**2-8.5098*V(Tj)+4069.77)*v(gk,s1)+
+ (0.4982*V(Tjc)**2+49.32*V(Tjc)-18544.4))/1000,-3.2,15)
+ ,
+ 0
+ )
+ }
D1 s1 dd1 bodydiode_C2M0080120D;//调用体二极管model,可见model不需要调用
xCds d3 s1 cdsmos_C2M0080120D;//调用Cds子电路
R_DS1 d1 s1 0.5G
D_cd1 dk d3 ideal_diodev;//反向串联两个理想二极管,意义不明
D_cd2 d3 dk ideal_diodew
.model ideal_diodev d(is=1 rs=6 Cjo=0.1p)
.model ideal_diodew d(is=1 rs=100m Cjo=0.1p)
*.options temp =v(Tj);//下方是一个13阶foster RC热阻抗网络
R0 N1 Tj 13.3m
R1 N2 N1 13.3m
R2 N3 N2 37.8m
R3 N4 N3 36.9m
R4 N5 N4 83.6m
R5 N6 N5 58.4m
R6 N7 N6 43.2m
R7 N8 N7 51.2m
R8 N9 N8 51.9m
R9 N10 N9 47.5m
R10 N11 N10 46.6m
R11 N12 N11 58.7m
R12 N13 N12 40.8m
R13 Tc N13 10.4m
C0 Tj 0 0.424m
C1 N1 0 0.341m
C2 N2 0 1.32m
C3 N3 0 1.58m
C4 N4 0 1.88m
C5 N5 0 2.64m
C6 N6 0 8.5m
C7 N7 0 14.2m
C8 N8 0 26m
C9 N9 0 47.8m
C10 N10 0 0.102
C11 N11 0 0.165
C12 N12 0 0.282
C13 N13 0 2.41
.ends C2M0080120D
*****************************************
.subckt gmos_C2M0080120D d3 d1 gk s1 Tjc NET3;//此处是子电路gmos,在上方进行过调用,器件的动态特性,表征了Vgd,Vds和Vth以及温度的关系
e1 NET1 0 Value {Limit(((13.574u*V(Tjc)**2+7.332m*V(Tjc)-1.6578)*(V(gk,s1)**3)+
+ (-525.04u*V(Tjc)**2-0.4372*V(Tjc)+89.857)*(V(gk,s1)**2)+
+ (4.2988m*V(Tjc)**2+8.2695*V(Tjc)-1468)*v(gk,s1)+
+ (-16.785m*V(Tjc)**2-45.09*V(Tjc)+7939.4))/1000,0.01,10)
+ }
R_a NET1 0 1E6
*e9 P9 0 value {2.15}
e9 P9 0 value {Limit(((667.32u*V(Tjc)**2-0.15998*V(Tjc)+11.582)*(V(gk,s1)**2)+
+ (-25.74m*V(Tjc)**2+6.128*V(Tjc)-435.11)*v(gk,s1)+
+ (0.25273*V(Tjc)**2-59.668*V(Tjc)+4213.7))/1000,0.001,5)}
R_s P9 0 1E6
e2 NET2 0 Value {15.35m*V(gk,s1)+371.85m}
R_B NET2 0 1E6
e6 NET6 0 Value {0.1}
e4 NET4 0 Value {Limit((-20m*V(gk,s1)+0.2),0,0.5)}
R_d NET4 0 1E6
e5 NET5 0 value {
+ Limit(((4.4369u*V(Tjc)**2-541.48u*V(Tjc)-19.602m)*V(gk,s1)**4+
+ (-310.13u*V(Tjc)**2+34.571m*V(Tjc)+1.6976)*V(gk,s1)**3+
+ (7.7835m*V(Tjc)**2-0.75887*V(Tjc)-51.553)*V(gk,s1)**2+
+ (-81.382m*V(Tjc)**2+6.3743*V(Tjc)+618.31)*V(gk,s1)+
+ (0.28845*V(Tjc)**2-15.09*V(Tjc)-1989.7))
*+ /10100,0.0041,1)
+ /(14.878m*V(Tjc)**2-5.80366*v(Tjc)+10.6358k),0.004,1)
+ }
R_e NET5 0 1E6
e7 NET7 0 Value {
+ if (V(gk,s1)<=9.85 ,
+ (-3.91m*V(Tjc)**2+0.2482*V(Tjc)+34.94)*V(gk,s1)**2+
+ (75.77m*V(Tjc)**2-4.339*V(Tjc)-653.9)*V(gk,s1)+
+ (-0.367*V(Tjc)**2+18.65*V(Tjc)+3043)
+ ,
+ 0
+ )
+ }
R_f NET7 0 1E6
e10 NET10 0 Value {Limit((-334.15n*V(Tjc)**2-397.52u*V(Tjc)+0.1021),0,0.8)}
R_K NET10 0 1E6
e_p8 P8 0 Value {Limit((220n*V(Tjc)**2+19.1u*V(Tjc)+10.385m),0.0005,0.8)}
R_R P8 0 1E6
R_T NET3 0 1E6
R_V gk s1 1E6
********************************
G1 d1 s1 value {
+ if(V(s1,d3)<=0,
+ 0
+ ,
+ if (V(gk,s1)<v(NET3) ,
+ 0
+ ,
+ -((((v(NET5)+v(NET4))*(v(gk,s1)-V(NET3))))*(1+v(P9)*v(s1,d3))*(((log(1+exp(v(gk,s1)-V(NET3))))**2)-
+ ((log(1+exp(v(gk,s1)-V(NET3)-(V(NET2)*v(s1,d3)*((1+exp(-v(NET10)*v(s1,d3)))**v(NET1))))))**2)))
+ )
+ )
+ }
G2 d1 s1 value {
+ if(V(d3,s1)<=0,
+ 0
+ ,
+ if (V(gk,s1)<v(NET3) ,
+ 0
+ ,
+ (((v(NET5))*(v(gk,s1)-V(NET3))))*(1+v(P8)*v(d3,s1))*(((log(1+exp(v(gk,s1)-V(NET3))))**2)-
+ ((log(1+exp(v(gk,s1)-V(NET3)-(V(NET2)*v(d3,s1)*((1+exp(-v(NET10)*v(d3,s1)))**v(NET1))))))**2))
+ )
+ )
+ }
.ends gmos_C2M0080120D
****************************************
.model bodydiode_C2M0080120D d(is=1.85u bv=1500 EG=4.6 n=9.5;//体二极管,依据理想二极管建模,没有热模型,具体参数指代参考Ltspice帮助手册
+ rs=0.030 trs1=-0.0037 trs2=0.000013 Tnom=25
+ tt=15n ibv=500u Xti=0.5 level=1)
****************************************
.subckt cgdmos_C2M0080120D d3 g1
.param k1=821p
.param k2=0.41
.param ka=250
.param kb=0.38
.param kc=5
G11 g1 d1 value {
+ k1*(
+ (1+(limit(v(d3,g1),0,430))*(1+ka*(1+TANH(kb*V(d3,g1)-kc))/2))**(-k2)
+ )*ddt(v(g1,d3))
+ }
R_CGD d1 d3 1E-4
.ends cgdmos_C2M0080120D
.subckt cdsmos_C2M0080120D d3 s1
.param Cjo = 1291p
.param Vj = 4.4365
.param M = 0.545
G12 d1 s1 value {
+ if(V(d3,s1)>0,
+ (Cjo/(1+(limit(v(d3,s1),0,580)/Vj)**M))*ddt(v(d3,s1))
+ ,
+ 0
+ )
+ }
R_CDS d1 d3 1E-4
.ends cdsmos_C2M0080120D;//ends语句,表示结束一个子电路
根据spice model绘制对应的原理图如下图所示: