Engee 文档
Notebook

双极 PNP 晶体管建模

本例将演示在不同基极电流值下的双极晶体管建模。

模型概览:

pnp_transistor_1709038486982.png

定义加载和运行模型的函数:

In [ ]:
function start_model_engee()
    try
        engee.close("pnp_transistor", force=true) # закрытие модели 
        catch err # в случае, если нет модели, которую нужно закрыть и engee.close() не выполняется, то будет выполнена её загрузка после catch
            m = engee.load("/user/start/examples/physmod/pnp_transistor/pnp_transistor.engee") # загрузка модели
        end;

    try
        engee.run(m, verbose=true) # запуск модели
        catch err # в случае, если модель не загружена и engee.run() не выполняется, то будут выполнены две нижние строки после catch
            m = engee.load("/user/start/examples/physmod/pnp_transistor/pnp_transistor.engee") # загрузка модели
            engee.run(m, verbose=true) # запуск модели
        end
end
Out[0]:
start_model_engee (generic function with 1 method)

加载、运行模型并记录结果

在基极电流为 -0.001 A 时进行模拟:

In [ ]:
Ib = -0.001 # определение тока базы для расчёта
start_model_engee() # загрузка и запуск модели
sleep(5)
data1 = collect(simout) # выделение из переменной simout данных, описывающих ток коллектора и напряжение коллектор-эмиттер
Vce = collect(data1[1]) # запись данных о напряжении коллектор-эмиттер в переменную
Ic1 = collect(data1[2]); # запись данных о токе коллектора в переменную
Building...
Progress 100%

基极电流为 -0.002 A 时的模拟:

In [ ]:
Ib = -0.002 # определение тока базы для расчёта
start_model_engee() # загрузка и запуск модели
sleep(5)
data2 = collect(simout) # выделение из переменной simout данных, описывающих ток коллектора и напряжение коллектор-эмиттер
Ic2 = collect(data2[2]); # запись данных о токе коллектора в переменную
Building...
Progress 100%

基极电流为 -0.003 A 时的模拟:

In [ ]:
Ib = -0.003 # определение тока базы для расчёта
start_model_engee() # загрузка и запуск модели
sleep(5)
data3 = collect(simout) # выделение из переменной simout данных, описывающих ток коллектора и напряжение коллектор-эмиттер
Ic3 = collect(data3[2]); # запись данных о токе коллектора в переменную
Building...
Progress 100%

基极电流为 -0.004 A 时的模拟:

In [ ]:
Ib = -0.004 # определение тока базы для расчёта
start_model_engee() # загрузка и запуск модели
sleep(5)
data4 = collect(simout) # выделение из переменной simout данных, описывающих ток коллектора и напряжение коллектор-эмиттер
Ic4 = collect(data4[2]); # запись данных о токе коллектора в переменную
Building...
Progress 100%

基极电流为 -0.005 A 时的模拟:

In [ ]:
Ib = -0.005 # определение тока базы для расчёта
start_model_engee() # загрузка и запуск модели
sleep(5)
data5 = collect(simout) # выделение из переменной simout данных, описывающих ток коллектора и напряжение коллектор-эмиттер
Ic5 = collect(data5[2]); # запись данных о токе коллектора в переменную
Building...
Progress 100%

结果可视化

In [ ]:
using Plots # запуск библиотеки для построения графиков:
plot(Vce[:,2], Ic1[:,2], label="Ток базы, Ib = -0.001 A", title="График зависимости тока коллектора \n от напряжения коллектор-эмиттер")
plot!(Vce[:,2], Ic2[:,2], label="Ток базы, Ib = -0.002 A", xlabel="Vce, В", ylabel="Ic, А")
plot!(Vce[:,2], Ic3[:,2], label="Ток базы, Ib = -0.003 A")
plot!(Vce[:,2], Ic4[:,2], label="Ток базы, Ib = -0.004 A")
plot!(Vce[:,2], Ic5[:,2], label="Ток базы, Ib = -0.005 A")
Out[0]:

结论

本例演示了在不同基极电流值下的双极晶体管建模。该模型还可用于描述正电压区晶体管的特性 ($Vce$)。