correct and simplify temp derivatives
This commit is contained in:
parent
3340df46ca
commit
a6590d354f
|
|
@ -297,17 +297,21 @@ VDMOSload(GENmodel *inModel, CKTcircuit *ckt)
|
|||
/* Calculate temperature dependent values for self-heating effect */
|
||||
if (selfheat) {
|
||||
Beta = here->VDMOStTransconductance;
|
||||
dBeta_dT = Beta * model->VDMOSmu * pow(Temp, model->VDMOSmu-1) / pow(model->VDMOStnom, model->VDMOSmu);
|
||||
dBeta_dT = model->VDMOStransconductance * here->VDMOSm
|
||||
* model->VDMOSmu * pow(Temp/model->VDMOStnom, model->VDMOSmu) / Temp;
|
||||
rd0T = here->VDMOSdrainResistance;
|
||||
if (model->VDMOStexp0Given)
|
||||
drd0T_dT = rd0T * model->VDMOStexp0 * pow(Temp, model->VDMOStexp0-1) / pow(model->VDMOStnom, model->VDMOStexp0);
|
||||
drd0T_dT = model->VDMOSdrainResistance / here->VDMOSm
|
||||
* model->VDMOStexp0 * pow(Temp/model->VDMOStnom, model->VDMOStexp0) / Temp;
|
||||
else
|
||||
drd0T_dT = rd0T * (model->VDMOStrd1 + model->VDMOStrd2*(2*model->VDMOStnom*Temp - model->VDMOStnom*model->VDMOStnom));
|
||||
drd0T_dT = model->VDMOSdrainResistance / here->VDMOSm
|
||||
* (model->VDMOStrd1 + 2 * model->VDMOStrd2 * (Temp - model->VDMOStnom));
|
||||
rd1T = 0.0;
|
||||
drd1T_dT = 0.0;
|
||||
if (model->VDMOSqsGiven) {
|
||||
rd1T = here->VDMOSqsResistance;
|
||||
drd1T_dT = rd1T * model->VDMOStexp1 * pow(Temp, model->VDMOStexp1-1) / pow(model->VDMOStnom, model->VDMOStexp1);
|
||||
drd1T_dT = model->VDMOSqsResistance / here->VDMOSm
|
||||
* model->VDMOStexp1 * pow(Temp/model->VDMOStnom, model->VDMOStexp1) / Temp;
|
||||
}
|
||||
} else {
|
||||
Beta = here->VDMOStTransconductance;
|
||||
|
|
|
|||
Loading…
Reference in New Issue