ParNMPC
A Parallel Optimization Toolkit for Nonlinear Model Predictive Control (NMPC)
Install / Use
/learn @deng-haoyang/ParNMPCREADME
ParNMPC Version 1903-1
New Features in Version 1903-1:
- Primal-dual interior-point method
- Improved user interface
- Better performance
- Line search
Introduction
Homepage: https://deng-haoyang.github.io/ParNMPC/
ParNMPC is a MATLAB real-time optimization toolkit for nonlinear model predictive control (NMPC).
The purpose of ParNMPC is to provide an easy-to-use environment for NMPC problem formulation, closed-loop simulation, and deployment.
With ParNMPC, you can define your own NMPC problem in a very easy way and ParNMPC will automatically generate self-contained C/C++ code for single- or multi-core CPUs.
ParNMPC is very fast even with only one core (the computation time is usually in the range of $\mu$s), and a high speedup can be achieved when parallel computing is enabled.
Highlights
- Symbolic problem representation
- Automatic parallel C/C++ code generation with OpenMP
- Fast rate of convergence (up to be superlinear)
- Highly parallelizable (capable of using at most N cores, N is the # of discretization steps)
- High speedup ratio
- MATLAB & Simulink
Installation
- Clone or download
ParNMPC. - Extract the downloaded file.
Requirements
- MATLAB 2016a or later
- MATLAB Coder
- MATLAB Optimization Toolbox
- MATLAB Parallel Computing Toolbox
- MATLAB Symbolic Math Toolbox
- Simulink Coder
- C/C++ compiler supporting parallel code generation
Getting Started (MATLAB 2018b)
- Select the Microsoft Visual C++ 2017 (C) compiler:
>> mex -setup
- Navigate to the Quadrotor/ folder.
>> cd Quadrotor/
-
Open
NMPC_Problem_Formulation.mand run. -
Open
Simu_Simulink_Setup.mand run. -
Open
Simu_Simulink.slxand run.
Citing ParNMPC
Citing the parallel algorithm:
@article{deng2019parallel,
title={A parallel Newton-type method for nonlinear model predictive control},
author={Deng, Haoyang and Ohtsuka, Toshiyuki},
journal={Automatica},
volume={109},
pages={108560},
year={2019}}
Citing the toolbox (conference version):
@inproceedings{deng2018parallel,
title={A parallel code generation toolkit for nonlinear model predictive control},
author={Deng, Haoyang and Ohtsuka, Toshiyuki},
booktitle={Proceedings of the 57th {IEEE} {C}onference on {D}ecision and {C}ontrol},
pages={4920--4926},
year={2018},
address={Miami, USA}}
License
ParNMPC is distributed under the BSD 2-Clause "Simplified" License.
Related Skills
node-connect
350.8kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
110.4kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
350.8kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
350.8kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
