系列文章目录
文章目录
前言
一、介绍
CasADi 是一款开源软件工具,用于数值优化,特别是最优控制(即涉及微分方程的优化)。该项目由 Joel Andersson 和 Joris Gillis 在鲁汶工程大学工程优化中心 (OPTEC) 在读博士生在 Moritz Diehl 的指导下发起。
本文档旨在简要介绍 CasADi。阅读之后,您应该能够在 CasADi 的符号框架中制定和处理表达式,使用算法微分高效生成导数信息,为常微分方程(ODE)或微分代数方程(DAE)系统设置、求解和执行正向及辅助敏感性分析,以及制定和求解非线性程序(NLP)问题和最优控制问题(OCP)。
CasADi 可用于 C++、Python 和 MATLAB/Octave,性能几乎没有差别。一般来说,Python API 的文档最好,比 MATLAB API 稍为稳定。C++ API 也很稳定,但对于 CasADi 入门来说并不理想,因为文档有限,而且缺乏 MATLAB 和 Python 等解释型语言的交互性。MATLAB 模块已成功通过 Octave(4.0.2 或更高版本)测试。
1.1 CasADi 是什么?
CasADi 最初是一个算法微分(AD)工具,使用的语法借鉴了计算机代数系统(CAS),这也是其名称的由来。虽然算法微分仍是该工具的核心功能之一,但其范围已大大扩展,增加了对 ODE/DAE 集成和敏感性分析、非线性编程的支持,