离子电阻系统的仿真
这个例子将演示一个系统的模拟与离子电阻和直流-直流转换器设计,以保持一个稳定的电压跨越负载。 最初,转换器向负载提供功率,这导致离子电阻两端的电压逐渐降低。 当达到4V阈值时,保护电路被激活,断开负载。 在10秒时,发电机打开,并向负载和电容器供电以对其充电。
模型图:
定义加载和运行模型的函数:
In [ ]:
function start_model_engee()
try
engee.close("ultracapacitor_converter", force=true) # 关闭模型
catch err # 如果没有模型关闭和engee。close()不执行,它将在catch之后加载。
m = engee.load("$(@__DIR__)/ultracapacitor_converter.engee") # 加载模型
end;
try
engee.run(m, verbose=true) # 启动模型
catch err # 如果模型没有加载和engee。run()不执行,catch后最下面的两行将被执行。
m = engee.load("$(@__DIR__)/ultracapacitor_converter.engee") # 加载模型
engee.run(m, verbose=true) # 启动模型
end
end
Out[0]:
运行模拟
In [ ]:
start_model_engee();
将仿真数据写入变量:
In [ ]:
t = simout["Load.i"].time[:]
load_current = simout["Load.i"].value[:]
ultracapacitor_current = simout["Ultra-capacitor.i"].value[:]
generator_current = simout["Generator/Diode.i"].value[:]
load_voltage = simout["Load.v"].value[:]
ultracapacitor_voltage = simout["Ultra-capacitor.v"].value[:]
Out[0]:
数据可视化
In [ ]:
using Plots
In [ ]:
plot(t, load_voltage, linewidth=2, label="负荷/负荷")
plot!(t, ultracapacitor_voltage, linewidth=2, label="离子电阻器", xlabel="时间,从", ylabel="例如,在")
Out[0]:
In [ ]:
plot(t, load_current, linewidth=2, label="负荷/负荷")
plot!(t, ultracapacitor_current, linewidth=2, label="离子电阻器")
plot!(t, generator_current, linewidth=2, label="发电机", xlabel="时间,从", ylabel="电流,A")
Out[0]:
结论:
在这个例子中,我们考虑了带有转换器的离子晶体管的模型。 DC-DC转换器为负载供电。 当离子电阻两端的电压降至4v以下时,低电荷保护电路关闭负载。在第10秒,发电机打开,开始为负载供电并为离子电阻充电。