This repository contains the source code used for the research results in [1]. It provides a simulation environment for active gust load alleviation for an aeroelastic airplane implemented in Matlab/Simulink.
[1] Beyer, Y., Steen, M., & Hecker, P. (2024). Boosted Incremental Nonlinear Dynamic Inversion for Flexible Airplane Gust Load Alleviation. Journal of Guidance, Control, and Dynamics.
- MATLAB: You need MATLAB/Simulink 2018b or later. You do not need any additional toolboxes.
- Clone project including the submodules:
git clone --recursive https://github.com/iff-gsc/SE2A_GLA_INDI.git
- TiXI (optional; for changing aircraft configuration): You need to install TiXI 2.2.3: https://github.com/DLR-SC/tixi
- TiGL (optional; for changing aircraft configuration): You need to install TiGL 2.2.3: https://github.com/DLR-SC/tigl
- FlexiFlightVis 0.2 (optional; for visualization): https://github.com/iff-gsc/FlexiFlightVis
- Initialize the simulation model:
- Open MATLAB.
- Navigate to the project folder and then to the subfolder demo:
cd('demo')
- Run the initialization script init_flexible_unsteady_indi (Click
Change Folder
orAdd to Path
if requested.):init_flexible_unsteady_indi
- Run the Simulink simulation:
- The Simulink model sim_flexible_unsteady_indi should already open during the initialization.
- Run the Simulink model.
- Several signals are logged in the
Scopes
subsystem.
- Run FlexiFlightVis to see what happens.
The plot_scripts
folder contains Matlab scripts that can be used to reproduce the diagrams from the paper.
The table below shows which scripts can be used to create which diagrams.
All scripts work independently.
Figure | Filename |
---|---|
1 | plot_block_diagram_pics.m |
3 | plot_gusts.m |
9 | plot_actuator_boost_example.m |
10 | plot_booster_avoid_noise.m |
11 | plot_booster_avoid_noise.m |
14 | plot_mass_distribution.m |
15a | plot_wing_definition.m |
15b | plot_control_effectiveness.m |
16 | plot_eigenmodes.m |
18a | plot_wrbm_mode_contributions.m |
18b | plot_wrbm_mode_contributions_gusts.m |
19 | plot_gust_response.m |
20 | plot_gust_response_delay.m |
21 | plot_gust_response_control_inputs.m |
22 | plot_gust_response_delay_gain.m |
23 | plot_gust_envelope_delay_rate_limit.m |
24 | plot_gust_envelope_delay_rate_limit.m |
25 | plot_gust_response_robust_servo.m |
26 | plot_gust_response_robust_delay.m |
27 | plot_gust_response_robust_cntrl_effect.m |
28 | plot_gust_response_failure.m |
The plot scripts mostly consist of an initialization of the parameters with trim calculation, simulations, the creation of the figures and the export to a TikZ file.
The export to a TikZ file is deactivated by default and can be activated by setting: is_tikz_export_desired = true
.
The trim calculation takes quite a long time.
Since the same trim point is often used in different plot scripts, you can often skip the initialization with trim calculation after it has been executed for the first time.
In addition, the very first trim calculation takes a very long time because the Simulink model has to be compiled.
FlexiFlightVis can be used for visualization during the simulations.
Unfortunately, there may be slight differences between the paper and this repository for some figures, as minor changes were made after the final paper was submitted.
Information about the aeroelastic flight dynamics model can be found in this repository: https://github.com/iff-gsc/SE2A_Aviation_2023