我們?cè)谑褂肕BD開發(fā)軟件的過程中,經(jīng)常會(huì)聽到MIL、SIL、PIL和HIL等In-the-Loop測(cè)試。
這幾種測(cè)試之間到底是什么關(guān)系?
分別做什么事情?
下面我來簡(jiǎn)單說說。
M模型在環(huán)測(cè)試(MIL)
圖一:模型在環(huán)測(cè)試(MIL)示意圖
如圖一所示,如果在Simulink模型中,將控制算法模型和被控對(duì)象模型連起來形成閉環(huán),就是我們經(jīng)常說的MIL,顧名思義,在模型層面上實(shí)現(xiàn)閉環(huán)測(cè)試。這種測(cè)試通常發(fā)生在兩種場(chǎng)景之下:
系統(tǒng)工程師為了驗(yàn)證算法,使用控制算法模型控制被控對(duì)象模型
軟件工程師做模型級(jí)別的集成測(cè)試
當(dāng)然,MIL測(cè)試的前提是要有被控對(duì)象模型,搭建被控對(duì)象模型或者采購(gòu)現(xiàn)成的被控對(duì)象模型都可以。
M軟件在環(huán)測(cè)試(SIL)
SIL測(cè)試,這里的Software是指控制策略模型轉(zhuǎn)換成的C代碼編譯之后的軟件。我們可以想象,對(duì)于圖一,如果我們把控制策略模型替換成由控制策略模型轉(zhuǎn)換得到的C代碼編譯后的DLL文件,如果我們使用了和MIL測(cè)試時(shí)相同的測(cè)試用例,如果我們的測(cè)試用例足夠多,如果我們得到了和MIL測(cè)試相同的結(jié)果,那么我們是不是可以認(rèn)為我們生成的C代碼就和用于代碼生成的模型是一致的呢?
沒錯(cuò),SIL測(cè)試的目的就是為了驗(yàn)證自動(dòng)生成的代碼和用于代碼生成的模型中行為上是一致的。
也就是說SIL測(cè)試是一種等效性測(cè)試,既然是等效性測(cè)試,那么我們就沒必要搭建圖一那樣的閉環(huán)模型,而可以用圖二實(shí)現(xiàn)等效性測(cè)試。
圖二:軟件在環(huán)測(cè)試(SIL)示意圖
其實(shí)Simulink提供了SIL仿真模式,所以,我們可以用更方便的方式實(shí)現(xiàn)SIL測(cè)試,使用:
set_param(model_name,’SimulationMode’,’Software-in-the-loop(SIL)’)
設(shè)置算法模型的仿真模式為SIL,然后對(duì)比Normal模式下的輸出結(jié)果即可,并且這樣做有助于過程自動(dòng)化。如圖三所示:
圖三:選擇SIL仿真模式測(cè)試
M處理器在環(huán)測(cè)試(PIL)
SIL測(cè)試是驗(yàn)證代碼和模型的一致性,代碼運(yùn)行在Windows平臺(tái)上,某種程度上說,這并不能保證代碼到目標(biāo)處理器上的運(yùn)行結(jié)果也能夠和模型保持一致。所以,就有了PIL測(cè)試。
PIL和SIL的不同之處在于,SIL將生成的代碼通過DLL的方式運(yùn)行在Windows平臺(tái)上,而PIL,是將生成的代碼運(yùn)行到目標(biāo)處理器上,兩種模式使用的編譯器也是不同的,SIL使用的就是Windows下的編譯器,比如Visual Studio C++或者LCC編譯器,而PIL使用的是目標(biāo)編譯器。
前面說過,等效性測(cè)試的目的是為了防止代碼生成過程出錯(cuò)。同樣,編譯過程也可能出錯(cuò),編譯器也可能有bug,綜合模型測(cè)試、SIL測(cè)試和PIL測(cè)試的結(jié)果,也可以幫助我們發(fā)現(xiàn)編譯器出錯(cuò)可能引入的bug。
SIL和PIL是等效性測(cè)試,測(cè)試的目的是為了驗(yàn)證自動(dòng)生成的代碼和模型具有相同的行為,既然如此,對(duì)于SIL和PIL的測(cè)試用例就沒有功能意義上的要求,只要要求代碼和模型輸入的測(cè)試數(shù)據(jù)相同即可,當(dāng)然希望數(shù)據(jù)量足夠大,能夠覆蓋各種路徑以及各種信號(hào)范圍。
另外,因?yàn)镻IL測(cè)試中代碼運(yùn)行在實(shí)際的控制器上,所以PIL測(cè)試除了可以驗(yàn)證代碼和模型是否一致之外,還可以獲得算法在實(shí)際控制器上的最長(zhǎng)運(yùn)行時(shí)間,而這個(gè)最長(zhǎng)時(shí)間的價(jià)值,做嵌入式實(shí)時(shí)軟件開發(fā)的工程師都懂得。
M硬件在環(huán)測(cè)試(HIL)
最后再說一下HIL測(cè)試,很多人會(huì)把HIL和PIL混淆,也有人認(rèn)為PIL是一種簡(jiǎn)化的HIL,理由是PIL測(cè)試的時(shí)候也需要引入硬件。這種理解是錯(cuò)誤的。PIL和HIL測(cè)試的目的是不同的,PIL用于測(cè)試軟件和模型是否一致,而HIL是用于測(cè)試控制器系統(tǒng)的,控制器系統(tǒng)包括了硬件、底層軟件和應(yīng)用層軟件。HIL測(cè)試通常將一個(gè)被測(cè)控制器和工控機(jī)相連,工控機(jī)上運(yùn)行著被控對(duì)象的模型,并且模擬出被控對(duì)象的一些電氣特性。在HIL場(chǎng)景下,被測(cè)試的控制器并不知道和它相連的是一臺(tái)工控機(jī),它會(huì)認(rèn)為自己連接的就是真實(shí)的實(shí)物對(duì)象。
MIL、SIL、PIL三種測(cè)試都是和MBD開發(fā)模式下特有的,而HIL不同,無(wú)論你是否使用MBD開發(fā),都可能需要做HIL。不是所有的應(yīng)用都需要,但是以下兩種情況建議做HIL:
在控制器軟硬件不成熟的條件下,運(yùn)行出錯(cuò)可能會(huì)導(dǎo)致人身傷害或者重大財(cái)產(chǎn)損失的情況;
在開發(fā)過程中,被控對(duì)象開發(fā)滯后于控制器開發(fā)的情況。
另外,HIL測(cè)試通常比實(shí)物測(cè)試更節(jié)省成本,比如,做汽油機(jī)臺(tái)架測(cè)試,需要有大量的汽油消耗,而通過HIL測(cè)試汽油機(jī)控制器,就沒有汽油消耗。但這并不是說HIL可以替代實(shí)物測(cè)試,HIL測(cè)試之后,通常會(huì)跟著做實(shí)物測(cè)試。
如果記不住上面的大段文字
就請(qǐng)記住下面3點(diǎn)——
MIL用于測(cè)算法
SIL和PIL用于測(cè)代碼(和模型的一致性)
HIL用于測(cè)控制器系統(tǒng)
-
處理器
+關(guān)注
關(guān)注
68文章
19896瀏覽量
235249 -
控制器
+關(guān)注
關(guān)注
114文章
17113瀏覽量
184317 -
編譯器
+關(guān)注
關(guān)注
1文章
1662瀏覽量
50226
發(fā)布評(píng)論請(qǐng)先 登錄
汽車硬件在環(huán)(HIL)之車身電子測(cè)試解析

