吳碩才,徐 雷,張莉萍,李大雙
(四川大學(xué) 制造科學(xué)與工程學(xué)院,成都 610000)
針對目前一副衛(wèi)星通信天線只能跟蹤一顆衛(wèi)星的技術(shù)瓶頸,以龍伯透鏡多焦點(diǎn)特性為理論支撐的雙星雙通道天線成為未來天線的發(fā)展趨勢。在雙星天線工作過程中,為防止兩饋源之間發(fā)生“穿透”現(xiàn)象,需要對其進(jìn)行碰撞檢測技術(shù)研究。文獻(xiàn)[1-4]將機(jī)械臂之間的碰撞檢測轉(zhuǎn)化為幾何基元之間的距離計(jì)算,并基于幾何分析進(jìn)行空間線段間的距離計(jì)算。但是提出的幾何基元多為直線,對于復(fù)雜的曲線障礙物沒有涉及,并且機(jī)器人姿態(tài)多樣,導(dǎo)致這種方法分類復(fù)雜。針對弧線形障礙物,文獻(xiàn)[5-8]提出一套基于凸多面體的樹形遞歸結(jié)構(gòu)框架,精確的逼近任意形狀的物體。但是這個過程也增大了碰撞檢測的計(jì)算量。文獻(xiàn)[9]采用凸多面體表示檢測物體,將最短距離的計(jì)算轉(zhuǎn)化為帶約束的非線性規(guī)劃最優(yōu)解問題,并用遺傳算法求解最短距離。該方法計(jì)算速度快、精度高,具有一定的有效性。但是該方法也需要提供凸多面體的頂點(diǎn)坐標(biāo)。
本文結(jié)合幾何基元和遺傳算法各自的優(yōu)勢,針對雙星天線兩弧形擺臂及饋源之間的碰撞檢測,構(gòu)造一種掃掠體包圍體,提出運(yùn)用遺傳算法[10]計(jì)算兩包圍體中心線之間的最短距離的運(yùn)動碰撞檢測計(jì)算方法,最后運(yùn)用MATLAB對所提算法進(jìn)行數(shù)值計(jì)算,并在ADAMS建立虛擬樣機(jī)對數(shù)值計(jì)算結(jié)果進(jìn)行驗(yàn)證,為雙星天線運(yùn)動路徑規(guī)劃奠定基礎(chǔ)。
雙星天線主要由兩對重復(fù)的俯仰軸和方位軸、4對電機(jī)和減速器、支撐座以及龍伯透鏡組成,其中每對電機(jī)和減速器驅(qū)動一個軸進(jìn)行旋轉(zhuǎn),從而使得兩個饋源能分別掃描完龍伯透鏡的整個半球面,由于兩饋源底部處于同一球平面,因此在相互掃描的過程中就有可能發(fā)生碰撞。其機(jī)構(gòu)運(yùn)動簡圖如圖1所示,各關(guān)節(jié)的運(yùn)動范圍為0°~180°。
1.支撐件 2.方位軸1 3.俯仰軸1 4.方位軸2 5.俯仰軸2 6.饋源 7.龍伯透鏡
圖1 雙星天線機(jī)構(gòu)運(yùn)動簡圖
在進(jìn)行碰撞檢測之前,為了計(jì)算的方便,將雙星天線可能發(fā)生碰撞的部分簡化為規(guī)則的幾何包圍盒。目前碰撞檢測采取的包圍盒有很多,如:AABB、OBB、球形、圓柱形以及K-dops[11]等,但是這些包圍盒都存在著只能包圍直線型物體,對于雙星天線擺臂這種弧線形障礙物則只能通過細(xì)分成多個包圍盒進(jìn)行計(jì)算,這樣大大增加了碰撞檢測的計(jì)算量。因此,本文提出一種掃掠型包圍盒作為擺臂的簡化幾何基元,以擺臂中心線為指引線,以略大于物體最大邊界線的長度為半徑畫圓,作為掃掠截面進(jìn)行掃掠,從而形成包圍整個擺臂的包圍盒。雙星天線其他直線型碰撞連桿仍采用圓柱形包圍盒作為簡化幾何基元,其簡化之后的幾何模型如圖2所示。
圖2 雙星天線碰撞檢測幾何模型
A(A′)點(diǎn)為饋源底部中心點(diǎn);B點(diǎn)為俯仰軸5拐點(diǎn);C點(diǎn)——俯仰軸3拐點(diǎn);D點(diǎn)——俯仰軸5與過球心的水平面交點(diǎn);E點(diǎn)——A′C上距球心距離與OD和掃掠體半徑之和相等的點(diǎn);γ1、γ2為兩方位角;θ1、θ2為兩俯仰軸。
由圖2可以看出,雙星天線碰撞主要包括以下兩種情況:俯仰軸3與俯仰軸5兩饋源之間、俯仰軸3饋源與俯仰軸5擺臂之間。當(dāng)碰撞發(fā)生在兩俯仰軸饋源段之間時,則碰撞段應(yīng)該為A′E與AF段;當(dāng)碰撞發(fā)生在饋源段與擺臂段時,碰撞段應(yīng)該為A′E與BD段。在無碰撞檢測設(shè)備時,可以通過計(jì)算碰撞兩物體之間的最短距離來判斷是否發(fā)生碰撞。
根據(jù)1.2節(jié)中的簡化幾何模型可知,雙星天線兩俯仰軸之間的碰撞檢測能夠轉(zhuǎn)化為圓柱體與圓柱體、圓柱體與掃掠體之間的干涉檢測。當(dāng)兩個檢測基元之間的最短距離小于零,則表示兩基元在運(yùn)動過程當(dāng)中發(fā)生碰撞,反之則不發(fā)生碰撞。由于一次檢測只能檢測兩個幾何基元之間是否發(fā)生碰撞,因此選用圓柱體與掃掠體對碰撞檢測算法進(jìn)行說明。
如圖3所示,圓柱體A′E和掃掠體BD分別用集合Ga、Gb表示,中心線分別用La、Lb表示,圓柱半徑和掃描圓半徑分別用ra、rb表示。圓柱體A′E和掃掠體BD之間的最短距離與兩中心線最短距離之間的關(guān)系為:
d(Ga,Gb)=d(La,Lb)-ra-rb
(1)
從以上分析可知,求解兩基元之間的碰撞檢測問題,可以轉(zhuǎn)化為兩基元中心線段距離的計(jì)算。若d(Ga,Gb)>0,即:
d(La,Lb)>ra+rb
(2)
則兩基元不發(fā)生碰撞,反之則發(fā)生碰撞。
圖3 幾何基元距離計(jì)算
針對傳統(tǒng)幾何法求解空間曲線距離分類繁雜以及不方便求解曲線與直線之間的距離的問題,本文利用自適應(yīng)遺傳算法的全局最優(yōu)性求解La與Lb的最短距離。求解空間兩曲線之間的最短距離需要遍歷兩條曲線的整個定義域,如果同時對兩條曲線的定義域進(jìn)行搜索,容易增加求解的復(fù)雜度,因此采用文獻(xiàn)[12]介紹的交替搜索計(jì)算策略進(jìn)行求解。但是該文獻(xiàn)中對于優(yōu)勢個體的選擇只采用了精英策略,導(dǎo)致隨著種群的不斷進(jìn)化,每一代個體適應(yīng)度值打的一部分染色體幾乎一致,從而使得種群的多樣性不斷減弱,因此本文采用精英策略與輪盤賭相結(jié)合的選擇方式,在精英策略的基礎(chǔ)上利用輪盤賭增加種群子代的多樣性,具體的求解步驟如下:
步驟1:初始種群的生成和編碼。在某時刻t時,將直線段La曲線段Lb均分為合適的n段,從每段中隨機(jī)生成一個點(diǎn)的x坐標(biāo),再利用對應(yīng)的方程求得相應(yīng)的y、z坐標(biāo),從而從La、Lb上分別得到n-1個:P=(P1,P2,…,Pn-1);Q=(Q1,Q2…Qn-1)。采用二進(jìn)制編碼的方式對各點(diǎn)的x坐標(biāo)進(jìn)行編碼,形成對應(yīng)的可以用于遺傳算法操作的n-1個二進(jìn)制串。
步驟2:選擇。將La上第i個點(diǎn)pi與Lb上n-1個點(diǎn)之間的最小距離作為該點(diǎn)的適應(yīng)度函數(shù),即pi的適應(yīng)度為:
f(pi)=min{d1,d2,…,dn-1}>
(3)
根據(jù)La上各點(diǎn)的適應(yīng)度大小進(jìn)行選擇,對適應(yīng)度處于前三位的精英個體直接復(fù)制到下一代,剩余個體采用輪盤賭算法生成。
步驟3:交叉與變異。對選擇后的個體隨機(jī)選擇交叉點(diǎn)和變異點(diǎn)。當(dāng)種群適應(yīng)度趨于一致時,應(yīng)當(dāng)增大交叉率pc和變異率pm,從而提高種群的多樣性避免局部最優(yōu)或算法早熟;當(dāng)種群適應(yīng)度差別較大時,應(yīng)當(dāng)采用較低的pc、pm。因此,采用根據(jù)種群適應(yīng)度大小自適應(yīng)調(diào)節(jié)交叉率和變異率來進(jìn)行交叉和變異操作。其公式如下:
(4)
(5)
其中,fhigher為待交叉父代中較大適應(yīng)度;f為變異個體適應(yīng)度;fmax為種群中最大適應(yīng)度;favg為種群平均適應(yīng)度;
步驟4:判斷是否達(dá)到最優(yōu)解。如果迭代次數(shù)達(dá)到給定的次數(shù)或者是其收斂到全局最優(yōu)解或者近似全局最優(yōu)解,則算法結(jié)束;否則以Lb為研究對象,轉(zhuǎn)向步驟2。即幾何基元中心線段距離計(jì)算流程如圖4所示。
圖4 幾何基元中心線段計(jì)算流程圖
重復(fù)上述步驟2~步驟4,求解出La與Lc之間的最短距離,再將上述兩個最短距離進(jìn)行比較,從而得出在時刻t時,直線La與直線Lc、曲線Lb之間的最短距離。將求解時刻取為運(yùn)動的起始時刻到終止時刻,則能夠計(jì)算出三條曲線之間的實(shí)時最短距離。
根據(jù)上一節(jié)分析可知,想要實(shí)現(xiàn)雙星天線碰撞檢測,只需要比較雙星天線障礙連桿幾何基元的中心線段距離與兩包圍盒半徑之和的大小即可。由于擺臂的兩個終點(diǎn)距離球心的距離相近,為了簡化計(jì)算,將擺臂簡化為圓弧。由此建立雙星天線障礙連桿幾何基元中心線段的數(shù)學(xué)模型,其數(shù)學(xué)模型如圖5所示。
圖5 雙星天線幾何基元中心線段數(shù)學(xué)模型
La、Lb、LC分別表示3個包圍盒的中心線段;r1表示A(A′)兩點(diǎn)到球心O的距離;r2表示B(D)兩點(diǎn)到球心O的距離;rb表示掃描體半徑和圓柱體半徑。
因此E點(diǎn)距球心點(diǎn)O的距離為:
rE=r2+rb
(6)
F點(diǎn)距球心O的距離為:
rF=r2+rb
(7)
在轉(zhuǎn)過任意θ、γ角度之后,直線段上距球心距離為R的任意點(diǎn)的坐標(biāo)變化關(guān)系為:
(8)
因此,任意轉(zhuǎn)過θ1、γ1、θ2、γ2角度,數(shù)學(xué)模型中直線段上各點(diǎn)的坐標(biāo)如表1所示。
表1 數(shù)學(xué)模型中直線段上各點(diǎn)與兩轉(zhuǎn)角變換關(guān)系
由幾何關(guān)系分析可知,D點(diǎn)在轉(zhuǎn)過θ2、γ2角度之后的坐標(biāo)與θ2無關(guān),只與γ2有關(guān),即坐標(biāo)關(guān)系為(r2·cos(γ2),r2·sin(γ2),0)。
已知直線段La過坐標(biāo)原點(diǎn)、A′以及E三點(diǎn),因此其空間坐標(biāo)式參數(shù)方程為:
(9)
同理可得直線段Lc的空間坐標(biāo)式參數(shù)方程為:
(10)
對于曲線段Lb而言,由于擺臂呈圓狀,因此其可以看成是球面與擺臂平面的交線在x∈[xB,xD]之間的曲線段,故曲線段Lb的空間表達(dá)式為:
(11)
其中,向量P=(A0,B0,C0)為過B、D及坐標(biāo)原點(diǎn)的平面法向量。因此,只需要計(jì)算直線段La、Lc、曲線段Lb三者之間的最短距離,從而判斷出雙星天線是否發(fā)生碰撞。由于俯仰軸與方位軸與時間t存在以下關(guān)系:
(12)
其中,ω1、ω2表示俯仰軸和方位軸轉(zhuǎn)動的角速度,從而能夠?qū)﹄p星天線進(jìn)行實(shí)時碰撞檢測。
取初始時刻饋源A′轉(zhuǎn)過的角度為θ01=0°,γ01=90°;饋源A轉(zhuǎn)過的角度θ02=0°,γ02=0°;為了使得兩饋源在運(yùn)動過程中能發(fā)生碰撞,取ω1=30°/s,ω2=ω3=15°/s,ω4=6°/s,ω1、ω2、ω3、ω4分別為饋源A和饋源A′的方位和俯仰角速度;r1=50,r2=65,rb=5;取時間t=0~5s。用第2節(jié)提到的碰撞檢測算法在MATLAB下編程求解,得到最短距離與時間之間的變化曲線如圖6所示。
圖6 最短距離與時間的變化曲線
從圖6中可以看出,當(dāng)時間t=3.37~3.8s時,雙星天線包圍盒中心線段之間的最短距離小于包圍盒的半徑之和,即雙星天線在上述路徑的運(yùn)動過程中,當(dāng)t=3.37s時,開始發(fā)生運(yùn)動碰撞,當(dāng)t=3.8s時,碰撞停止。
使用ADAMS對所提算法進(jìn)行驗(yàn)證。由于雙星天線發(fā)生碰撞時會產(chǎn)生接觸力,因此選用兩饋源以及擺臂之間的接觸力來驗(yàn)證碰撞的發(fā)生。首先在UG中建立雙星天線簡化模型,將其他不參與碰撞的部分進(jìn)行省略,并將簡化模型導(dǎo)入到ADAMS進(jìn)行接觸力仿真,簡化模型如圖7所示,初始條件及驅(qū)動均與實(shí)例計(jì)算選取的值保持一致,其結(jié)果如圖8所示。
1.俯仰軸1 2.饋源1 3.龍伯透鏡 4.方位軸2 5.俯仰軸2 6.方位軸1
圖7 雙星天線簡化模型
圖8 接觸力曲線
從圖8中可以發(fā)現(xiàn),雙星天線在運(yùn)動過程中,當(dāng)t=3.37s時開始產(chǎn)生接觸力,而當(dāng)t=3.8s時,接觸力消失。因此,可以確定雙星天線在t=3.4s~3.8s之內(nèi)發(fā)生碰撞,與MATLAB中數(shù)值求解結(jié)果一致,因此驗(yàn)證了算法的正確性。
以機(jī)載衛(wèi)星雙星天線為研究對象,針對運(yùn)動過程中的曲線型障礙物,提出一種掃掠體包圍盒,從而避免了傳統(tǒng)方法使用直線型包圍盒分解曲線障礙物的過程,簡化了曲線型障礙物包圍盒建立過程;同時,針對傳統(tǒng)算法不方便求解空間曲線之間距離的困境,提出利用自適應(yīng)遺傳算法的全局最優(yōu)性計(jì)算兩包圍盒的中心線段的最短距離,并與包圍盒的半徑之和對比,若最短距離大于半徑之和,則不發(fā)生碰撞;反之則發(fā)生碰撞。最后,用MATLAB對所提算法進(jìn)行仿真,并用ADAMS對求解結(jié)果進(jìn)行驗(yàn)證,從而驗(yàn)證了算法的正確性,為雙星天線運(yùn)動路徑規(guī)劃奠定基礎(chǔ)。