-
Notifications
You must be signed in to change notification settings - Fork 1
Home
Welcome to the 🌀FlowControl Wiki! [UNDER CONSTRUCTION]
- Content under construction
- Content under construction
- Content under construction
The FlowControl toolbox is an open-source toolbox addressing the simulation and control of 2D incompressible flows. It aims at providing a user-friendly way to simulate flows with actuators and sensors, and a possibility to readily define new use-cases.
The primary goal of the toolbox is the design and implementation of feedback control algorithms, but it may be used for a variety of other topics such as model reduction or identification, actuator and sensor placement study...
The toolbox is shipped with two benchmarks for flow control and allows for easy implementation of new cases.
The core of the toolbox is in Python and relies on FEniCS 2019.1.0 as a backend.
- By default, the toolbox integrates in time the
Incompressible Navier-Stokes equations. For a 2D flow defined by its velocity
${v}({x}, t) = [v_1({x}, t), v_2({x}, t)]$ and pressure$p({x}, t)$ inside a domain${x} = [x_1, x_2] \in\Omega$ , the equations read as follows:
- The only numerical parameter of the non-dimensional equations, the Reynolds number defined as
$Re = \frac{UL}{\nu}$ , balances convective and viscous terms.
The toolbox allows the user to define actuators and sensors for forcing the flow. It also provides utility for controller design and implementation. See the examples given below.
Two classic oscillator flows used for flow control are shipped with the current code.
| Use-case | Description | Feedback configuration |
|---|---|---|
| Cylinder | Flow past a cylinder at Re=100 | SISO |
| Cavity | Flow over an open cavity at Re=7500 | SISO |
- For the flow past a cylinder at Re=100, see e.g.:
- For the flow over an open cavity at Re=7500, see e.g.:
The following articles were based on previous versions of the code:
- Jussiau, W., Leclercq, C., Demourant, F., & Apkarian, P. (2022). Learning linear feedback controllers for suppressing the vortex-shedding flow past a cylinder. IEEE Control Systems Letters, 6, 3212-3217.
- Jussiau, W., Leclercq, C., Demourant, F., & Apkarian, P. (2024). Data-driven stabilization of an oscillating flow with linear time-invariant controllers. Journal of Fluid Mechanics, 999, A86.
The toolbox provides additional utility related to flow control:
- Compute dynamic operators A, B, C, D and mass matrix E,
- Restart a simulation from a previous one,
- Arbitrary number of sensors (for feedback or performance),
- Export time series (measurements from sensors, perturbation kinetic energy...) and fields for visualization,
- Parallel execution native to FEniCS,
- To some extent, easy modification of the equations, numerical schemes and solvers used for time simulation,
- Can be used as backend in an optimization tool (as in Jussiau, W., Leclercq, C., Demourant, F., & Apkarian, P. (2022). Learning linear feedback controllers for suppressing the vortex-shedding flow past a cylinder. IEEE Control Systems Letters, 6, 3212-3217.).
See related entries in Wiki
The current roadmap is as follows:
- Complete the documentation 📖,
- Refactor and release additional control-related tools,
- Update the project to FEniCSx,
- Sort and check all utility functions,
- General form for operator computation,
- Docker/venv/pip.
Powered by GitHub