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程序中設置。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM