Proteus, KiCAD и другие ECAD Разработчик так или иначе сталкивается с системами автоматизированного проектирования. Данный раздел - по САПР. |
25.04.2023, 19:47
|
|
Прописка
Регистрация: 07.10.2022
Сообщений: 191
Сказал спасибо: 328
Сказали Спасибо 13 раз(а) в 9 сообщении(ях)
|
Re: LTspice - освоение с «0»
Большое спасибо!
Спрашивая про синтаксис, я надеялся, что существует возможность указать в наименовании транзистора нечто вроде:
Код:
|
KT3107 TEMP={Ic(Q1)*Vce(Q1)*Wкорпус+Tвнеш} |
Если указывать общую ("глобальную") температуру, - параметры транзистора меняются штатными средствами LTspice, вот я и подумал, нельзя ли это как-то применить для исследования тепловых искажений?
Последний раз редактировалось catBot; 25.04.2023 в 19:51.
|
|
|
|
25.04.2023, 20:04
|
|
Почётный гражданин KAZUS.RU
Регистрация: 04.06.2007
Адрес: Минск, Беларусь
Сообщений: 7,780
Сказал спасибо: 740
Сказали Спасибо 3,890 раз(а) в 2,768 сообщении(ях)
|
Re: LTspice - освоение с «0»
catBot,
нет, так нельзя. Так работать не будет и будет указание об ошибке.
|
|
|
|
26.04.2023, 00:42
|
|
Почётный гражданин KAZUS.RU
Регистрация: 20.03.2007
Адрес: "Братское кольцо враждебности", т.е. ближайшее заМКАДье.
Сообщений: 6,920
Сказал спасибо: 2,982
Сказали Спасибо 3,161 раз(а) в 2,146 сообщении(ях)
|
Re: LTspice - освоение с «0»
Вот как моделирует внутреннюю температурную структуру обеднённых MOSFET'ов фирма Infineon (K_250_d_var - параметризуемая электрическая модель этих MOSFET):
Нажмите, чтобы открыть спойлер
Код:
|
********************
.SUBCKT BSS139 drain gate source Tj Tcase PARAMS: dVth=0 dRdson=0 dgfs=0 dC=0 Zthtype=0
.PARAM Rs=0.074 Rg=10 Ls=3n Ld=1n Lg=3n
.PARAM Inn=0.015 Unn=0 Rmax=30
.PARAM act=0.28
X1 d1 g s Tj K_250_d_var PARAMS: a={act} dVth={dVth} dR={dRdson} Inn={Inn} Unn={Unn}
+Rmax={Rmax} dgfs={dgfs} Rs={Rs} dC={dC} heat=1
Rg g1 g {Rg}
Lg gate g1 {Lg*if(dgfs==99,0,1)}
Gs s1 s VALUE={V(s1,s)/(Rs*(1+(limit(V(Tj),-200,999)-25)*4m))}
Rsa s1 s 1Meg
Ls source s1 {Ls*if(dgfs==99,0,1)}
Ld drain d1 {Ld*if(dgfs==99,0,1)}
Rth1 Tj t1 {624.77m+limit(Zthtype,0,1)*231.23m}
Rth2 t1 t2 {2.85+limit(Zthtype,0,1)*1.06}
Rth3 t2 t3 {5.96+limit(Zthtype,0,1)*781.17m}
Rth4 t3 t4 {68.15+limit(Zthtype,0,1)*58.03}
Rth5 t4 Tcase {79.56+limit(Zthtype,0,1)*67.75}
Cth1 Tj 0 10.376u
Cth2 t1 0 17.965u
Cth3 t2 0 180.456u
Cth4 t3 0 374.154u
Cth5 t4 0 4.696m
.ENDS
*$
.SUBCKT K_250_d_var dd g s Tj PARAMS: a=1 dVth=0 dR=0 dgfs=0 Inn=1 Unn=1 Rmax=1
+gmin=1 Rs=1 Rp=1 dC=0 heat=1
.PARAM Vth0=-1.1 beta4c=0.217 ph0=20 ph1=0.026 Ubr=295
.PARAM Rd=2 nmu=2.6 Rf=0.15 rpa=0.10933 lnIsj=-24.7
.PARAM Rdi=0.2
.PARAM Tref=298 T0=273 auth=3m c=0.82 mu_bet=0.4
.PARAM f_bet=-2 ndi=1.2 UTnbr=207m lnBr=-23 kbq=85.8u
.PARAM Wcml={beta4c*4*c}
.PARAM aubr={0.93m*UBr}
.PARAM dvgs={0.1-0.06*Vth0}
.PARAM f1=65p f2=85p f3=198p f4=305p f5=314p
.PARAM U0=0.5 nd=0.45 nc=0.5 g1=2.2 bb=-7.5
.PARAM sl=31p remp=0p ta=60n td=20n
.PARAM Vmin=-2.1 Vmax=-1 dCmax=0.35
.PARAM Vth={Vth0+(Vmax-Vth0)*limit(dVth,0,1)-(Vmin-Vth0)*limit(dVth,-1,0)}
.PARAM p0={Wcml*a*((1-f_bet)*(T0/Tref)**mu_bet+f_bet) }
.PARAM Rlim={(Rmax-Rs-(Unn-Vth0-Inn*Rs-SQRT((Unn-Vth0-Inn*Rs)**2-4*c*Inn/p0))/(2*c*Inn))/(1+rpa*(Inn/a)**2)}
.PARAM dRd={Rd/a+if(dVth==0,limit(dR,0,1)*max(Rlim-Rd/a,0),0)}
.PARAM bet={Wcml}
.PARAM dC1={1+dCmax*limit(dC,0,1)}
.PARAM Cox={f1*a*dC1}
.PARAM Cds0={f2*a*dC1}
.PARAM Cgs0={f3*a*dC1}
.PARAM Cox1={f5*a*dC1}
.PARAM Crand={remp*SQRT(a)}
.PARAM dRdi={Rdi/a}
.FUNC U1(Uds,T) {(SQRT(1+4*(0.4+(T-T0-25)*2m)*abs(Uds))-1)/2/(0.4+(T-T0-25)*2m)}
.FUNC I2(p,Uee,z1,pp) {if(Uee›pp,(Uee-c*z1)*z1,p*(pp-p)/c*exp((Uee-pp-(min(0,Uee))**2)/p))}
.FUNC Ig(Uds,T,p,Uee) {bet*((1-f_bet)*(T0/T)**mu_bet+f_bet)*I2(p,Uee,min(Uds,Uee/(2*c)),min(2*p,p+c*Uds))}
.FUNC Iges(Uds,Ugs,T)
+{a*(sgn(Uds)*Ig(U1(Uds,T),T,1/(ph0-ph1*T),Ugs-Vth+auth*(T-Tref))+exp(min(lnBr+(abs(Uds)-UBr-aubr*(T-Tref))/UTnbr,25)))}
.FUNC Isjt(Tj) {exp(min(lnIsj+(Tj/Tref-1)*1.12/(ndi*kbq*Tj),9))*(Tj/Tref)**1.5}
.FUNC Idiode(Usd,Tj,Iss) {exp(min(log(Iss)+Usd/(ndi*kbq*Tj),9))-Iss}
.FUNC Idiod(Usd,Tj) {a*Idiode(Usd,Tj,Isjt(Tj))}
.FUNC QCdg(x,z) {if(f4›f5,(f5**2-(f4-z*sl)**2)/(2*sl)+f5*min(x,(f4-f5)/sl),f4*z-sl*z**2/2-f5*max((f4-f5)/sl-x,0))}
E_Edg d ox VALUE {V(d,g)-(min(V(d,g),-bb)+1/(g1*(1-nc))*((1/(1+g1*max(V(d,g)+bb,0)))**(nc-1)-1))}
C_Cdg ox g {Cox}
E_Edg1 d ox1 VALUE {V(d,g)-QCdg(V(d,g),limit(V(d,g),(f4-f5)/sl,f4/sl))/f5}
C_Cdg1 ox1 g {Cox1}
C_Cdg2 d g {Crand}
E_Eds d edep VALUE {(V(d2,s)-I(V_sense3)/Cds0)}
C_Cds edep s {Cds0}
C_Cds2 d2 s {Cds0/500}
C_Cgs g s {Cgs0}
G_chan d s VALUE={Iges(V(d,s),V(g,s),T0+limit(V(Tj),-200,350))}
E_RMos d1 d VALUE={I(V_sense)*(Rf*dRd+(1-Rf)*dRd*((limit(V(Tj),-200,999)+T0)/Tref)**nmu)*(1+rpa*(I(V_sense)/a)**2)}
V_sense dd d1 0
G_diode s d2 VALUE={Idiod(V(s,d2),T0+limit(V(Tj),-200,499))}
R_Rdio d2 d3 {dRdi}
V_sense2 d1 d3 0
L_L001 a c {td/(ta+td)}
R_R001 a b {1/ta}
V_sense3 c f 0
R_sense3 f 0 1
E_E001 b 0 VALUE {I(V_sense2)}
E_E002 e 0 VALUE {1Meg*Cds0*(1/(1-nd)*U0**nd*(limit(U0+V(d2,s),U0/2,2*UBr))**(1-nd)+2**nd*min(V(d2,s)+U0/2,0))}
R_R002 e c 1Meg
R1 g s 1G
Rd01 d s 500Meg
Rd02 d2 s 500Meg
Rd03 d1 d 10k
G_TH 0 Tj VALUE = {heat*LIMIT(I(V_sense)*V(dd,s),0,100k)}
.ENDS
*$
******************** |
В тепловой модели - мы видим цепочку СRC-звеньев от кристалла к окружающей среде. Начиная с теплоёмкости активной зоны кристалла Cth1, сопротивления между активной зоной и массой кристалла и теплоёмкостью всей массы кристалла(?) - Rth1*Cth2 и т.д., заканчивая сопротивлением и теплоёмкостью наружной металлической пластины корпуса - Rth5*Cth5.
В электрической - видим генерацию входного сигнала для этой цепочки из мгновенной мощности.
P.S. Зимой делал демонстрационную модельку анемометра на основе идеи стабилизатора с напряжением запрещённой зоны (bandgap), где нагрев двух транзисторов разными токами - формировал разницу их температур. Остужение потоком воздуха (взмах ладонью) - преимущественно влияло на более нагретый и отчётливо проявлялось. Можно попробовать загнать это с симулятор...
__________________
Экзорцист 40-го уровня.
|
|
|
Эти 2 пользователя(ей) сказали Спасибо ForcePoint за это сообщение:
|
|
|
26.04.2023, 07:22
|
|
Временная регистрация
Регистрация: 31.03.2023
Сообщений: 96
Сказал спасибо: 24
Сказали Спасибо 26 раз(а) в 21 сообщении(ях)
|
Re: LTspice - освоение с «0»
Сообщение от bordodynov
|
[ Одним из способов уменьшить тепловые искажения это использовать схему с ОБ.
|
Это, конечно, правильно, но главное - глубокая ООС.
Это средняя мощность и изменение мощности входного каскада
шушуринского усилителя:
|
|
|
|
26.04.2023, 07:25
|
|
Временная регистрация
Регистрация: 31.03.2023
Сообщений: 96
Сказал спасибо: 24
Сказали Спасибо 26 раз(а) в 21 сообщении(ях)
|
Re: LTspice - освоение с «0»
А это хорошего усилителя:
Причём искажения первого каскада ООС не уменьшает,
поскольку они, это входной сигнал.
|
|
|
|
26.04.2023, 07:30
|
|
Временная регистрация
Регистрация: 31.03.2023
Сообщений: 96
Сказал спасибо: 24
Сказали Спасибо 26 раз(а) в 21 сообщении(ях)
|
Re: LTspice - освоение с «0»
Здесь мощности и изменения мощностей транзистора усилителя напряжения
тех же усилителей:
В плохом варианте мощность на транзисторе изменяется от нуля до максимума.
Тут ООС, конечно постарается, но сколько её у шушурина
и сколько в другом?
|
|
|
|
26.04.2023, 12:19
|
|
Прописка
Регистрация: 07.10.2022
Сообщений: 191
Сказал спасибо: 328
Сказали Спасибо 13 раз(а) в 9 сообщении(ях)
|
Re: LTspice - освоение с «0»
Сообщение от bordodynov
|
Так работать не будет и будет указание об ошибке.
|
Да, перед тем, как спросить тут, - я попробовал подобрать формулу.
Получил ошибку.
Это принципиально невозможно (запрещено синтаксисом делать вычисления в одной из составляющих наименования транзистора), или такая возможность просто не заложена в программе?
Может ли автор такое внедрить?
Хотя, попытка городить подобное в каждом транзисторе - загромоздит схему.
Наверное правильнее делать такие вычисления в вынесенном макросе.
Последний раз редактировалось catBot; 26.04.2023 в 12:22.
|
|
|
|
26.04.2023, 12:48
|
|
Почётный гражданин KAZUS.RU
Регистрация: 04.06.2007
Адрес: Минск, Беларусь
Сообщений: 7,780
Сказал спасибо: 740
Сказали Спасибо 3,890 раз(а) в 2,768 сообщении(ях)
|
Re: LTspice - освоение с «0»
catBot,
никакой параметр схемы не может вычисляться как фунция величин от напряжений и тока. Это можно делать только вычисляя нелинейные источники тока и напряжения и резистор. Я не знаю программы которые это делают, а я исследовал более 35 Spice программ. Автор LTspice (SWcad) уже уволился и в данный момент разрабатывает новую программу, не привязанную ни к какой фирме. Бета версия имеет имя Qspice. Она появится для тестирования в мае.
Последний раз редактировалось bordodynov; 26.04.2023 в 12:52.
|
|
|
Сказали "Спасибо" bordodynov
|
|
|
28.04.2023, 13:18
|
|
Прописка
Регистрация: 07.10.2022
Сообщений: 191
Сказал спасибо: 328
Сказали Спасибо 13 раз(а) в 9 сообщении(ях)
|
Re: LTspice - освоение с «0»
Добрый день!
Я надеялся, что LTspice допускает указание величины усиления не только числом, но и выражением.
Например, {I(R1)}.
Но это не работает, - ни с фигурными скобками, ни без них.
Это и есть обсуждаемое ограничение/запрет на вычисление параметра как фунции величин напряжений и токов?
|
|
|
|
28.04.2023, 16:25
|
|
Почётный гражданин KAZUS.RU
Регистрация: 04.06.2007
Адрес: Минск, Беларусь
Сообщений: 7,780
Сказал спасибо: 740
Сказали Спасибо 3,890 раз(а) в 2,768 сообщении(ях)
|
Re: LTspice - освоение с «0»
catBot,
вы же сами убедились, что так как вы хотите не работает и не работает в любом Spice.
|
|
|
Сказали "Спасибо" bordodynov
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 09:31.
|
|