CANoe軟件使用(四)——CANoe與Simulink聯合仿真

CANoe軟件使用(四)——CANoe與Simulink聯合仿真

前言

在介紹CANoe和Simulink聯合仿真之前,先熟悉下汽車軟件開發過程中的V模型流程開發。推薦如下文章,簡單介紹了MIL/SIL/PIL和HIL等相關概念。

https://www.ind4.net/html/news/newsDetail_7007.html.
http://www.ind4.net/html/news/newsDetail_7030.html.
基於模型的設計(MBD)汽車軟件流程總結大概流程如下:
1、基於功能需求,搭建對應Simulink模型
2、將模型轉化爲C代碼
3、將C代碼進行編譯,通常爲.o或者lib格式文件
4、編譯後軟件集成,通常爲hex格式文件
5、將hex文件刷寫至ECU中,測試標定
(涉及到一系列的工具鏈使用,包括代碼生成,包括編譯,包括軟件集成,包括測試標定等等。。)

此時,會有一個問題:
CANoe可對信號進行簡單收集處理,若是我想基於CAN通信上現有的信號,想做複雜的控制運算(通過simulink實現),之後我又想在通過CANoe實時查看simulink運行後的結果是否可行。這樣的話,我可以隨時的修改simulink模型邏輯,實現控制算法的驗證。就直接避免了一系列的開發流程,做到提前快速驗證模型的算法,類似快速原型的開發。(控制器是虛擬的(simulink),控制對象是實際的(實車車輛))。
比如,基於四輪輪速和加速度信號,通過simulink計算當前車輛的參考車速

CANoe和Simulink聯合仿真

插件安裝

simulink既然可通過CAN信號進行計算,那麼第一步,必須安裝插件讓simulink可識別到CAN網絡中的信號

1、安裝Vector_AddOn_Matlab_Interface
在這裏插入圖片描述
2、安裝好後,simulink中library中會出現CANoe庫,打開後可添加輸入信號和輸出信號至simulink中
注:
1、matlab安裝路徑必須不能包含空格,否則無法安裝成功插件,建議直接安裝在D盤目錄下,不在program files中。
2、輸出的信號(此信號可通過編輯DBC,添加虛擬節點輸出)參考之前文章進行DBC的信號、報文、節點的編輯

https://blog.csdn.net/qq_29786089/article/details/106817656.

在這裏插入圖片描述
此時,可根據你的需求搭建simulink模型,並通過插件導入CAN網絡信號。
在這裏插入圖片描述
注:導入和導出CAN網絡信號時,需要同時打開CANoe軟件並導入編輯好的DBC,否則無法識別

simulink設置

在solver中設置求解,因爲是實時運行,所以設置stop time爲無窮大,模型運行是週期離散的,設置固定步長和離散求解
在這裏插入圖片描述
在Code Generation中進行設置選擇CANoe接口cn.tlc,下面的設置基本不用變,系統自動根據cn.tlc進行配置
在這裏插入圖片描述
在Inteface中選擇C89/C90(ANSI), Interface中選擇C API 如下圖紅色標註設置
在這裏插入圖片描述
設置完畢後,進行編譯,會生成dll文件和ini文件
注:生成.dll文件, Matlab需要有對應的C編譯器
在這裏插入圖片描述
在這裏插入圖片描述

CANoe設置

在simulation setup 選擇Insert Network Node,之前已經完成從simulink輸出的CAN信號報文節點等信息的編輯
在這裏插入圖片描述
右鍵單擊選擇 Configuration,選擇simulink,把simulink模型中生成的dll文件和ini文件導入:
在這裏插入圖片描述
設置完成後,及可關閉simulink模型,實時運行CANoe,通過Graphic查看從simulink輸出的信號。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章