驾驶舱内自动压力控制系统(SARD)的模型
驾驶舱内的自动压力控制系统(sard)旨在在飞行的不同阶段(起飞,巡航飞行,着陆)保持机舱内的安全压力。
模型图:
系统的物理部分
SLE单元模拟来自具有恒定压力和温度的空调系统的空气供应。
块管道阻力(2块)-模拟空气管路中的压力损失。
客舱容积单元是一个动态客舱模型,其中压力根据空气注入/排放而变化。
块溢流阀-调节过量压力排放到大气中,由块大气描述。
管理系统
模型中的控制系统由红色块组成,其中包括:
酒吧客舱压力传感器-转换高度以米为单位在同一高度的压力,根据法律: 哪里 -身高
加法器-计算设定点m和测量值之间的失配信号,* *
PID控制器,
延迟单元,
*从Pa到酒吧的**传输单元。
外部条件
外部条件由蓝色块定义。 假设:温度恒定。 压力由单位确定根据法律从海拔高度转换为海拔高度的压力: 哪里 -高度。
飞行计划
代表飞行计划的块描述了飞机的高度将如何根据时间而变化。 它们在图中是绿色的。
在块的入口处飞行计划给出了模型时间,该单元的输出信号是以米为单位的高度值。
定义加载和运行模型的函数:
In [ ]:
function start_model_engee()
try
engee.close("pressure_control_system_in_aircraft", force=true) # закрытие модели
catch err # в случае, если нет модели, которую нужно закрыть и engee.close() не выполняется, то будет выполнена её загрузка после catch
m = engee.load("$(@__DIR__)/pressure_control_system_in_aircraft.engee") # загрузка модели
end;
try
engee.run(m, verbose=true) # запуск модели
catch err # в случае, если модель не загружена и engee.run() не выполняется, то будут выполнены две нижние строки после catch
m = engee.load("$(@__DIR__)/pressure_control_system_in_aircraft.engee") # загрузка модели
engee.run(m, verbose=true) # запуск модели
end
end
Out[0]:
运行模拟
In [ ]:
start_model_engee();
将仿真数据写入变量:
In [ ]:
t = simout["pressure_control_system_in_aircraft/Задатчик давления в кабине в барах"].time[:]
control_pressure = simout["pressure_control_system_in_aircraft/Задатчик давления в кабине в барах"].value[:]
cabin_pressure_bar = simout["pressure_control_system_in_aircraft/Давление в кабине в барах"].value[:]
altitude = simout["pressure_control_system_in_aircraft/Высота в метрах"].value[:]
external_pressure = simout["pressure_control_system_in_aircraft/Давление на высоте, в Па"].value[:]
cabin_pressure_pa = simout["pressure_control_system_in_aircraft/Датчик давления в кабине, Па.1"].value[:];
数据可视化
In [ ]:
using Plots
飞行计划包括5个阶段:
- 站在地上(1355秒)。
- 起飞和爬升(500秒)。
- 巡航飞行(1200秒)。
- 下降和着陆(400秒)。
- 飞行后停车(1531秒)。
In [ ]:
plot(t, altitude, linewidth=2, xlabel="Время, с", ylabel="Высота, м", title="План полёта", legend=false)
Out[0]:
根据飞行高度的变化,外部压力发生变化,以及机舱内的压力根据调节规律发生变化。:
In [ ]:
plot(t, external_pressure, linewidth=2, label="Давление на высоте полёта")
plot!(t, cabin_pressure_pa, linewidth=2, label="Давление в кабине", xlabel="Время, с", ylabel="Давление, Па", legend=:bottomright)
Out[0]:
这种压力差是为了乘客在飞机上的舒适停留而保持的。 但机舱内的压力略小于正常情况下的压力,这是由飞机结构的强度要求决定的。
设定和测量的机舱压力图:
In [ ]:
plot(t, control_pressure, linewidth=2, label="Заданное давление в кабине")
plot!(t, cabin_pressure_bar, linewidth=2, label="Измеренное давление в кабине", xlabel="Время, с", ylabel="Давление, бар", legend=:bottomright)
Out[0]:
结论:
在这个例子中,考虑了飞机机舱内自动压力控制系统的模型。 分析图表后,可以得出结论,调节器在飞行的所有阶段都将压力保持在预设水平。