What Is jMPC?
jMPC is a MATLAB toolbox which is a collection of m-files, Simulink models and compiled C-MEX functions for use in simulating and controlling dynamic systems using Model Predictive Control. Key functionality offered by this toolbox include:
- Easily build linear MPC controllers.
- Simulating controllers within linear and nonlinear environments.
- Embed the resulting MPC controller with autocode generation in C.
- Applying linear inequality constraints to inputs and outputs.
- Various Quadratic Programming (QP) solvers are provided to solve the quadratic cost function.
- Implement advanced functionality such as state estimation, blocking and soft constraints.
- View real-time MPC control using the supplied Graphical User Interface (GUI).
- Connect the Simulink MPC block to real world dynamic systems using an A/D and D/A.
- Demonstrate MPC using 3D animations of real systems.
This work is the result of my research into embedded MPC during my time at AUT University during my Ph.D. in 2009-2012 (i.e. a long time ago!).
Further Reading
My thesis also contains a huge amount of information on the development of jMPC, its motivation and some interesting case studies. However for most users, jump to the Examples page!