隨著系統(tǒng)設(shè)計(jì)變得越來(lái)越復(fù)雜,依靠原型來(lái)確定系統(tǒng)性能是否滿足設(shè)計(jì)需求的風(fēng)險(xiǎn)也變的復(fù)雜:在需要啟動(dòng)測(cè)試時(shí),原型可能成本高昂,操作風(fēng)險(xiǎn)大,甚至不可用或不完整。因此,越來(lái)越多的工程團(tuán)隊(duì)在設(shè)計(jì)過(guò)程的早期就使用仿真和其他測(cè)試技術(shù),此時(shí)錯(cuò)誤更易于修復(fù),且成本更低。
Simulink Test 提供了一個(gè)集成框架,使您可以在整個(gè)設(shè)計(jì)過(guò)程(從桌面仿真到硬件測(cè)試)中執(zhí)行自動(dòng)化、可重復(fù)的測(cè)試(圖 1)。

圖 1:通過(guò)桌面和硬件在環(huán)仿真進(jìn)行可重復(fù)系統(tǒng)測(cè)試的框架。
我們將使用一個(gè)顫振抑制示例來(lái)演示這種工作框架。
顫振抑制系統(tǒng)測(cè)試目標(biāo)和設(shè)置
顫振是由作用在機(jī)翼上的空氣動(dòng)力引起的振動(dòng)。這種現(xiàn)象可以導(dǎo)致機(jī)翼振動(dòng),嚴(yán)重時(shí)會(huì)導(dǎo)致機(jī)翼?yè)p壞。控制顫振的一種方法是使用控制表面并試圖抑制振動(dòng)。
我們的顫振抑制系統(tǒng)有三個(gè)輸入:所需的角度(度)、速度(馬赫)和海拔高度(英尺)。它的單一輸出是機(jī)翼的測(cè)量偏差(弧度)。
我們需要根據(jù)兩個(gè)設(shè)計(jì)需求測(cè)試系統(tǒng):
系統(tǒng)在施加擾動(dòng)的兩秒內(nèi)將顫振抑制在 0.005 弧度以內(nèi)
顫振隨時(shí)間呈指數(shù)衰減 — 具體而言,系統(tǒng)具有正阻尼比
系統(tǒng)需要在各種操作條件下滿足這些需求,以最大限度地減少在現(xiàn)場(chǎng)部署或投入生產(chǎn)時(shí)的意外行為。
圖 2 顯示了我們的顫振抑制系統(tǒng)的 Simulink模型。

圖 2:飛機(jī)顫振抑制系統(tǒng)模型。
在這個(gè)模型中,我們將在三秒鐘后引入擾動(dòng),然后測(cè)試控制器是否能夠抑制各種馬赫和海拔高度點(diǎn)的顫振。
要執(zhí)行測(cè)試,我們需要具備以下條件:
可以在仿真的每個(gè)時(shí)間步長(zhǎng)監(jiān)控顫振的測(cè)試環(huán)境
記錄數(shù)據(jù)以確定顫振是否隨時(shí)間呈指數(shù)衰減的能力
依托各種馬赫和海拔高度值進(jìn)行迭代的能力
設(shè)置測(cè)試框架測(cè)試序列模塊
控制設(shè)計(jì)工程師有時(shí)會(huì)創(chuàng)建兩個(gè)獨(dú)立的模型,一個(gè)用于測(cè)試的基礎(chǔ)模型,另一個(gè)用于布置。確保基礎(chǔ)模型和布置的模型等效具有一定難度。此外,根據(jù)測(cè)試任務(wù),可能需要自定義輸入或記錄其他數(shù)據(jù),這些會(huì)更改基礎(chǔ)模型。
Simulink 提供了兩個(gè)工具,使我們能夠避免此版本控制問(wèn)題:測(cè)試框架和測(cè)試序列模塊。測(cè)試框架是一個(gè)與被測(cè)系統(tǒng)模塊關(guān)聯(lián)的模型。它有單獨(dú)的模型工作區(qū)和配置集,但仍然存在于主模型中。它有效地為我們提供了一個(gè)沙盒來(lái)測(cè)試我們的設(shè)計(jì),而不會(huì)改變或破壞基礎(chǔ)模型。
要在 Simulink 中從頭開(kāi)始創(chuàng)建測(cè)試框架,我們只需右鍵單擊子系統(tǒng),或者從工具條中選擇Analysis(分析),然后在選擇Test Harness(測(cè)試框架)后,選擇Create Test Harness(創(chuàng)建測(cè)試框架)。隨后,以交互方式配置新測(cè)試框架(圖 3)。

