Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Проблема с моделированием транзисторов в LTspice
Форум разработчиков электроники ELECTRONIX.ru > Силовая Электроника - Power Electronics > Моделирование и Анализ Силовых Устройств – Power Supply Simulation
Ascet
Доброго всем времени суток!

Я только недавно начал осваивать SwitchCad. B при моделировании прогаммы (текст программы приведен ниже) начинается "Pseudo-Transient Analysis". Кто может объяснить что именно он делает при этом анализе и почему так долго моделирует?
Даже есть отключить этот анлиз с помощью директив, то считает он все равно медленно. Что можно сделать что бы LTspice считал быстрей?
Хотя если запустить эту схему на счет в PSpice, то Pspice считает практически мгновенно.
За помощь заранее благодарен!


I1 0 1 3
X1 1 2 0 4 5 SPP11N60C3
R1 2 6 10
Vg 6 0 pulse(13 0 0 100n 100n 2.5u 5u)
X2 1 7 0 8 5 SPP11N60C3
R2 7 6 10
Rj1 4 0 1k
Rj2 8 0 1k
Vc 5 0 dc 25
X3 1 9 HFA25TB60
Vs 9 0 dc 380

****************
.SUBCKT SPP11N60C3 drain gate source Tj Tcase PARAMS: dVth=0 dRdson=0 Zthtype=0
.PARAM Rs=1m Rg=860m Ls=7n Ld=3n Lg=7n
.PARAM act=10.16 Inn=11 Unn=10 Rmax=380m
.PARAM lzth={limit(Zthtype,0,1)}
X1 dd g s Tj 1 cool_600_c_var PARAMS: act={act} dVth={dVth} dR={dRdson} Inn={Inn} Unn={Unn}
+Rmax={Rmax} Rs={Rs} heat=1
L_Ld drain dd {Ld}
R_Ld drain dd 10
L_Ls source lsrs {Ls}
R_Ls source lsrs 10
R_Rs s lsrs {Rs}
L_Lg gate lgrg {Lg}
R_Lg gate lgrg 10
R_Rg lgrg g {Rg}
C_CZth1 Tj 0 97.739u
C_CZth2 0 1 589.388u
C_CZth3 0 2 832.077u
C_CZth4 0 3 4.73m
C_CZth5 0 4 11.546m
C_CZth6 0 Tcase 140m
C_CZth7 0 6 500m
C_CZth8 0 7 450m
R_Rth1 Tj 1 {16.69m+lzth*4.33m}
R_Rth2 1 2 {23.03m+lzth*5.97m}
R_Rth3 2 3 {129.21m+lzth*33.5m}
R_Rth4 3 4 {187.32m+lzth*211.81m}
R_Rth5 4 Tcase {182.56m+lzth*205.59m}
R_Rth6 Tcase 6 400m
R_Rth7 6 7 15.8
.ENDS
***********************************
.SUBCKT cool_600_c_var dd g s Tj t1 PARAMS: act=1 dVth=0 dR=0 Inn=1u Unn=10 Rmax=1 Rs=1u heat=1

*control parameter: 1 if diode should store charge, 0 otherwise
.PARAM enable_diode=1

.PARAM w0={1p+SQRT(act)*1.5p} w1={244p*act} w2={42p*act} x1=-1.6 x2=-117m Uoff=0.25 y1={exp(Uoff*x1)}
.PARAM w3={200p*act} w4={56p*act} w5={200p*act} x3=-83.4m x4=0.5 x5=2 x6=1 x7=1
.PARAM Cgs={125p*act} Cox={w0+w1+w2}
.PARAM k14=-2 delta=1

.PARAM L=2u g2=57.5m theta=90m c=1.05
.PARAM Vth0=3.7 T=300 Tref=273 auth=5m
.PARAM aubr=600m Ibr=100p Ubr=600 coxi=431.4u
.PARAM Un=98.32u Utnbr=207m W={170m*act} nsub=5
.PARAM g11=2.4 g16=-27.93 ta=1u td=110n
.PARAM al=1 Rd0={2.89/act} Rd1={96.9m/act} Uc=12.5
.PARAM kbq=85.8u lnBr=-29
.PARAM wcml={W*coxi*g2/L}

