隨著系統(tǒng)設(shè)計(jì)變得越來越復(fù)雜,依靠原型來確定系統(tǒng)性能是否滿足設(shè)計(jì)需求的風(fēng)險(xiǎn)也變的復(fù)雜:在需要啟動(dòng)測試時(shí),原型可能成本高昂,操作風(fēng)險(xiǎn)大,甚至不可用或不完整。因此,越來越多的工程團(tuán)隊(duì)在設(shè)計(jì)過程的早期就使用仿真和其他測試技術(shù),此時(shí)錯(cuò)誤更易于修復(fù),且成本更低。
Simulink Test 提供了一個(gè)集成框架,使您可以在整個(gè)設(shè)計(jì)過程(從桌面仿真到硬件測試)中執(zhí)行自動(dòng)化、可重復(fù)的測試(圖 1)。
圖 1:通過桌面和硬件在環(huán)仿真進(jìn)行可重復(fù)系統(tǒng)測試的框架。
我們將使用一個(gè)顫振抑制示例來演示這種工作框架。
顫振抑制系統(tǒng)測試目標(biāo)和設(shè)置
顫振是由作用在機(jī)翼上的空氣動(dòng)力引起的振動(dòng)。這種現(xiàn)象可以導(dǎo)致機(jī)翼振動(dòng),嚴(yán)重時(shí)會(huì)導(dǎo)致機(jī)翼損壞??刂祁澱竦囊环N方法是使用控制表面并試圖抑制振動(dòng)。
我們的顫振抑制系統(tǒng)有三個(gè)輸入:所需的角度(度)、速度(馬赫)和海拔高度(英尺)。它的單一輸出是機(jī)翼的測量偏差(弧度)。
我們需要根據(jù)兩個(gè)設(shè)計(jì)需求測試系統(tǒng):
系統(tǒng)在施加擾動(dòng)的兩秒內(nèi)將顫振抑制在 0.005 弧度以內(nèi)
顫振隨時(shí)間呈指數(shù)衰減 — 具體而言,系統(tǒng)具有正阻尼比
系統(tǒng)需要在各種操作條件下滿足這些需求,以最大限度地減少在現(xiàn)場部署或投入生產(chǎn)時(shí)的意外行為。
圖 2 顯示了我們的顫振抑制系統(tǒng)的 Simulink模型。
圖 2:飛機(jī)顫振抑制系統(tǒng)模型。
在這個(gè)模型中,我們將在三秒鐘后引入擾動(dòng),然后測試控制器是否能夠抑制各種馬赫和海拔高度點(diǎn)的顫振。
要執(zhí)行測試,我們需要具備以下條件:
可以在仿真的每個(gè)時(shí)間步長監(jiān)控顫振的測試環(huán)境
記錄數(shù)據(jù)以確定顫振是否隨時(shí)間呈指數(shù)衰減的能力
依托各種馬赫和海拔高度值進(jìn)行迭代的能力
設(shè)置測試框架測試序列模塊
控制設(shè)計(jì)工程師有時(shí)會(huì)創(chuàng)建兩個(gè)獨(dú)立的模型,一個(gè)用于測試的基礎(chǔ)模型,另一個(gè)用于布置。確?;A(chǔ)模型和布置的模型等效具有一定難度。此外,根據(jù)測試任務(wù),可能需要自定義輸入或記錄其他數(shù)據(jù),這些會(huì)更改基礎(chǔ)模型。
Simulink 提供了兩個(gè)工具,使我們能夠避免此版本控制問題:測試框架和測試序列模塊。測試框架是一個(gè)與被測系統(tǒng)模塊關(guān)聯(lián)的模型。它有單獨(dú)的模型工作區(qū)和配置集,但仍然存在于主模型中。它有效地為我們提供了一個(gè)沙盒來測試我們的設(shè)計(jì),而不會(huì)改變或破壞基礎(chǔ)模型。
要在 Simulink 中從頭開始創(chuàng)建測試框架,我們只需右鍵單擊子系統(tǒng),或者從工具條中選擇Analysis(分析),然后在選擇Test Harness(測試框架)后,選擇Create Test Harness(創(chuàng)建測試框架)。隨后,以交互方式配置新測試框架(圖 3)。
圖 3:Simulink 中的測試框架對話框。
測試序列模塊(圖 4 中紅框表示)使用 MATLAB作為動(dòng)作語言(圖 5)。它允許您在評估被測組件時(shí)有條件地在測試步驟之間轉(zhuǎn)換。您可以使用條件邏輯、時(shí)序算子(例如 before 和 after)和事件算子(例如hasChanged 和 hasChangedFrom)。
圖 4:測試序列模塊(紅框)和數(shù)據(jù)記錄(藍(lán)框)的測試框架模型。
圖 5:支持 MATLAB 動(dòng)作語言的測試序列。
第一個(gè)需求規(guī)定顫振應(yīng)以施加初始擾動(dòng)的兩秒內(nèi)被抑制。我們合并了一個(gè)測試序列模塊來實(shí)施這個(gè)測試用例。我們將期望設(shè)置為 0 弧度,并在五秒后計(jì)算每個(gè)時(shí)間步長下的誤差。使用verify函數(shù)記錄每個(gè)時(shí)間步長是否滿足條件。
為了計(jì)算阻尼比,我們使用圖 4 中藍(lán)框內(nèi)的 To Workspace(到工作區(qū))和 File Scope(文件范圍)將數(shù)據(jù)以仿真和實(shí)時(shí)方式記錄下來。
創(chuàng)建和運(yùn)行桌面仿真
被測系統(tǒng)有兩個(gè)輸入:馬赫和海拔高度。需求定義系統(tǒng)應(yīng)在各種操作條件下進(jìn)行測試。我們可以使用 Simulink Test Manager 創(chuàng)建各種條件下的自動(dòng)化測試用例。測試用例使我們能夠在不同的輸入條件下自動(dòng)測試這兩個(gè)需求,并生成有關(guān)它們是通過還是失敗的報(bào)告。當(dāng)設(shè)計(jì)的更改時(shí),可以重新運(yùn)行這個(gè)測試用例。
使用 Test Manager,我們可以為顫振抑制系統(tǒng)新建一個(gè)測試框架,添加測試目的描述,并將其鏈接到需求。最后,我們使用腳本迭代為馬赫和海拔高度指定了一些操作條件(圖 6)。
圖 6:在測試管理器界面中使用 MATLAB 腳本為不同的馬赫和海拔高度值設(shè)置迭代。
我們現(xiàn)在將使用此測試自動(dòng)化工作流程來測試我們的兩項(xiàng)需求。第一項(xiàng)需求已使用測試序列模塊予以處理。重新調(diào)用 verify 函數(shù)。如果驗(yàn)證標(biāo)準(zhǔn)在任何時(shí)候出現(xiàn)失敗,則整體測試將失敗。
對于第二項(xiàng)需求,我們添加了模塊來記錄仿真數(shù)據(jù)。我們需要對測量的角度進(jìn)行一些數(shù)據(jù)分析,以確定測試是通過還是失敗。通過在每次運(yùn)行仿真后執(zhí)行 cleanup 回調(diào)函數(shù)可完成這項(xiàng)分析(圖 7)。我們可以利用以前的數(shù)據(jù)分析工作來進(jìn)行指數(shù)擬合,并根據(jù)擬合參數(shù)聲明通過或失敗。
圖 7:在測試管理器界面中為自定義標(biāo)準(zhǔn)設(shè)置cleanup回調(diào)函數(shù)。
從現(xiàn)在開始,測試將根據(jù)我們指定的操作條件自動(dòng)檢查我們的系統(tǒng)。我們可以在 Results and Artifacts 窗格中看到測試結(jié)果(圖 8)。我們可以檢查 verify 語句的輸出,確定未評估測試標(biāo)準(zhǔn)、評估通過及評估失敗的時(shí)間。此外,我們可以可視化記錄的指定和測量角度數(shù)據(jù)。
圖 8:verify語句的輸出(需求 1)。
系統(tǒng)在仿真中通過了所有測試,但讓我們仔細(xì)研究以確保滿足需求。顫振應(yīng)以施加擾動(dòng)的兩秒內(nèi)為界的需求。鑒于擾動(dòng)在仿真中施加了三秒,預(yù)期 verify 語句在仿真的前五秒未經(jīng)測試。從那以后,我們可以看到測試通過了。
測量角度數(shù)據(jù)表明,顫振不僅是有界的,而且是衰減的,這符合第二個(gè)需求(圖 9)。
圖9:測量角度輸出。
實(shí)時(shí)測試
我們現(xiàn)在準(zhǔn)備使用硬件在環(huán) (HIL) 仿真來測試硬件。HIL 的目標(biāo)是實(shí)時(shí)仿真被控對象模型動(dòng)態(tài),同時(shí)與將在實(shí)際使用的嵌入式控制器連接。為了進(jìn)行 HIL,我們將運(yùn)行 Simulink 的筆記本電腦、Speedgoat 實(shí)時(shí)仿真機(jī)以及嵌入式控制器通過模擬和數(shù)字 I/O 進(jìn)行連接連接(圖 10)。
圖10:測試硬件:Windows PC(紅)、Speedgoat目標(biāo)(藍(lán))和嵌入式控制器(綠)。
在筆記本電腦上,我們從模型中生成 C 代碼并將其編譯為實(shí)時(shí)應(yīng)用。該應(yīng)用可通過以太網(wǎng)連接下載到 Speedgoat 實(shí)時(shí)目標(biāo)計(jì)算機(jī)。生成的代碼包括被控對象模型動(dòng)態(tài)、與控制器通信所需的 I/O驅(qū)動(dòng)程序以及包含 verify 函數(shù)的測試評估模塊。
仿真與實(shí)時(shí)測試之間的關(guān)鍵區(qū)別在于我們刪除了仿真控制系統(tǒng)并使用在嵌入式處理器上布置的控制系統(tǒng)。然后,我們可以在其實(shí)際工作頻率下測試已布置的控制系統(tǒng)及其輸入和輸出。
我們現(xiàn)在將使用測試管理器創(chuàng)建實(shí)時(shí)測試(圖 11)。
圖11:設(shè)置實(shí)時(shí)測試的Test Manager界面。
在實(shí)時(shí)測試中,我們構(gòu)建與之前一樣的環(huán)境,外加一個(gè)被測系統(tǒng)環(huán)境 Target Computer(目標(biāo)計(jì)算機(jī))。測試將允許在實(shí)時(shí)仿真機(jī)中。
我們將在與以前相同的各種操作條件下測試需求,并且對測量的角度進(jìn)行相同的數(shù)據(jù)分析,以確定測試是通過還是失敗。我們可以在測試管理器中查看測試結(jié)果(圖 12)。
圖 12:實(shí)時(shí)測試結(jié)果。
我們發(fā)現(xiàn)某些測試條件下的實(shí)時(shí)測試失敗了。如圖 12 和圖 13 所示,verify 語句在各個(gè)點(diǎn)處失敗,并且測量的角度不會(huì)衰減,從而導(dǎo)致系統(tǒng)不穩(wěn)定。
圖13:來自實(shí)時(shí)測試的測量角度輸出。
是什么差異導(dǎo)致仿真中通過,而 HIL 測試時(shí)失敗?
測試失敗有多種原因,這些原因凸顯了使用硬件進(jìn)行測試的重要性。首先,在仿真模型中,使用雙精度值作為接口直接連接控制器和被控對象。實(shí)時(shí)仿真與生產(chǎn)控制器之間的連接通過數(shù)字和模擬信號(hào)建立,因此,由于量化誤差,我們在接口中立即失去精度。其次,仿真測試沒有考慮實(shí)際系統(tǒng)中存在的實(shí)際延遲。第三,在仿真中測試的控制設(shè)計(jì)可能未在生產(chǎn)控制器中正確實(shí)施。
盡管這些測試沒有通過,但我們?nèi)杂泄ぷ饕?,我們需要?jiǎng)?chuàng)建一份報(bào)告發(fā)送給同事。我們要使用測試管理器中的報(bào)告生成器創(chuàng)建一個(gè)報(bào)告,記錄執(zhí)行測試的人員、測試標(biāo)準(zhǔn)、需求的鏈接以及結(jié)果摘要。
隨著系統(tǒng)設(shè)計(jì)的發(fā)展,我們可以使用測試管理器和我們已經(jīng)創(chuàng)建的測試來自動(dòng)執(zhí)行迭代測試并為這些測試生成報(bào)告。
-
處理器
+關(guān)注
關(guān)注
68文章
19882瀏覽量
234920 -
控制器
+關(guān)注
關(guān)注
114文章
17088瀏覽量
184040 -
自動(dòng)化
+關(guān)注
關(guān)注
29文章
5776瀏覽量
84750
發(fā)布評論請先 登錄
工業(yè)DTU對工業(yè)自動(dòng)化通信格局的重塑

矢量信號(hào)發(fā)生器在工業(yè)自動(dòng)化測試中的應(yīng)用場景
智能讀碼器:工業(yè)自動(dòng)化的眼睛與大腦

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

串口屏自動(dòng)化測試
自動(dòng)化水廠監(jiān)控系統(tǒng)
自動(dòng)化創(chuàng)建UI并解析數(shù)據(jù)
自動(dòng)化創(chuàng)建UI并解析數(shù)據(jù)
工業(yè)自動(dòng)化的發(fā)展歷程與未來趨勢
中國工業(yè)自動(dòng)化的現(xiàn)狀和發(fā)展方向
邊緣計(jì)算在工業(yè)自動(dòng)化中的應(yīng)用
探索Playwright:前端自動(dòng)化測試的新紀(jì)元
開關(guān)電源自動(dòng)化測試設(shè)備:如何實(shí)現(xiàn)自動(dòng)化測試?

XLT高速線纜自動(dòng)化測試系統(tǒng)
ATECLOUD智能云測試平臺(tái)推動(dòng)自動(dòng)化測試發(fā)展

評論