飞机舱内自动压力调节系统(APS)模型
机舱内的自动压力调节系统 (APS) 设计用于在不同的飞行阶段(起飞、巡航飞行、着陆)保持机舱内的安全压力。
模型示意图:

系统的物理部分
单元 SCV - 以恒定的压力和温度模拟空调系统的供气。
块 管道阻力(2 块)--模拟空气管道中的压力损失。
模块 车厢容积 - 动态车厢模型,压力随空气注入/排出而变化。
区块排气阀 - 调节超压排入大气,由区块大气描述。
控制系统
模型中的控制系统由红色块组成,其中包括
** 以巴为单位的座舱压力传感器** - 将米为单位的海拔高度转换为同一高度的压力,根据定律: ,其中 为海拔高度。
- 总结器** - 计算设定值和测量值之间的不匹配信号。
PID 控制器、
** 滞后单位**、
** 帕到巴的转换单位**。
外部条件
外部条件由蓝色图块定义。假设:温度恒定。压力由块定义,从海拔高度转换为海拔高度的压力,其定律为: ,其中 为海拔高度。
飞行计划
代表飞行计划的图块描述了飞机高度如何随时间变化。它们在图中被涂成绿色。
飞行计划**块的输入为模型时间,输出为高度值(以米为单位)。
定义加载和启动模型的函数:
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 个步骤:
1.地面停车(1355 秒)。
2.起飞和爬升(500 秒)。
3.巡航飞行(1200 秒)。
4.下降和着陆(400 秒)。
5.飞行后停车(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]:
结论
在这个例子中,我们考虑了飞机机舱内的自动压力控制系统模型。分析图表后,我们可以得出这样的结论:在飞行的各个阶段,调节器都能将压力保持在设定的水平。