圖 3:Simulink 中的測(cè)試框架對(duì)話框。
測(cè)試序列模塊(圖 4 中紅框表示)使用 MATLAB作為動(dòng)作語(yǔ)言(圖 5)。它允許您在評(píng)估被測(cè)組件時(shí)有條件地在測(cè)試步驟之間轉(zhuǎn)換。您可以使用條件邏輯、時(shí)序算子(例如 before 和 after)和事件算子(例如hasChanged 和 hasChangedFrom)。

圖 4:測(cè)試序列模塊(紅框)和數(shù)據(jù)記錄(藍(lán)框)的測(cè)試框架模型。

圖 5:支持 MATLAB 動(dòng)作語(yǔ)言的測(cè)試序列。
第一個(gè)需求規(guī)定顫振應(yīng)以施加初始擾動(dòng)的兩秒內(nèi)被抑制。我們合并了一個(gè)測(cè)試序列模塊來(lái)實(shí)施這個(gè)測(cè)試用例。我們將期望設(shè)置為 0 弧度,并在五秒后計(jì)算每個(gè)時(shí)間步長(zhǎng)下的誤差。使用verify函數(shù)記錄每個(gè)時(shí)間步長(zhǎng)是否滿足條件。
為了計(jì)算阻尼比,我們使用圖 4 中藍(lán)框內(nèi)的 To Workspace(到工作區(qū))和 File Scope(文件范圍)將數(shù)據(jù)以仿真和實(shí)時(shí)方式記錄下來(lái)。
創(chuàng)建和運(yùn)行桌面仿真
被測(cè)系統(tǒng)有兩個(gè)輸入:馬赫和海拔高度。需求定義系統(tǒng)應(yīng)在各種操作條件下進(jìn)行測(cè)試。我們可以使用 Simulink Test Manager 創(chuàng)建各種條件下的自動(dòng)化測(cè)試用例。測(cè)試用例使我們能夠在不同的輸入條件下自動(dòng)測(cè)試這兩個(gè)需求,并生成有關(guān)它們是通過(guò)還是失敗的報(bào)告。當(dāng)設(shè)計(jì)的更改時(shí),可以重新運(yùn)行這個(gè)測(cè)試用例。
使用 Test Manager,我們可以為顫振抑制系統(tǒng)新建一個(gè)測(cè)試框架,添加測(cè)試目的描述,并將其鏈接到需求。最后,我們使用腳本迭代為馬赫和海拔高度指定了一些操作條件(圖 6)。

圖 6:在測(cè)試管理器界面中使用 MATLAB 腳本為不同的馬赫和海拔高度值設(shè)置迭代。
我們現(xiàn)在將使用此測(cè)試自動(dòng)化工作流程來(lái)測(cè)試我們的兩項(xiàng)需求。第一項(xiàng)需求已使用測(cè)試序列模塊予以處理。重新調(diào)用 verify 函數(shù)。如果驗(yàn)證標(biāo)準(zhǔn)在任何時(shí)候出現(xiàn)失敗,則整體測(cè)試將失敗。
對(duì)于第二項(xiàng)需求,我們添加了模塊來(lái)記錄仿真數(shù)據(jù)。我們需要對(duì)測(cè)量的角度進(jìn)行一些數(shù)據(jù)分析,以確定測(cè)試是通過(guò)還是失敗。通過(guò)在每次運(yùn)行仿真后執(zhí)行 cleanup 回調(diào)函數(shù)可完成這項(xiàng)分析(圖 7)。我們可以利用以前的數(shù)據(jù)分析工作來(lái)進(jìn)行指數(shù)擬合,并根據(jù)擬合參數(shù)聲明通過(guò)或失敗。

