請通俗的定義汽車電控系統軟體在環測試、模型在環測試,兩者之間的區別是什麼?
因為要做發動機電控系統基於模型的V型開發,遇到這幾個概念不是很理解,看到有人說「模型在環測試」是控制模型在環,「軟體在環測試」是控制軟體在環,那simulink所編寫的圖形化的控制演算法程序是模型還是軟體?還有,看到有人說「硬體在環」是用數學模型來模擬被控對象,那「模型在環」和「軟體在環」也是用數學模型來模擬被控對象的嗎?
做了幾年控制軟體的開發和模型測試工作,看到題主這個問題很是親切,僅就我自己的工作經驗說一下看法,歡迎各位大神批評指正!
首先題主提到了「V流程」和「基於模型的開發(MBD)」,這兩個概念對於模型測試非常重要。
首先是「V流程」,即汽車控制軟體開發的最常規流程,我簡單點說,就是「需求-實現-驗證」,其中「實現」的過程就是基於模型的開發,這裡的工作成果即為Simulink模型,可以將非常複雜的控制問題簡化成可視化的模型。所以模型測試指的就是對於這個模型的測試,也叫MIL(Model In the Loop)測試。而模型測試的主要目的有兩個,即:實現了正確的功能和正確的實現了功能。
那麼什麼是軟體在環測試呢,因為模型是不能直接刷寫到控制器中的,只有C代碼才可以,而C代碼怎麼來的呢,就是通過各種編譯器將模型自動生成的,為了防止在自動代碼生成中出現的問題,需要對代碼和模型的輸出結果進行對比測試,即為軟體在環(SIL)測試。目的就是為了防止代碼生成過程中出現的問題。
最後說下硬體在環(HIL)測試,將C代碼刷寫到真實的控制器中,我們就有了真實的硬體。而硬體相對於軟體又增加了底層驅動,輸入輸出的介面等,對於這部分的測試過程我們稱之為硬體在環測試,此時軟體功能已經非常成熟,主要目的是驗證各類介面的正確性。
以上只是非常淺顯的介紹,題主想要從事這方面的工作,可以找一款專業的測試軟體研究一下,可以很直觀的體會這三個不同測試概念的區別。
樓主可以參考汽車開發中的快速原型和基於模型設計的區別 dspace 有什麼作用?
MIL是功能演算法上的驗證 比如控制邏輯PID 數據類型一般是以理想化精確度來運算的SIL是有了計算誤差了 數據類型精度的設定在SIL中完成PIL 考慮了處理器的特性進去了HIL 硬體介面 模擬數字信號都進來了
推薦閱讀: