#******************************************************************* # The initial guidelines and structure for this IGBT model # originated from a course on power semiconductor device models # taught by P. O. Lauritzen. The course was sponsored by the # Danfoss Professor Programme at Aalborg University in Denmark. # Further model development occurred at the University of # Washington, Seattle, WA, USA. # Gert K. Andersen and Chandana Perera of Aalborg University and # Martin Helsper of Christian-Albrechts-University of Kiel, Germany # assisted in validation of the model. # # # This version corrects errors in the equations for the capacitances # the cathode parasitic inductance and the cathode resisance. # # Copyright (c)March 23, 2001 by the above authors. # # Sign error in expression for vGKi corrected and expression # for qp4 modified in May 2008. Errors in the expressions for # qp4, Qak0 and u5Ki corrected in January 2011 thanks to Ivica # Stevanovic. # # For comments or additional information on the model send # # e-mail to: # # plauritz@ee.washington.edu # # # #******************************************************************* template igbt3 a g k = model electrical a,g,k struc { number kp = 150, # 150 #MOSFET Transconductance Coefficient (A) VT = 6.22, # 6.22 #Threshold Voltage (V). Default 5 b = 1.9, # 1.9 #mobility reduction fitting parameter(nu). default 2 kv = 1.65, # 1.65 #Turn-on Voltage fitting parameter(nu). default 1 # #The following 4 parameters T0, tB, tA, ILH cannot be set to zero. # T0 = 466n, #Base transit time at low Voltage (t). Default 1u. tB = 1.76u, #Base carrier lifetime (t). Default 2u. tA = 160n, #eq. lifetime of anode emitter efficiency (t) ILH = 4, #Transition from low to high level injection (A) vj = 1.0, #Junction Built-in Voltage (V). Default 0.6 vpt = 600, #punch through voltage (V) rH = 0, #high voltage & current parameter (1/I) where #rH=vpt/(vj*IH)where IH is the current when this effect begins. Default 0.0 Cox = 1.10n, #gate-anode oxide capacitance (F). Default 1n Cgk0 = 2.14n, #gate-cathode capacitance at zero bias(F). Default 1n Cak0 = 1.00n, #anode-cathode capacitance at zero bias(F). Default 2n gamma = 0.30, #Base body effect parameter (V**1/2). Default 0.2 rK = 0.1, #Cathode parasitic resistance (ohm) LK = 0.1n #Cathode parasitic inductance (H)** } model = () { number kb=1.381e-23, # Boltzmann's constant q=1.602e-19, # Electron charge fc=0.5, # Parameter for junction capacitance temp=27 # Device temperature #Variable declarations--------------------------------------------- val nu u45,u5G,uox,uGKi,uAK,ulim #normalized voltages val v vGKi #internal gate-cathode voltage val i id,iA,ip34,in34,in45,in56,iK #internal currents val q qp4,qp5,q34,q56,bq,qAG #diffusion and depletion charges val nu cqm val nu y,yu,uu5Kpt #y is the normalized base width val time tt #base transit time var nu u34,u5Ki,udep #normalized internal voltages var i ip46,iCak,iCab,iCag,iCgk #internal currents var v vKi #external to internal cathode voltage struc {number bp, inc # }sv[*] = [(-10k,100), (-1,50m), (0,10m), (1.5,50m), (3,0)], }npu[*] = [(0,5),(100,0)], nnu[*] = [(-100,5),(0,0)] #nnu[*] = [(-100,5),(0,1000),(5000,500),(200000,0)] number kp,VT,vth,b,kv,T0,tB,tA,tK,ILH,QB,Qi,vj,uj,vpt,upt,rH,ruH,IAS,IKS, Cox,Cgk0,Cak0,Cab0,gamma,Qi2,QpB,qAG0,rK,LK,Qak0,Qak1,Qak2 #Internal parameters------------------------------------------------- parameters { kp=model->kp #MOSFET Transconductance Coefficient VT=model->VT #Threshold Voltage vpt=model->vpt #Punch Through Voltage b =model->b #mobility reduction fitting parameter kv=model->kv #Turn-on Voltage fitting parameter T0=model->T0 #Base transit time at low Voltage tB=model->tB #Base carrier lifetime tA=model->tA #Emitter efficiency ILH=model->ILH #Low to high injection transition vj=model->vj #Junction Built-in Voltage rH=model->rH #high current parameter Cox=model->Cox #gate-anode oxide capacitance Cgk0=model->Cgk0 #gate-cathode capacitance at zero bias Cak0=model->Cak0 #anode-cathode capacitance at zero bias Cab0=2*Cak0 #anode-base capacitance at zero bias gamma=model->gamma #Base body effect parameter rK=model->rK #Cathode parasitic resistance LK=model->LK #Cathode parasitic inductance vth=kb*(temp+273)/q #Thermal voltage uj=vj/vth #Normalized built-in voltage upt=vpt/vth #normalized punch through voltage ruH=rH/vth qAG0=Cox*gamma*sqrt(vth) QB=2*T0*ILH Qi=QB/(sqrt(exp(uj))) Qi2=Qi*Qi QpB=Qi2/QB tK=tA # Cathode efficiency tK becomes relevant as a separate # parameter only when iA reverses in ZCS applications. IAS=Qi2/QB/tA IKS=Qi2/QB/tK Qak0=2*Cak0*vj Qak1=Cak0*vth Qak2=Cak0*vth/uj/4 } #Calculation of local variables---------------------------------------- values{ #Normalization of Voltages vGKi = v(g)-v(k)-vKi #Sign of vKi corrected 2008May7 uGKi = vGKi/vth uAK = (v(a)-v(k))/vth #Gate & cathode depletion charge calculations u5G=u5Ki-uGKi if (udep>0){ qAG=qAG0*sqrt(abs(limexp(-udep)+udep-1)) } else {qAG=-qAG0*sqrt(abs(limexp(-udep)+udep-1)) } uox=qAG/Cox/vth if (u5Ki>0){ q56=Qak0*sqrt(1+u5Ki/uj) } else { q56=Qak0+u5Ki*Qak1-u5Ki*u5Ki*Qak2 } q34=vth*Cab0*u34 #Current calculations in34= IAS*(limexp(u34)-1) in56=-IKS*(limexp(-u5Ki)-1) if (vGKi<=VT) { id = 0 } else { id=kp/2*((vGKi/VT-1)**b)*tanh(kv*vth*u5Ki/(vGKi-VT)) } in45=iCak+id+iCag+in56 #electron current into base iA=ip46+in45 ip34=iA-in34-iCab iK=iA-iCag+iCgk #Variable base width calculations uu5Kpt=40*(u5Ki/upt-0.87) ulim=limexp(uu5Kpt) yu=((uj+u5Ki)/(upt+(ip46-id)*ruH)+0.9*ulim)/(1+ulim) if (yu>=0) {y=1-sqrt(abs(yu)) } else { y=1 } tt=T0*y #Diffusion charge calculations qp5=QpB*limexp(-u5Ki) bq=tt*(in45-ip46)+QB-2*qp5 #"B" term in quadratic solution cqm=QB*(qp5+tt*ip46) if (bq*bq>cqm*1.0e2) {qp4= 2*cqm/(bq+sqrt(bq*bq+8*cqm)) } else{qp4=0.25*(-bq+sqrt(abs(bq*bq+8*cqm))) } u45=tt*(in45+ip46)/(2*qp4+QB) } control_section{ #forces iteration steps on exponentials #pl_set(qe,vdiode) #sample_points(,sv) newton_step(u34,npu) newton_step(u5Ki,nnu) newton_step(udep,nnu) } #Calculation of system variables---------------------------------------- equations { iCak: iCak=d_by_dt(q56) iCab: iCab=d_by_dt(q34) udep: u5G=udep+uox iCag: iCag=+d_by_dt(qAG) ip46: ip34-ip46=(qp4-QpB)*y/tB+d_by_dt(qp4*y) u34: qp4*(qp4+QB)=Qi2*limexp(u34) u5Ki: uAK=u34+u45+u5Ki+vKi/vth iCgk: iCgk=d_by_dt(Cgk0*vGKi) vKi: vKi=iK*rK+d_by_dt(LK*iK) #Calculation of terminal currents i(a) += iA i(g) += -iCag+iCgk i(k) -= iK } }