丁翔宇,王彤
(南京航空航天大學(xué) 機(jī)械結(jié)構(gòu)力學(xué)及控制國(guó)家重點(diǎn)實(shí)驗(yàn)室,江蘇 南京 210016)
模態(tài)試驗(yàn)又稱為試驗(yàn)?zāi)B(tài)分析,是為確定線性振動(dòng)系統(tǒng)的模態(tài)參數(shù)所進(jìn)行的振動(dòng)試驗(yàn)[1-3]。結(jié)構(gòu)模態(tài)分析理論發(fā)展到今天已經(jīng)廣泛運(yùn)用于航空、航天等諸多軍工領(lǐng)域和汽車、電子、機(jī)械、土木工程的各個(gè)領(lǐng)域。常用的模態(tài)參數(shù)辨識(shí)方法分為:1)頻域法,主要通過測(cè)試得到系統(tǒng)的相應(yīng)信號(hào),經(jīng)快速傅里葉變換處理后得到系統(tǒng)的相應(yīng)函數(shù),再經(jīng)識(shí)別后得到有關(guān)的模態(tài)參數(shù);2)時(shí)域法,通過利用系統(tǒng)的自由衰減振動(dòng)時(shí)域模型來識(shí)別系統(tǒng)模態(tài)參數(shù),后發(fā)展成應(yīng)用隨機(jī)減量特征技術(shù)從系統(tǒng)的隨機(jī)振動(dòng)響應(yīng)中獲取隨機(jī)減量特征,進(jìn)而從隨機(jī)減量特征函數(shù)中提取模態(tài)參數(shù)的方法。傳統(tǒng)實(shí)驗(yàn)室作為一種資源高度密集的綜合系統(tǒng),在實(shí)驗(yàn)儀器的更新和環(huán)境的維護(hù)上,需要投入大量的人力、物力和財(cái)力,這使它的發(fā)展受到很大限制。隨著現(xiàn)代計(jì)算機(jī)虛擬現(xiàn)實(shí)技術(shù)的快速發(fā)展,虛擬實(shí)驗(yàn)室應(yīng)運(yùn)而生。虛擬實(shí)驗(yàn)[4-7]不同于常規(guī)實(shí)驗(yàn),徹底打破時(shí)間、空間的限制,實(shí)際操作之前可以在虛擬實(shí)驗(yàn)環(huán)境中多次模擬和創(chuàng)新設(shè)計(jì),然后再到實(shí)驗(yàn)室進(jìn)行實(shí)際操作。
Unity3D引擎是目前建立的虛擬仿真實(shí)驗(yàn)室使用最普遍的引擎。劉忠凱等[8]曾使用Unity3D設(shè)計(jì)了裝甲車輛虛擬現(xiàn)實(shí)運(yùn)動(dòng)的系統(tǒng),在三維軟件3DMax 中建立裝甲車輛的三維模型圖,將裝甲車輛的模型圖導(dǎo)入到Unity3D引擎中,在Unity3D中完成模型導(dǎo)入后的虛擬場(chǎng)景漫游,通過C#編寫腳本,實(shí)現(xiàn)裝甲車輛在場(chǎng)景中的運(yùn)動(dòng)與碰撞以檢測(cè)算法。通過建立硬件系統(tǒng),并實(shí)現(xiàn)硬件系統(tǒng)的輸入對(duì)虛擬現(xiàn)實(shí)場(chǎng)景中裝甲車輛運(yùn)動(dòng)的控制。
綜合上述研究成果,本文提出了一種基于Unity3D的模態(tài)測(cè)試與結(jié)構(gòu)動(dòng)力修改[9]一體的虛擬仿真實(shí)驗(yàn)室。在虛擬測(cè)試過程中輸出虛擬的力信號(hào)與時(shí)域信號(hào),保存成UFF58[10]格式;再由模態(tài)測(cè)試軟件N-Modal讀取數(shù)據(jù)輸出固有頻率、模態(tài)振型、模態(tài)質(zhì)量,并根據(jù)固有頻率改變的目標(biāo)值計(jì)算在節(jié)點(diǎn)處所需增加的質(zhì)量或者剛度;也可以根據(jù)測(cè)試的振型數(shù)據(jù)預(yù)測(cè)修改后的結(jié)構(gòu)固有頻率。在修改過程中只需要在節(jié)點(diǎn)增加剛度或者集中質(zhì)量,其操作簡(jiǎn)單、修改方便,具有很強(qiáng)的實(shí)用意義。
由單位脈沖激勵(lì)法測(cè)試結(jié)構(gòu)模態(tài)參數(shù),主要是依據(jù)輸入與輸出信號(hào)求解頻率響應(yīng)函數(shù)。要獲取虛擬輸入與輸出信號(hào)就要有測(cè)試結(jié)構(gòu)的各種參數(shù)。因此首先根據(jù)測(cè)試結(jié)構(gòu)建立有限元模型如圖1所示,使用求解模塊Substructuring求解,提取參數(shù)得到結(jié)構(gòu)剛度矩陣M、質(zhì)量矩陣K與阻尼矩陣C。

