spice语言建模功率器件语法学习-基于CreeC2M0080120D

spice语言建模功率器件语法学习-基于CreeC2M0080120D

参考教材1:《电力电子学的spice仿真-第三版》

参考教材2:Semiconductor Device Modeling With SPICE

Ltspice 帮助文档

spice语言建模功率器件语法学习-基于CreeC2M0080120D

参考教材1:《电力电子学的spice仿真-第三版》

参考教材2:Semiconductor Device Modeling With SPICE

Ltspice 帮助文档

基础知识

缩写对应的模型

基础语句:缩写<元器件名> <正结点> <负节点> <值>

缩写对应器件
RResistor
CCapacitor
KMutual inductor
TTransmission lines (lossless)
VIndependent voltage source
IIndependent 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
QBJT
DDIODE
JJ-FET
MMOST
XSub-circuit
BGaAs MES FET
Wcurrent-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
T1E12
G1E9
MEG1E6
K1E3
MIL25.4E-6
M1E-3
U1E-6
N1E-9
P1E-12
F1E-15

行为模型语句-截取帮助文档中任意行为电源

数学语句

Spice库中VALUE描述的受控源的传递函数可以写成一个标准形式的数学表达 式。其一般形式为:

image1

image2

器件实例-以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绘制对应的原理图如下图所示:

image3

基础知识

缩写对应的模型

基础语句:缩写<元器件名> <正结点> <负节点> <值>

缩写对应器件
RResistor
CCapacitor
KMutual inductor
TTransmission lines (lossless)
VIndependent voltage source
IIndependent 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
QBJT
DDIODE
JJ-FET
MMOST
XSub-circuit
BGaAs MES FET
Wcurrent-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
T1E12
G1E9
MEG1E6
K1E3
MIL25.4E-6
M1E-3
U1E-6
N1E-9
P1E-12
F1E-15

行为模型语句-截取帮助文档中任意行为电源

数学语句

Spice库中VALUE描述的受控源的传递函数可以写成一个标准形式的数学表达 式。其一般形式为:

image1

image2

器件实例-以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绘制对应的原理图如下图所示:

image3

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值