nosnoc is a software framework for numerical optimal control and model predictive control (MPC) of hybrid and nonsmooth dynamical systems, including systems with switching, state jumps, impacts, hysteresis, and complementarity structure.
Its main capabilities include:
1. Real-time MPC algorithms for hybrid systems:
Fast MPC in nosnoc uses CCOpt, which is currently our fastest and most robust solver, especially suited for MPC applications.
2. Automatic discretization via FESD (Finite Elements with Switch Detection)
3. Automatic reformulations of systems with state jumps
4. Homotopy-based and active-set solutions of mathematical programs with complementarity constraints
With nosnoc, users can formulate and solve problems involving:
See nosnoc's example library for a range of optimal control and MPC examples.
The package is based on CasADi. It has both a MATLAB and python version, the source code can be found at: