Simulink生成C语言代码与Unity实现通信的一种方法

需要实现Unity与Simulink的通信,这里采用Simulink生成C语言代码并由VS2019生成DLL让Unity调用DLL的方式实现通信功能

1、Simulink生成C语言代码(MATLAB版本2020a)

Simlink自动生成C语言代码的相关内容网上有很多这里写一下自己的根据网上内容的实现过程并记录一些问题
1.1生成Simulink模型
Simulink生成C语言代码与Unity实现通信的一种方法_第1张图片Subsystem内容:Simulink生成C语言代码与Unity实现通信的一种方法_第2张图片1.2Simulink设置
Simulink生成C语言代码与Unity实现通信的一种方法_第3张图片Slover选择Fixed-step固定步
Simulink生成C语言代码与Unity实现通信的一种方法_第4张图片hardware implementation里选择对应的硬件平台这里选择我用的Inter,由于Unity只支持64位,所以选择x86-64(windows64)

Simulink生成C语言代码与Unity实现通信的一种方法_第5张图片Simulink生成C语言代码与Unity实现通信的一种方法_第6张图片
Code Generation选择ert_shrlib.tlc或者ert.tlc;ert.tlc只会生成C语言文件,ert_shrlib.tlc除了自动生成C语言文件外还会生成一个dll和lib文件来给外部调用,但是本人使用中dll的函数无返回值,本人不知道应该如何访问函数内部的东西,因此自己使用VS2019更改一部分自动生成的C语言文件内容后手动生成dll。

Simulink生成C语言代码与Unity实现通信的一种方法_第7张图片如果系统中有连续模块则移动要勾选Continuous time选项否则一定会报错编译失败;以上设置完毕之后点击Apply,OK后退出。

1.3添加自定义变量
Simulink生成C语言代码与Unity实现通信的一种方法_第8张图片Simulink生成C语言代码与Unity实现通信的一种方法_第9张图片
Simulink生成C语言代码与Unity实现通信的一种方法_第10张图片

在MODELING里选择BaseWorkSpace,在BaseWorkSpace里点Add,选择AddCustom添加新的变量,并输入变量名Object Class选择mpt,Singnal。

Simulink生成C语言代码与Unity实现通信的一种方法_第11张图片Simulink生成C语言代码与Unity实现通信的一种方法_第12张图片
定义好变量后在模型界面为输入和输出信号赋一个变量,Signal name填之前定义的变量名

你可能感兴趣的:(unity,simulink,dll)