ODYS Embedded MPC

A software library for real-time model predictive control

ODYS Embedded MPC is a software library for developing Model Predictive Control solutions in real-time applications.

At its core, ODYS Embedded MPC implements real-time MPC and state estimation functions in C code, crafted with emphasis on execution speed, numerical robustness, limited memory footprint, and the ability to support advanced control design features.

However, ODYS  Embedded MPC is much more than that. It provides easy-to-use interfaces to C/C++, MATLAB, and Simulink to run the same, efficient code in both simulation environments and production platforms. It includes a user-friendly performance assessment tool for in-depth visualization and comprehensive analysis of MPC results, enabling easier development, calibration, and troubleshooting, and providing insights that improve the user’s understanding of the control system.

The software can be integrated with ODYS Deep Learning Toolset, a plugin available in MATLAB® and Python for developing prediction models based on neural networks, that are automatically exported to C code for immediate use by our MPC and state estimation functions.

As part of the MathWorks Connections Program, ODYS Embedded MPC has a plugin to run linear and nonlinear MPC controllers designed using the Model Predictive Control Toolbox™ for MATLAB. With a single click, users can port their existing project carried out with MATLAB’s Model Predictive Control Toolbox™ to ODYS framework. This will enable the use of fast and robust C code, ready for simulation and deployment on your target hardware.

Check out an overview of ODYS software tools for real-time optimization and embedded MPC, as presented at IFAC TC on Optimal Control “Trends in software and tools for optimal and predictive control” on May 18, 2022.

The current version of the software is v3.8.0, released on March 21, 2024. If you use ODYS Embedded MPC in a scientific paper, please add a citation.

Interested in ODYS Embedded MPC? Get in touch with us. We will discuss the requirements of your application, assist you in evaluating the benefits and capabilities of our software, and provide a quotation for your project’s needs.

Powerful design

ODYS Embedded MPC handles general multivariable linear time-varying and nonlinear prediction models. The software supports advanced MPC design features, in terms of formulation of the cost function, constraints, preview, and degrees of freedom in the optimization. Estimation is performed by using state-of-the-art Kalman filtering techniques, optimized for computation efficiency and numerical robustness also in single precision.

The control design interface is incredibly flexible, enabling easy reconfiguration and adaptation of the model and control specs at runtime, based on changes of operating conditions. Built-in features provide model integration and differentiation functions, to easily produce linearized, discrete-time models used for predictions.

Fast, reliable, compliant

ODYS Embedded MPC is fast and robust also in single precision, predictable in worst-case execution time, and requires very limited memory footprint. Also, it is compliant with MISRA-C 2012. Ad-hoc sparse linear algebra functions allow efficient handling of sparsity in prediction models.

Thanks to the tight integration with ODYS proprietary, state-of-the-art MPC-dedicated QP solver, we can solve MPC problems much more efficiently than using general-purpose QP solvers. For max efficiency, the real-time code does not rely on automatic code generation from higher-level languages.

Developed for production

Each controller build is a standalone C-code package, that can run on industrial desktop PCs as well as any embedded platform that supports floating-point operations. No external libraries are needed. In addition, the tool provides estimations of the required computational resources so that users can immediately see if their design choices are viable for production.

Interfaces to MATLAB® and Simulink® are available for testing in simulation. For an easier learning curve, the MPC controller specs can also be defined in MATLAB® code, rather than C code, and MATLAB Coder® can be used to generate the corresponding C code.

This workflow enables a straightforward porting from simulation to deployment on embedded target.

A history of success

We have an excellent track record in MPC for resource-constrained production applications. The engine control system we codeveloped with General Motors has been the first known application of real-time MPC in automotive mass production, and we have been working on so much more since that.

Motion planning, autonomous driving, next-gen ADAS, motor control, energy optimization in electric or hybrid vehicles, control of mobile robots, algorithms for GNC in aerospace, and power optimization in smart grids are just some of the problems we can help our clients solve.

ODYS embedded MPC and real-time optimization software is currently running on more than 3 million vehicles worldwide.