VDMOS include thermal components into convtest

This commit is contained in:
dwarning 2020-03-15 09:47:58 +01:00
parent a0f168e72e
commit a49a05ec0d
1 changed files with 15 additions and 2 deletions

View File

@ -23,6 +23,8 @@ VDMOSconvTest(GENmodel *inModel, CKTcircuit *ckt)
double vgd; double vgd;
double vgdo; double vgdo;
double tol; double tol;
int selfheat;
double delTemp, deldelTemp;
for( ; model != NULL; model = VDMOSnextModel(model)) { for( ; model != NULL; model = VDMOSnextModel(model)) {
for(here = VDMOSinstances(model); here!= NULL; for(here = VDMOSinstances(model); here!= NULL;
@ -41,18 +43,29 @@ VDMOSconvTest(GENmodel *inModel, CKTcircuit *ckt)
delvds = vds - *(ckt->CKTstate0 + here->VDMOSvds); delvds = vds - *(ckt->CKTstate0 + here->VDMOSvds);
delvgd = vgd-vgdo; delvgd = vgd-vgdo;
selfheat = (here->VDMOSthermalGiven) && (model->VDMOSrthjcGiven);
if (selfheat) {
delTemp = *(ckt->CKTrhs + here->VDMOStempNode);
deldelTemp = delTemp - *(ckt->CKTstate0 + here->VDMOSdelTemp);
} else {
delTemp = 0.0;
deldelTemp = 0.0;
}
/* these are needed for convergence testing */ /* these are needed for convergence testing */
if (here->VDMOSmode >= 0) { if (here->VDMOSmode >= 0) {
cdhat= cdhat=
here->VDMOScd - here->VDMOScd -
here->VDMOSgm * delvgs + here->VDMOSgm * delvgs +
here->VDMOSgds * delvds ; here->VDMOSgds * delvds +
here->VDMOSgmT * deldelTemp;
} else { } else {
cdhat= cdhat=
here->VDMOScd - here->VDMOScd -
here->VDMOSgm * delvgd + here->VDMOSgm * delvgd +
here->VDMOSgds * delvds ; here->VDMOSgds * delvds +
here->VDMOSgmT * deldelTemp;
} }
/* /*
* check convergence * check convergence