Deep Dynamical Modeling and Control of Unsteady Fluid Flows
Authors: Jeremy Morton, Antony Jameson, Mykel J. Kochenderfer, Freddie Witherden
NeurIPS 2018 | Conference PDF | Archive PDF | Plain Text | LLM Run Details
| Reproducibility Variable | Result | LLM Response |
|---|---|---|
| Research Type | Experimental | We present a method for learning the forced and unforced dynamics of airflow over a cylinder directly from CFD data. The proposed approach, grounded in Koopman theory, is shown to produce stable dynamical models that can predict the time evolution of the cylinder system over extended time horizons. Finally, by performing model predictive control with the learned dynamical models, we are able to find a straightforward, interpretable control law for suppressing vortex shedding in the wake of the cylinder. and The results of these experiments can be found in Fig. 3a and Fig. 3b, where the error metric is the relative error, defined as the L1-norm of the prediction error normalized by the L1-norm of the ground-truth solution. |
| Researcher Affiliation | Academia | Jeremy Morton jmorton2@stanford.edu Freddie D. Witherden fdw@stanford.edu Antony Jameson antony.jame son@tamu.edu Mykel J. Kochenderfer mykel@stanford.edu Department of Aeronautics and Astronautics, Stanford University Department of Aerospace Engineering, Texas A&M University |
| Pseudocode | No | The training algorithm is depicted in Fig. 1. First, a sequence of time snapshots x1:T +1 is used to construct the matrices X and Y defined in Eq. (1). These matrices are fed into an encoder neural network, which serves as the mapping g(xt) and produces the matrices X and Y defined in Eq. (3). Subsequently, a linear least-squares fit is performed to find an A-matrix that can propagate the state mappings forward in time. Finally, X and the propagated state mappings are fed into a decoder that functions as g 1 to yield the matrices ˆX and ˆY , approximations to X and Y . |
| Open Source Code | Yes | The code associated with this work can be found at https://github.com/sisl/deep_flow_control. |
| Open Datasets | No | A training dataset is constructed by saving time snapshots of the system every 1500 solver steps. To make the simulation data suitable for incorporation into a training algorithm, the data is formatted into image-like inputs before storage. and A training dataset is collected by simulating the two-dimensional cylinder system with time-varying angular velocity. |
| Dataset Splits | No | Each model is trained on 32-step sequences of data extracted from two-dimensional cylinder simulations. We then use the trained models to recreate the time evolution of the system observed during 20 test sequences and extract the error over time. |
| Hardware Specification | Yes | Training a single model takes approximately 12 hours on a Titan X GPU. |
| Software Dependencies | No | To perform the fluid flow simulations, we use a variation of the high-order accurate Py FR solver [25]. and The gradients for all operations are defined in Tensorflow [22], and the entire model can be trained end-to-end to learn suitable state mappings g(xt). and As formulated this optimization problem is a quadratic program, which can be solved efficiently with the CVXPY software [30]. (No version numbers provided for these software components). |
| Experiment Setup | Yes | In our implementation, the encoder consists of Res Net convolutional layers [21] with Re LU activations followed by fully connected layers, while the decoder inverts all operations performed by the encoder. We applied L2 regularization to the weights in the encoder and decoder. and Each model is trained on 32-step sequences of data extracted from two-dimensional cylinder simulations. ... For a fair comparison, g(xt) and zt are defined to be 32-dimensional vectors. and We use an MPC horizon of T = 16 time steps. and We set Q = I, the identity matrix, and R 105, which accounts for the fact that ct cgoal 2 is typically orders of magnitude larger than |ut| and discourages actions that are too extreme for the dynamical model to handle accurately. |