urban-fasel / FlexWingROM

GNU General Public License v3.0
16 stars 4 forks source link

FlexWing-ROM

DOI DOI

The matlab codebase FlexWing-ROM models fluid structure interaction (FSI) of flexible wings and generates data-driven reduced order models that can be used for analysis and control.

The different methods are introduced in the JOSS paper Fasel et al. (2022).

FlexWing-ROM_OverviewFigure

Table of contents

How to run the code

Main script

MAIN.m
Generates a wing model (e.g. NACA0012 or NACA6418, morphing or non-morphing), runs different FSI test cases, and generates and compares reduced-order models.

FlexWing-ROM_CodeStructure

 

Tutorials

Two different flexible wings are used in the tutorials, shown in the figure below. On the left, a NACA6418 morphing wing (five compliant ribs on each side), and on the right, a NACA0012 non-morphing wing (no compliant ribs).

Flexible wings

FlexWing-ROM_NACA6418_animation.gif

Dependencies

The following matlab toolboxes are required to run the code:

XFOIL is used to calculate the viscous drag and maximum lift coefficient of the airfoil. The XFOIL version only runs on Windows. In case the code is run on Linux, the airfoil coefficients are loaded from precalculated tables for NACA0012 and NACA6418.

What you can do with this code

FlexWingROM is a matlab codebase that contains a fully parametrized wing model generator, a fluid-structure interaction solver, and three recent data-driven parametric reduced order modeling methods for flexible wings.

Parametrized wing model generator and fluid structure interaction solver

The main code structure is shown in the figure above. First, a flexible wing FSI model is generated that is coupling a finite element code with a 3D unsteady panel method. The wing design is fully parametrised and can be defined in wingDesignAndSimParameters.m (e.g. the airfoil shape (currently four digit NACAs implemented), the planform, the material properties, structural design, ...).
The open source FE-code YetAnotherFEcode and parts of the Apame 3D panel code and XFOIL are used:

FSI test cases and comparisons

The FSI model of the flexible wing is then used to run some test cases

Data driven (parameter varying) reduced order models

The main features of the code are three data-driven (parameter varying) reduced order modeling approaches (ROM.m):

The FSI solver is used to generate synthetic impulse response data sets that are stored in data files. These are used to build and test the three different reduced order models. Each method can be used to first generate local linear models that are accurate around a single operating condition. Then, depending on each method, interpolation schemes are introduced to build parameter varying models that are accurate over multiple operating conditions. The accuracy of the method is evaluated and the different methods are compared.
Most importantly, the model order reduction methods can be used with other fluid or fluid structure data sets (both numerical and experimental), by loading any external impulse response data. Therefore, the code should be widely applicable and useful for generating accurate and efficient reduced order models.

Community guidelines

Contribute to the software

If you would like to contribute an example or extend a method (e.g. new ROM variants or advanced functionalities), reach out to us by creating an issue!

Report problems with the software or seek support

If you find a bug in the code or need help using FlexWingROM please create an issue.

References

The code is mainly based on the following publications: