FlexWing-ROM
FlexWing-ROM: A matlab framework for data-driven reduced-order modeling of flexible wings - Published in JOSS (2022)
Science Score: 93.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 14 DOI reference(s) in README and JOSS metadata -
✓Academic publication links
Links to: sciencedirect.com, wiley.com, joss.theoj.org, zenodo.org -
○Committers with academic emails
-
○Institutional organization owner
-
✓JOSS paper metadata
Published in Journal of Open Source Software
Scientific Fields
Repository
Basic Info
- Host: GitHub
- Owner: urban-fasel
- License: gpl-3.0
- Language: MATLAB
- Default Branch: main
- Size: 240 MB
Statistics
- Stars: 21
- Watchers: 2
- Forks: 5
- Open Issues: 1
- Releases: 1
Metadata Files
README.md
FlexWing-ROM
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).
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.
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).

example1NACA0012FSImodalvs_displacement.m
- Comparing a modal vs. displacement FE-model FSI (on a NACA0012).
-
- Runs an unsteady panel method FSI (on a NACA6418) and animates the wake and wing displacements. The animation shows sinusoidal pitching (left) and morphing (right)
example3NACA0012unsteadyPMvsTheodorsen.m
- Comparing an unsteady panel method (on a NACA0012) with Theodorsen's function.
-
- Comparing three data-driven reduced-order models using a NACA6412 morphing wing.
Dependencies
The following matlab toolboxes are required to run the code:
- Control System Toolbox
- System Identification Toolbox
- Statistics and Machine Learning Toolbox
- Parallel Computing Toolbox
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:
* Finite element code:
* Shobhit Jain, Jacopo Marconi & Paolo Tiso (2020). YetAnotherFEcode. Zenodo.
3D unsteady panel method
- Based on J Katz, A Plotkin. Low-speed aerodynamics, Cambridge university press, 2001
- Steady panel method matlab implementation: Apame
XFOIL
- M. Drela. XFOIL
- Matlab interface 2011 by Rafael Oliveira
FSI test cases and comparisons
The FSI model of the flexible wing is then used to run some test cases * Modal vs. full FE-model FSI runSteadyFSItestcases.m * Unsteady FSI runUnsteadyFSItestcases.m * Comparison unsteady panel method vs. Theodorsen's function runTheodorsenFSItestcases.m
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): * algebraic dynamic mode decomposition with control * input output reduced-order model * balanced mode decomposition
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:
N. Fonzi, S. L. Brunton, U. Fasel. Data-driven nonlinear aeroelastic models of morphing wings for control. Proceedings of the Royal Society A, 2020.
A. Iannelli, U. Fasel, R. S. Smith. The balanced mode decomposition algorithm for data-driven LPV low-order models of aeroservoelastic systems. Aerospace Science and Technology, 2021.
J. Annoni, P. Seiler. A method to construct reducedorder parametervarying models. International Journal of Robust and Nonlinear Control, 2017.
G. Molinari, A. F. Arrieta, and P. Ermanni. Aero-structural optimization of three-dimensional adaptive wings with embedded smart actuators. AIAA Journal, 2014.
U. Fasel, P. Tiso, D. Keidel, G. Molinari, P. Ermanni. Reduced-order dynamic model of a morphing airborne wind energy aircraft. AIAA Journal, 2019.
Owner
- Name: Urban Fasel
- Login: urban-fasel
- Kind: user
- Company: Imperial College London
- Website: https://scholar.google.com/citations?user=XT5bVecAAAAJ&hl=en
- Repositories: 3
- Profile: https://github.com/urban-fasel
Lecturer at Imperial College London
JOSS Publication
FlexWing-ROM: A matlab framework for data-driven reduced-order modeling of flexible wings
Authors
Department of Aeronautics, Imperial College, London, United Kingdom
Department of Aerospace Science and Technology, Politecnico di Milano, Milan, Italy
Department of Information Technology and Electrical Engineering, ETH Zurich, Zurich, Switzerland
Department of Mechanical Engineering, University of Washington, Seattle, United States of America
Tags
Matlab data-driven modeling aeroelasticity morphing wings dynamic mode decomposition with controlGitHub Events
Total
- Watch event: 4
- Fork event: 1
Last Year
- Watch event: 4
- Fork event: 1
Issues and Pull Requests
Last synced: 4 months ago
All Time
- Total issues: 12
- Total pull requests: 1
- Average time to close issues: about 14 hours
- Average time to close pull requests: less than a minute
- Total issue authors: 2
- Total pull request authors: 1
- Average comments per issue: 2.0
- Average comments per pull request: 0.0
- Merged pull requests: 1
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 0
- Pull requests: 0
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Issue authors: 0
- Pull request authors: 0
- Average comments per issue: 0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- Kevin-Mattheus-Moerman (11)
- alexruiz95 (1)
Pull Request Authors
- urban-fasel (1)
