Ejemplo n.º 1
0
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")
Ejemplo n.º 2
0
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')
Ejemplo n.º 3
0
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
Ejemplo n.º 4
0
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