Automatic Code Generation Tool for Nonlinear Model Predictive Control with Jupyter
Sotaro Katayama, Toshiyuki Ohtsuka
Abstract
We present an automatic code generation tool, AutoGenU for Jupyter, for nonlinear model predictive control (NMPC) with a user-friendly and interactive interface utilizing JupyterLab and Jupyter Notebook. We utilize a symbolic computation package SymPy for automatic C++ code generation. We also developed numerical solvers of NMPC using the continuation/GMRES (C/GMRES) method and multiple-shooting-based C/GMRES method in C++. AutoGenU for Jupyter provides the simulation environment of NMPC with these solvers and visualization of the simulation results. We give an example of code generation and numerical simulation of a swing-up control of a cart pole using AutoGenU for Jupyter.
Topics & Concepts
Computer scienceCode generationNonlinear systemComputationCode (set theory)Generalized minimal residual methodContinuationComputational scienceAlgorithmIterative methodProgramming languagePhysicsKey (lock)Set (abstract data type)Computer securityQuantum mechanicsAdvanced Control Systems OptimizationReal-time simulation and control systemsIterative Learning Control Systems