标签:有一个 structure 期望 代码 分享 image .cpp time 文件夹
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程序中设置。
标签:有一个 structure 期望 代码 分享 image .cpp time 文件夹
原文地址:http://www.cnblogs.com/Pan-Z/p/7676310.html