前一段時(shí)間做了一個(gè)VCU的HIL測(cè)試工作,最近在整理整個(gè)的調(diào)試過程,寫了一份總結(jié),在這里和大家分享一下。這里聲明一下,這里的內(nèi)容不做為指導(dǎo)性內(nèi)容,只是詳細(xì)講述一下測(cè)試過程和心得體會(huì),供大家討論交流!下面步入正題:
Speedgoat公司:
本人工作中使用的機(jī)柜為Speedgoat提供的,這里也簡(jiǎn)單介紹下這個(gè)公司。
Mathworks聯(lián)營公司,于2006由MathWorks前員工成立
總部位于瑞士伯爾尼,分部門位于Natick(美國波士頓)和德國漢諾威
致力提供專門針對(duì)Simulink環(huán)境的實(shí)時(shí)系統(tǒng)
在Mathworks和Speedgoat內(nèi),核心團(tuán)隊(duì)(僅實(shí)時(shí)仿真和測(cè)試部門)約100人
可能可能 會(huì)問,為什么不選擇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) 信號(hào)調(diào)理電源:為信號(hào)調(diào)理提供電力
4) 低壓負(fù)載測(cè)試箱:提供負(fù)載電阻
5) 調(diào)試CAN口:可進(jìn)行信號(hào)采集和標(biāo)定
6) 上下接插件:連通機(jī)柜與VCU之間的信號(hào)交互
7) DIO調(diào)理板卡:調(diào)理作用
8) 低壓故障注入箱:提供故障注入
9) 實(shí)時(shí)系統(tǒng):目標(biāo)機(jī)
圖1 Speedgoat VCU機(jī)柜
對(duì)機(jī)柜有大致的了解之后就要開始對(duì)VCU收發(fā)的信號(hào)進(jìn)行定義了,這里需要明白的是,機(jī)柜發(fā)出和接收信號(hào),都是通過板卡來實(shí)現(xiàn)的。我們可以把板卡看作是一個(gè)重要的中轉(zhuǎn),它可以接收到VCU發(fā)出來的信號(hào),并通過驅(qū)動(dòng)的配置將其發(fā)給目標(biāo)機(jī),目標(biāo)機(jī)再根據(jù)其中的模型執(zhí)行相應(yīng)的動(dòng)作;他也可以將目標(biāo)機(jī)中發(fā)出的指令轉(zhuǎn)換成信號(hào)發(fā)給VCU,從而實(shí)現(xiàn)VCU和機(jī)柜的信號(hào)交互。這里就需要對(duì)板卡的資源進(jìn)行分配和定義。
I/O接口定義和資源分配
板卡中包含IO133、IO144等多個(gè)型號(hào),在模型中使用板卡時(shí),需要利用驅(qū)動(dòng)對(duì)其進(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:通過對(duì)話界面配置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引腳定義后,需對(duì)引腳信號(hào)進(jìn)行分類,其收發(fā)的信號(hào)通常包括Digital Input、Digital Output、Analog Input、Analog Output、PWM Input、PWM Output等類型,因此需要根據(jù)各板卡的特性,對(duì)各接口進(jìn)行定義。這里據(jù)一個(gè)例子進(jìn)行說明。
板卡的使用電機(jī)水泵電源控制,為Digital Output,則需要在板卡里找到Digital Input的接口,將其對(duì)應(yīng)的接插件管腳記錄下來,并在驅(qū)動(dòng)中完成配置,完成接口定義。如果為Analog Input,還需進(jìn)行電壓等其他配置。
圖2 IO133板卡接口
經(jīng)過DIO的為可自定義的接口,因此若在資源分配中發(fā)現(xiàn)某一類型的接口不夠用,可以在Digital Input/Output之間相互轉(zhuǎn)換,以便對(duì)板卡進(jìn)行資源分配。
整車環(huán)境模型架構(gòu)
整車環(huán)境模型的搭建是一個(gè)龐大的工程,里面涉及到車上的各個(gè)模塊邏輯和相關(guān)功能,還需考慮到各模塊之間的通訊、信號(hào)觀測(cè)和自動(dòng)化測(cè)試等諸多因素,因此在搭建模型是建議參照如下原則。
獨(dú)立性:將CAN信號(hào)、IO信號(hào)、控制ECU、硬件模型、環(huán)境模型劃分模塊搭建,混在一起會(huì)導(dǎo)致模塊混亂、通用性差;
可觀測(cè)性:提前了解操作平臺(tái)的可觀測(cè)屬性和可標(biāo)定屬性,在搭建模型時(shí)需要有意識(shí)的將重要模塊的輸入信號(hào)做Override,輸出信號(hào)做成可觀測(cè)量;
適用性:及時(shí)了解自動(dòng)化測(cè)試所使用的工具和相關(guān)屬性,例如TPT只可控制Subsystem的最外層接口,因此需要將集成后的模型再打包成子模型;
便捷性:模塊的輸出信號(hào)和輸入信號(hào)的順序,要按照DBC的順序進(jìn)行統(tǒng)一,方便后面的修改替換;
檢測(cè)順序:
模型搭完后需對(duì)模型的正確性、信號(hào)收發(fā)的正確性和面板控制的正確性等方面進(jìn)行檢測(cè),此過程中的檢測(cè)步驟如下:
1.?總線檢測(cè):通過萬用表測(cè)量VCU接插件端到機(jī)柜板卡端的通斷,確??偩€的正確性;
2.?板卡功能定義檢測(cè):檢測(cè)板卡的輸入信號(hào)解析和輸出信號(hào)發(fā)送是否符合板卡定義,例如數(shù)字信號(hào)定義、模擬信號(hào)定義、PWM波信號(hào)定義等;
3.?駕駛員控制面板的檢測(cè):檢測(cè)駕駛員控制操作,如油門、踏板、KeyON/Start等;
調(diào)試順序:
檢測(cè)工作完成后就進(jìn)入了具體的調(diào)試階段了,在功能測(cè)試中慢慢發(fā)現(xiàn)問題,完善環(huán)境模型。在此過程中需遵循從簡(jiǎn)單基礎(chǔ)功能開始測(cè)試的原則,逐漸覆蓋全功能,具體調(diào)試順序可參考如下:
1.?信號(hào)收發(fā)調(diào)試:完善信號(hào)收發(fā)必備的LIVECOUNTER 和CHECKSUM的計(jì)算;
2.?信號(hào)發(fā)送的正確性校驗(yàn):通過CANalyzer或CANape觀測(cè)報(bào)文,并校驗(yàn)信號(hào)發(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)試充電功能;
車輛可以正常行駛后,開始對(duì)各個(gè)功能進(jìn)行調(diào)試,在測(cè)試中發(fā)現(xiàn)問題,不斷優(yōu)化模型。
編輯:黃飛
?
評(píng)論