zoukankan      html  css  js  c++  java
  • 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程序中设置。

  • 相关阅读:
    centos7没有ifconfig命令
    ubuntu建立快捷方式
    SIMTRACE环境搭建
    联想 Lenovo PWR-G60 无线掌中宝拆机
    初玩OpenWRT之编译TP-Link WR841N V8固件
    我有特殊的Windows激活姿势
    适用于WIFI Hacking的无线网卡推荐
    制作Wi-Fi Ducky远程HID攻击设备
    路由器固件安全分析技术(一)
    如何HACK无线家用警报器?
  • 原文地址:https://www.cnblogs.com/Pan-Z/p/7676310.html
Copyright © 2011-2022 走看看