搭建完整的ADAS測(cè)試鏈路,推動(dòng)自動(dòng)駕駛技術(shù)的安全發(fā)展

5月22日技術(shù)直播分享 | 智能底盤電控產(chǎn)品仿真測(cè)試解決方案

PSoC 4-IEC 60730 B級(jí)和IEC 61508 SIL安全軟件庫(kù)
求助,關(guān)于NXP S32K3xx硬件板的SIL測(cè)試問題求解
數(shù)據(jù)采集網(wǎng)關(guān)與工業(yè)組態(tài)云平臺(tái)有什么聯(lián)系
斯丹麥德電子SIL干簧繼電器:專為自動(dòng)測(cè)試設(shè)備(ATE)設(shè)計(jì)
電力電子半實(shí)物仿真(HIL)原理及應(yīng)用

通用自動(dòng)化測(cè)試軟件 - TAE

晶圓/晶粒/芯片之間的區(qū)別和聯(lián)系
汽車HiL測(cè)試:利用TS-GNSS模擬器掌握硬件性能的仿真藝術(shù)

基于TSMaster的MIL/HIL仿真開發(fā)(空簧和連續(xù)阻尼控制篇)

設(shè)計(jì)仿真 基于VTD的AR-HUD仿真測(cè)試解決方案

【干貨分享】硬件在環(huán)仿真(HiL)測(cè)試

應(yīng)用案例分享 | 智駕路試數(shù)據(jù)分析及 SiL/HiL 回灌案例介紹

評(píng)論