FlexWing-ROM

FlexWing-ROM: A matlab framework for data-driven reduced-order modeling of flexible wings - Published in JOSS (2022)

https://github.com/urban-fasel/flexwingrom

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

Economics Social Sciences - 40% confidence
Last synced: 4 months ago · JSON representation

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
Created over 4 years ago · Last pushed about 3 years ago
Metadata Files
Readme License

README.md

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:

  • 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.

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:

Owner

  • Name: Urban Fasel
  • Login: urban-fasel
  • Kind: user
  • Company: Imperial College London

Lecturer at Imperial College London

JOSS Publication

FlexWing-ROM: A matlab framework for data-driven reduced-order modeling of flexible wings
Published
December 12, 2022
Volume 7, Issue 80, Page 4211
Authors
Urban Fasel
Department of Aeronautics, Imperial College, London, United Kingdom
Nicola Fonzi
Department of Aerospace Science and Technology, Politecnico di Milano, Milan, Italy
Andrea Iannelli
Department of Information Technology and Electrical Engineering, ETH Zurich, Zurich, Switzerland
Steven L. Brunton
Department of Mechanical Engineering, University of Washington, Seattle, United States of America
Editor
Kevin M. Moerman ORCID
Tags
Matlab data-driven modeling aeroelasticity morphing wings dynamic mode decomposition with control

GitHub Events

Total
  • Watch event: 4
  • Fork event: 1
Last Year
  • Watch event: 4
  • Fork event: 1

Committers

Last synced: 5 months ago

All Time
  • Total Commits: 291
  • Total Committers: 1
  • Avg Commits per committer: 291.0
  • Development Distribution Score (DDS): 0.0
Past Year
  • Commits: 0
  • Committers: 0
  • Avg Commits per committer: 0.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
urban-fasel 6****l 291

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)
Top Labels
Issue Labels
Pull Request Labels