Changeset 742
- Timestamp:
- 10/29/07 14:06:47 (13 months ago)
- Files:
-
- 1 modified
Legend:
- Unmodified
- Added
- Removed
-
Modelica/branches/maintenance/2.2.2/Modelica/Electrical/Analog/Semiconductors.mo
r550 r742 473 473 qbk = 1 - vbc*Vak; 474 474 475 ibc = if (vbc/Vt < EMin) then Is*(ExMin*(vbc/Vt - EMin + 1) - 1) + vbc*Gbc else475 ibc = noEvent(if (vbc/Vt < EMin) then Is*(ExMin*(vbc/Vt - EMin + 1) - 1) + vbc*Gbc else 476 476 if (vbc/Vt > EMax) then Is*(ExMax*(vbc/Vt - EMax + 1) - 1) + vbc* 477 Gbc else Is*(exp(vbc/Vt) - 1) + vbc*Gbc ;478 ibe = if (vbe/Vt < EMin) then Is*(ExMin*(vbe/Vt - EMin + 1) - 1) + vbe*Gbe else477 Gbc else Is*(exp(vbc/Vt) - 1) + vbc*Gbc); 478 ibe = noEvent(if (vbe/Vt < EMin) then Is*(ExMin*(vbe/Vt - EMin + 1) - 1) + vbe*Gbe else 479 479 if (vbe/Vt > EMax) then Is*(ExMax*(vbe/Vt - EMax + 1) - 1) + vbe* 480 Gbe else Is*(exp(vbe/Vt) - 1) + vbe*Gbe ;481 Capcjc = if (vbc/Phic > 0) then Cjc*(1 + Mc*vbc/Phic) else Cjc*pow(1 - vbc482 /Phic, -Mc) ;483 Capcje = if (vbe/Phie > 0) then Cje*(1 + Me*vbe/Phie) else Cje*pow(1 - vbe484 /Phie, -Me) ;485 cbc = if (vbc/Vt < EMin) then Taur*Is/Vt*ExMin*(vbc/Vt - EMin + 1) +480 Gbe else Is*(exp(vbe/Vt) - 1) + vbe*Gbe); 481 Capcjc = noEvent(if (vbc/Phic > 0) then Cjc*(1 + Mc*vbc/Phic) else Cjc*pow(1 - vbc 482 /Phic, -Mc)); 483 Capcje = noEvent(if (vbe/Phie > 0) then Cje*(1 + Me*vbe/Phie) else Cje*pow(1 - vbe 484 /Phie, -Me)); 485 cbc = noEvent(if (vbc/Vt < EMin) then Taur*Is/Vt*ExMin*(vbc/Vt - EMin + 1) + 486 486 Capcjc else if (vbc/Vt > EMax) then Taur*Is/Vt*ExMax*(vbc/Vt - EMax + 1) 487 + Capcjc else Taur*Is/Vt*exp(vbc/Vt) + Capcjc ;488 cbe = if (vbe/Vt < EMin) then Tauf*Is/Vt*ExMin*(vbe/Vt - EMin + 1) +487 + Capcjc else Taur*Is/Vt*exp(vbc/Vt) + Capcjc); 488 cbe = noEvent(if (vbe/Vt < EMin) then Tauf*Is/Vt*ExMin*(vbe/Vt - EMin + 1) + 489 489 Capcje else if (vbe/Vt > EMax) then Tauf*Is/Vt*ExMax*(vbe/Vt - EMax + 1) 490 + Capcje else Tauf*Is/Vt*exp(vbe/Vt) + Capcje ;490 + Capcje else Tauf*Is/Vt*exp(vbe/Vt) + Capcje); 491 491 C.i = (ibe - ibc)*qbk - ibc/Br - cbc*der(vbc) + Ccs*der(C.v); 492 492 B.i = ibe/Bf + ibc/Br + cbc*der(vbc) + cbe*der(vbe); … … 604 604 qbk = 1 - vbc*Vak; 605 605 606 ibc = if (vbc/Vt < EMin) then Is*(ExMin*(vbc/Vt - EMin + 1) - 1) + vbc*Gbc else606 ibc = noEvent(if (vbc/Vt < EMin) then Is*(ExMin*(vbc/Vt - EMin + 1) - 1) + vbc*Gbc else 607 607 if (vbc/Vt > EMax) then Is*(ExMax*(vbc/Vt - EMax + 1) - 1) + vbc* 608 Gbc else Is*(exp(vbc/Vt) - 1) + vbc*Gbc ;609 610 ibe = if (vbe/Vt < EMin) then Is*(ExMin*(vbe/Vt - EMin + 1) - 1) + vbe*Gbe else608 Gbc else Is*(exp(vbc/Vt) - 1) + vbc*Gbc); 609 610 ibe = noEvent(if (vbe/Vt < EMin) then Is*(ExMin*(vbe/Vt - EMin + 1) - 1) + vbe*Gbe else 611 611 if (vbe/Vt > EMax) then Is*(ExMax*(vbe/Vt - EMax + 1) - 1) + vbe* 612 Gbe else Is*(exp(vbe/Vt) - 1) + vbe*Gbe ;613 614 Capcjc = if (vbc/Phic > 0) then Cjc*(1 + Mc*vbc/Phic) else Cjc*pow(1 - vbc615 /Phic, -Mc) ;616 Capcje = if (vbe/Phie > 0) then Cje*(1 + Me*vbe/Phie) else Cje*pow(1 - vbe617 /Phie, -Me) ;618 cbc = if (vbc/Vt < EMin) then Taur*Is/Vt*ExMin*(vbc/Vt - EMin + 1) +612 Gbe else Is*(exp(vbe/Vt) - 1) + vbe*Gbe); 613 614 Capcjc = noEvent(if (vbc/Phic > 0) then Cjc*(1 + Mc*vbc/Phic) else Cjc*pow(1 - vbc 615 /Phic, -Mc)); 616 Capcje = noEvent(if (vbe/Phie > 0) then Cje*(1 + Me*vbe/Phie) else Cje*pow(1 - vbe 617 /Phie, -Me)); 618 cbc = noEvent(if (vbc/Vt < EMin) then Taur*Is/Vt*ExMin*(vbc/Vt - EMin + 1) + 619 619 Capcjc else if (vbc/Vt > EMax) then Taur*Is/Vt*ExMax*(vbc/Vt - EMax + 1) 620 + Capcjc else Taur*Is/Vt*exp(vbc/Vt) + Capcjc ;621 cbe = if (vbe/Vt < EMin) then Tauf*Is/Vt*ExMin*(vbe/Vt - EMin + 1) +620 + Capcjc else Taur*Is/Vt*exp(vbc/Vt) + Capcjc); 621 cbe = noEvent(if (vbe/Vt < EMin) then Tauf*Is/Vt*ExMin*(vbe/Vt - EMin + 1) + 622 622 Capcje else if (vbe/Vt > EMax) then Tauf*Is/Vt*ExMax*(vbe/Vt - EMax + 1) 623 + Capcje else Tauf*Is/Vt*exp(vbe/Vt) + Capcje ;623 + Capcje else Tauf*Is/Vt*exp(vbe/Vt) + Capcje); 624 624 C.i = -((ibe - ibc)*qbk - ibc/Br - cbc*der(vbc) - Ccs*der(C.v)); 625 625 B.i = -(ibe/Bf + ibc/Br + cbe*der(vbe) + cbc*der(vbc)); … … 1175 1175 vt_t = (K/q)*heatPort.T; 1176 1176 1177 ibc = if (vbc/(NR*vt_t) < EMin) then is_t*(ExMin*(vbc/(NR*vt_t) -1177 ibc = noEvent(if (vbc/(NR*vt_t) < EMin) then is_t*(ExMin*(vbc/(NR*vt_t) - 1178 1178 EMin + 1) - 1) + vbc*Gbc else if (vbc/(NR*vt_t) > EMax) then is_t*( 1179 1179 ExMax*(vbc/(NR*vt_t) - EMax + 1) - 1) + vbc*Gbc else is_t*(exp(vbc/ 1180 (NR*vt_t)) - 1) + vbc*Gbc ;1181 ibe = if (vbe/(NF*vt_t) < EMin) then is_t*(ExMin*(vbe/(NF*vt_t) -1180 (NR*vt_t)) - 1) + vbc*Gbc); 1181 ibe = noEvent(if (vbe/(NF*vt_t) < EMin) then is_t*(ExMin*(vbe/(NF*vt_t) - 1182 1182 EMin + 1) - 1) + vbe*Gbe else if (vbe/(NF*vt_t) > EMax) then is_t*( 1183 1183 ExMax*(vbe/(NF*vt_t) - EMax + 1) - 1) + vbe*Gbe else is_t*(exp(vbe/ 1184 (NF*vt_t)) - 1) + vbe*Gbe ;1185 Capcjc = if (vbc/Phic > 0) then Cjc*(1 + Mc*vbc/Phic) else Cjc*pow(11186 - vbc/Phic, -Mc) ;1187 Capcje = if (vbe/Phie > 0) then Cje*(1 + Me*vbe/Phie) else Cje*pow(11188 - vbe/Phie, -Me) ;1189 cbc = if (vbc/(NR*vt_t) < EMin) then Taur*is_t/(NR*vt_t)*ExMin*(vbc/(1184 (NF*vt_t)) - 1) + vbe*Gbe); 1185 Capcjc = noEvent(if (vbc/Phic > 0) then Cjc*(1 + Mc*vbc/Phic) else Cjc*pow(1 1186 - vbc/Phic, -Mc)); 1187 Capcje = noEvent(if (vbe/Phie > 0) then Cje*(1 + Me*vbe/Phie) else Cje*pow(1 1188 - vbe/Phie, -Me)); 1189 cbc = noEvent(if (vbc/(NR*vt_t) < EMin) then Taur*is_t/(NR*vt_t)*ExMin*(vbc/( 1190 1190 NR*vt_t) - EMin + 1) + Capcjc else if (vbc/(NR*vt_t) > EMax) then 1191 1191 Taur*is_t/(NR*vt_t)*ExMax*(vbc/(NR*vt_t) - EMax + 1) + Capcjc else 1192 Taur*is_t/(NR*vt_t)*exp(vbc/(NR*vt_t)) + Capcjc ;1193 cbe = if (vbe/(NF*vt_t) < EMin) then Tauf*is_t/(NF*vt_t)*ExMin*(vbe/(1192 Taur*is_t/(NR*vt_t)*exp(vbc/(NR*vt_t)) + Capcjc); 1193 cbe = noEvent(if (vbe/(NF*vt_t) < EMin) then Tauf*is_t/(NF*vt_t)*ExMin*(vbe/( 1194 1194 NF*vt_t) - EMin + 1) + Capcje else if (vbe/(NF*vt_t) > EMax) then 1195 1195 Tauf*is_t/(NF*vt_t)*ExMax*(vbe/(NF*vt_t) - EMax + 1) + Capcje else 1196 Tauf*is_t/(NF*vt_t)*exp(vbe/(NF*vt_t)) + Capcje ;1196 Tauf*is_t/(NF*vt_t)*exp(vbe/(NF*vt_t)) + Capcje); 1197 1197 C.i = (ibe - ibc)*qbk - ibc/br_t - cbc*der(vbc) + Ccs*der(C.v); 1198 1198 B.i = ibe/bf_t + ibc/br_t + cbc*der(vbc) + cbe*der(vbe); … … 1348 1348 vt_t = (K/q)*heatPort.T; 1349 1349 1350 icb = if (vcb/(NR*vt_t) < EMin) then is_t*(ExMin*(vcb/(NR*vt_t) -1350 icb = noEvent(if (vcb/(NR*vt_t) < EMin) then is_t*(ExMin*(vcb/(NR*vt_t) - 1351 1351 EMin + 1) - 1) + vcb*Gbc else if (vcb/(NR*vt_t) > EMax) then is_t*( 1352 1352 ExMax*(vcb/(NR*vt_t) - EMax + 1) - 1) + vcb*Gbc else is_t*(exp(vcb/ 1353 (NR*vt_t)) - 1) + vcb*Gbc ;1354 1355 ieb = if (veb/(NF*vt_t) < EMin) then is_t*(ExMin*(veb/(NF*vt_t) -1353 (NR*vt_t)) - 1) + vcb*Gbc); 1354 1355 ieb = noEvent(if (veb/(NF*vt_t) < EMin) then is_t*(ExMin*(veb/(NF*vt_t) - 1356 1356 EMin + 1) - 1) + veb*Gbe else if (veb/(NF*vt_t) > EMax) then is_t*( 1357 1357 ExMax*(veb/(NF*vt_t) - EMax + 1) - 1) + veb*Gbe else is_t*(exp(veb/ 1358 (NF*vt_t)) - 1) + veb*Gbe ;1359 1360 Capcjc = if (vcb/Phic > 0) then Cjc*(1 + Mc*vcb/Phic) else Cjc*pow(11361 - vcb/Phic, -Mc) ;1362 Capcje = if (veb/Phie > 0) then Cje*(1 + Me*veb/Phie) else Cje*pow(11363 - veb/Phie, -Me) ;1364 ccb = if (vcb/(NR*vt_t) < EMin) then Taur*is_t/(NR*vt_t)*ExMin*(vcb/(1358 (NF*vt_t)) - 1) + veb*Gbe); 1359 1360 Capcjc = noEvent(if (vcb/Phic > 0) then Cjc*(1 + Mc*vcb/Phic) else Cjc*pow(1 1361 - vcb/Phic, -Mc)); 1362 Capcje = noEvent(if (veb/Phie > 0) then Cje*(1 + Me*veb/Phie) else Cje*pow(1 1363 - veb/Phie, -Me)); 1364 ccb = noEvent(if (vcb/(NR*vt_t) < EMin) then Taur*is_t/(NR*vt_t)*ExMin*(vcb/( 1365 1365 NR*vt_t) - EMin + 1) + Capcjc else if (vcb/(NR*vt_t) > EMax) then 1366 1366 Taur*is_t/(NR*vt_t)*ExMax*(vcb/(NR*vt_t) - EMax + 1) + Capcjc else 1367 Taur*is_t/(NR*vt_t)*exp(vcb/(NR*vt_t)) + Capcjc ;1368 ceb = if (veb/(NF*vt_t) < EMin) then Tauf*is_t/(NF*vt_t)*ExMin*(veb/(1367 Taur*is_t/(NR*vt_t)*exp(vcb/(NR*vt_t)) + Capcjc); 1368 ceb = noEvent(if (veb/(NF*vt_t) < EMin) then Tauf*is_t/(NF*vt_t)*ExMin*(veb/( 1369 1369 NF*vt_t) - EMin + 1) + Capcje else if (veb/(NF*vt_t) > EMax) then 1370 1370 Tauf*is_t/(NF*vt_t)*ExMax*(veb/(NF*vt_t) - EMax + 1) + Capcje else 1371 Tauf*is_t/(NF*vt_t)*exp(veb/(NF*vt_t)) + Capcje ;1371 Tauf*is_t/(NF*vt_t)*exp(veb/(NF*vt_t)) + Capcje); 1372 1372 C.i = icb/br_t + ccb*der(vcb) + Ccs*der(C.v) + (icb - ieb)*qbk; 1373 1373 B.i = -ieb/bf_t - icb/br_t - ceb*der(veb) - ccb*der(vcb);
