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

Турбореактивный двигатель (системная модель)

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

В этом примере мы изучим применение блока "Турбореактивный двигатель" и интерпретируем результаты расчета.

Ограничения блока

У блока "Турбореактивный двигатель всего 4 входа и 4 параметра. Можно представить, что у более точной модели их будет намного больше, но в этом примере мы рассматриваем наиболее высокоуровневую из доступных моделей ГТД.

Для изучения внутреннего устройства подобной модели рекомендуем обратить внимание на более детальный пример, который называется "Моделирование малоразмерного ГТД".

image.png

Основной блок, который этот проект демонстрирует, содержит "направленную" модель с замкнутой и отлаженной системой управления.

Эта модель работает как алгоритм, у нее не будет нестабильности, паразитных физических эффектов, все контуры управления отлажены и замкнуты.

Чтобы собрать испытательный стенд или хотя бы более подробную модель, нужно было бы обратиться к вышеупомянутому примеру или к блокам физического моделирования. Модель на "акаузальных" физических блоках позволит пронаблюдать много интересных явлений (влияние динамики сопла, перепусков, изучение качества воздуха, помпаж и зуд, срыв пламени и т.д.).

Однако поскольку в ходе проектирования САУ влияние любых вредных процессов стараются минимизировать, этот блок отлично подходит на роль модели законченного изделия.

Запуск модели турбореактивного двигателя

Запустим модель чтобы изучить результаты:

In [ ]:
model = engee.open("$(@__DIR__)/turbofan_engine_system.engee")
data = engee.run( model )
Out[0]:
SimulationResult(
    "РУД" => WorkspaceArray{Float64}("turbofan_engine_system/РУД")
,
    "Тяга" => WorkspaceArray{Float64}("turbofan_engine_system/Тяга")
,
    "Расход топлива" => WorkspaceArray{Float64}("turbofan_engine_system/Расход топлива")

)

Обратимся к переменным из структуры data чтобы построить несколько графиков:

In [ ]:
t = data["РУД"].time
руд = data["РУД"].value
расход = data["Расход топлива"].value
тяга = data["Тяга"].value

plot(plot(руд, тяга, lw=2, title="Связь РУД и тяги ГТД", xlabel="РУД", ylabel="Тяга ГТД, Н"), 
     plot(руд, расход, lw=2, c=2, title = "Связь РУД и расхода топлива", xlabel="РУД", ylabel="Расход топлива, кг/с"),
     legend=false, titlefont=font(12))
Out[0]:

Заключение

Модель позволила нам пронаблюдать цикл работы ГТД при медленном перемещении РУД (синусоида с периодом 0.1 рад/с) на высоте 600 м и при скорости 0.5 Мах. Управление РУД осуществлялось в интервале от 0 до 1, что не является реалистичным сценарием испытания ГТД, но хорошо показывает динамику модели.

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