Qt调用simulink自动生成的C++代码

simulink自带工具用于生成C和C++代码,其中C代码可以无需修改用于C工程中,由于生成的C++代码为标准值代码,而Qt为C++的实现,调用simulink生成的C++程序也可正常工作。

软件版本:

simulink:2016a

Qt:5.7

1,搭建一个简单的数学运算模型,本模型没有输入,只有一个输出。如下:

2,配置模型

2.1 设置模型为固定步长,运行结束时间inf。

2.2设置输出格式为“Structure”,也可设置为其他,如Array

2.3选择代码生成语言C++,具体设置如下,其中目标文件为grt.tlc,即Generic real-time Target。

2.4 设置代码接口在 C++ Class中,在Qt调用中可以避免一些莫名其妙的错误。

2.5 检查设置,在2.3步骤中单击“check Model”按钮,检查配置是否正确,如果有错误或警告,则按照推荐的设置,最后结果如下:

3,编译模型,Ctrl+B或者单击如下按钮

4,编译后会在当前目录下生成后缀grt_rtw的文件夹,里面即是编译后的程序。

5,在Qt中创建一个简单的widght程序,名字为testModel.

6,将步骤4中生成的.h,.cpp文件添加到Qt工程中,并把所有依赖的.h文件一并加入(在MATLAB安装文件中),最终增加的如下:

7,在mainwindow.cpp的构造函数中增加如下代码(相关的变量声明未单独列出):

  pModel = new testModelClass();

    pModel->initialize();
    pModel->step();
    qDebug()<<"simulink output:"<<pModel->test_Y.Out2;

8,运行Qt程序输出结果如下,和期望的一致:

simulink output: 12

 

以上表明Qt是可以调用simulink的C++代码的,进一步的可以将模型的输入在也Qt程序中设置。

posted @ 2017-10-16 13:52  暗夜影  阅读(4355)  评论(1编辑  收藏  举报