Simulink转代码如何在Visual Studio运行

所用Matlab版本:2018b

Visual Studio版本:2017

 

对于自动转的代码,以ert为例,将其在VS下运行的步骤如下:

1.在VS的新建中,新建一个空项目

2.把自动转代码的相关c文件与h文件导入到新建的一个文件夹下,例如叫RunTest

3.在VS的解决方案资源管理器中点右键,添加文件夹下的各文件

4.可以先在解决方案资源管理器中右键点各c源文件进行编译看能否通过

5.对于自动生成的main.c文件,如果只想运行一拍,就要去掉main函数里面的while(1) {}无线循环

6.在main函数中添加一行rt_OneStep();它会调用simulink生成的对应c文件

7.点本地Windows调试器那个绿色箭头,应该就可以跑代码啦!

 

例子:如何测试simulink某两个subsystem各自运行的时间

1:最好把要比较的两个subsystem都设成atomic,并且在subsystem中的code generation中搞成reusable function,这样能生成代码要测的地方保证是封装好的函数

2.在simulink自动生成的.c文件中,

先#include "windows.h",然后在对应需要计时开始的地方写:

unsigned long long start = GetTickCount64();

这个GetTickCount64得到的是ms级的当前时间,可能会有几毫秒的偏差

如果跑一遍运算量太小,可以for循环多跑几遍,例如:

unsigned long long start = GetTickCount64();

for (int KK = 0; KK < 1000000; ++KK) {

待测试函数

}

注意不用i是防止待测试函数也有for循环用了i会导致无限循环

最后检查用了多长时间:

unsigned long long duration1 = GetTickCount64() - start;

 

可以在它后面运行的东西设个断点,运行一下就知道这一段用了多长时间

注意不要直接在这一行设断点,不然暂停的时间也会被算在间隔时间内。

 

还有不明之处可见附件资源的代码

 

 

 

 

你可能感兴趣的:(Simulink转代码如何在Visual Studio运行)