圖 7:在測(cè)試管理器界面中為自定義標(biāo)準(zhǔn)設(shè)置cleanup回調(diào)函數(shù)。
從現(xiàn)在開(kāi)始,測(cè)試將根據(jù)我們指定的操作條件自動(dòng)檢查我們的系統(tǒng)。我們可以在 Results and Artifacts 窗格中看到測(cè)試結(jié)果(圖 8)。我們可以檢查 verify 語(yǔ)句的輸出,確定未評(píng)估測(cè)試標(biāo)準(zhǔn)、評(píng)估通過(guò)及評(píng)估失敗的時(shí)間。此外,我們可以可視化記錄的指定和測(cè)量角度數(shù)據(jù)。

圖 8:verify語(yǔ)句的輸出(需求 1)。
系統(tǒng)在仿真中通過(guò)了所有測(cè)試,但讓我們仔細(xì)研究以確保滿足需求。顫振應(yīng)以施加擾動(dòng)的兩秒內(nèi)為界的需求。鑒于擾動(dòng)在仿真中施加了三秒,預(yù)期 verify 語(yǔ)句在仿真的前五秒未經(jīng)測(cè)試。從那以后,我們可以看到測(cè)試通過(guò)了。
測(cè)量角度數(shù)據(jù)表明,顫振不僅是有界的,而且是衰減的,這符合第二個(gè)需求(圖 9)。

圖9:測(cè)量角度輸出。
實(shí)時(shí)測(cè)試
我們現(xiàn)在準(zhǔn)備使用硬件在環(huán) (HIL) 仿真來(lái)測(cè)試硬件。HIL 的目標(biāo)是實(shí)時(shí)仿真被控對(duì)象模型動(dòng)態(tài),同時(shí)與將在實(shí)際使用的嵌入式控制器連接。為了進(jìn)行 HIL,我們將運(yùn)行 Simulink 的筆記本電腦、Speedgoat 實(shí)時(shí)仿真機(jī)以及嵌入式控制器通過(guò)模擬和數(shù)字 I/O 進(jìn)行連接連接(圖 10)。

圖10:測(cè)試硬件:Windows PC(紅)、Speedgoat目標(biāo)(藍(lán))和嵌入式控制器(綠)。
在筆記本電腦上,我們從模型中生成 C 代碼并將其編譯為實(shí)時(shí)應(yīng)用。該應(yīng)用可通過(guò)以太網(wǎng)連接下載到 Speedgoat 實(shí)時(shí)目標(biāo)計(jì)算機(jī)。生成的代碼包括被控對(duì)象模型動(dòng)態(tài)、與控制器通信所需的 I/O驅(qū)動(dòng)程序以及包含 verify 函數(shù)的測(cè)試評(píng)估模塊。
仿真與實(shí)時(shí)測(cè)試之間的關(guān)鍵區(qū)別在于我們刪除了仿真控制系統(tǒng)并使用在嵌入式處理器上布置的控制系統(tǒng)。然后,我們可以在其實(shí)際工作頻率下測(cè)試已布置的控制系統(tǒng)及其輸入和輸出。
我們現(xiàn)在將使用測(cè)試管理器創(chuàng)建實(shí)時(shí)測(cè)試(圖 11)。

圖11:設(shè)置實(shí)時(shí)測(cè)試的Test Manager界面。
在實(shí)時(shí)測(cè)試中,我們構(gòu)建與之前一樣的環(huán)境,外加一個(gè)被測(cè)系統(tǒng)環(huán)境 Target Computer(目標(biāo)計(jì)算機(jī))。測(cè)試將允許在實(shí)時(shí)仿真機(jī)中。
我們將在與以前相同的各種操作條件下測(cè)試需求,并且對(duì)測(cè)量的角度進(jìn)行相同的數(shù)據(jù)分析,以確定測(cè)試是通過(guò)還是失敗。我們可以在測(cè)試管理器中查看測(cè)試結(jié)果(圖 12)。

圖 12:實(shí)時(shí)測(cè)試結(jié)果。
我們發(fā)現(xiàn)某些測(cè)試條件下的實(shí)時(shí)測(cè)試失敗了。如圖 12 和圖 13 所示,verify 語(yǔ)句在各個(gè)點(diǎn)處失敗,并且測(cè)量的角度不會(huì)衰減,從而導(dǎo)致系統(tǒng)不穩(wěn)定。

