前一段時(shí)間做了一個(gè)VCU的HIL測試工作,最近在整理整個(gè)的調(diào)試過程,寫了一份總結(jié),在這里和大家分享一下。這里聲明一下,這里的內(nèi)容不做為指導(dǎo)性內(nèi)容,只是詳細(xì)講述一下測試過程和心得體會,供大家討論交流!下面步入正題: Speedgoat公司: 本人工作中使用的機(jī)柜為Speedgoat提供的,這里也簡單介紹下這個(gè)公司。
可能可能 會問,為什么不選擇dspace的產(chǎn)品?當(dāng)然是公司沒錢啦。業(yè)內(nèi)有一個(gè)調(diào)侃:一個(gè)公司如果購買HIL設(shè)備要走招標(biāo)流程,那dspace就不來了。。。。。因此他的設(shè)備基本上都是比較貴的,招標(biāo)他肯定沒戲。 機(jī)柜介紹 機(jī)柜的組成如下圖: 1) 電源分配箱:將進(jìn)入的電力分配給各個(gè)模塊; 2) 程控電源:提供可控的電力; 3) 信號調(diào)理電源:為信號調(diào)理提供電力 4) 低壓負(fù)載測試箱:提供負(fù)載電阻 5) 調(diào)試CAN口:可進(jìn)行信號采集和標(biāo)定 6) 上下接插件:連通機(jī)柜與VCU之間的信號交互 7) DIO調(diào)理板卡:調(diào)理作用 8) 低壓故障注入箱:提供故障注入 9) 實(shí)時(shí)系統(tǒng):目標(biāo)機(jī) 圖1 Speedgoat VCU機(jī)柜 對機(jī)柜有大致的了解之后就要開始對VCU收發(fā)的信號進(jìn)行定義了,這里需要明白的是,機(jī)柜發(fā)出和接收信號,都是通過板卡來實(shí)現(xiàn)的。我們可以把板卡看作是一個(gè)重要的中轉(zhuǎn),它可以接收到VCU發(fā)出來的信號,并通過驅(qū)動(dòng)的配置將其發(fā)給目標(biāo)機(jī),目標(biāo)機(jī)再根據(jù)其中的模型執(zhí)行相應(yīng)的動(dòng)作;他也可以將目標(biāo)機(jī)中發(fā)出的指令轉(zhuǎn)換成信號發(fā)給VCU,從而實(shí)現(xiàn)VCU和機(jī)柜的信號交互。這里就需要對板卡的資源進(jìn)行分配和定義。
板卡中包含IO133、IO144等多個(gè)型號,在模型中使用板卡時(shí),需要利用驅(qū)動(dòng)對其進(jìn)行管理調(diào)配,具體步驟如下: 1.打開Speedgoat提供各板卡的IO驅(qū)動(dòng)庫: 方法1:在Simulink庫中直接找到該庫,可右鍵打開 方法2:在Matlab窗口輸入speedgoatlib 圖2 speedgoat提供的模型庫 2.板卡驅(qū)動(dòng)的使用 步驟1:將實(shí)時(shí)目標(biāo)機(jī)具備的IO硬件的驅(qū)動(dòng)模塊拖拽到模型中; 步驟2:將算法與IO硬件的驅(qū)動(dòng)模塊鏈接 步驟3:通過對話界面配置IO通道和通訊協(xié)議; 步驟4:從Simulink模型自動(dòng)的創(chuàng)建,并在實(shí)時(shí)機(jī)上運(yùn)行你的應(yīng)用 圖3 驅(qū)動(dòng)板卡的使用 3.以IO133板卡為例(僅舉例,用戶需使用自己系統(tǒng)中有的板卡): 步驟1:將setup模塊首先拖到模型中,并打開做相應(yīng)配置,如使用系統(tǒng)中第幾塊IO133,模擬通道激活那幾路(輸入方式如[1 2],或[1:4],或[1:3 5]),每路的電壓范圍(不同板卡有不同設(shè)定)。數(shù)字通道的方向等(具體可參見setup模塊的help說明) 圖4 IO133板卡使用 步驟2:將要使用的通道如ADC,DAC模塊添加到模型(如果模塊的接口沒有依據(jù)setup的設(shè)定自動(dòng)調(diào)整,可Ctrl+D更新一下),并將模塊與模型連接即可。 圖5 IO板卡添加到模型中 4.接口定義分配 在收到VCU引腳定義后,需對引腳信號進(jìn)行分類,其收發(fā)的信號通常包括Digital Input、Digital Output、Analog Input、Analog Output、PWM Input、PWM Output等類型,因此需要根據(jù)各板卡的特性,對各接口進(jìn)行定義。這里據(jù)一個(gè)例子進(jìn)行說明。 板卡的使用電機(jī)水泵電源控制,為Digital Output,則需要在板卡里找到Digital Input的接口,將其對應(yīng)的接插件管腳記錄下來,并在驅(qū)動(dòng)中完成配置,完成接口定義。如果為Analog Input,還需進(jìn)行電壓等其他配置。 圖2 IO133板卡接口 經(jīng)過DIO的為可自定義的接口,因此若在資源分配中發(fā)現(xiàn)某一類型的接口不夠用,可以在Digital Input/Output之間相互轉(zhuǎn)換,以便對板卡進(jìn)行資源分配。 整車環(huán)境模型架構(gòu) 整車環(huán)境模型的搭建是一個(gè)龐大的工程,里面涉及到車上的各個(gè)模塊邏輯和相關(guān)功能,還需考慮到各模塊之間的通訊、信號觀測和自動(dòng)化測試等諸多因素,因此在搭建模型是建議參照如下原則。 獨(dú)立性:將CAN信號、IO信號、控制ECU、硬件模型、環(huán)境模型劃分模塊搭建,混在一起會導(dǎo)致模塊混亂、通用性差; 可觀測性:提前了解操作平臺的可觀測屬性和可標(biāo)定屬性,在搭建模型時(shí)需要有意識的將重要模塊的輸入信號做Override,輸出信號做成可觀測量; 適用性:及時(shí)了解自動(dòng)化測試所使用的工具和相關(guān)屬性,例如TPT只可控制Subsystem的最外層接口,因此需要將集成后的模型再打包成子模型; 便捷性:模塊的輸出信號和輸入信號的順序,要按照DBC的順序進(jìn)行統(tǒng)一,方便后面的修改替換; 檢測順序: 模型搭完后需對模型的正確性、信號收發(fā)的正確性和面板控制的正確性等方面進(jìn)行檢測,此過程中的檢測步驟如下: 1. 總線檢測:通過萬用表測量VCU接插件端到機(jī)柜板卡端的通斷,確??偩€的正確性; 2. 板卡功能定義檢測:檢測板卡的輸入信號解析和輸出信號發(fā)送是否符合板卡定義,例如數(shù)字信號定義、模擬信號定義、PWM波信號定義等; 3. 駕駛員控制面板的檢測:檢測駕駛員控制操作,如油門、踏板、KeyON/Start等; 調(diào)試順序: 檢測工作完成后就進(jìn)入了具體的調(diào)試階段了,在功能測試中慢慢發(fā)現(xiàn)問題,完善環(huán)境模型。在此過程中需遵循從簡單基礎(chǔ)功能開始測試的原則,逐漸覆蓋全功能,具體調(diào)試順序可參考如下: 1. 信號收發(fā)調(diào)試:完善信號收發(fā)必備的LIVECOUNTER 和CHECKSUM的計(jì)算; 2. 信號發(fā)送的正確性校驗(yàn):通過CANalyzer或CANape觀測報(bào)文,并校驗(yàn)信號發(fā)送是否正確; 3. 上下電功能調(diào)試:根據(jù)設(shè)計(jì)要求,調(diào)試上下電功能; 4. 睡眠喚醒調(diào)試:根據(jù)設(shè)計(jì)要求,調(diào)試睡眠喚醒功能; 5. 充電功能調(diào)試:根據(jù)設(shè)計(jì)要求,調(diào)試充電功能; 車輛可以正常行駛后,開始對各個(gè)功能進(jìn)行調(diào)試,在測試中發(fā)現(xiàn)問題,不斷優(yōu)化模型。 版權(quán)聲明:本文為知乎作者「二流半仙兒」的原創(chuàng)文章,已獲作者轉(zhuǎn)載許可。 |
|