Engee documentation
Notebook

The model of the automatic pressure control system (SARD) in the cockpit

The automatic pressure control system (SARD) in the cockpit is designed to maintain safe pressure inside the cabin at different stages of the flight (takeoff, cruise flight, landing).

Model diagram:

pressure_control_system_in_aircraft--1743418578183.png

The physical part of the system

The SLE unit simulates the supply of air from an air conditioning system with constant pressure and temperature.

Block Pipeline resistance (2 blocks) – simulates pressure losses in air lines.

The Cabin Volume unit is a dynamic cabin model where pressure varies depending on air injection/discharge.

Block Relief valve – regulates the discharge of excess pressure into the atmosphere, which is described by the block The atmosphere.

The management system

The control system in the model consists of red blocks, which include:

  • cabin pressure sensor in bars - converts height in meters to pressure at the same height, according to the law: where — height
  • adder - calculates the mismatch signal between the setpoint**m and the measured value,* *
  • PID controller,
  • delay unit,
  • the ** transfer unit from Pa to bar**.

External conditions

The external conditions are defined by the blue blocks. Assumption: the temperature is constant. The pressure is determined by the unit Conversion from altitude to pressure at altitude according to the law: where — height.

Flight plan

The blocks representing the flight plan describe how the altitude of the aircraft will change depending on time. They are green in the diagram.

At the entrance of the block Flight plan the model time is given, the output signal of the unit is the altitude value in meters.

Defining the function to load and run the model:

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]:
start_model_engee (generic function with 1 method)

Running the simulation

In [ ]:
start_model_engee();
Building...
Progress 0%
Progress 5%
Progress 10%
Progress 15%
Progress 21%
Progress 26%
Progress 32%
Progress 37%
Progress 42%
Progress 47%
Progress 53%
Progress 58%
Progress 63%
Progress 68%
Progress 74%
Progress 79%
Progress 84%
Progress 90%
Progress 95%
Progress 100%
Progress 100%

Writing simulation data to variables:

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[:];

Data visualization

In [ ]:
using Plots

The flight plan includes 5 stages:

  1. Standing on the ground (1355 seconds).
  2. Takeoff and climb (500 seconds).
  3. Cruise flight (1200 seconds).
  4. Descent and landing (400 seconds).
  5. Parking after flight (1531 seconds).
In [ ]:
plot(t, altitude, linewidth=2, xlabel="Время, с", ylabel="Высота, м", title="План полёта", legend=false)
Out[0]:

In accordance with the change in flight altitude, the external pressure changes, as well as the pressure in the cabin according to the law of regulation.:

In [ ]:
plot(t, external_pressure, linewidth=2, label="Давление на высоте полёта")
plot!(t, cabin_pressure_pa, linewidth=2, label="Давление в кабине", xlabel="Время, с", ylabel="Давление, Па", legend=:bottomright)
Out[0]:

This pressure difference is maintained for a comfortable stay of passengers on the plane. But the pressure in the cabin is slightly less than the pressure under normal conditions, this is determined by the strength requirements for the aircraft structure.

Graph of set and measured cabin pressure:

In [ ]:
plot(t, control_pressure, linewidth=2, label="Заданное давление в кабине")
plot!(t, cabin_pressure_bar, linewidth=2, label="Измеренное давление в кабине", xlabel="Время, с", ylabel="Давление, бар", legend=:bottomright)
Out[0]:

Conclusions:

In this example, a model of an automatic pressure control system in an airplane cabin was considered. After analyzing the graphs, it can be concluded that the regulator maintains the pressure at a preset level at all stages of the flight.