圖1 Ansys有限元模型
根據(jù)部件屬性與大小,測(cè)試模態(tài)階數(shù),設(shè)置分析頻率fs,采樣點(diǎn)數(shù)N,得到頻率取值間隔為
(1)
根據(jù)K、M、C與帶入頻率值求解動(dòng)剛度矩陣的逆矩陣,并由單位激勵(lì)和測(cè)試點(diǎn)位置,再求出對(duì)應(yīng)點(diǎn)的頻響函數(shù)幅值(i=0,1,2,…,N):
fre(i)=(K-w(i)2M+w(i)C·i)-1|(x2,x1)
(2)
由頻響函數(shù)幅值數(shù)組fre做中心對(duì)成共軛處理得到頻譜數(shù)組FD,再將數(shù)組FD傅里葉逆變換得到時(shí)域數(shù)組TD。
考慮實(shí)際過程中噪聲的影響與錘擊力的大小,將時(shí)域數(shù)組乘以一個(gè)調(diào)節(jié)系數(shù)a模擬單位激勵(lì)力的大小;生成噪聲數(shù)組并加入到時(shí)域數(shù)組中,以此來模擬噪聲。本文所采用的加噪聲方法為按百分比加噪聲:噪聲分為白色噪聲與有色噪聲,設(shè)白色噪聲百分比為npw,有色噪聲百分比為npc,如式(3)-式(4)所示。
npw=pw/100n
(3)
npc=pc/100n·(a·TD)
(4)
n為正態(tài)分布數(shù)組,加入噪聲后得到新的頻域數(shù)組N_TD如式(5)所示。
N_TD=a·TD+npw+npc
(5)
將新的時(shí)域信號(hào)經(jīng)傅里葉變換得到新的頻響函數(shù)N_Fre,由新的頻響函數(shù)生成相干函數(shù)如式(6)所示,其中j為力錘敲擊次數(shù),N_Fre(j)表示每敲擊一次產(chǎn)生的頻響函數(shù)數(shù)組。
(6)
由上述公式建立完整的虛擬模態(tài)測(cè)試?yán)碚摶A(chǔ),在此基礎(chǔ)上又加入了結(jié)構(gòu)動(dòng)力修改功能,在測(cè)點(diǎn)處添加集中質(zhì)量,即在剛度矩陣對(duì)應(yīng)位置修改值,就可實(shí)現(xiàn)對(duì)頻率的改變。
1)基于C#語言的腳本程序編寫
C#是微軟公司發(fā)布的一種由C和C++衍生出來的面向?qū)ο蟮木幊陶Z言,是運(yùn)行于.NET Framework和.NET Core(完全開源,跨平臺(tái))之上的高級(jí)程序設(shè)計(jì)語言。C#是面向?qū)ο蟮木幊陶Z言。它使得程序員可以快速地編寫各種基于MICROSOFT.NET平臺(tái)的應(yīng)用程序,MICROSOFT.NET提供了一系列的工具和服務(wù)來最大程度地開發(fā)利用計(jì)算與通信領(lǐng)域。用C#編寫虛擬信號(hào)算法流程如圖2所示。

