小議MIL/SIL/PIL/HIL(一)
11 人贊了文章
在基於模型的軟體工程(MBSE)中,我們經常會談到MIL/SIL/PIL和HIL,很多新入門者常常會搞混它們的含義,筆者撰寫本文的目的是概要性的介紹XIL之間的區別與聯繫,盡我所能把它們講清楚。
術語定義:
MIL:Model in loop, 驗證控制演算法模型是否準確地實現了功能需求
SIL: Software in loop, 在PC上驗證代碼實現的功能是否與模型一致
PIL: Processor in loop, 在目標處理器上驗證代碼實現的功能是否與模型一致
HIL: Hardware in loop, 在ECU/EPP/整套系統上驗證代碼實現的功能是否與需求定義一致。
幾個常見問題:
這四個測試名字里都有in the loop,那麼是不是一定要有閉環?
NO,某些控制演算法實現的功能本身就是不帶閉環的,比如接收到某信號後點亮某某燈,在這種情況下就不需要閉環。
是不是一定要有被控對象模型?
NO,在筆者有限的認知里
(1) 大部分狹義的的MIL(End2End Test)是需要帶被控對象模型的(也有例外,如上文講的某功能知識控制一個燈的開關,大沒有必要建一個燈泡的模型),廣義的MIL一般不care被控對象模型;
(2) SIL測試可帶被控對象模型,但帶被控對象模型的意義不大;
(3) PIL一般是不帶被控對象模型(PlantModel)的;
(4) HIL(無論哪個層級)一般來說都需要被控對象模型。
是不是MIL一定要用浮點數,SIL一定要用定點數?
No. 有些公司進行開發時直接跳過浮點模型用定點建模,在這種情況下,MIL也是用定點數進行測試;dsp和最新的MCU的浮點運算功能都已經很強大,支持用浮點數生成(編寫)的代碼,在這種情況下SIL也是用浮點來測試。
不是模型生成的代碼可不可以做SIL?
Yes,前面已經講了SIL不一定需要被控對象模型,手寫代碼也可以做SIL,只是測試用例需要提前根據功能定義好。
(一) MIL
>>點擊瀏覽完整文章《小議MIL/SIL/PIL/HIL(一)》推薦閱讀:
※解讀中國車企進軍世界500強榜單背後的增長邏輯
※充滿盛夏的味道,5月上市新車薈萃
※MPV市場低迷背後,是主流家用MPV市場未被真正激發
※汽車生產工藝平台化、通用化策略
※8月前20名SUV銷量排行榜出爐(美國版)