def main_diode(): """ Главная функция, осуществляющая эксперимент :return: """ bstart = [6.15200000e-08, 1.16000000e00, 3.37600000e-02] # 20% bend = [9.22800000e-08, 1.74000000e00, 5.06400000e-02] # 20% # bstart = [ 4.61400000e-08, 8.70000000e-01, 2.53200000e-02] # 40% # bend = [ 1.07660000e-07, 2.03000000e+00, 5.90800000e-02] # 40% iia = IterationInfoAcceptor("resfiles/M1_Diode.txt", verbose=1) msa = DiodeMainScriptMantissaEx1() for i in range(50): btrue1 = f_sf.rangomNormalvariateVector(bstart, bend) # msa.ec.btrue = btrue1 msa.ec.bstart = bstart msa.ec.bend = bend try: rs = msa.proceed() iia.accept(numiter=rs["numiter"], Sk=rs["Sk"], AvDif=rs["AvDif"]) except: print("uno problemo") pass plt.hist([x["numiter"] for x in iia], 20) plt.show() plt.savefig("resfiles/MantissaResDiode.png")
def __init__(self): AbstractMainScript.__init__(self) _btrue = [ 7.69e-8, 1.45, .0422 ] #номинальные значения диода D1N4001 с сайта, вроде официальной модели производителя Ve = np.array([[1.9e-5]]) bstart = np.array(_btrue) - np.array(_btrue) * 0.2 bend = np.array(_btrue) + np.array(_btrue) * 0.2 binit = _btrue btrue = f_sf.rangomNormalvariateVector(bstart, bend) print(btrue) #btrue = _btrue xstart = [0.001] xend = [1] N = 100 self.ec = f_sf.EstimationContext(bstart, bend, btrue, binit, xstart, xend, Ve, N) self.model = f_m.SimpleDiodeModel('Diode_1N') # сделали модель self.ec.model = self.model self.measurer = f_me.ModelMeasurer(self.ec.Ve, self.model, self.ec.btrue) # сделали измерителя self.plan_measurer = f_me.PlanMeasurer( self.measurer) # сделали измеритель по плану #self.planner = f_p.DOptimalPlanner(self.ec) self.planner = f_p.UniformPlanner(self.ec) #self, ec, plancachefoldername='cache', verbose = False) self.measdata = None #формирование цепочки estimator = f_e.NGEstimator() estimator.init_parameters(self.ec, self.model) self.estimator = f_e.ConsoleEstimatorDecorator(estimator)
def main_diode(): """ Главная функция, осуществляющая эксперимент :return: """ bstart = [ 6.15200000e-08 , 1.16000000e+00, 3.37600000e-02] # 20% bend = [ 9.22800000e-08 , 1.74000000e+00 , 5.06400000e-02] # 20% # bstart = [ 4.61400000e-08, 8.70000000e-01, 2.53200000e-02] # 40% # bend = [ 1.07660000e-07, 2.03000000e+00, 5.90800000e-02] # 40% iia = IterationInfoAcceptor ('resfiles/M1_Diode.txt', verbose=1) msa = DiodeMainScriptMantissaEx1() for i in range (50): btrue1 = f_sf.rangomNormalvariateVector(bstart, bend) #msa.ec.btrue = btrue1 msa.ec.bstart = bstart msa.ec.bend = bend try: rs = msa.proceed() iia.accept(numiter=rs['numiter'], Sk=rs['Sk'], AvDif=rs['AvDif']) except: print ('uno problemo') pass plt.hist ([x['numiter'] for x in iia],20) plt.show() plt.savefig('resfiles/MantissaResDiode.png')
def __init__(self): AbstractMainScript.__init__(self) _btrue = [7.69e-8, 1.45 ,.0422] #номинальные значения диода D1N4001 с сайта, вроде официальной модели производителя Ve=np.array([[1.9e-5]]) bstart=np.array(_btrue)-np.array(_btrue)*0.2 bend=np.array(_btrue)+np.array(_btrue)*0.2 binit=_btrue btrue = f_sf.rangomNormalvariateVector(bstart, bend) print (btrue) #btrue = _btrue xstart=[0.001] xend=[1] N=100 self.ec =f_sf.EstimationContext(bstart, bend, btrue, binit, xstart, xend, Ve, N) self.model = f_m.SimpleDiodeModel ('Diode_1N') # сделали модель self.ec.model = self.model self.measurer = f_me.ModelMeasurer(self.ec.Ve, self.model, self.ec.btrue) # сделали измерителя self.plan_measurer = f_me.PlanMeasurer(self.measurer) # сделали измеритель по плану #self.planner = f_p.DOptimalPlanner(self.ec) self.planner = f_p.UniformPlanner(self.ec) #self, ec, plancachefoldername='cache', verbose = False) self.measdata=None #формирование цепочки estimator = f_e.NGEstimator() estimator.init_parameters(self.ec, self.model) self.estimator = f_e.ConsoleEstimatorDecorator(estimator)
def main_transistor(): """ Главная функция, осуществляющая эксперимент :return: """ # bstart = [ 6.15200000e-08 , 1.16000000e+00, 3.37600000e-02] # 20% # bend = [ 9.22800000e-08 , 1.74000000e+00 , 5.06400000e-02] # 20% # bstart = [ 4.61400000e-08, 8.70000000e-01, 2.53200000e-02] # 40% # bend = [ 1.07660000e-07, 2.03000000e+00, 5.90800000e-02] # 40% # transistor inf = 10e10 # числовые значения изменены шоб было по 7 значимых IS = 11.23456e-15 BF = 584.5171 VAF = 112.3456 VAR = inf IKF = 29.27141e-3 # ток перехода к высококу уровню инжекции inf ISE = 131.8031e-12 # генерационно-рекомбинационный ток насыщения эмиттерного перех 0 NE = 2.083371 # коэфф. неидеальности ген-рек тока эмиттерного перех 1 NR = 1 # коэфф неидеальности для диффузного тока в инв режиме 1 NF = 1 # коэфф неидеальности для диффузионного тока в нормальном режиме 1 NC = 1 # коэфф неидеальности генерационно-рекомбинацоинного тока коллектора 1 BR = 1.952141 # инверсный коэфф усиления тока в схеме с ОЭ 1 IKR = 9.999961e-3 # ток перехода к высокому уровню инжекции в инверсном включении inf ISC = 100.3161e-12 # генерационно-рекомбинационный ток насыщения колекторного перех 0 RE = 1 # сопротивления эмиттера, коллектора, базы 0 0 0 RC = 5.48635 RB = 0 btrue = [IS, BF, NR, NF, BR] bstart = np.array(btrue) - np.array(btrue) * 0.3 bend = np.array(btrue) + np.array(btrue) * 0.3 from Cases.Mantissa2 import IterationInfoAcceptor iia = IterationInfoAcceptor("resfiles/M1.txt") msa = TransistorMainScriptMantissaEx1() for i in range(50): btrue1 = f_sf.rangomNormalvariateVector(bstart, bend) msa.ec.btrue = btrue1 msa.ec.bstart = bstart msa.ec.bend = bend try: print("entering") rs = msa.proceed() iia.accept(numiter=rs["numiter"], Sk=rs["Sk"], AvDif=rs["AvDif"]) except: print("uno problemo") pass try: plt.hist([x[0] for x in iia], 20) plt.show() plt.savefig("resfiles/MantissaResTransistor.png") except: pass
def main_transistor (): """ Главная функция, осуществляющая эксперимент :return: """ #bstart = [ 6.15200000e-08 , 1.16000000e+00, 3.37600000e-02] # 20% #bend = [ 9.22800000e-08 , 1.74000000e+00 , 5.06400000e-02] # 20% # bstart = [ 4.61400000e-08, 8.70000000e-01, 2.53200000e-02] # 40% # bend = [ 1.07660000e-07, 2.03000000e+00, 5.90800000e-02] # 40% # transistor inf=10e10 #числовые значения изменены шоб было по 7 значимых IS = 11.23456e-15 BF = 584.5171 VAF = 112.3456 VAR = inf IKF = 29.27141e-3 # ток перехода к высококу уровню инжекции inf ISE = 131.8031e-12 # генерационно-рекомбинационный ток насыщения эмиттерного перех 0 NE = 2.083371 # коэфф. неидеальности ген-рек тока эмиттерного перех 1 NR = 1 # коэфф неидеальности для диффузного тока в инв режиме 1 NF = 1 # коэфф неидеальности для диффузионного тока в нормальном режиме 1 NC = 1 # коэфф неидеальности генерационно-рекомбинацоинного тока коллектора 1 BR = 1.952141 # инверсный коэфф усиления тока в схеме с ОЭ 1 IKR = 9.999961e-3 # ток перехода к высокому уровню инжекции в инверсном включении inf ISC = 100.3161e-12 # генерационно-рекомбинационный ток насыщения колекторного перех 0 RE = 1 # сопротивления эмиттера, коллектора, базы 0 0 0 RC = 5.48635 RB = 0 btrue = [IS, BF, NR, NF, BR] bstart = np.array(btrue)-np.array(btrue)*0.3 bend = np.array(btrue)+np.array(btrue)*0.3 from Cases.Mantissa2 import IterationInfoAcceptor iia = IterationInfoAcceptor ('resfiles/M1.txt') msa = TransistorMainScriptMantissaEx1() for i in range (50): btrue1 = f_sf.rangomNormalvariateVector(bstart, bend) msa.ec.btrue = btrue1 msa.ec.bstart = bstart msa.ec.bend = bend try: print ('entering') rs = msa.proceed() iia.accept(numiter=rs['numiter'], Sk=rs['Sk'], AvDif=rs['AvDif']) except: print ('uno problemo') pass try: plt.hist ([x[0] for x in iia],20) plt.show() plt.savefig('resfiles/MantissaResTransistor.png') except: pass