圖13:來(lái)自實(shí)時(shí)測(cè)試的測(cè)量角度輸出。
是什么差異導(dǎo)致仿真中通過(guò),而 HIL 測(cè)試時(shí)失敗?
測(cè)試失敗有多種原因,這些原因凸顯了使用硬件進(jìn)行測(cè)試的重要性。首先,在仿真模型中,使用雙精度值作為接口直接連接控制器和被控對(duì)象。實(shí)時(shí)仿真與生產(chǎn)控制器之間的連接通過(guò)數(shù)字和模擬信號(hào)建立,因此,由于量化誤差,我們?cè)诮涌谥辛⒓词ゾ取F浯危抡鏈y(cè)試沒(méi)有考慮實(shí)際系統(tǒng)中存在的實(shí)際延遲。第三,在仿真中測(cè)試的控制設(shè)計(jì)可能未在生產(chǎn)控制器中正確實(shí)施。
盡管這些測(cè)試沒(méi)有通過(guò),但我們?nèi)杂泄ぷ饕觯覀冃枰獎(jiǎng)?chuàng)建一份報(bào)告發(fā)送給同事。我們要使用測(cè)試管理器中的報(bào)告生成器創(chuàng)建一個(gè)報(bào)告,記錄執(zhí)行測(cè)試的人員、測(cè)試標(biāo)準(zhǔn)、需求的鏈接以及結(jié)果摘要。
隨著系統(tǒng)設(shè)計(jì)的發(fā)展,我們可以使用測(cè)試管理器和我們已經(jīng)創(chuàng)建的測(cè)試來(lái)自動(dòng)執(zhí)行迭代測(cè)試并為這些測(cè)試生成報(bào)告。
-
處理器
+關(guān)注
關(guān)注
68文章
20255瀏覽量
252344 -
控制器
+關(guān)注
關(guān)注
114文章
17791瀏覽量
193266 -
自動(dòng)化
+關(guān)注
關(guān)注
31文章
5933瀏覽量
90271
發(fā)布評(píng)論請(qǐng)先 登錄
宏集分享 | 工業(yè)自動(dòng)化的演進(jìn)路徑:X平臺(tái)如何隨行業(yè)發(fā)展不斷進(jìn)化
自動(dòng)化測(cè)試的「千里眼」:當(dāng)RTSM遠(yuǎn)程控制遇上自動(dòng)化,測(cè)試效率直接拉滿!
羅克韋爾自動(dòng)化邀您共赴2025年自動(dòng)化博覽會(huì)
從設(shè)計(jì)到落地,音圈執(zhí)行器如何適配你的自動(dòng)化需求??
測(cè)試小白3分鐘上手,零代碼自動(dòng)化測(cè)試平臺(tái),15分鐘搭建自動(dòng)化測(cè)試方案
電源模塊的短路保護(hù)如何通過(guò)自動(dòng)化測(cè)試軟件完成測(cè)試
EasyGo TestSim:新能源電力系統(tǒng)自動(dòng)化測(cè)試的利器
新能源電力系統(tǒng)自動(dòng)化測(cè)試利器——EasyGo TestSim
如何用Renix實(shí)現(xiàn)網(wǎng)絡(luò)測(cè)試自動(dòng)化: 從配置分離到多廠商設(shè)備支持
干貨分享 | TSMaster MBD模塊全解析:從模型搭建到自動(dòng)化測(cè)試的完整實(shí)踐
耐達(dá)訊自動(dòng)化EtherCAT轉(zhuǎn)RS232:示波器連接的“開(kāi)掛秘籍”
自動(dòng)化測(cè)試平臺(tái)ATECLOUD推出AI算法功能
工業(yè)DTU對(duì)工業(yè)自動(dòng)化通信格局的重塑
矢量信號(hào)發(fā)生器在工業(yè)自動(dòng)化測(cè)試中的應(yīng)用場(chǎng)景
智能讀碼器:工業(yè)自動(dòng)化的眼睛與大腦
從桌面仿真到實(shí)時(shí)測(cè)試自動(dòng)化,分析自動(dòng)化的發(fā)展之路
評(píng)論