在Simulink中建模,生成C++代碼,在vs平臺下進行功能驗證

引言

                前一陣看了一下無人駕駛汽車的局部路徑跟蹤算法,導師的想法是讓先在我們的實驗車輛上跑起來,但使用模型預測的C代碼又不是簡單就能夠編出來的,因此就想到了使用基於模型設計的方法。
花了一下午的時間,簡單的代碼生成流程是實現了,在寫筆記的時候想到自己收藏不如寫出來,還能給後來者一個參考。

功能

               功能比較簡單,就是利用simulink實現一個邏輯加法的功能,通過代碼生成流程打包一個加法函數,在vs中利用控制檯應用程序給出兩個加數,調用C函數,輸出運算結果。

環境

Matlab/Simulink R2014b,
 Visual Studio2010
Windows 7

過程

首先,在Simulink中搭建如下圖所示的系統模型。(模型就是這麼直接!)


然後,通過ctr+E快捷鍵,調出參數配置界面;

在參數配置方面,主要有兩處需要重點配置,第一處是在Solver頁面下,首先解算類型必須選固定點解算器,由於該模型沒有連續狀態,因此選擇discrete方法;

第二處是代碼生成頁面下,主要有以上五點需要修改,修改完之後,系統就被配置成了生成C++代碼並將可以在VS2010中運行所需的全部相關文件壓縮成Matlab當前工作文件夾下的battery壓縮文件。
系統配置完畢之後,點擊OK鍵退出配置界面。之後可以通過按下Ctr+B或者在Command Window中輸入rtwbuild(gcs)來啓動模型編譯。編譯成功則彈出Code Generation Report界面如下圖所示。

然後在Matlab當前工作文件夾下找到battery壓縮文件,解壓縮後將其中的全部頭文件和源文件放到控制檯應用程序中,然後在控制檯應用程序的入口simulink工程直接對應的那個頭文件即可調用生成的加法函數。添加完頭文件和壓縮文件的控制檯應用程序如下圖所示:

該程序運行之後,通過鍵盤一次輸入兩個數字,然後系統調用加法函數,即可輸出相加的結果。
效果圖如下;

整個過程沒有進行代碼的編輯,因此極大的減少了編代碼者的工作量。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章