張帥卿,史春景,李 倫,郝永平
(沈陽(yáng)理工大學(xué) 機(jī)械工程學(xué)院,遼寧 沈陽(yáng) 110159)
隨著科技的發(fā)展,虛擬現(xiàn)實(shí)技術(shù)在航空航天、工業(yè)仿真、室內(nèi)設(shè)計(jì)、教學(xué)培訓(xùn)等領(lǐng)域大放異彩。虛擬現(xiàn)實(shí)技術(shù)本質(zhì)上是人類(lèi)通過(guò)了解和模仿自然現(xiàn)象,對(duì)自然規(guī)律進(jìn)行科學(xué)利用的技術(shù)[1-3]。虛擬仿真即采用虛擬系統(tǒng)來(lái)模仿實(shí)際系統(tǒng)的技術(shù)[4]。虛擬現(xiàn)實(shí)技術(shù)為科學(xué)技術(shù)研究提供了一種便捷的手段。
當(dāng)今,無(wú)人飛行器的研制和應(yīng)用發(fā)展迅猛[5-6]。基于無(wú)人飛行器,未來(lái)戰(zhàn)爭(zhēng)會(huì)出現(xiàn)多種作戰(zhàn)方式,無(wú)人飛行器能夠與巡航導(dǎo)彈、各類(lèi)機(jī)種、地面部隊(duì)協(xié)同作戰(zhàn)[7-9]。撲翼式飛行器因其便攜性強(qiáng)、速度快、隱蔽性佳等,目前已從形形色色的飛行器中脫穎而出,受到國(guó)內(nèi)外學(xué)者的高度重視[10-13]。
傳統(tǒng)上,機(jī)械領(lǐng)域的仿真研究主要采用Matlab、Adams、Abaqus等仿真軟件,對(duì)設(shè)計(jì)模型進(jìn)行數(shù)據(jù)仿真,且多以形式單一的數(shù)據(jù)或圖表來(lái)呈現(xiàn)設(shè)計(jì)方案。雖然相關(guān)數(shù)據(jù)可直接呈現(xiàn),但科研人員無(wú)法直觀地看到模型在真實(shí)環(huán)境下的運(yùn)行效果,從而會(huì)忽略仿真過(guò)程中可能出現(xiàn)的問(wèn)題。Unity3D引擎作為支持虛擬現(xiàn)實(shí)技術(shù)的主流開(kāi)發(fā)平臺(tái),相對(duì)于傳統(tǒng)的仿真軟件,其高可視化水平與高反饋性使得關(guān)于其與武器裝備聯(lián)動(dòng)的研究具有很大的應(yīng)用價(jià)值。本文將以無(wú)人飛行器的撲翼機(jī)構(gòu)作為研究對(duì)象,通過(guò)設(shè)計(jì)其機(jī)構(gòu)運(yùn)動(dòng)的相關(guān)算法,在Unity3D引擎中實(shí)現(xiàn)運(yùn)動(dòng)仿真。
無(wú)人飛行器的撲翼機(jī)構(gòu)主要由兩部分組成。第一部分是由三級(jí)直齒圓柱齒輪減速器構(gòu)成的傳動(dòng)機(jī)構(gòu)。直齒圓柱齒輪的傳動(dòng)性能優(yōu)良,其提供的扭矩足以帶動(dòng)撲翼扇動(dòng),且其振動(dòng)噪聲小,可以搭建左右對(duì)稱(chēng)的飛行器結(jié)構(gòu),以保證無(wú)人飛行器的飛行穩(wěn)定。圖1所示為在Creo軟件中通過(guò)機(jī)構(gòu)仿真繪制的無(wú)人飛行器模型。
圖1 通過(guò)機(jī)構(gòu)仿真繪制的無(wú)人飛行器模型
三級(jí)直齒圓柱齒輪減速器的傳動(dòng)比為:
i=(Z1/Z0)×(Z2/Z1)×(Z4/Z3)=17.43
(1)
式中,Z0-Z4分別為三級(jí)直齒圓柱齒輪減速器中各齒輪的齒數(shù)。
減速器輸出軸的轉(zhuǎn)矩為:
T=TM×i=(9 550P/n)×i=1 967.21 N·m
(2)
式中:TM為電機(jī)轉(zhuǎn)矩;n為電機(jī)轉(zhuǎn)速;P為電機(jī)功率。
撲翼機(jī)構(gòu)的第二部分是I型曲柄搖桿機(jī)構(gòu)。它作為主要驅(qū)動(dòng)機(jī)構(gòu),使原動(dòng)件曲柄圍繞旋轉(zhuǎn)中心旋轉(zhuǎn),同時(shí)讓連桿的兩端以球副作為旋轉(zhuǎn)副,形成空間曲柄搖桿機(jī)構(gòu),從而通過(guò)連桿帶動(dòng)搖桿往復(fù)擺動(dòng)(即無(wú)人飛行器撲翼的扇動(dòng))。
曲柄搖桿機(jī)構(gòu)的最小傳動(dòng)角為:
(3)
曲柄搖桿機(jī)構(gòu)的幅值角為:
(4)
曲柄搖桿機(jī)構(gòu)的極位夾角為:
(5)
本文基于Unity3D引擎,通過(guò)搭建虛擬場(chǎng)景,針對(duì)撲翼機(jī)構(gòu)每個(gè)零部件的運(yùn)行模式,采用運(yùn)動(dòng)學(xué)模型來(lái)表述,并以Transform組件的Position和Rotation元素為中心,通過(guò)C#語(yǔ)言編譯,以腳本的形式實(shí)現(xiàn)運(yùn)動(dòng)仿真。撲翼機(jī)構(gòu)運(yùn)動(dòng)仿真的流程如圖2 所示。
圖2 撲翼機(jī)構(gòu)運(yùn)動(dòng)仿真的流程
在無(wú)人飛行器的撲翼機(jī)構(gòu)中,作為傳動(dòng)機(jī)構(gòu)的三級(jí)直齒圓柱齒輪減速器,其機(jī)構(gòu)簡(jiǎn)圖如圖3所示。
圖3 三級(jí)直齒圓柱齒輪減速器的機(jī)構(gòu)簡(jiǎn)圖
由圖3可知,減速器的動(dòng)力元件為馬達(dá),馬達(dá)提供初速度并通過(guò)馬達(dá)軸使齒輪Z0獲得與馬達(dá)軸相同的角速度;齒輪Z0與Z1嚙合,根據(jù)齒輪嚙合特性,齒輪Z1的線速度與齒輪Z0的線速度大小相等、方向相反。分析可知,在不計(jì)損耗的情況下,給定馬達(dá)的初速度,設(shè)定各齒輪的半徑,明確各零部件之間的同軸或嚙合關(guān)系,即可確定減速器中關(guān)鍵零部件的運(yùn)動(dòng)情況。
(1) 動(dòng)力元件模擬算法。該算法的功能是設(shè)定動(dòng)力源,并模擬動(dòng)力源驅(qū)動(dòng)來(lái)提供轉(zhuǎn)速。
通過(guò)設(shè)定動(dòng)力源的目標(biāo)轉(zhuǎn)速,采用線性插值法來(lái)模擬動(dòng)力元件的瞬時(shí)轉(zhuǎn)速,并將角速度實(shí)時(shí)傳遞給連接動(dòng)力元件的軸。
(2) 主動(dòng)軸類(lèi)模擬算法。該算法的功能是接收動(dòng)力元件傳遞的角速度,并作為主動(dòng)元件將此角速度傳遞給主動(dòng)軸上的其他被動(dòng)元件。將相應(yīng)腳本掛載于馬達(dá)與齒輪Z0相連接的軸上,以便從馬達(dá)上獲取角速度,使軸自身以與馬達(dá)相同的角速度旋轉(zhuǎn),同時(shí)驅(qū)動(dòng)齒輪Z0以該角速度旋轉(zhuǎn)。
(3) 齒輪模擬算法。該算法在作為主動(dòng)元件的齒輪上使用。齒輪作為動(dòng)力元件可通過(guò)嚙合關(guān)系帶動(dòng)被動(dòng)齒輪運(yùn)動(dòng),也可以通過(guò)所在的齒輪軸帶動(dòng)同軸上的其他被動(dòng)元件運(yùn)動(dòng)。齒輪本身以一定線速度旋轉(zhuǎn)的同時(shí),將大小相等、方向相反的線速度傳遞給與其嚙合的齒輪。圖4所示為齒輪類(lèi)腳本界面。圖5所示為Unity3D引擎中Scene面板顯示的齒輪模型。
圖4 齒輪類(lèi)腳本界面
圖5 Unity3D引擎中Scene面板顯示的齒輪模型
空間曲柄搖桿機(jī)構(gòu)作為無(wú)人飛行器撲翼機(jī)構(gòu)的驅(qū)動(dòng)機(jī)構(gòu),在運(yùn)動(dòng)仿真時(shí)與傳動(dòng)機(jī)構(gòu)中齒輪組(以各零部件為單元)的情況不同,它是以各關(guān)鍵點(diǎn)為單元進(jìn)行運(yùn)動(dòng)軌跡模擬的,因此可將該驅(qū)動(dòng)機(jī)構(gòu)的整體運(yùn)動(dòng)分解成針對(duì)各關(guān)鍵點(diǎn)的單一運(yùn)動(dòng)。圖6所示為空間曲柄搖桿機(jī)構(gòu)簡(jiǎn)圖。
圖6 空間曲柄搖桿機(jī)構(gòu)簡(jiǎn)圖
分析可知,在無(wú)人飛行器撲翼機(jī)構(gòu)的驅(qū)動(dòng)機(jī)構(gòu)中,曲柄OA以O(shè)點(diǎn)為中心旋轉(zhuǎn),其角速度與傳動(dòng)機(jī)構(gòu)中齒輪組輸出的角速度大小相等、方向相同,且搖桿CB中C點(diǎn)的自由度為1,即只具有繞Z軸旋轉(zhuǎn)的能力。因此,該驅(qū)動(dòng)機(jī)構(gòu)中只有A、B兩點(diǎn)具有位移能力,只要求出A、B兩點(diǎn)的坐標(biāo)即可獲得整個(gè)曲柄搖桿機(jī)構(gòu)關(guān)鍵點(diǎn)的運(yùn)動(dòng)軌跡。在此基礎(chǔ)上,準(zhǔn)確設(shè)定模型中的各關(guān)鍵點(diǎn),即可完成相應(yīng)的運(yùn)動(dòng)仿真。
(1) 曲柄模擬算法。該算法可應(yīng)用在曲柄搖桿機(jī)構(gòu)上。其功能為接收齒輪軸傳遞的角速度,在旋轉(zhuǎn)的同時(shí)獲取O、A兩個(gè)關(guān)鍵點(diǎn)的信息。
(2) 曲柄搖桿關(guān)鍵點(diǎn)算法。該算法用于獲取曲柄搖桿機(jī)構(gòu)的關(guān)鍵點(diǎn)位置信息,并實(shí)時(shí)計(jì)算連桿AB和搖桿連接球副關(guān)鍵點(diǎn)B的位置。
在空間曲柄搖桿機(jī)構(gòu)中,B點(diǎn)只能在X軸和Y軸方向移動(dòng),C點(diǎn)只能繞Z軸方向旋轉(zhuǎn)。因此,將A點(diǎn)投影到X-Y平面上,可將三維立體問(wèn)題轉(zhuǎn)化成二維平面問(wèn)題,以便在不影響正常計(jì)算結(jié)果的情況下縮減計(jì)算量。
首先以A點(diǎn)為圓心,以連桿AB長(zhǎng)度為半徑作圓;然后以C點(diǎn)為圓心,以搖桿CB長(zhǎng)度為半徑作圓,求出兩圓交點(diǎn)即點(diǎn)B的位置。設(shè)a,b分別為A點(diǎn)的x,y坐標(biāo);r為連桿AB的長(zhǎng)度;c,d分別為C點(diǎn)的x,y坐標(biāo);l為搖桿CB的長(zhǎng)度。則可列出下列關(guān)系式:
(6)
根據(jù)兩圓相交兩點(diǎn)的直線公式,由式(6)可得:
(7)
若這兩圓相交的兩點(diǎn)P1和P2滿足xP1>xP2,則
(8)
如果B點(diǎn)為搖桿的上頂點(diǎn),則點(diǎn)P1為B點(diǎn)位置;如果B點(diǎn)為搖桿的下頂點(diǎn),則點(diǎn)P2為B點(diǎn)位置。當(dāng)B點(diǎn)為上頂點(diǎn)時(shí),搖桿作順時(shí)針轉(zhuǎn)動(dòng);當(dāng)B點(diǎn)為下頂點(diǎn)時(shí),搖桿作逆時(shí)針轉(zhuǎn)動(dòng)。由曲柄搖桿機(jī)構(gòu)的急回特性以及撲翼機(jī)構(gòu)從上至下?lián)渖鹊墓ぷ髟砜芍珺點(diǎn)應(yīng)為搖桿的上頂點(diǎn)。由此可得出關(guān)鍵點(diǎn)B的位置并可獲取其信息。將各關(guān)鍵點(diǎn)信息輸入腳本,在Unity3D引擎中進(jìn)行計(jì)算,并以線條的形式反映計(jì)算結(jié)果,可得圖7所示曲柄搖桿關(guān)鍵點(diǎn)算法的腳本計(jì)算結(jié)果。
圖7 曲柄搖桿關(guān)鍵點(diǎn)算法的腳本計(jì)算結(jié)果
(3) 旋轉(zhuǎn)參照點(diǎn)類(lèi)算法。該算法用于設(shè)置各零部件的旋轉(zhuǎn)參照點(diǎn)(即由曲柄搖桿關(guān)鍵點(diǎn)算法獲取的4個(gè)關(guān)鍵點(diǎn))。
首先將搭載旋轉(zhuǎn)參照點(diǎn)類(lèi)算法的腳本掛載于各零部件的中心,使各零部件圍繞旋轉(zhuǎn)參照點(diǎn)運(yùn)動(dòng);其次以旋轉(zhuǎn)參照點(diǎn)為目標(biāo),將各零部件旋轉(zhuǎn)中心的Z軸與旋轉(zhuǎn)參照點(diǎn)的Z軸對(duì)齊,且使零部件中心始終對(duì)準(zhǔn)旋轉(zhuǎn)參照點(diǎn);然后將B點(diǎn)作為搖桿中心C點(diǎn)和曲柄連桿球副連接中心A點(diǎn)的旋轉(zhuǎn)參照點(diǎn),并將A點(diǎn)作為B點(diǎn)的旋轉(zhuǎn)參照點(diǎn),使各零部件均能?chē)@旋轉(zhuǎn)參照點(diǎn)運(yùn)動(dòng);最后得到符合實(shí)際運(yùn)動(dòng)規(guī)律的曲柄搖桿運(yùn)動(dòng)軌跡。
(1) 在完成整體算法的銜接后,將搭載動(dòng)力元件模擬算法的腳本掛載于馬達(dá)上,并對(duì)馬達(dá)轉(zhuǎn)速進(jìn)行設(shè)置。
(2) 將連接動(dòng)力元件的軸設(shè)置為電機(jī)軸,并將搭載主動(dòng)軸類(lèi)模擬算法的腳本掛載于電機(jī)軸上。
(3) 將搭載齒輪模擬算法的腳本掛載于各齒輪上,并設(shè)置好同軸關(guān)系和嚙合關(guān)系。
(4) 將搭載曲柄模擬算法的腳本掛載于曲柄上,并將搭載曲柄搖桿關(guān)鍵點(diǎn)算法的腳本掛載于曲柄搖桿機(jī)構(gòu)上,設(shè)置關(guān)鍵點(diǎn)。
(5) 將搭載旋轉(zhuǎn)參照點(diǎn)類(lèi)算法的腳本掛載于各旋轉(zhuǎn)中心,并設(shè)置約束與旋轉(zhuǎn)參照點(diǎn)。
(6) 在組裝后啟動(dòng)程序,進(jìn)行仿真實(shí)驗(yàn),以驗(yàn)證在Unity3D引擎中各算法的配合情況,對(duì)撲翼式飛行器的真實(shí)飛行動(dòng)作進(jìn)行模擬。圖8所示為撲翼式飛行器撲翼機(jī)構(gòu)的傳動(dòng)機(jī)構(gòu)連續(xù)仿真圖。圖9所示為其驅(qū)動(dòng)機(jī)構(gòu)連續(xù)仿真圖。
圖8 傳動(dòng)機(jī)構(gòu)連續(xù)仿真圖
圖9 驅(qū)動(dòng)機(jī)構(gòu)連續(xù)仿真圖
本文通過(guò)研究撲翼式飛行器撲翼機(jī)構(gòu)的傳動(dòng)機(jī)構(gòu)和驅(qū)動(dòng)機(jī)構(gòu),建立運(yùn)動(dòng)學(xué)模型,在三級(jí)直齒圓柱齒輪減速器中設(shè)計(jì)了動(dòng)力元件模擬算法、主動(dòng)軸類(lèi)模擬算法、齒輪模擬算法;在空間曲柄搖桿機(jī)構(gòu)中設(shè)計(jì)了曲柄模擬算法、曲柄搖桿關(guān)鍵點(diǎn)算法、旋轉(zhuǎn)參照點(diǎn)類(lèi)算法。將搭載算法的腳本掛載于撲翼式飛行器模型的各零部件上,以現(xiàn)實(shí)的零部件參數(shù)作為算法參考量,并在Unity3D引擎中進(jìn)行模擬,實(shí)現(xiàn)了對(duì)撲翼式飛行器撲翼機(jī)構(gòu)的運(yùn)動(dòng)仿真。本文采用Unity3D引擎強(qiáng)大的可視化技術(shù),實(shí)時(shí)觀測(cè)撲翼式飛行器撲翼機(jī)構(gòu)的運(yùn)動(dòng)狀態(tài),解決了傳統(tǒng)動(dòng)力學(xué)仿真軟件表現(xiàn)形式單一的問(wèn)題。日后可與專(zhuān)業(yè)仿真軟件相結(jié)合,在高度仿真的虛擬場(chǎng)景中實(shí)現(xiàn)仿真數(shù)據(jù)的可視化呈現(xiàn)。