吳波
(南京模擬技術研究所,南京 210016)
無人機系列產品是南京模擬技術研究所眾多模擬訓練產品中的一類,海用型無人機系列產品是眾多無人機系列產品中的一類。海用型無人機具備陸地和艦上起飛、海上回收、伴艦飛行、協(xié)同編隊等能力。海用型無人機伴艦飛行時,飛行航線會跟隨艦船移動的方向和速度實時移動,始終保證航線相對艦船的方向、位置不變。
為了滿足訓練時無人機飛行航路對艦勾徑變化的需求,需要在飛行時調整某段航路的位置。調整飛行航路,就需要修改無人機存儲的飛行航線。首先在測控軟件上修改本機航線的位置,再通過遙調功能修改無人機的航線信息。一種方法是手動調整本機航線段,再依次將調整的位置、高度等信息反饋給無人機。但是手動調整本機航線的位置等信息,計算復雜,精度較低,且手動反饋的速度太慢。另一種方法是自動化調整,開發(fā)自動調整航線對艦勾徑的功能。該功能在選擇好相對的艦船和偏移的航線段后,輸入最終的勾徑值,按照此勾徑值對該段航線整體偏移,重新繪制,并將航線變化的位置等信息反饋給無人機。無人機再調整飛行航路,進而達到勾徑偏移的效果。鑒于實際任務需要,設計了“航點勾徑偏移”(即“航路勾徑偏移”)功能。
當無人機測控軟件收到無人機和艦船的數(shù)據(jù)后,接入該架無人機的遙控、遙調控制權限。通過界面顯示的“艦船回傳計數(shù)”信息,可以確保無人機收到艦船數(shù)據(jù)。之后上傳本機航線信息至無人機飛行控制系統(tǒng)。無人機起飛后,進入航線自動飛行。無人機飛行至待調整勾徑航線段前時,打開“航點勾徑偏移”對話框,如圖1所示。
圖1 航點勾徑偏移
具體內容介紹如下:
(1)艦船編號。艦船的編號信息。飛行航線調整時,計算偏移航線位置信息使用的艦船編號。
(2)本地航線號。無人機測控軟件主視圖界面上顯示的飛行航線編號。
(3)上傳航線號。向無人機發(fā)送航點數(shù)據(jù)包時,數(shù)據(jù)包的航線信息識別碼(數(shù)據(jù)包包含航線信息識別碼、航點信息識別碼)。
(4)起始點。偏移的起始航點。
(5)終止點。偏移的結束航點。
(6)勾徑值。偏移后的航線段距離艦船的垂直距離。
選擇完起始點、終止點后,軟件會自動計算并在下方顯示該航線段當前的對艦勾徑值。以計算出的當前勾徑值為參考,輸入調整后的勾徑值(例如5000)。點擊“確定”按鈕,測控軟件會自動將該段航線調整至勾徑值為5000 m 處,重新繪制航線,并將調整的航線段信息發(fā)送給無人機。發(fā)送成功后,無人機會按照調整后的航線伴艦飛行。
航線段起始點高斯坐標P(1a1,b1),終止點高斯坐標P(2a2,b2),艦船高斯坐標P(3a3,b3),調 整 后 的 勾 徑 值 dfGoujing (PI =3.1415926535897932)。
圖2 算法示意圖
起始點和結束點經過的直線方程Ax+By+C=0。 計算得A=(b2-b1),B=(a1-a2),C=(a2×b1-a1×b2)。艦船高斯坐標點與直線的垂足坐標為P(4x,y),可得:
x=(a3×B×B-b3×A×B-A×C)(/A×A+B×B)
y=(b3×A×A-a3×A×B-B×C)(/A×A+B×B)
由艦船坐標P3和垂足坐標P4
計算艦船當前勾徑:
double dfDistance = sqrt((x-a3)*(x-a3)+(yb3)*(y-b3))
需要調整的勾徑值double dfOffsetDis=dfGoujing-dfDistance;
計算艦船相對直線的方向:
為了預防艦船剛好出現(xiàn)在航線段上的特殊情況:
計算航點P(1a1,b1)與航點P(2a2,b2)的方向為dfDirectionLine(與計算艦船相對直線的方向的方法相同)。當dfDistance<1 m時,始終計算
測控軟件與無人機之間通信如圖3所示。
圖3 數(shù)據(jù)傳輸
地面測控站作為工作電腦與無人機的中繼站,與個人工作電腦通過網絡連接,與無人機之間通過電磁波通信。
(1)個人工作電腦運行測控軟件。操作人員操作測控軟件,執(zhí)行指令。測控軟件將指令打包成數(shù)據(jù)幀后通過網線發(fā)送給地面工作站。由于指令發(fā)送對速度、實時性要求較高,所以測控軟件與地面測控站之間使用了UPD傳輸協(xié)議。
(2)地面測控站通過天線設備向無人機發(fā)送指令數(shù)據(jù)幀。無指令觸發(fā)時,地面測控站以固定頻率持續(xù)發(fā)送空指令。當?shù)孛鏈y控站接收到個人工作電腦通過網絡發(fā)送的指令,則將指令裝載后發(fā)送給無人機。
(3)無人機接收到指令后,會以校驗數(shù)據(jù)包的形式回傳指令信息。校驗數(shù)據(jù)包通過天線反饋給地面測控站,地面測控站再通過網絡發(fā)送給個人工作電腦。運行在個人工作電腦上的測控軟件接收到校驗數(shù)據(jù)包后,先對校驗數(shù)據(jù)包進行校驗。校驗正確后,再使用之前發(fā)送的指令數(shù)據(jù)包與校驗數(shù)據(jù)包進行比對。如果比對正確,則認為該指令已成功發(fā)送給無人機,并輸出發(fā)送成功標識。
(4)依據(jù)上述(1)—(3)通信過程,將調整的航點信息發(fā)送給無人機。具體流程如圖4 所示。
圖4 航點上傳流程
1)啟動多航點上傳線程。由于啟動下一個航點的上傳需要等待上一個航點上傳完成,所以多航點上傳耗時較久,因此需要單獨開辟多航點上傳線程:
之后再對處理的經緯度數(shù)據(jù)包加上幀頭、航線信息識別碼、航點信息識別碼、校驗碼。
3)上傳當前航點數(shù)據(jù)。上傳過程采取先進先出原則,超時等待時間為3 s。當前數(shù)據(jù)包發(fā)送后,如果3 s 內接收到無人機回傳的確認數(shù)據(jù)包,則進行數(shù)據(jù)比對。比對成功,則認為本次上傳成功;比對失敗,則上傳失敗。如果3 s內沒有收到無人機回傳的確認數(shù)據(jù)包,則認為發(fā)送超時,上傳失敗。無論是否收到回傳的確認數(shù)據(jù)包,超過3 秒后,當前數(shù)據(jù)包都要出隊列,執(zhí)行下一個數(shù)據(jù)包的處理過程。
4)循環(huán)處理。依步驟3),對所有調整的航點進行處理。直到處理完所有待調整的航點信息或者中途失敗,則處理結束,返回處理結果(成功/失?。?/p>
圖形設備接口(GDI,graphics device interface)是Windows 的子系統(tǒng),它負責在顯示器和打印機上顯示圖形,是程序與計算機硬件之間的橋梁,是Windows 重要組成部分之一。不但一般的Windows 應用系統(tǒng)在顯示視覺信息時使用GDI,而且Windows 本身也使用GDI 來顯示用戶界面對象。
為了實時監(jiān)控無人機狀態(tài)信息,主視圖界面以300 ms 的周期持續(xù)刷新。界面上的航線圖也會跟著界面不斷刷新。一旦航點信息發(fā)生變化,航線圖會按照新的航點信息重新繪制。測控軟件采用GDI方法繪制主界面航線圖,具體步驟如下:
(1)創(chuàng)建畫筆對象。
航線段偏移到預期位置,意味著主界面航線繪制完成。無人機會沿著調整后的航線完成剩下的飛行過程。
下面為調節(jié)前后的航線對比圖。圖5 顯示的是調節(jié)前航線,圖6 顯示的是調節(jié)后航線。1 號艦船為無人機飛行跟隨艦,2 號艦船為輔助艦,航線段的調整計算方式依賴1號艦的位置。
圖5 初始航線
圖6 調節(jié)后航線
上圖調節(jié)的目標航點段為09→10 航線段,為了使無人機沿著1 號艦船的艦尾1000 米勾徑直線飛行,使用“航點勾徑偏移”,調整09→10 航線段的勾徑值為1000 m。
本文介紹了航路勾徑偏移功能的算法實現(xiàn)和功能實現(xiàn)?!昂近c勾徑偏移”功能可以精確計算偏移后的航點信息,自動向無人機發(fā)送新航點信息,重新繪制新航點。既滿足了飛行訓練時無人機對艦勾徑精度的需求,又簡化了操作人員的操作步驟,減輕了操作人員的操作壓力,幫助操作人員更好的完成飛行保障任務。