一、大家好久不见,本次给大家带来的是SoC求解非线性方程问题。计划发布三篇文章,这是第一篇----环境安装。
主要的解决的问题是:PL侧给PS传输数据,然后PS将数据作为已知量求解非线性方程,为了简化问题复杂度,本次实验只在vivado中例化arm,但并不传入数据,主要集中在sdk侧的开发。
二、windows安装casadia
第一部分:安装ipopt的支持
1、如果机器上安装了msys2,则跳过此步骤,直接第4步,如果第3步执行错误,请从本步顺序执行。
卸载msys2,电脑管家与设置均可卸载
2、安装msys2
https://github.com/msys2/msys2-installer/releases/download/2022-10-28/msys2-x86_64-20221028.exe
3、替换镜像
msys2 | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror
4、安装gcc、cmake、make
msys2安装gcc、g++编译器_只爱写代码的博客-CSDN博客_msys2安装gcc
MSYS2 + GCC + CMAKE环境搭建_生活需要深度的博客-CSDN博客_msys2安装cmake
5、开始安装,选中64位的编译器安装
- 1、安装依赖
- pacman -S binutils diffutils git grep make patch pkg-config
- pacman -S mingw-w64-x86_64-gcc
- pacman -S mingw-w64-x86_64-gcc-fortran
- pacman -S mingw-w64-x86_64-lapack mingw-w64-x86_64-metis
- 2、下载ipopt,我的电脑的win11系统,我试了只有这个可以用
- Ipopt-3.12.13.zip 一定要这个版本的(下载地址:http://www.coin-or.org/download/source/Ipopt).
- 3、然后安装ASL依赖,其他的可以不安装
- cd Blas/
- ./get.Blas
- cd ../Lapack/
- ./get.Lapack
- cd ../ASL
- ./get.ASL
- cd ../Metis/
- ./get.Metis
- cd ../Mumps/
- ./get.Mumps
- 4、下载HSL,不过我已经发送到了CSDN,连接在下面
- https://www.hsl.rl.ac.uk/ipopt/
- 5、将HSL下载放入到的/ThirdParty/HSL,并重命名这个文件为coinhsl
- 6、编译ipopt
- mkdir Ipopt-3.12.13/build
- cd Ipopt-3.12.13/build
- ../configure
- make -j4
注意:这里是HSL的完整代码:
关于第5步的解释:configure文件下面就是这么写的,所以改名为coinhsl
6、等待2小时左右的编译时间,然后验证编译是否完成
接下来执行 make test
命令进行测试,如果上一步成功的话,这一步也很快就通过了,会在Ipopt\Ipopt\test 生成 hs071_*.exe
的可执行文件同时终端上也会提示测试成功。
7、完成安装
输入命令:make install
等待完成后,可以看到C:\msys64\mingw64\bin目录下的ipopt
lib文件夹地址:C:\msys64\mingw64\lib
我这里没有安装mumps,因为我不会翻墙
include文件地址:C:\msys64\mingw64\include\coin
使用时,只需要将include与lib文件夹复制到项目中即可
第二部分:安装casadi的支持
1、下载casadi
https://github.com/casadi/casadi
2、下载下面两个依赖,先安装pcre,后安装swig
https://jaist.dl.sourceforge.net/project/pcre/pcre/8.44/pcre-8.44.tar.gz
https://jaist.dl.sourceforge.net/project/swig/swig/swig-4.0.2/swig-4.0.2.tar.gz
分别进入文件后执行
- ./configure
- make
- make install
3、进入casadi文件夹输入命令
- mkdir build
- cd build
- cmake .. -DWITH_IPOPT=ON
三、在VS2019中编写求解代码,验证可用。