Simulink部署
这里介绍了如何在Simulink中调用生成的代码.
这里以Windows系统为例, 介绍如何在Simulink中调用生成的代码. 其他平台的使用方法类似, 只需在Simulink中设置正确的编译器与链接库即可.
我们以轨迹跟踪控制问题为例, 该示例的文件结构如下:
working_dir/
├── traj_tracking/
│ ├── traj_tracking_prob.c
│ ├── traj_tracking_prob.h
│ ├── traj_tracking_solver.h
│ ├── libtraj_tracking_solver_static.lib
├── traj_tracking.py
├── traj_tracking_sim.slx
.
其中:
traj_tracking.py是模型文件, 该文件中定义了轨迹跟踪控制问题的模型, 以及代码生成的相关设置 (其中platform选择'windows-x86_64-mingw'(Windows平台) ,lib_type选择'static'(静态链接库))traj_tracking/是代码生成的目录traj_tracking_sim.slx是Simulink模型文件
前置工作
在Matlab中选择MinGW编译器, 以便生成的代码可以在Simulink中运行:
>> mex -setup
MEX configured to use 'MinGW64 Compiler (C)' for C language compilation.
注意
Matlab中选择的编译器需要兼容生成的求解器库, 否则会导致编译错误.
例如, 'windows-x86_64-mingw'对应生成的求解器库, 在Matlab中需要选择MinGW编译器;
windows-x86_64-msvc对应生成的求解器库, 在Matlab中需要选择MSVC编译器.
不一致的编译器会导致编译错误.