from OSIM.Modeling.CircuitSystemEquations import CircuitSystemEquations from OSIM.Simulation.CircuitAnalysis.CircuitAnalyser import CircuitAnalyser from OSIM.Simulation.NetToComp import NetToComp seq = CircuitSystemEquations(NetToComp('twoTrans.net').getComponents()) ca = CircuitAnalyser(seq) ca.printDCOp(["R1"]) #ca.plot_lin(ca.getDCParamSweep('V1',0.7,1.3,0.005,["VoutMinus","VoutPlus"],'VCC',[2.3]))
from OSIM.Modeling.CircuitSystemEquations import CircuitSystemEquations from OSIM.Simulation.CircuitAnalysis.CircuitAnalyser import CircuitAnalyser import numpy as np from OSIM.Simulation.NetToComp import NetToComp seq = CircuitSystemEquations(NetToComp('GilbertMixer/GilberMixerEasy.net').getComponents()) ca = CircuitAnalyser(seq) ca.printDCOp(["vCurMirror","Q7IT","Q6C","LOPlus","RFPlus","Q1C"]) imp1_180 = ca.getImpedanceAt("V1",180e9) imp4_18 = ca.getImpedanceAt("V4",18e9) imp5_18 = ca.getImpedanceAt("V5",18e9) print("IMP1_180 @180G: %s"%str(imp1_180)) print("IMP4_18 @18G: %s"%str((imp4_18))) print("IMP5_18 @18G: %s"%str(imp5_18)) #print(imp6) #v1 = seq.getCompByName("V1").setInnerImpedance(imp[0]) #seq.getCompByName("V3").setInnerImpedance(imp[0]) #print(v1.getInnerImpedance()) #ca.plot_smith(ca.getSPAnalysis_semilogx(8,12,10,["V1","V3"])) #ca.plot_semilogx(ca.getACAnalysis_semilogx("V1",["Q1C"],9,11,10)[0]) res = ca.getTrans(0,2e-10,1e-13,["Q3C","Q1C","LOPlus","RFPlus"]) # how to get a diff-Signal out = np.zeros((2,res[0].shape[1]),dtype = np.float64) for i in range(res[0].shape[1]): out[0][i] = (res[0])[0][i] out[1][i] = (res[0])[1][i] - (res[0])[2][i]
from OSIM.Modeling.CircuitSystemEquations import CircuitSystemEquations from OSIM.Simulation.CircuitAnalysis.CircuitAnalyser import CircuitAnalyser from OSIM.Simulation.NetToComp import NetToComp import numpy as np seq = CircuitSystemEquations( NetToComp('LoBuffer/LoBuffer.net').getComponents()) ca = CircuitAnalyser(seq) #ca.printDCOp(["R11","Cur2Out","IN1","Q7IT","Q4IT","Q3IT"]) #ca.plot_semilogx(ca.getACAnalysis_semilogx("V2",["OUT1"],1,12,10)[0]) #ca.plot_smith(ca.getSPAnalysis_semilogx(2,12,10,["V2"])) res = ca.getTrans(0, 3e-6, 1e-9, ["OUT2", "OUT1", "Cur2Out"]) # how to get a diff-Signal out = np.zeros((2, res[0].shape[1]), dtype=np.float64) for i in range(res[0].shape[1]): out[0][i] = (res[0])[0][i] out[1][i] = (res[0])[1][i] - (res[0])[2][i] ca.plot_lin([out, ["diffout"], "transient"]) print("Max %G " % np.amax(np.absolute(out[1][:]))) ca.plot_lin(res)
from OSIM.Modeling.CircuitSystemEquations import CircuitSystemEquations from OSIM.Simulation.CircuitAnalysis.CircuitAnalyser import CircuitAnalyser from OSIM.Simulation.NetToComp import NetToComp seq = CircuitSystemEquations( NetToComp('CurrentMirror/CurrentMirror.net').getComponents()) ca = CircuitAnalyser(seq) ca.printDCOp(["R1", "RL"]) dcs = ca.getDCOpAt(["VIN", "N004"]) print(dcs) print(dcs[1] - dcs[0]) ca.plot_lin(ca.getDCParamSweep('V2', 0, 3.3, 0.05, ["R2", "R1"], 'V1', [3.3]))
dummyIT = dummyMainTransportCurrent() Q_DBE = QDBE([bi, ei], "QDBE", 0, dummyIT, dict=params) vsource = VoltageSource(["0", bi], "V1", 0, None, dict={ 'FUNC': 'SIN', 'F': '1e11', 'DC': '0', 'AC': '1', 'P': '180' }) r1 = Resistor([ei, "0"], "R1", 0.00001, None) TBSys = CircuitSystemEquations([Q_DBE, vsource, r1]) ca = CircuitAnalyser(TBSys) x = np.arange(-1, 2, 0.1) charge = np.zeros((len(x), 1), dtype=np.complex128) capacity = np.zeros((len(x), 1), dtype=np.complex128) for idx, v in enumerate(x): #vsource.changeMyVoltageInSys(v) dummyIT.IT.itf += 0.2e-3 ca.calcDCOperatingPoint() charge[idx] = Q_DBE.getCharge() #capacity[idx] = Q_DBE.dQdU_A() plt.plot(x, charge, label="charge") #plt.plot(x, capacity, label="capacity") plt.show()
from OSIM.Modeling.CircuitSystemEquations import CircuitSystemEquations from OSIM.Simulation.CircuitAnalysis.CircuitAnalyser import CircuitAnalyser from OSIM.Simulation.NetToComp import NetToComp seq = CircuitSystemEquations(NetToComp('Transistor/TransDiode.net').getComponents()) ca = CircuitAnalyser(seq) #ca.printDCOp(["R1","R2","Q1IT"]) #dcs = ca.getDCOpAt(["Q_BC","Q_E"]) #print(dcs) #print(dcs[1]-dcs[0]) #print (seq.compDict) #np.set_printoptions(precision=1) #print(seq.A.real) #print("#############") #print(seq.b.real) #print("#############") #print(seq.g.real) ca.plot_lin(ca.getDCParamSweep('V1',0.0,3.3,0.01,["Q1IT"],'bla',[3.3])) #ca.plot_lin(ca.getDCParamSweep('V1',0.6,1,0.001,["Q1IT"],'bla',[3.3]))
#!/usr/bin/python from OSIM.Modeling.CircuitSystemEquations import CircuitSystemEquations from OSIM.Simulation.CircuitAnalysis.CircuitAnalyser import CircuitAnalyser from OSIM.Simulation.NetToComp import NetToComp circuit = 'TransistorTB.net' #circuit = '__Circuits/TransistorInversTB.net' #circuit = '__Circuits/twoTrans.net' #circuit = '__Circuits/DiodeTB.net' #circuit = '__Circuits/AmplifierTB2.net' #circuit = '__Circuits/AmplifierTB.net' #circuit = '__Circuits/lowpassTB.net' #circuit = '__Circuits/CapacityTB.net' #circuit = '__Circuits/SParameterTB.net' #circuit = '__Circuits/TransAnalysisTB.net' #circuit = '__Circuits/TransTransistorAnalysisTB.net' #circuit = '__Circuits/LoBuffer.net' #circuit = '__Circuits/Diffamp.net' seq = CircuitSystemEquations(NetToComp(circuit).getComponents()) ca = CircuitAnalyser(seq) #CharactersiticCurves(seq).createCharacteristicCurves('V2',-0.7, 1.3, 0.005,'P1V',1, 1.2 , 0.1, ["Q1IT"]) ca.plot_lin(ca.getDCParamSweep('V2', 0, 1.3, 0.005, ["Q1IT"], 'P1V', [0.9])) #CircuitAnalysis(seq).calcDCOperatingPoint() #ACAnalysis(seq).show(3, 11, 10, "OUT", 'P1V') #SParameterAnalysis(seq).show(8, 12, 10) #DCAnalysis(seq).show('V1', -1, 2, 0.01, ["D1", "1"]) #TransAnalysis(seq).show(0, 1e-10, 1e-13, ["OUT", "Q1IT"], "Q1IT")
from OSIM.Modeling.CircuitSystemEquations import CircuitSystemEquations from OSIM.Simulation.CircuitAnalysis.CircuitAnalyser import CircuitAnalyser import numpy as np from OSIM.Simulation.NetToComp import NetToComp seq = CircuitSystemEquations( NetToComp('GilbertMixer/GilberMixerAdvanced.net').getComponents()) ca = CircuitAnalyser(seq) ca.printDCOp(["vCurMirror", "Q7IT", "Q6C", "LOPlus"]) imp1_180 = ca.getImpedanceAt("V1", 180e9) imp4_18 = ca.getImpedanceAt("V4", 18e9) imp5_18 = ca.getImpedanceAt("V5", 18e9) print("IMP1_180 @180G: %s" % str(imp1_180)) print("IMP4_18 @18G: %s" % str((imp4_18))) print("IMP5_18 @18G: %s" % str(imp5_18)) #print(imp6) #v1 = seq.getCompByName("V1").setInnerImpedance(imp[0]) #seq.getCompByName("V3").setInnerImpedance(imp[0]) #print(v1.getInnerImpedance()) #ca.plot_smith(ca.getSPAnalysis_semilogx(8,12,10,["V1","V3"])) ca.plot_semilogx(ca.getACAnalysis_semilogx("V1", ["Q1C"], 9, 11, 10)[0]) res = ca.getTrans(0, 0.1e-9, 1e-13, ["Q4C", "Q1C", "LOPlus"]) # how to get a diff-Signal out = np.zeros((2, res[0].shape[1]), dtype=np.float64) for i in range(res[0].shape[1]): out[0][i] = (res[0])[0][i] out[1][i] = (res[0])[1][i] - (res[0])[2][i]
WBx = 1 # WBE F = 0.97 # FC gnd = '0' sigin = '1' sigout = '2' ik = '3' vsource = VoltageSource([gnd,sigin],"V1",0,None,paramdict={'FUNC':'SIN','F':'1e11', 'DC':'0', 'AC':'1', 'P':'180'}) r1 = Resistor([sigin,sigout],"R1",0.00001,None) c = VBIC_DepletionCharge([sigout, ik],"QJ", CJx, None, paramdict= {'P':P,'M':M,'F':F,'AJ':AJ,'FAK':WBx}) cref = Capacity([sigout, ik],"CR",0.35e-14, None) r2 = Resistor([ik,gnd],"R2",1000,None) TBSys = CircuitSystemEquations([vsource,r1,c,r2,cref]) ca = CircuitAnalyser(TBSys) volts = [x/100 for x in range(-200,200)] res = np.zeros((2,len(volts)),dtype= np.float64) #for vidx,v in enumerate(volts): # vsource.changeMyVoltageInSys(v) # ca.calcDCOperatingPoint() # res[0][vidx] = v # res[1][vidx] = c.getCharge() #ca.plot_lin([res,["Q"],"Ladung"]) ca.plot_lin(ca.getTrans(0 ,4e-11,1e-14,['CR','QJ']))
from OSIM.Simulation.NetToComp import NetToComp from OSIM.Modeling.CircuitSystemEquations import CircuitSystemEquations from OSIM.Simulation.CircuitAnalysis.CircuitAnalyser import CircuitAnalyser import numpy as np seq = CircuitSystemEquations(NetToComp('GilberMixerEasy.net').getComponents()) ca = CircuitAnalyser(seq) mag = ca.getGain("V1", "Q1C", 180e9) print("gain") print(mag) ca.printDCOp(["vCurMirror", "Q7IT", "Q6C", "RFPlus", "Q1C"]) #imp1_180 = ca.getImpedanceAt("V1",180e9) #imp3_180 = ca.getImpedanceAt("V3",180e9) #imp4_18 = ca.getImpedanceAt("V4",18e9) #imp5_18 = ca.getImpedanceAt("V5",18e9) #print("IMP1_180 @180G: %s"%str(imp1_180)) #print("IMP3_180 @180G: %s"%str(imp3_180)) #print("IMP4_18 @18G: %s"%str((imp4_18))) #print("IMP5_18 @18G: %s"%str(imp5_18)) #print(imp6) #v1 = seq.getCompByName("V1").setInnerImpedance(imp[0]) #seq.getCompByName("V3").setInnerImpedance(imp[0]) #print(v1.getInnerImpedance()) #ca.plot_smith(ca.getSPAnalysis_linx(175e9,185e9,1e9,["V3"])) #ca.plot_lin(ca.getACAnalysis_linx("V1",["Q1C"],170e9,190e9,1e9)[0]) res = ca.getTrans(0, 1e-10, 1e-13, ["Q3C", "Q1C", "LOPlus", "RFPlus"])
kemitterdirekt = 'e' kemitter = '0' v1 = Port([kbasis, kemitter], 'V1', 0.883, None) v2 = Port([kv1, kemitter], 'V2', 1.6, None) r1 = Resistor([kv1, kcollector], 'R1', 500, None) re = Resistor([kemitterdirekt, kemitter], 'RE', 0.001, None) npn = NPN_VBIC([kcollector, kbasis, kemitterdirekt, 'SUB'], 'Q1', 0, None, pParams='NPN_VBIC_npn13G2.comp') rsub = Resistor(['SUB', '0'], "R3", 264, None) seq = CircuitSystemEquations([v1, v2, npn, r1, rsub, re]) #v1.setInnerImpedance(50) ca = CircuitAnalyser(seq) #for Nx in range(1,8): #seq.setParamterForComp("Q1","Nx",1) #npn.setParameterOrVariableValue("Nx", Nx) #ca.plot_lin(ca.getDCParamSweep('V2',-1,1.6,0.1,["Q1IT"],'V1',[0.8])) res = ca.getACAnalysis_semilogx("V1", [kcollector], 1, 12, 10) ca.plot_semilogx(res[0]) #res = ca.getDCParamSweep('V2',0.01,1.6,0.01,["Q1IT"],'V1',[0.91]) #ca.plot_lin(res) #res = ca.getSPAnalysis_semilogx(1,12,10,["V1"]) #ca.plot_smith(res) res = res[0] toFile = open("Betragsfrequenzgang_angepasst.csv", 'w')
from OSIM.Modeling.CircuitSystemEquations import CircuitSystemEquations from OSIM.Simulation.CircuitAnalysis.CircuitAnalyser import CircuitAnalyser from OSIM.Simulation.NetToComp import NetToComp seq = CircuitSystemEquations(NetToComp('Diverses/SpileTB.net').getComponents()) print(seq.A) ca = CircuitAnalyser(seq) #ca.calcDCOperatingPoint() ca.plot_lin(ca.getTrans(0, 3e-6, 1e-9, ["IN", "OUT"]))
from OSIM.Modeling.CircuitSystemEquations import CircuitSystemEquations from OSIM.Simulation.CircuitAnalysis.CircuitAnalyser import CircuitAnalyser from OSIM.Simulation.NetToComp import NetToComp #seq = CircuitSystemEquations(NetToComp('Transistor_invers.net').getComponents()) #ca = CircuitAnalyser(seq) #ca.plot_lin(ca.getDCParamSweep('V2',0,0.3,0.001,["Q1bi","Q1ci","Q1ei"],'V1',[0.85])) seq = CircuitSystemEquations( NetToComp('Transistor_invers.net').getComponents()) ca = CircuitAnalyser(seq) ca.plot_lin(ca.getDCParamSweep('V2', 0, 0.5, 0.01, ["Q1IT"], 'V1', [0.85]))
from OSIM.Modeling.CircuitSystemEquations import CircuitSystemEquations from OSIM.Simulation.CircuitAnalysis.CircuitAnalyser import CircuitAnalyser from OSIM.Simulation.NetToComp import NetToComp seq = CircuitSystemEquations( NetToComp('DiffAmplifier/Diffamp.net').getComponents()) ca = CircuitAnalyser(seq) ca.printDCOp(["R6", "R3", "VCurSource"]) #print(seq.x) #max = np.amax(np.absolute(seq.x)) #print(max) #ca.plot_lin(ca.getDCParamSweep('V1',1,3.3,0.05,["VoutPlus","VoutMinus"],'VCC',[3.3])) ca.plot_semilogx(ca.getACAnalysis_semilogx("V1", ["VoutPlus"], 2, 10, 11)[0])