找回密码
 会员注册
查看: 31|回复: 0

CasADi-最优控制开源PythonMATLAB库

[复制链接]

2

主题

0

回帖

7

积分

新手上路

积分
7
发表于 2024-9-3 11:20:53 | 显示全部楼层 |阅读模式
系列文章目录文章目录系列文章目录前言一、介绍1.1CasADi是什么?1.2帮助与支持1.3引用CasADi1.4阅读本文档二、获取与安装三、符号框架3.1符号SX3.1.1关于命名空间的说明3.1.2C++用户注意事项3.2DM3.3符号MX3.4SX和MX混合使用3.5稀疏类3.5.1获取并设置矩阵中的元素3.6运算操作3.7属性查询3.8线性代数3.9微积分-算法微分3.9.1语法四、函数对象4.1调用函数对象4.2将MX转换为SX4.3非线性求根问题4.4初值问题和灵敏度分析4.4.1创建积分器4.4.2灵敏度分析4.5非线性规划4.5.1创建NLP求解器4.6二次规划4.6.1高级接口4.6.2低级接口4.7for循环等价4.7.1映射4.7.2.折叠Fold五、生成C代码5.1.生成代码的语法5.2使用生成的代码5.2.1.CasADi的外部函数5.2.2.从MATLAB调用生成的代码5.2.3.从命令行调用生成的代码5.2.4.与C/C++应用程序生成的代码部件链接¶。5.2.5.从C/C++应用程序中动态加载生成的代码¶。5.3.生成代码的应用程序接口5.3.1.引用计数5.3.2.输入和输出的数量5.3.3.输入和输出的名称5.3.4.输入和输出的稀疏性模式5.3.5.内存对象5.3.6.工作向量5.3.7.数值评估六、用户自定义函数对象¶6.1.函数内部子类6.2子类化Callback¶6.2.1.Python*语言6.2.2.MATLAB¶6.2.3.C++¶6.3.导入外部函数6.3.1.默认函数6.3.2.作为注释的元信息6.3.3.导数6.4.即时编译C语言字符串6.5.使用查找表6.5.1.一维查找表6.5.2.二维查找表6.6.使用有限差分进行衍生计算七、DaeBuilder类7.1.构建DaeBuilder实例7.2.从Modelica符号导入OCP*7.2.1.从XML文件的传统符号导入7.2.2.从传统方法导入modelDescription.xml文件¶。7.3.函数工厂八、使用CasADi进行优化控制8.1.一个简单的测试问题8.1.1.直接单射法8.1.2.直接多重射击8.1.3.直接定位九、Opti栈9.1.问题说明9.2.解决问题和检索9.2.1.求解9.2.2.求解时的数值9.2.3.其他点的数值9.3.额外内容十、不同语言的用法差异*10.1.10.1.一般用法10.2.操作列表前言一、介绍CasADi是一款开源软件工具,用于数值优化,特别是最优控制(即涉及微分方程的优化)。该项目由JoelAndersson和JorisGillis在鲁汶工程大学工程优化中心(OPTEC)在读博士生在MoritzDiehl的指导下发起。本文档旨在简要介绍CasADi。阅读之后,您应该能够在CasADi的符号框架中制定和处理表达式,使用算法微分高效生成导数信息,为常微分方程(ODE)或微分代数方程(DAE)系统设置、求解和执行正向及辅助敏感性分析,以及制定和求解非线性程序(NLP)问题和最优控制问题(OCP)。CasADi可用于C++、Python和MATLAB/Octave,性能几乎没有差别。一般来说,PythonAPI的文档最好,比MATLABAPI稍为稳定。C++API也很稳定,但对于CasADi入门来说并不理想,因为文档有限,而且缺乏MATLAB和Python等解释型语言的交互性。MATLAB模块已成功通过Octave(4.0.2或更高版本
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

QQ|手机版|心飞设计-版权所有:微度网络信息技术服务中心 ( 鲁ICP备17032091号-12 )|网站地图

GMT+8, 2024-12-26 23:48 , Processed in 0.353567 second(s), 25 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表