Документация Engee
Notebook

Двигатель постоянного тока с электрическими и механическими параметрами

В данном примере будет продемонстрирована модель двигателя постоянного тока с электрическими и механическими параметрами. Будут показаны процесс запуска модели из среды разработки скрипта с помощью командного управления, а также визуализация результатов моделирования. В симуляции на вал электродвигателя действует переменный крутящий момент.

Общий вид моделей

Модель Engee:

dc_motor_default_1715613166000.png

Определение функции для загрузки и запуска модели:

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

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

Загрузка, запуск модели и запись результатов

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

Запись сигналов в переменную data:

In [ ]:
data = collect(simout)
Out[0]:
7-element Vector{WorkspaceArray}:
 WorkspaceArray("dc_motor_default/Inertia.flange.T")
 WorkspaceArray("dc_motor_default/Крутящий момент")
 WorkspaceArray("dc_motor_default/Inertia.T")
 WorkspaceArray("dc_motor_default/Сила тока")
 WorkspaceArray("dc_motor_default/Напряжение")
 WorkspaceArray("dc_motor_default/Inertia.flange.w")
 WorkspaceArray("dc_motor_default/Inertia.w")

Запись данных о силе тока и крутящем моменте на валу электродвигателя в переменные current и torque:

In [ ]:
torque = collect(data[2])
current = collect(data[4]);

Визуализация результатов

Вывод графиков зависимости силы тока и крутящего момента от времени:

In [ ]:
p1 = plot(current[:,1], current[:,2], label="Ток", color="red")
p2 = plot(torque[:,1], torque[:,2], label="Крутящий момент", color="green")
plot(p1, p2, layout=(2,1))
Out[0]:

Выводы:

В данном примере были использованы инструменты для командного управления моделью. Результаты симуляции с помощью simout были записаны в соответствующие переменные, а также визуализированы, с помощью интерактивных графиков библиотеки Plots.

Блоки, использованные в примере