轨迹优化入门提升 — CasADi
1. 简介
CasADi 是用于非线性优化和算法微分的开源工具库,由Joel Andersson 和Moritz Diehl教授团队在鲁汶大学期间开发
与之前介绍的GPOPS-II以及Pyomo的主要区别是,CasADi以符号图(computational graph)为核心,通过自动求导与稀疏矩阵优化大幅提升求解速度
CasADi 的主要特点包括
- 高效的符号自动求导 (Auto-differentiation)
- 统一接口调用非线性优化求解器 (IPOPT、SNOPT、SQIC等)
- 与 Python、MATLAB、C++ 等环境兼容
得益于多平台兼容、计算速度优化,CasADi在轨迹优化、模型预测控制 (MPC)、动力学仿真等领域被广泛使用
官方文档链接:https://web.casadi.org/
2. 快速入门
以Race Car Problem (最短时间行驶) 为例,展示 CasADi 的典型建模过程
问题建模如下:
min u t f s . t . x ˙ ( t ) = v ( t ) v ˙ = u ( t ) − v ( t ) 0 ⩽ u ( t ) ⩽ 1 v ( t ) ⩽ 1 − sin ( 2 π x ( t ) ) / 2 x ( 0 ) = 0 , v ( 0 ) = 0 x ( t f ) = 1 \begin{array}{l} \underset{u}{\min}\,\,t_f\\ s.t.\,\dot{x}\left( t \right) =v\left( t \right)\\ \,\,\quad \,\dot{v}=u\left( t \right) -v\left( t \right)\\ \,\,\quad \,0\leqslant u\left( t \right) \leqslant 1\\ \,\,\quad \,v\left( t \right) \leqslant 1-\sin \left( 2\pi x\left( t \right) \right) /2\\ \,\,\quad \,x\left( 0 \right) =0,v\left( 0 \right) =0\\ \,\,\quad \,x\left( t_f \right) =1\\ \end{array} umintfs.t.x˙(t)=v

最低0.47元/天 解锁文章
7482

被折叠的 条评论
为什么被折叠?