圖2 虛擬信號(hào)算法流程
2)結(jié)構(gòu)動(dòng)力修改功能的實(shí)現(xiàn)
由于Ansys輸出的質(zhì)量矩陣與剛度矩陣每行都可以明確定位到相應(yīng)的自由度。因此本文所采用的結(jié)構(gòu)動(dòng)力修改方法是在測(cè)試節(jié)點(diǎn)上隨機(jī)添加的添加質(zhì)量,利用Unity3D事件監(jiān)聽與實(shí)時(shí)輸入功能,在運(yùn)行虛擬實(shí)驗(yàn)室時(shí)實(shí)時(shí)輸入修改參數(shù),由事件監(jiān)聽功能獲取字符串;最后利用C#解析字符串把數(shù)值加入到質(zhì)量矩陣與剛度矩陣對(duì)應(yīng)的位置上,同時(shí)在測(cè)試部件上顯示加載的集中質(zhì)量,力錘敲擊時(shí)就可使用修改后的質(zhì)量矩陣與剛度矩陣計(jì)算。
基于Unity3D軟件開發(fā)虛擬模態(tài)測(cè)試的過程,實(shí)質(zhì)上也就是開發(fā)虛擬現(xiàn)實(shí)內(nèi)容的過程。按照模態(tài)測(cè)試的測(cè)試流程,首先應(yīng)用三維建模軟件建立力錘、傳感器、數(shù)據(jù)采集儀和測(cè)試部件等三維模型,然后將三維模型導(dǎo)入到Unity3D軟件中,使用C#編程控制力錘移動(dòng),并播放敲擊動(dòng)畫功能,顯示力信號(hào)、加速度信號(hào)、相干函數(shù)、頻響函數(shù)。系統(tǒng)開發(fā)流程如圖3所示。

圖3 Unity3D開發(fā)流程
使用3DMax建立虛擬實(shí)驗(yàn)室所需要的數(shù)據(jù)采集儀、測(cè)試部件簡(jiǎn)支梁、傳感器,并設(shè)計(jì)力錘動(dòng)畫,動(dòng)畫以繞軸線60°轉(zhuǎn)動(dòng),如圖4所示。

圖4 虛擬實(shí)驗(yàn)室所需組件
繪制出模態(tài)測(cè)試過程中所需要的各種函數(shù)圖形,如圖5所示。由于Unity3D本身并不自帶繪制函數(shù)圖形,因此要外部制作一個(gè)坐標(biāo)軸圖,插入到界面中。函數(shù)圖形是使用軟件自帶畫線條的功能,線條最多可插入1 000個(gè)點(diǎn),由此可根據(jù)坐標(biāo)系在界面中的位置將計(jì)算出的函數(shù)值插入線條中并縮放到坐標(biāo)系中。坐標(biāo)軸上的數(shù)值由計(jì)算得出,利用軟件中的UI功能顯示到桌面上。


圖5 圖形顯示
為了實(shí)現(xiàn)結(jié)構(gòu)動(dòng)力修改功能,添加修改功能如圖6所示。由于Unity3D腳本是基于C#語言的輸入,修改質(zhì)量和位置,修改質(zhì)量和位置必須保證一致。C#再解析字符串?dāng)?shù)組,即可在相應(yīng)位置添加。反映到腳本中就是根據(jù)修改位置數(shù)據(jù)找到對(duì)應(yīng)剛度矩陣或者質(zhì)量矩陣加上對(duì)應(yīng)的修改量,如圖7所示。

圖6 噪聲與修改功能

