A multipurpose, easy-to-use Model Predictive Control design and simulation code
Marco Vaccari, Gabriele Pannocchia
- Year
- 2016
- Citations
- 5
Abstract
We present a multipurpose, easy-to-use code for Model Predictive Control (MPC) design, analysis and simulation. The major goal of this code is to provide the user with a general, versatile MPC framework that can be adapted to problems in different areas, e.g. process control, robotics, aerospace. Many different MPC simulation problems can be easily studied with this code, given the following features: \n• The MPC model can be linear or non-linear, discrete and continuous time. \n• The same possibilities apply to the controlled process, which can also be selected equal to the MPC \nmodel for nominal simulation cases. \n• The finite-horizon cost function can be quadratic as in standard (tracking) MPC problems or any (linear or nonlinear) function, e.g. to consider economic MPC problems. In addition, it can be defined as the sum of discrete-time stage cost terms or the integral of a continuous-time running cost. \n• A target calculation module is also available, with simple quadratic or generic cost function. \n• State feedback or output feedback can be considered, and in the latter case several choice of linear \nand nonlinear observers are made available. \n• In all cases the user can activate the “offset-free” design option, to implement a linear or non-linear disturbance model, and an associated augmented observer. \nThe code has been implemented in Python 2.7, using CasADi 3.1, and its architecture is rather simple: the basic idea is to have a main file containing all the MPC core functions. Everything else, such as model or cost functions, steady-state and dynamic optimization problems, state estimation, is made in separate Python scritpts. In this way the architecture is somehow modular and easier to develop and to further customize. \nFor each case to simulate, the user has to fill in a single Python script with all the required information such as matrices or functions describing the state dynamics and cost terms, MPC horizon, simulation horizon, time step, etc. Several boolean variables are provided to help the user with the problem definition, e.g. state-feedback, nominal case, continuous cost function. Finally, there is also the possibility to specify which offset-free disturbance model applies by simply changing a name tag. \nDuring this talk, the main features and problems that can be solved with this code will be thoroughly il- lustrated, discussing the problem setup and methodologies, the coding choices. In addition, the results obtained on several test cases taken from different areas will be presented. Finally, we will illustrate the future research and development directions, which may include: implementing a moving horizon estima- tion, implementing a modifiers adaptation based technique for the economic MPC case, an object oriented programming of the code.
Keywords
Related papers
Statistical Learning Theory
Yuhai Wu, Vladimir Vapnik
1999
Artificial intelligence: a modern approach
1995
Fractional Differential Equations
Igor Podlubný
2025
Applied Nonlinear Control
Jean-Jacques Slotine, Weiping Li
1991