我們在使用MBD開發(fā)軟件的過程中,經(jīng)常會聽到MIL、SIL、PIL和HIL等In-the-Loop測試。
這幾種測試之間到底是什么關(guān)系?
分別做什么事情?
下面我來簡單說說。
M模型在環(huán)測試(MIL)
圖一:模型在環(huán)測試(MIL)示意圖
如圖一所示,如果在Simulink模型中,將控制算法模型和被控對象模型連起來形成閉環(huán),就是我們經(jīng)常說的MIL,顧名思義,在模型層面上實(shí)現(xiàn)閉環(huán)測試。這種測試通常發(fā)生在兩種場景之下:
系統(tǒng)工程師為了驗(yàn)證算法,使用控制算法模型控制被控對象模型
軟件工程師做模型級別的集成測試
當(dāng)然,MIL測試的前提是要有被控對象模型,搭建被控對象模型或者采購現(xiàn)成的被控對象模型都可以。
M軟件在環(huán)測試(SIL)
SIL測試,這里的Software是指控制策略模型轉(zhuǎn)換成的C代碼編譯之后的軟件。我們可以想象,對于圖一,如果我們把控制策略模型替換成由控制策略模型轉(zhuǎn)換得到的C代碼編譯后的DLL文件,如果我們使用了和MIL測試時相同的測試用例,如果我們的測試用例足夠多,如果我們得到了和MIL測試相同的結(jié)果,那么我們是不是可以認(rèn)為我們生成的C代碼就和用于代碼生成的模型是一致的呢?
沒錯,SIL測試的目的就是為了驗(yàn)證自動生成的代碼和用于代碼生成的模型中行為上是一致的。
也就是說SIL測試是一種等效性測試,既然是等效性測試,那么我們就沒必要搭建圖一那樣的閉環(huán)模型,而可以用圖二實(shí)現(xiàn)等效性測試。
圖二:軟件在環(huán)測試(SIL)示意圖
其實(shí)Simulink提供了SIL仿真模式,所以,我們可以用更方便的方式實(shí)現(xiàn)SIL測試,使用:
set_param(model_name,’SimulationMode’,’Software-in-the-loop(SIL)’)
設(shè)置算法模型的仿真模式為SIL,然后對比Normal模式下的輸出結(jié)果即可,并且這樣做有助于過程自動化。如圖三所示:
圖三:選擇SIL仿真模式測試
M處理器在環(huán)測試(PIL)
SIL測試是驗(yàn)證代碼和模型的一致性,代碼運(yùn)行在Windows平臺上,某種程度上說,這并不能保證代碼到目標(biāo)處理器上的運(yùn)行結(jié)果也能夠和模型保持一致。所以,就有了PIL測試。
PIL和SIL的不同之處在于,SIL將生成的代碼通過DLL的方式運(yùn)行在Windows平臺上,而PIL,是將生成的代碼運(yùn)行到目標(biāo)處理器上,兩種模式使用的編譯器也是不同的,SIL使用的就是Windows下的編譯器,比如Visual Studio C++或者LCC編譯器,而PIL使用的是目標(biāo)編譯器。
前面說過,等效性測試的目的是為了防止代碼生成過程出錯。同樣,編譯過程也可能出錯,編譯器也可能有bug,綜合模型測試、SIL測試和PIL測試的結(jié)果,也可以幫助我們發(fā)現(xiàn)編譯器出錯可能引入的bug。
SIL和PIL是等效性測試,測試的目的是為了驗(yàn)證自動生成的代碼和模型具有相同的行為,既然如此,對于SIL和PIL的測試用例就沒有功能意義上的要求,只要要求代碼和模型輸入的測試數(shù)據(jù)相同即可,當(dāng)然希望數(shù)據(jù)量足夠大,能夠覆蓋各種路徑以及各種信號范圍。
另外,因?yàn)镻IL測試中代碼運(yùn)行在實(shí)際的控制器上,所以PIL測試除了可以驗(yàn)證代碼和模型是否一致之外,還可以獲得算法在實(shí)際控制器上的最長運(yùn)行時間,而這個最長時間的價(jià)值,做嵌入式實(shí)時軟件開發(fā)的工程師都懂得。
M硬件在環(huán)測試(HIL)
最后再說一下HIL測試,很多人會把HIL和PIL混淆,也有人認(rèn)為PIL是一種簡化的HIL,理由是PIL測試的時候也需要引入硬件。這種理解是錯誤的。PIL和HIL測試的目的是不同的,PIL用于測試軟件和模型是否一致,而HIL是用于測試控制器系統(tǒng)的,控制器系統(tǒng)包括了硬件、底層軟件和應(yīng)用層軟件。HIL測試通常將一個被測控制器和工控機(jī)相連,工控機(jī)上運(yùn)行著被控對象的模型,并且模擬出被控對象的一些電氣特性。在HIL場景下,被測試的控制器并不知道和它相連的是一臺工控機(jī),它會認(rèn)為自己連接的就是真實(shí)的實(shí)物對象。
MIL、SIL、PIL三種測試都是和MBD開發(fā)模式下特有的,而HIL不同,無論你是否使用MBD開發(fā),都可能需要做HIL。不是所有的應(yīng)用都需要,但是以下兩種情況建議做HIL:
在控制器軟硬件不成熟的條件下,運(yùn)行出錯可能會導(dǎo)致人身傷害或者重大財(cái)產(chǎn)損失的情況;
在開發(fā)過程中,被控對象開發(fā)滯后于控制器開發(fā)的情況。
另外,HIL測試通常比實(shí)物測試更節(jié)省成本,比如,做汽油機(jī)臺架測試,需要有大量的汽油消耗,而通過HIL測試汽油機(jī)控制器,就沒有汽油消耗。但這并不是說HIL可以替代實(shí)物測試,HIL測試之后,通常會跟著做實(shí)物測試。
如果記不住上面的大段文字
就請記住下面3點(diǎn)——
MIL用于測算法
SIL和PIL用于測代碼(和模型的一致性)
HIL用于測控制器系統(tǒng)
-
處理器
+關(guān)注
關(guān)注
68文章
19407瀏覽量
231178 -
控制器
+關(guān)注
關(guān)注
112文章
16445瀏覽量
179439 -
編譯器
+關(guān)注
關(guān)注
1文章
1642瀏覽量
49283
發(fā)布評論請先 登錄
相關(guān)推薦
通用自動化測試軟件 - TAE
![通用自動化測試軟件 - TAE](https://file1.elecfans.com/web3/M00/04/8A/wKgZPGd2JdSAOEfOAACF3V0L3w4860.png)
![](https://file1.elecfans.com/web3/M00/00/45/wKgZO2dH5XuAJk3hAAL3OJI89q0131.png)
EasyGo AC-DC-MMC 實(shí)時仿真應(yīng)用 #電力電子 #實(shí)時仿真 #半實(shí)物仿真 #HIL測試
晶圓/晶粒/芯片之間的區(qū)別和聯(lián)系
汽車HiL測試:利用TS-GNSS模擬器掌握硬件性能的仿真藝術(shù)
![汽車<b class='flag-5'>HiL</b>測試:利用TS-GNSS模擬器掌握硬件性能的仿真藝術(shù)](https://file1.elecfans.com/web1/M00/F5/A5/wKgaoWc_8KiAR1uWAACPEDXho50815.png)
基于TSMaster的MIL/HIL仿真開發(fā)(空簧和連續(xù)阻尼控制篇)
![基于TSMaster的<b class='flag-5'>MIL</b>/<b class='flag-5'>HIL</b>仿真開發(fā)(空簧和連續(xù)阻尼控制篇)](https://file.elecfans.com/web2/M00/40/07/pYYBAGJrUk2AaMaTAAAQONQtdzo461.jpg)
設(shè)計(jì)仿真 基于VTD的AR-HUD仿真測試解決方案
![設(shè)計(jì)仿真 基于VTD的AR-HUD仿真測試解決方案](https://file1.elecfans.com/web1/M00/F2/93/wKgZoWcGGdqAEb0aAABSfqZLb8E457.png)
【干貨分享】硬件在環(huán)仿真(HiL)測試
![【干貨分享】硬件在環(huán)仿真(<b class='flag-5'>HiL</b>)測試](https://file1.elecfans.com/web2/M00/07/D6/wKgaombr65SAAnfRAABTdl3VZXc471.png)
應(yīng)用案例分享 | 智駕路試數(shù)據(jù)分析及 SiL/HiL 回灌案例介紹
![應(yīng)用案例分享 | 智駕路試數(shù)據(jù)<b class='flag-5'>分析</b>及 <b class='flag-5'>SiL</b>/<b class='flag-5'>HiL</b> 回灌案例介紹](https://file1.elecfans.com/web2/M00/07/38/wKgaombj3tWAaNG6AABNosvvfm0483.png)
教學(xué)驗(yàn)證篇丨PPEC+HIL LLC拓?fù)浞抡骝?yàn)證
RTU與PLC有什么異同
儲能BMS的HiL測試系統(tǒng)方案介紹
![](https://file1.elecfans.com/web2/M00/C5/35/wKgaomXybu-AZWB8AAEqXqkCtsc441.png)
評論