基于模型的設(shè)計 (MBD) 通過仿真測試執(zhí)行驗證和確認。盡管許多組織使用某種形式的建模,但太多的組織以不利用潛在驗證優(yōu)勢的特殊方式應(yīng)用模擬(參見圖 1)。
圖 1:整個開發(fā)階段的故障傳播成本說明了一些組織如何沒有利用仿真的驗證優(yōu)勢。
為了最大限度地發(fā)揮 MBD 的優(yōu)勢,成功的組織實施了四種有助于完成早期驗證的關(guān)鍵實踐:
· 在規(guī)范階段創(chuàng)建和模擬高級系統(tǒng)模型。在 MBD 中,系統(tǒng)模型用作可執(zhí)行規(guī)范。該模型的早期模擬突出了不完整和不一致的要求和規(guī)范。
· 從第一天開始就使用多域模擬進行測試。通過開發(fā)多域模型和執(zhí)行閉環(huán)仿真,工程師可以在產(chǎn)品創(chuàng)意成型的同時開始測試。這些仿真使工程師能夠研究系統(tǒng)的所有方面,包括算法、組件、工廠模型和環(huán)境。
· 創(chuàng)建對系統(tǒng)施加壓力的虛擬測試套件。仿真使工程師能夠進行一系列難以或不可能在嵌入式系統(tǒng)本身上執(zhí)行的測試。像所有測試一樣,這些測試應(yīng)該盡早運行。
· 在整個開發(fā)過程中使用模型和測試套件作為參考設(shè)計。構(gòu)建良好的模型可以在整個開發(fā)過程中使用,然后再用于未來的增強和衍生設(shè)計。
這些實踐應(yīng)作為四個維度并行使用,以成功使用 MBD 進行早期驗證。
創(chuàng)建和模擬高級系統(tǒng)模型
作為可執(zhí)行規(guī)范,高級系統(tǒng)模型必須反映系統(tǒng)的抽象行為。該模型可能不包括完整的接口定義,但它必須指定系統(tǒng)的動態(tài)行為。在需求規(guī)范階段模擬系統(tǒng)行為有助于確保團隊對系統(tǒng)需要做什么有一個完整和共享的理解。
使用 MBD,工程師首先使用子系統(tǒng)或離散狀態(tài)組裝架構(gòu)。這些子系統(tǒng)內(nèi)的動力學(xué)最初應(yīng)使用最簡單的方法進行建模。在此活動的同時,其他工程師可以創(chuàng)建場景或形式化需求,為盡早測試動態(tài)做準備。
運行第一次測試時,建模功能行為的工程師將更多地了解系統(tǒng)和需求的真正含義。同樣,創(chuàng)建測試場景或形式化需求的工程師將了解需求是否一致和完整。每一組應(yīng)將他們的發(fā)現(xiàn)傳達給另一組,以確保沒有誤解。
從第一天開始使用多域模擬進行測試
系統(tǒng)行為不僅由嵌入式控制軟件定義,還由電子和機械組件定義,包括連接的傳感器和執(zhí)行器。執(zhí)行架構(gòu)的早期模擬在使用工廠或環(huán)境模型在閉環(huán)中執(zhí)行時提供了更多的洞察力。
與開環(huán)仿真或在實際工廠硬件上進行測試相比,帶有工廠模型的閉環(huán)仿真具有多個優(yōu)勢。一個優(yōu)點是模型比金屬、電線和 C 代碼更容易更改。帶有工廠和環(huán)境模型的閉環(huán)仿真降低了多個開發(fā)階段的成本。與由鋼、電線、電路和其他硬件構(gòu)建的機械和電氣設(shè)備相比,模型更容易重新配置和復(fù)制。工程師可以在物理模型的版本之間快速切換,而不會產(chǎn)生制造成本。通過簡單地更改桿的長度或電動驅(qū)動器的最大扭矩等參數(shù),團隊可以評估權(quán)衡并針對成本、速度、功率和其他要求優(yōu)化整個系統(tǒng)。
系統(tǒng)級優(yōu)化需要多域仿真。通過一次調(diào)整一個參數(shù)來優(yōu)化當今復(fù)雜的系統(tǒng)是不可能的。為了以最低的材料成本提供最高的能源效率和最高的性能,工程師必須優(yōu)化整個系統(tǒng),而不僅僅是嵌入式軟件。
工廠模型提供了系統(tǒng)的另一個視角。對系統(tǒng)的非軟件部分進行建??梢宰尮こ處煆牧硪粋€角度了解系統(tǒng)行為。工程師通??梢酝ㄟ^仿真而不是從真實系統(tǒng)中了解更多關(guān)于系統(tǒng)動力學(xué)的信息,因為仿真提供了力、扭矩、電流和其他在實際硬件上難以或不可能測量的值的詳細信息。
創(chuàng)建工廠模型需要工程努力,但這種努力往往被高估,而工廠建模提供的價值卻被低估了。在開發(fā)工廠模型時,最佳實踐是從高級抽象開始并根據(jù)需要添加細節(jié)。選擇一個足夠詳細以產(chǎn)生所需結(jié)果的抽象級別可以節(jié)省建模工作和仿真時間(參見圖 2)。
圖 2:作為基于模型的設(shè)計一部分的早期驗證通過建模、仿真和自動代碼生成簡化了嵌入式控制設(shè)計。
創(chuàng)建對系統(tǒng)施加壓力的虛擬測試套件
高效的測試需要關(guān)注點分離。組織應(yīng)該在不同的開發(fā)階段測試軟件實施的不同方面。在測試算法之前測試通信和硬件效果會導(dǎo)致難以隔離和識別設(shè)計中的缺陷來源。
在最合適的地點和時間應(yīng)用測試,使團隊能夠在每個開發(fā)階段的正確級別上評估設(shè)計。在每個階段,測試結(jié)果都應(yīng)立即反饋給開發(fā)人員,以使設(shè)計能夠持續(xù)改進。
功能測試涉及使用多域環(huán)境模型模擬控制器模型。功能測試中使用的測試向量基于形式化要求或記錄的駕駛操作等場景。這些測試向量可以重復(fù)用于回歸測試和完整的模型覆蓋測試。
快速控制原型 (RCP) 為測試方案增加了實時驗證和用戶體驗。RCP 可幫助工程師快速部署算法并在車輛中對其進行測試,以確定功能是否正確。在目標快速原型設(shè)計和功能快速原型設(shè)計平臺的支持下,RCP 可以成為設(shè)計理念的豐富來源,但不應(yīng)作為驗證功能的主要方法。
穩(wěn)健性測試旨在評估系統(tǒng)在軟件參數(shù)變化、制造過程差異、機械和電氣硬件在系統(tǒng)生命周期內(nèi)退化以及類似影響的情況下的穩(wěn)健性。最佳實踐是在虛擬系統(tǒng)(包括控制器和環(huán)境)上運行參數(shù)掃描。隨著對系統(tǒng)在邊界條件下的性能有了更透徹的了解,工程師可以選擇縮小硬件供應(yīng)商的規(guī)格范圍,或者得出結(jié)論認為具有稍高差異的較便宜的部件可以滿足他們的設(shè)計需求。
硬件在環(huán) (HIL) 測試使工程師能夠在實驗室而不是在真實環(huán)境中測試真實的控制器或控制器網(wǎng)絡(luò)。HIL 測試可用于測試穩(wěn)健性(例如,通過插入故障)或診斷大型控制器網(wǎng)絡(luò)中的控制器間通信。它涵蓋了無法輕松建模的硬件和通信效果。
與 RCP 一樣,HIL 測試是系統(tǒng)驗證所必需的,但不應(yīng)將其用作功能測試的主要手段。這是因為 HIL 測試是在非常低的抽象級別上進行的——接近真實系統(tǒng)——因此結(jié)合了許多不同的影響,阻礙了有效的功能測試。
HIL 測試需要對硬件進行投資,范圍從帶有專用數(shù)據(jù)卡的標準 PC 到高端硬件機架。在這樣的系統(tǒng)上執(zhí)行的測試比在純軟件中執(zhí)行的測試更少,因為軟件測試可以更容易地在多臺計算機上復(fù)制。這是確保在 HIL 測試之前驗證功能的另一個原因。如果工程師在 HIL 測試中發(fā)現(xiàn)算法缺陷,那么上游驗證過程可能是不夠的。
使用模型和測試套件作為參考設(shè)計
在 MBD 中,所有關(guān)鍵開發(fā)任務(wù)都在模型級別執(zhí)行。這意味著對生成的代碼所做的任何修改也必須在模型中進行。在整個開發(fā)過程中使用模型和測試套件作為單一的事實來源,可以促進模型和測試的清晰溝通和有效重用,不僅適用于當前項目,而且適用于未來的增強和衍生設(shè)計。
將所有工件置于配置管理之下
軟件工程師認識到配置管理系統(tǒng) (CMS) 中版本控制代碼的價值。MBD 中的關(guān)鍵工件——模型、測試和模擬結(jié)果——也應(yīng)該在 CMS 中維護。在 CMS 中管理工件使團隊可以輕松地重新運行虛擬測試并將當前測試工具與以前的模型狀態(tài)或以前的測試向量進行比較。
當模型結(jié)構(gòu)是模塊化的而不是單一的時,版本控制模型效果最好。模塊化模型結(jié)構(gòu)還可以通過允許多個工程師并行處理同一系統(tǒng)的不同部分并啟用并行代碼生成來加速開發(fā)。
執(zhí)行回歸測試
軟件工程師使用夜間構(gòu)建來編譯和測試源代碼的最新版本。這種方法也應(yīng)該應(yīng)用于建模和仿真。一旦工程師定義了一個新的測試來驗證特定的模型行為,該測試應(yīng)該集成到夜間構(gòu)建中,以確保特定行為在所有后續(xù)建模迭代中仍然有效。如果測試在某個時間點失敗,則要么已識別出缺陷,要么功能已從根本上改變,并且測試不再適用。
盡早并經(jīng)常驗證
本文中概述的最佳實踐使工程師能夠?qū)崿F(xiàn)早期驗證,減少在開發(fā)周期結(jié)束時花費的時間測試和調(diào)試他們的設(shè)計。此過程的關(guān)鍵是 MBD,它可以將驗證用作在整個開發(fā)過程中發(fā)生的并行活動。在開發(fā)過程的每個步驟中執(zhí)行測試和驗證意味著在引入錯誤時發(fā)現(xiàn)錯誤。與傳統(tǒng)流程相比,可以更快地重復(fù)、修復(fù)和驗證設(shè)計。
作者:Guido Sandmann,Joachim Schlosser,Brett Murphy
審核編輯:郭婷
-
驅(qū)動器
+關(guān)注
關(guān)注
53文章
8256瀏覽量
146592 -
控制器
+關(guān)注
關(guān)注
112文章
16396瀏覽量
178509 -
嵌入式
+關(guān)注
關(guān)注
5086文章
19143瀏覽量
306090
發(fā)布評論請先 登錄
相關(guān)推薦
評論