FORCESPRO的使用教程

前言:

       前一篇论文分享提到了下一步的计划是复现第二篇论文的项目。而我认为必要的前期准备有三点:1、学习关于小车优化问题求解的项目。2、学习MPC竞赛小车相关项目。3、学习matlab的automated driving box的相关项目。

        之前的时间主要集中于第一步,这里必须感谢我实验室的另一位同学的无私分享,给了我一个学习项目的好机会,但在这并不会对项目进行分享(毕竟不是我自己写的)。但接下来会分享求解优化问题的一个重要工具:求解器——FORCESPRO。

        环境:windows 11、matlabR2022a、Visual Studio 2022

一、FORCESPRO的下载安装

        首先:

        1. Introduction — FORCESPRO 6.0.0 documentation

        这个是FORCESPRO的使用手册,里面也有下载pdf的链接。然后翻到第3章节,进入对应网站,点TRIAL LICENSE,然后完成注册。

        接下来邮箱会收到一条邮件,对邮箱进行验证的同时完成对LICENSE的申请,这里我申请的是ACADEMIC LICENSES,其中要上传的两个文件分别是校园卡照片和一份需要签字的申请表(提交附近有下载地址)。

        申请提交后过一段时间(我的是一天内)即可收到第二封邮件,告知license已经被激活。点邮件内链接进入对应网站,先去Engineering Licenses处进行assign操作,其中重要的username和Fingerprint按里面的教程进行,其中验证Fingerprint需要下载一个压缩包,这里建议下载名字带有GUI的对应压缩包(我的是windows系统),因为那个可以直接可视化得到username和Fingerprint,其它的我用命令行总是得不到。

        Assigned之后,再到License Group页面的License Agreement处点Download下载客户端。(记得解压之前放一个文件夹里,因为解压直接就是大量文件,而不是在一个文件夹里)至此,已经完成了使用手册的3.1节,接下来对着使用手册第三章的教程即可完成对matlab或者python端的部署,至此已经完成了FORCESPRO的下载安装。

        值得一提的是FORCESPRO需要matlab之外的C编译器,所以建议的安装顺序是:Visual Studio---python---matlab---FORCESPRO。

二、FORCESPRO使用手册各章节内容

       第一章:简单介绍,重点是引用的方式。

       第二章:不同License变量的区别,S、M、L逐渐功能变多。

       第三章:安装教程。

       第四章:更换所用版本以及不同版本的修改点。

       第五章:介绍针对一个免费优化求解工具YALMIP的接口。

       第六章:FORCESPRO在matlab中的线性插件工具的使用,matlab版本要在2019b以上,主要在Model Predictive Control Toolbox中,包含function、app和simulink中的block。

       第七章:非线性插件工具使用。Nonlinear MPC API。

       第八章:Low-level interface:用于求解凸优化多级(也可单阶段)二次约束优化问题。

       第九章:High-level Interface:用于求解非凸优化问题、连续时间动力学问题。(一般用这个,注意非凸优化问题初始猜测解的问题,手册里也有介绍)

       第十章:介绍在simulink中的使用。

       第十一章:各种项目例子。

       第十二章:参数或者实时数据的问题,本该保持不变的数据因为操作而改变的问题,本章API只能用于low-level interface。

       第十三章:部署至硬件平台。

       第十四章:多核并行处理操作,适用于大问题长视界或时间。

       第十五章:不同license的区别,当时fingerprint也有这玩意。

       第十六章:介绍FORCESPRO中用于调优的工具Autotuner的参数设置。

       第十七章:Solver Options的参数设置,这个比较重要,在各种例子中均有涉及。

       第十八章:帮助建立光滑的(连续可微,求解效果更高)优化问题公式的方法。

       第十九章:介绍转储formulation和data的工具,用于debug、向别人求助和测试。

       第二十章:常见问题。

三、使用中遇到的问题

1、无法进行赋值,因为左侧和右侧的元素数目不同。

 解决方法:

产生错误的原因是add_weight产生的是一个数组,而在下方v_weight的表达式中,原本我想实现的是v_weight这个数组的每一个元素加上add_weight的每一个元素×K2。而在这产生错误的原因是v_weight(1:n_ref-1)实际上是在提取出一个一个元素进行计算,而后面的是add_weight这个数组,元素无法赋值一个数组,所以产生了错误。修改成下面的代码即可。

2、使用FORCESPRO运行报错:

 

解决方法 

首先在matlab中输入mex -setup,验证是否有外部的C编译器,前面我提到先安装visual studio就是为了方便matlab直接读取到外部的C编译器,故这里我显示有外部C编译器。

那 问题就出在visual studio 2022为何没有stdio.h?为了验证这点,我随便写了个hello world发现也会报错,无法正常运行。

这里有两个坑:

1、创建了一个新项目后,应该在右侧自己项目的源文件处右键添加,而不是直接在上方文件处新建(这样创建的cpp文件不在项目正常编译调用处),不然编译会出现路径不对而无法编译。

2、第二个坑是:Visual Studio无法打开源文件“stdio.h“问题

这里我找到一篇解决方法:

(14条消息) Visual Studio无法打开源文件“stdio.h“问题_故丨是的博客-CSDN博客_vs无法打开源文件stdio.h

完成了上一步后,发现hello world能正常工作,stdio.h能识别,此时再回到matlab运行即可。

评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值