Conference paper
C code generation applied to nonlinear model predictive control for an artificial pancreas
This paper presents a method to generate C code from MATLAB code applied to a nonlinear model predictive control (NMPC) algorithm. The C code generation uses the MATLAB Coder Toolbox. It can drastically reduce the time required for development compared to a manual porting of code from MATLAB to C, while ensuring a reliable and fairly optimized code.
We present an application of code generation to the numerical solution of nonlinear optimal control problems (OCP). The OCP uses a sequential quadratic programming algorithm with multiple shooting and sensitivity computation. We consider the problem of glucose regulation for people with type 1 diabetes as a case study.
The average computation time when using generated C code is 0.21 s (MATLAB: 1.5 s), and the maximum computation time when using generated C code is 0.97 s (MATLAB: 5.7 s). Compared to the MATLAB implementation, generated C code can run in average more than 7 times faster.
Language: | English |
---|---|
Publisher: | IEEE |
Year: | 2017 |
Pages: | 327-332 |
Proceedings: | 21st International Conference on Process Control |
ISBN: | 1538640112 , 1538640120 , 9781538640111 and 9781538640128 |
Types: | Conference paper |
DOI: | 10.1109/PC.2017.7976235 |
ORCIDs: | Boiroux, Dimitri and Jørgensen, John Bagterp |
Approximation algorithms Diabetes MATLAB Mathematical model Optimization SDG 3 - Good Health and Well-being Sensitivity Sugar
C code generation MATLAB Coder Toolbox MATLAB code NMPC algorithm OCP artificial pancreas average computation time glucose regulation multiple shooting nonlinear control systems nonlinear model predictive control nonlinear optimal control problems numerical analysis numerical solution optimal control predictive control program compilers quadratic programming sensitivity computation sequential quadratic programming algorithm