⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bjt2pzld.c

📁 ngspice又一个电子CAD仿真软件代码.功能更全
💻 C
字号:
/**********Copyright 1990 Regents of the University of California.  All rights reserved.Author: 1985 Thomas L. QuarlesModified: Alan Gillespie**********//* */#include "ngspice.h"#include "cktdefs.h"#include "complex.h"#include "bjt2defs.h"#include "sperror.h"#include "suffix.h"intBJT2pzLoad(GENmodel *inModel, CKTcircuit *ckt, SPcomplex *s){    BJT2model *model = (BJT2model*)inModel;    BJT2instance *here;    double gcpr;    double gepr;    double gpi;    double gmu;    double go;    double xgm;    double gm;    double gx;    double xcpi;    double xcmu;    double xcbx;    double xccs;    double xcmcb;    double m;    for( ; model != NULL; model = model->BJT2nextModel) {        for( here = model->BJT2instances; here!= NULL;                 here = here->BJT2nextInstance) {           if (here->BJT2owner != ARCHme) continue;	   	   m = here->BJT2m;            gcpr=model->BJT2collectorConduct * here->BJT2area;            gepr=model->BJT2emitterConduct * here->BJT2area;            gpi= *(ckt->CKTstate0 + here->BJT2gpi);            gmu= *(ckt->CKTstate0 + here->BJT2gmu);            gm= *(ckt->CKTstate0 + here->BJT2gm);            go= *(ckt->CKTstate0 + here->BJT2go);            xgm=0;            gx= *(ckt->CKTstate0 + here->BJT2gx);            xcpi= *(ckt->CKTstate0 + here->BJT2cqbe);            xcmu= *(ckt->CKTstate0 + here->BJT2cqbc);            xcbx= *(ckt->CKTstate0 + here->BJT2cqbx);            xccs= *(ckt->CKTstate0 + here->BJT2cqsub); /* PN */            xcmcb= *(ckt->CKTstate0 + here->BJT2cexbc);            	    	    *(here->BJT2colColPtr) +=   m * (gcpr);            *(here->BJT2baseBasePtr) +=   m * ((gx) + (xcbx) * (s->real));            *(here->BJT2baseBasePtr + 1) +=  m *  ((xcbx) * (s->imag));            *(here->BJT2emitEmitPtr) +=   m * (gepr);            *(here->BJT2colPrimeColPrimePtr) +=  m * ((gmu+go+gcpr)                                        + (xcmu+xccs+xcbx) * (s->real));            *(here->BJT2colPrimeColPrimePtr + 1) +=   m * ((xcmu+xccs+xcbx)                                                 * (s->imag));            *(here->BJT2basePrimeBasePrimePtr) +=   m * ((gx+gpi+gmu)                                   + (xcpi+xcmu+xcmcb) * (s->real));            *(here->BJT2basePrimeBasePrimePtr + 1) +=   m * ((xcpi+xcmu+xcmcb)                                                    * (s->imag));            *(here->BJT2emitPrimeEmitPrimePtr) +=   m * ((gpi+gepr+gm+go)                                           + (xcpi+xgm) * (s->real));            *(here->BJT2emitPrimeEmitPrimePtr + 1) +=   m * ((xcpi+xgm)                                                 * (s->imag));            *(here->BJT2colColPrimePtr) +=   m *(-gcpr);            *(here->BJT2baseBasePrimePtr) +=   m * (-gx);            *(here->BJT2emitEmitPrimePtr) +=   m * (-gepr);            *(here->BJT2colPrimeColPtr) +=   m * (-gcpr);            *(here->BJT2colPrimeBasePrimePtr) +=   m * ((-gmu+gm)                                           +   (-xcmu+xgm) * (s->real));            *(here->BJT2colPrimeBasePrimePtr + 1) +=   m * ((-xcmu+xgm)                                                * (s->imag));            *(here->BJT2colPrimeEmitPrimePtr) +=   m *((-gm-go)                                             + (-xgm) * (s->real));            *(here->BJT2colPrimeEmitPrimePtr + 1) +=   m * ((-xgm) *                                                  (s->imag));            *(here->BJT2basePrimeBasePtr) +=   m * (-gx);            *(here->BJT2basePrimeColPrimePtr) +=   m * ((-gmu)                                        +   (-xcmu-xcmcb) * (s->real));            *(here->BJT2basePrimeColPrimePtr + 1) +=   m * ((-xcmu-xcmcb)                                                * (s->imag));            *(here->BJT2basePrimeEmitPrimePtr) +=   m * ((-gpi)                                              +  (-xcpi) * (s->real));            *(here->BJT2basePrimeEmitPrimePtr + 1) +=   m * ((-xcpi)                                                  * (s->imag));            *(here->BJT2emitPrimeEmitPtr) +=   m * (-gepr);            *(here->BJT2emitPrimeColPrimePtr) +=   m * ((-go)                                              +   (xcmcb) * (s->real));            *(here->BJT2emitPrimeColPrimePtr + 1) +=   m * ((xcmcb)                                                *  (s->imag));            *(here->BJT2emitPrimeBasePrimePtr) +=   m * ((-gpi-gm)                                      +  (-xcpi-xgm-xcmcb) * (s->real));            *(here->BJT2emitPrimeBasePrimePtr + 1) +=  m *  ((-xcpi-xgm-xcmcb)                             * (s->imag));            *(here->BJT2substSubstPtr) +=  m *  ((xccs) * (s->real));            *(here->BJT2substSubstPtr + 1) +=  m * ((xccs) * (s->imag));/*DW survived from bjt            *(here->BJT2colPrimeSubstPtr) +=   (-xccs) * (s->real);            *(here->BJT2colPrimeSubstPtr + 1) +=   (-xccs) * (s->imag);            *(here->BJT2substColPrimePtr) +=   (-xccs) * (s->real);            *(here->BJT2substColPrimePtr + 1) +=   (-xccs) * (s->imag);*/            *(here->BJT2baseColPrimePtr) +=   m * ((-xcbx) * (s->real));            *(here->BJT2baseColPrimePtr + 1) +=  m * ((-xcbx) * (s->imag));            *(here->BJT2colPrimeBasePtr) +=   m * ((-xcbx) * (s->real));            *(here->BJT2colPrimeBasePtr + 1) +=  m * ((-xcbx) * (s->imag));        }    }    return(OK);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -