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

Тепловая схема электродвигателя

В данном примере демонстрируется, как можно смоделировать тепловое состояние бесщеточного двигателя с использованием модели с сосредоточенными параметрами. Тепло, выделяющееся из-за потерь мощности в статоре, обмотке и роторе, представлено тремя источниками теплового потока: тепловыделение в статоре (Q Статора), тепловыделение обмотки (Q Обмотки) и тепловыделение ротора из-за потерь на намагничивание и вихревые токи (Q Ротора). Потери были зафиксированы во время моделирования типичного цикла работы электродвигателя и сохранены в блоках Repeating table. Тепловой контур двигателя состоит из теплопроводящих элементов, тепловых масс и конвективных блоков теплопередачи, которые воспроизводят пути распространения тепла в деталях: обмотке, статоре, корпусе, роторе, передней и задней опорах подшипников и фланце. Двигатель обменивается теплом с атмосферой через контакты корпус-атмосфера, фланец-атмосфера и подшипник 1 -атмосфера. Имитируются условия окружающей среды с помощью источника идеальной температуры, установленного на 300 К.

Схема модели:

motor_thermal_circuit_1733400267958.png

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

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

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

Запуск симуляции

In [ ]:
try
    start_model_engee() # запуск симуляции с помощью специальной функции, реализованной выше
    catch err
    end;

Запись из simout в переменные сигналов о температурах и тепловых потоках:

In [ ]:
t = collect(simout["Тепловая масса статора.T"].time[:])
Температура_ротора = collect(simout["Тепловая масса ротора.T"].value[:])
Температура_обмоток = collect(simout["Тепловая масса обмоток.T"].value[:])
Температура_статора = collect(simout["Тепловая масса статора.T"].value[:])
Температура_корпуса = collect(simout["Тепловая масса корпуса.T"].value[:])
Тепловыделение_ротора = collect(simout["Тепловая масса ротора.T"].value[:])
Тепловыделение_обмоток = collect(simout["Тепловая масса обмоток.T"].value[:])
Тепловыделение_статора = collect(simout["Тепловая масса статора.T"].value[:]);

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

In [ ]:
using Plots
In [ ]:
plot(t[:,1], Температура_ротора[:,1], label="Температура ротора, K", linewidth=2)
plot!(t[:,1], Температура_статора[:,1], label="Температура статора, K", linewidth=2)
plot!(t[:,1], Температура_обмоток[:,1], label="Температура обмоток, K", linewidth=2)
plot!(t[:,1], Температура_корпуса[:,1], label="Температура корпуса, K", linewidth=2, legend=:bottomright)
Out[0]:
In [ ]:
plot(t[:,1], Тепловыделение_ротора[:,1], label="Тепловыделение ротора, Вт", linewidth=2)
plot!(t[:,1], Тепловыделение_статора[:,1], label="Тепловыделение статора, Вт", linewidth=2)
plot!(t[:,1], Тепловыделение_обмоток[:,1], label="Тепловыделение обмоток, Вт", linewidth=2, legend=:bottomright)
Out[0]:

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