Engee 文档
Notebook

电动机电枢绕组故障的模拟

这个例子模拟了电枢绕组故障的直流电机的操作.

模型图:

simple_motor_armature_winding_fault--1751288866661.png

使用Engee函数块模拟直流电机电枢绕组的故障,其中在Step方法代码部分中,内置了Julia编程语言的函数。 该函数采用两个参数,即旋转角度和故障转数,并返回信号1或0,分别表征可用或故障状态。

image.png

来自Engee功能单元的信号进入单元,打开和关闭电机电枢电路。

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

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

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

运行模拟

模拟无故障:

In [ ]:
start_model_engee();

从simout变量中分离转速、电流和电压信号:

In [ ]:
result = simout;
res1 = collect(result)
Out[0]:
5-element Vector{WorkspaceArray}:
 WorkspaceArray{Float64}("simple_motor_armature_winding_fault/Ток, А")
 WorkspaceArray{Float64}("simple_motor_armature_winding_fault/Скорость вращения, об/мин")
 WorkspaceArray{Float64}("simple_motor_armature_winding_fault/Напряжение, В")
 WorkspaceArray{Float64}("simple_motor_armature_winding_fault/Блок имитирующий 
неисправность обмотки якоря.1")
 WorkspaceArray{Float64}("simple_motor_armature_winding_fault/Ideal Rotational Motion Sensor.2")

电枢绕组故障:

In [ ]:
engee.set_param!("simple_motor_armature_winding_fault/Доля оборота
 характеризующая
 неисправность", "Value" => 0.0833)

启动电枢绕组故障的模拟:

In [ ]:
engee.run("simple_motor_armature_winding_fault");

从simout变量中分离转速、电流和电压信号:

In [ ]:
result = simout;
res2 = collect(result)
Out[0]:
5-element Vector{WorkspaceArray}:
 WorkspaceArray{Float64}("simple_motor_armature_winding_fault/Ток, А")
 WorkspaceArray{Float64}("simple_motor_armature_winding_fault/Скорость вращения, об/мин")
 WorkspaceArray{Float64}("simple_motor_armature_winding_fault/Напряжение, В")
 WorkspaceArray{Float64}("simple_motor_armature_winding_fault/Блок имитирующий 
неисправность обмотки якоря.1")
 WorkspaceArray{Float64}("simple_motor_armature_winding_fault/Ideal Rotational Motion Sensor.2")

向变量写入信号:

In [ ]:
w_1 = collect(res1[2])
w_2 = collect(res2[2]);

模拟结果的可视化

无故障和电枢绕组故障的电机速度图:

In [ ]:
using Plots
Plots.plot(w_1[:,1], w_1[:,2], label="Скорость вращения исправного ДПТ, об/мин", linewidth=3)
Plots.plot!(w_2[:,1], w_2[:,2], label="Скорость вращения неисправного ДПТ, об/мин", linewidth=2)
Out[0]:

可以看出,随着故障的引入,稳定的旋转速度变得更低。

In [ ]:
Plots.plot(w_1[:,1], w_1[:,2], label="Скорость вращения исправного ДПТ, об/мин", linewidth=3)
Plots.plot!(w_2[:,1], w_2[:,2], label="Скорость вращения неисправного ДПТ, об/мин", linewidth=2, xlim=(6.15, 6.50), ylim=(3400, 3700))
Out[0]:

通过放大图表,你可以看到一个不稳定的发动机速度与电枢绕组故障。

结论:

对仿真结果的分析表明,直流电机在起动后几秒钟内达到接近标称值(额定负载时)的稳定转速;当故障在稳态激活时,转速下降到新的稳定值,小于初始值。