王永輝
(比亞迪汽車工業(yè)有限公司,廣東 深圳 518118)
CANoe 是德國(guó)Vector 公司出的一款總線開發(fā)環(huán)境,全稱叫CAN(控制器局域網(wǎng)) open environment,主要用于完成總線通信網(wǎng)絡(luò)的建模、仿真、測(cè)試和開發(fā)工作。
本文主要工作為針對(duì)CANoe 在整車控制系統(tǒng)開發(fā)過(guò)程中,涉及的幾個(gè)方面的應(yīng)用,主要包括以下內(nèi)容:(a)CANoe/MATLAB 聯(lián)合仿真;(b) ECU 軟件集成測(cè)試;(c) 數(shù)據(jù)監(jiān)測(cè)分析。
基于CANoe/MATLAB 的聯(lián)合仿真,需要先在CANoe的安裝路徑下安裝Vector_AddOn_Matlab_ Interface_ V513.exe,安裝完成后,在MATLAB/Simulink 中會(huì)出現(xiàn)Vector CANoe 組件,CANoe 與Matlab/Simulink 通過(guò)這些組件實(shí)現(xiàn)數(shù)據(jù)交互,數(shù)據(jù)交互的內(nèi)容包括:信號(hào)、系統(tǒng)變量、環(huán)境變量、CAPL(類C 語(yǔ)言的程序語(yǔ)言)函數(shù)。然后在MATLAB/Simulink 中建立控制單元模型,并將該模型導(dǎo)入到CANoe中,測(cè)試驗(yàn)證控制單元模型的功能邏輯。
采用CANoe/Matlab 聯(lián)合仿真,需要完成以下工作:(a)建立網(wǎng)絡(luò)數(shù)據(jù)庫(kù)(DBC 文件);(b)建立聯(lián)合仿真模型;(c)建立網(wǎng)絡(luò)拓?fù)浼軜?gòu)和仿真面板。
根據(jù)整車系統(tǒng)通信矩陣定義,使用用CANoe 軟件的CANdb++編輯器創(chuàng)建整車CAN 網(wǎng)絡(luò)數(shù)據(jù)庫(kù)文件(DBC 文件)。數(shù)據(jù)庫(kù)文件中包括了CANoe 所用到的信號(hào)信息,包括了報(bào)文和信號(hào)的網(wǎng)絡(luò)節(jié)點(diǎn)和符號(hào)名稱,以及環(huán)境變量等信息。
新建DBC 文件時(shí),選擇Vector_IL_Basic Template.dbc模板,在CANdb++Editor 新建信號(hào)和報(bào)文,并填寫信號(hào)的相關(guān)參數(shù)信息。然后再創(chuàng)建節(jié)點(diǎn),并在信號(hào)、報(bào)文、節(jié)點(diǎn)都建立好后,建立節(jié)點(diǎn)之間報(bào)文的收發(fā)關(guān)系。
完成節(jié)點(diǎn)間的收發(fā)關(guān)系后,根據(jù)通信矩陣中時(shí)間周期等的定義完成Attribute Difinitions 和報(bào)文中Attributes 發(fā)送接收的參數(shù)定義。這樣,就把完整的數(shù)據(jù)庫(kù)建立好了。
在Matlab/Simulink 中,建立整車控制單元模型作為網(wǎng)絡(luò)中的1 個(gè)節(jié)點(diǎn)。將原Simulink 模型的輸入輸出模塊替換成CANoe/Matlab 接口庫(kù)中的相應(yīng)模塊,并添加離線模式模塊。
整車控制單元需要的輸入信號(hào)包含開關(guān)量信號(hào)(比如點(diǎn)火狀態(tài)和檔位狀態(tài))、模擬量信號(hào)(駕駛員的加速踏板信號(hào)值、制定踏板信號(hào)值)和CAN 信號(hào)(包括電池管理單元、發(fā)動(dòng)機(jī)控制單元、發(fā)電機(jī)單元等)。本文以整車控制單元中的發(fā)電模塊為例,完成CANoe/Matlab 聯(lián)合仿真功能。
如圖4 所示,環(huán)境變量中的時(shí)間模塊ignition 是模擬汽車的啟動(dòng)信號(hào),該事件觸發(fā),整車即進(jìn)入正常上電流程,上電完成后整車即進(jìn)入到正常行駛狀態(tài)(由于該模塊僅為發(fā)電功能模塊,所以默認(rèn)啟動(dòng)ignition 后,均滿足上電條件,整車到Ready 狀態(tài))。環(huán)境變量Acc_act 和Brk_act 用于模擬駕駛員的加速和制定信號(hào),其他的Signal input 和Signal output分別用于接收和發(fā)送相應(yīng)的CAN 信號(hào)。然后把這些信號(hào)和上一步驟建立的網(wǎng)絡(luò)數(shù)據(jù)庫(kù)(DBC 文件)關(guān)聯(lián)起來(lái)。
圖1 聯(lián)合仿真模型例子
根據(jù)整車實(shí)際網(wǎng)絡(luò)拓?fù)浼軜?gòu)搭建各控制單元節(jié)點(diǎn),本文按照發(fā)電功能仿真案例搭建與該功能的交互模塊,網(wǎng)絡(luò)拓?fù)浼軜?gòu)如圖2 所示。
圖2 網(wǎng)絡(luò)拓?fù)浼軜?gòu)
然后將CANoe/Matlab 聯(lián)合仿真模型編譯生成DLL 文件導(dǎo)入到CANoe 的VCU 的Node Configuration 中,完成聯(lián)合仿真模型的搭建。
最后,利用CANoe 中的面板編輯器(Panel Designer)創(chuàng)建用戶操作界面和顯示窗口。面板編輯器用于創(chuàng)建圖形面板,在圖形面板中可以在模擬測(cè)量的設(shè)置中方便地改變離散或是連續(xù)的環(huán)境變量的值。
根據(jù)該發(fā)電功能測(cè)試的輸入輸出,建立的控制面板如圖3 所示。
圖3 功能測(cè)試控制面板
在CANoe/Matlab 聯(lián)合仿真階段,主要完成的是MIL(模型在環(huán))測(cè)試,驗(yàn)證控制算法模型是否準(zhǔn)確的實(shí)現(xiàn)功能需求。ECU 的功能測(cè)試則為半實(shí)物仿真測(cè)試,在軟件集成燒錄到整車控制單元后,在CANoe/Matlab 聯(lián)合仿真搭建的網(wǎng)絡(luò)拓?fù)渖习言摽刂茊卧╒CU)凍結(jié),然后用CANoe 和VCU 的CAN 通道相連,接上電源,建立通訊。其他網(wǎng)絡(luò)數(shù)據(jù)庫(kù)(DBC文件)和仿真面板沿用前面CANoe/Matlab 聯(lián)合仿真搭建的模型即可。通過(guò)總線接口與CANoe 上剩余的虛擬節(jié)點(diǎn)相連接,來(lái)測(cè)試真實(shí)節(jié)點(diǎn)的功能邏輯。
該測(cè)試步驟主要完成整車控制單元的PIL(控制器在環(huán))測(cè)試,在目標(biāo)控制器上驗(yàn)證代碼實(shí)現(xiàn)的功能是否與模型一致。把整車控制單元系統(tǒng)功能測(cè)試在CANoe 環(huán)境下完成,能夠大大縮短整車系統(tǒng)開發(fā)測(cè)試的時(shí)間,也能夠保證功能測(cè)試的準(zhǔn)確性和便利性。
在數(shù)據(jù)監(jiān)測(cè)分析階段,所有節(jié)點(diǎn)均為真實(shí)的物理節(jié)點(diǎn),CANoe 完成數(shù)據(jù)監(jiān)控與回放分析的功能。通過(guò)該測(cè)試階段,能夠驗(yàn)證整車系統(tǒng)的功能開發(fā)與仿真測(cè)試結(jié)果是否一致。
在該階段,CANoe 完成數(shù)據(jù)的實(shí)時(shí)采集,通過(guò)建立的網(wǎng)絡(luò)數(shù)據(jù)庫(kù)文件,在Graphics 窗口中能夠?qū)崟r(shí)監(jiān)測(cè)解析后的物理量值,完成功能邏輯的測(cè)試驗(yàn)證。在數(shù)據(jù)采集后,通過(guò)Measurement Setup 窗口中,選擇離線分析模式,導(dǎo)入保存的數(shù)據(jù)文件,運(yùn)行CANoe 環(huán)境,也能夠?qū)崿F(xiàn)數(shù)據(jù)的回放再分析功能。在主窗口中,通過(guò)Tool 下的Logging File Conversion功能模塊也能把數(shù)據(jù)導(dǎo)成.mat 或.csv 等格式,然后通過(guò)Excel或者M(jìn)atlab 等腳本文件完成數(shù)據(jù)處理分析,驗(yàn)證功能是否滿足需求定義以及性能相關(guān)的標(biāo)定量?jī)?yōu)化。
隨著汽車電子的快速發(fā)展,整車系統(tǒng)中電子控制單元數(shù)量急劇級(jí)攀升。CANoe 作為強(qiáng)大的網(wǎng)絡(luò)分析與系統(tǒng)仿真工具,能夠?yàn)檎囅到y(tǒng)開發(fā)測(cè)試過(guò)程中的模型測(cè)試、ECU 軟件集成測(cè)試以及數(shù)據(jù)監(jiān)測(cè)分析階段提供強(qiáng)大的支持,大大縮短整車系統(tǒng)開發(fā)測(cè)試周期。
當(dāng)然CANoe 的功能不僅包括本文介紹的這些內(nèi)容,在結(jié)合CANScope、VTSystem 等工具或CANdela Studio、Diva插件能夠完成更多的仿真測(cè)試與診斷工作。本文介紹的應(yīng)用可為整車系統(tǒng)開發(fā)測(cè)試提供參考。