What is muAO-MPC?

\muaompc is a code and data generation tool for model predictive control. \muaompc is free software released under the terms of the GNU general public license version 3 (GPLv3).

\muaompc mainly consists of the muaompc Python package.

The muaompc package

This package automatically generates self-contained C-code specific for a model predictive control (MPC) problem. The generated code consist of C-code for the problem, and C-code for data corresponding to that problem. The problem, as well as the data, are specified by the user in two separate text files using a high-level description language. The generated C-code is a ready-to-use fast MPC implementation.

The generated C code is fully compatible with the ISO C89/C90 standard, and is platform independent. The code can be directly used in embedded applications, using popular platforms like Arduino, and Raspberry Pi, or any other application on which C/C++ code is accepted, like many current generation programable logic controllers (PLC). Additionally, MATLAB/Simulink interfaces to the generated code are provided.

At the moment, we consider the following types of systems:

  • linear discrete-time sytems (the ldt module)

The ldt module

This module creates a model predictive control (MPC) controller for a linear discrete-time (ldt) system with input and (optionally) state constraints, and a convex cost function. The MPC problem is reformulated as a condensed convex mathematical program, which can be solved using off-the-shelf optimization algorithms, or the ones included in muaompc.