Giter Club home page Giter Club logo

koopmanmpc_for_flowcontrol's Introduction

KoopmanMPC_for_flowcontrol

This project demonstates the application of Koopman-MPC framework for flow control, following the paper "A data-driven Koopman model predictive control framework for nonlinear flows" by H. Arbabi, M. Korda and I. Mezic (https://arxiv.org/pdf/1804.05291.pdf).

The Koopman-MPC framework is summarized in the below figure:

files in the root folder:

BurgersExample

Runs the Burgers example as explained in the paper, it includes data collection, Extended Dynamic Mode Decomposition (EDMD) for identification of the Koopman linear system, and a run of closed-loop controlled system from some initial condition. Feel free to play with the paremeters of the code, specially, try different observables, embedding dimension, reference signal, initial condition, etc. The whole program, with the initial paremeter settings, runs on my personal laptop in under 2 minutes.

CavityExample

Runs the lid-driven cavity flow example as explained in the paper, including EDMD for identification of the Koopman linear system, and a run of closed-loop controlled system from some initial condition on the limit cycle. There are two options to run this code: 1- ask the code to generate data for EDMD. This is a lengthy process and for the parameter values reported in the paper takes ~10 hours on a powerful desktop (with no parallelization), or 2- go to https://ucsb.box.com/s/367tvkgnzby61x9nrh64q81748ugaw63 and download the data file "Cavity_data_4EDMD_0" (~3GB) which is the data used in the paper. Using the data file, the program takes about 5 minutes to run on my laptop.

before you run the code:

go to "./thehood/" and unzip "qpOASES-3.1.0", then go to subfolder ".\thehood\qpOASES-3.1.0\interfaces\matlab" and run make.m . This is required to activate the qpOASIS interface for solving the optimization problem.

send comments and questions to

H Arbabi

April 2018

koopmanmpc_for_flowcontrol's People

Contributors

arbabiha avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.