.PARAM Vmin={if(act<1,3,2.8)} Vmax={if(act<1,3.7,3.9)}
.PARAM Vth={Vth0+(Vmax-Vth0)*limit(dVth,0,1)-(Vmin-Vth0)*limit(dVth,-1,0)}
.PARAM p1={Unn-Inn*Rs-Vth0}
.PARAM p2={(((p1-SQRT(p1**2-4*c/wcml*Inn*(1+theta*p1)))/c*al+1)**2-1)/(4*al)}
.PARAM p3={Uc/(2*(Inn*(Inn*(Rmax-Rs)-p2)))}
.PARAM Rlim={p3*(-Uc+SQRT(Uc**2+4*(Rmax*Inn)**2-8*Rmax*Inn*(Inn*Rs+p2)+(2*p2+2*Inn*Rs)**2))}
.PARAM dRd={Rd0+if(dVth==0,limit(dR,0,1)*max(Rlim-Rd0,0),0)}

.FUNC I0(Uee,p,pp,z1) {if(Uee>pp,(Uee-c*z1)*z1,p*(pp-p)/c*exp((Uee-pp)/p))}
.FUNC I2(Uds,p,Uee,z1,Tjx) {(wcml/(1+theta*Uee)*(T/Tjx)**1.5)*I0(Uee,p,min(2*p,p+c*Uds),z1)}
.FUNC Ig(Uds,Ugs,Tjx,p) {I2(Uds,p,Ugs-Vth+auth*(Tjx-T),min(Uds,(Ugs-Vth+auth*(Tjx-T))/(2*c)),Tjx)}
.FUNC Idbr(Uds,Tjx) {act*exp(min(lnBr+(Uds-UBr-aubr*(Tjx-T))/UTnbr,23))}
.FUNC Iges(Uds,Ugs,Tjx) {sgn(Uds)*Ig((SQRT(1+4*al*abs(Uds))-1)/2/al,Ugs,Tjx,nsub*kbq*Tjx)}

.FUNC Is(Tjx) {exp(min(g16+(Tjx/T-1)*(1.12/(Un*Tjx)),23))*(Tjx/T)**1.5}
.FUNC Ird(Usd,Tjx) {act*(-Is(Tjx)+exp(min(log(Is(Tjx))+Usd/(Un*Tjx),23)))}

G_G1 d s VALUE={Iges(V(d,s),V(g,s),Tref+limit(V(Tj),-200,999))}
R1 g s 1G
Rd01 d s 500Meg

G_G_Rd ldrd d VALUE {V(ldrd,d)/((dRd*0.5*(1+SQRT(1+4*(max(V(ldrd,d),0)/Uc)**2)))*((Tref+LIMIT(V(t1),-200,999))/T)**g11)}
R_R_ERd_g ldrd d 10k

G_Rdiod ldrd dio2 VALUE {V(ldrd,dio2)/(Rd1*((Tref+LIMIT(V(t1),-200,999))/T)**1.5)}
R_Rdiod ldrd dio 500Meg
V_sense dio dio2 0

G_diode s dio VALUE={Ird(V(s,dio),Tref+LIMIT(V(t1),-200,999))}
Rd02 s dio2 500Meg
G_diode2 s dio2 VALUE={LIMIT(I(V_sense2),-1k,1k)-Idbr(V(dio2,s),Tref+LIMIT(V(t1),-200,999))}

C_pack dd g {w0}
E_Edg1 d ox1 VALUE {V(d,g)-((exp(min((V(d,g)+Uoff)*x1,0))-y1)/x1+min((V(d,g)+Uoff),0))}
C_Cdg1 ox1 g {w1}
E_Edg2 d ox2 VALUE {V(d,g)-((exp(min(V(d,g)*x2,0))-1)/x2+min(V(d,g),0))}
C_Cdg2 ox2 g {w2}

