直流电机
此示例演示在Engee(modelssc_dcmotor中创建的直流电机模型。engee)和在Simulink(型号ssc_dcmotor_demo。slx)。 将显示使用命令控制从脚本开发环境启动模型并比较仿真结果的过程。 在仿真中,交变扭矩作用在电动机的轴上。
模型的一般视图
工程师模型:

Simulink模型:

使用软件控制启动模型
In [ ]:
Pkg.add(["Statistics", "CSV"])
In [ ]:
using Plots
using MATLAB
using CSV
using DataFrames
using Statistics
demoroot = @__DIR__
mat"start_simulink"
mat"p = $demoroot; addpath(p);"
mat"p = /user/start/examples/helper_units; addpath(p);"
加载模型:
In [ ]:
modelName = "ssc_dcmotor";
dcmotor_model = modelName in [m.name for m in engee.get_all_models()] ? engee.open( modelName ) : engee.load( "$(@__DIR__)/$(modelName).engee");
启动上传的模型:
In [ ]:
results = engee.run( modelName )
Out[0]:
模拟结果:
In [ ]:
W_en_t = results["omega"].time;
W_en_w = results["omega"].value;
结果可视化
发动机转速对时间的依赖关系的曲线图的输出:
In [ ]:
plot(W_en_t , W_en_w, legend = false)
plot!(title = "Результаты моделирования в Engee", ylabel = "Скорость вращения двигателя, об/мин", xlabel="Время, c")
Out[0]:
启动Simulink模型:
In [ ]:
mat"run_test_model('ssc_dcmotor_demo');";
发动机转速对时间的依赖关系的曲线图的输出:
In [ ]:
W_sim_w = mat"SysOutput.Data";
W_sim_t = mat"SysOutput.Time";
plot(W_sim_t, W_sim_w, legend = false)
plot!(title = "Результаты моделирования в Simulink", ylabel = "Скорость вращения двигателя, об/мин", xlabel="Время, c")
Out[0]:
让我们比较一下Engee和Simulink中的仿真结果。 为此,让我们比较速度值。
In [ ]:
plot(W_en_t , W_en_w, label = "Engee")
plot!(title = "Сравнение результатов моделирования")
plot!(W_sim_t,W_sim_w, label = "Simulink")
plot!(ylabel = "Скорость вращения двигателя, об/мин", xlabel="Время, c")
Out[0]:
结论:
在此示例中,使用了用于模型命令管理的工具,因此从脚本启动了Engee和Simulink模型。 仿真结果被保存到csv文件,上传,可视化和分析使用交互式图表从图库。 结果的可视化分析表明,在Engee和Simulink中创建的电动汽车模型是相同的。