Моделирование неисправности обмотки якоря электродвигателя
В данном примере моделируется работа двигателя постоянного тока с неисправностью обмотки якоря.
Схема модели:

Неисправность обмотки якоря двигателя постоянного тока имитируется с помощью блока Engee Function, в котором, в разделе Step method code, встроена функция на языке программирования Julia. Функция принимает два аргумента - угол поворота и долю оборота с неисправностью и возвращает сигналы 1 или 0, которые характеризуют исправное или неисправное состояние соответственно.

Сигнал из блока Engee Function поступает в блок Ключ, размыкая и замыкая цепь якоря двигателя.
Определение функции для загрузки и запуска модели:
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
Запуск симуляции
Симуляция без неисправности:
start_model_engee();
Выделение из переменной simout сигналов частоты вращения, силы тока и напряжения:
result = simout;
res1 = collect(result)
Внесение неисправности в обмотку якоря:
engee.set_param!("simple_motor_armature_winding_fault/Доля оборота
характеризующая
неисправность", "Value" => 0.0833)
Запуск симуляции с неисправностью обмотки якоря:
engee.run("simple_motor_armature_winding_fault");
Выделение из переменной simout сигналов частоты вращения, силы тока и напряжения:
result = simout;
res2 = collect(result)
Запись сигналов в переменные:
w_1 = collect(res1[2])
w_2 = collect(res2[2]);
Визуализация результатов моделирования
График частоты вращения двигателя без неисправности и с неисправностью обмотки якоря:
using Plots
Plots.plot(w_1[:,1], w_1[:,2], label="Скорость вращения исправного ДПТ, об/мин", linewidth=3)
Plots.plot!(w_2[:,1], w_2[:,2], label="Скорость вращения неисправного ДПТ, об/мин", linewidth=2)
Видно, что установившаяся частота вращения стала ниже с введением неисправности.
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))
Приблизив график можно увидеть нестабильную частоту вращения двигателя с неисправностью обмотки якоря.
Выводы:
Анализ результатов симуляции показывает, что двигатель постоянного тока достигает стабильной скорости вращения, близкой к номинальному значению (при номинальной нагрузке), в течение нескольких секунд после запуска; при активации неисправности в установившемся режиме скорость снижается до нового стабильного значения, меньше исходного.