E_Eds1 dio2 dEQJ1 VALUE {V(dio2,s)-(exp(min(V(dio2,s)*x3,0))-1)/x3+min(V(dio2,s),0)}
C_Cds1 s dEQJ1 {w3}
E_Eds2 d dEQJ2 VALUE {V(d,s)-2*(SQRT(x6*limit(x6+V(d,s),0,2*UBr))-x6)}
C_Cds2 s dEQJ2 {w4}
E_Eds3 dio2 dEQJ3 VALUE {V(dio2,s)-1/(1-x5)*(x7**x5*limit(x7+V(dio2,s),0,2*UBr)**(1-x5)-x7)}
C_Cds3 s dEQJ3 {w5}

E_Egs g sm VALUE {(0.5*((V(g,s)-k14)+SQRT((V(g,s)-k14)**2+delta*0.3))-delta*0.3)*Cox/(Cgs+Cox)}
C_Cgs sm s {Cgs+Cox}

V_Isense dd ldrd 0

G_G_Ptot_channel 0 Tj VALUE {heat*LIMIT(V(d,s)*I(V_Isense),0,100k) }
G_G_Ptot_Epi 0 t1 VALUE {heat*LIMIT(V(ldrd,d)*I(V_Isense),0,100k) }

*auxillary circuit for non-equilibirium diode charge

C_C001 a 0 {ta*td/(ta+td)}
R_R001 a b 1
V_sense2 b c 0
E_E001 c 0 VALUE {-enable_diode*ta/td*I(V_sense)}

.ENDS
**********************************
* created using Parts release 7.1p on 08/16/96 at 13:44
.SUBCKT HFA25TB60 1 2
D1A 1 2 DFWD
D1B 1 2 DXTRA
RLEAK1 1 2 458.073Meg
.MODEL DFWD D
+ IS=2.272071E-15
+ N=1.99997
+ RS=48.29162E-3
+ IKF=.1
+ CJO=1.4780E-9
+ M=.59053
+ VJ=.3905
+ ISR=29.40402E-12
+ NR=1.41349
+ BV=684.14
+ IBV=.25868
+ TT=10.682E-9
.MODEL DXTRA D
+ IS = 88.02677E-12
+ RS = 7.881555E-3
+ N = 1.7017
+ IKF = 260.849E-6
+ TT = 0
+ CJO = 0
+ VJ = 1
+ M = .5
+ EG = 1.11
+ XTI = 3
+ KF = 0
+ AF = 1
+ FC = .5
+ BV = 1E5
+ IBV = .001
.ENDS

****************************
.Tran 2n 10.0u 10n 2n
.Probe
.End
Пушкарев Михаил
К сожалению, не все модели в PSpice подходят для LTSpice.
_Pasha
Для затравки отключите op-point итерации
Код
.option noopiter
Ascet
Да, не все модели подхотят. Но эту модель он все же считает, но очень медленно. И хотелось бы понять из-за чего, чтобы он стала нормально работать на LTspice. Что в ней надо исправить smile.gif

При использовании опции "noopiter" ничего особо не изменилось.
_Pasha
Цитата(Ascet @ Jan 26 2010, 16:22) *
При использовании опции "noopiter" ничего особо не изменилось.

Посмотрите лог при использовании нормального солвера. В этом случае выдается оч много матюков про singular matrix, а альтернативный солвер никаких воплей не издает - имхо, прогоняя что-то типа DCsweep, пытается обойти несходимости с тыла smile.gif.
Ascet
У мня если поставить альтернативный солвер тоде выдает
Код
Singular matrix:  Check node d:3:1b#internal
   Iteration No. 2
Fatal Error: Singular matrix:  check node d:3:1b#internal
   Iteration No. 2

Как и при использовании нормального солвера.
Может надо проставить еще какие опции, хотя я уже их много перепробовал.
_Pasha
Цитата
check node d:3:1b#internal

Дело в модели, очевидно.
Ascet
Да походу дела в модели. При альтернативнов солвере LTspice постоянно ругается. А вот при номальном я умудрился запустить, так что нормально считает и немного быстрей. Просто меняя параметры схемы.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2024 Invision Power Services, Inc.