圖7 結(jié)構(gòu)動(dòng)力學(xué)修改功能實(shí)現(xiàn)
修改后可以明顯看到頻響函數(shù)曲線的變化,符合實(shí)際情況,即質(zhì)量增大、頻率降低,測(cè)試范圍內(nèi)的頻率階數(shù)會(huì)相應(yīng)地增加。有了這一項(xiàng)功能可以自由改變結(jié)構(gòu)觀察到頻率振型的變化,如圖8所示。

圖8 修改后頻響函數(shù)
為了能夠模擬虛擬力的大小,將敲擊動(dòng)畫延遲1.5 s播放,根據(jù)鼠標(biāo)點(diǎn)擊時(shí)間設(shè)置敲擊動(dòng)畫的播放速度,當(dāng)點(diǎn)擊時(shí)間超過1.5 s或時(shí)間過短時(shí),提示敲擊過載或者力過小未觸發(fā)。模擬錘擊動(dòng)畫如圖9所示,再點(diǎn)擊測(cè)點(diǎn)之前動(dòng)畫在New State狀態(tài)之下,點(diǎn)擊之后進(jìn)入Any State 狀態(tài)并獲取點(diǎn)擊時(shí)間,等到點(diǎn)擊時(shí)間>1.5s后進(jìn)入din 動(dòng)畫播放,動(dòng)畫播放完成后再次進(jìn)入New State狀態(tài)。

圖9 虛擬實(shí)驗(yàn)室測(cè)試界面
實(shí)現(xiàn)以上模態(tài)測(cè)試主要功能后就能夠搭建整個(gè)模態(tài)測(cè)試界面如圖10所示。根據(jù)模態(tài)試驗(yàn)實(shí)際過程中的數(shù)據(jù)記錄方式,將虛擬模態(tài)實(shí)驗(yàn)的力信號(hào)與時(shí)域信號(hào)隨著敲擊過程,每敲擊一次保存一次數(shù)據(jù),數(shù)據(jù)以Uff58格式保存成unv文件。

圖10 虛擬實(shí)驗(yàn)室測(cè)試界面
測(cè)出的虛擬數(shù)據(jù)直接導(dǎo)入N-Modal模態(tài)分析軟件,再對(duì)數(shù)據(jù)進(jìn)行信號(hào)處理與分析得到頻響函數(shù)以及前4階振型如圖11所示。





圖11 虛擬數(shù)據(jù)分析結(jié)果
1)如上所示基于Unity3D 的模態(tài)試驗(yàn)虛擬仿真教學(xué)系統(tǒng),由虛擬實(shí)驗(yàn)到最后的數(shù)據(jù)處理一套流程就完善了。可以應(yīng)用到模態(tài)試驗(yàn)課程教學(xué)上,分析一些結(jié)構(gòu)變化對(duì)模態(tài)參數(shù)的影響,無需再做具體實(shí)驗(yàn)。使用 Unity3D 開發(fā)完成后將其發(fā)布到 PC 端,使用者可以自由安裝體驗(yàn)實(shí)驗(yàn)過程,伴隨教師的講解,使得學(xué)習(xí)者對(duì)模態(tài)試驗(yàn)過程的認(rèn)識(shí)更加深入。
2)隨著三維建模技術(shù)和虛擬現(xiàn)實(shí)技術(shù)的不斷發(fā)展,對(duì)于虛擬現(xiàn)實(shí)內(nèi)容的開發(fā)會(huì)變得越來越簡(jiǎn)便,虛擬模態(tài)試驗(yàn)各種實(shí)驗(yàn)條件會(huì)越來越完善,為模態(tài)試驗(yàn)的學(xué)習(xí)與實(shí)踐提供重要的補(bǔ)充。
3)虛擬仿真實(shí)驗(yàn)系統(tǒng)并不能涵蓋到所有實(shí)驗(yàn)內(nèi)容,在實(shí)際實(shí)驗(yàn)中總會(huì)遇到各種各樣的問題;在虛擬仿真學(xué)習(xí)的基礎(chǔ)上,應(yīng)該盡可能地讓學(xué)習(xí)者實(shí)踐接觸,虛實(shí)結(jié)合、互相補(bǔ)充。