中國電子科技集團公司第二十七研究所,河南鄭州 450047
關(guān)鍵字:無人機;地面站;多線程
近年來,無人機憑借設(shè)計靈活,成本低,零傷亡的特點,在多次戰(zhàn)爭中都起到了重要的作用。偵察打擊一體化無人機,既能偵察,又具有打擊毀傷能力,引起了各方的廣泛關(guān)注[1]。無人機能不能發(fā)揮其最大的攻擊潛能,取決于全自主飛行控制系統(tǒng)和火力控制系統(tǒng)綜合形成的自主協(xié)調(diào)攻擊能力,從而實現(xiàn)偵察打擊一體化的能力[2]。作為無人機系統(tǒng)的重要組成部分,地面站系統(tǒng)[3-4]如何控制好偵察打擊一體化無人機,順利完成對無人機的飛行操縱、偵察和打擊,也是提高自主控制能力以及打擊精度的技術(shù)關(guān)鍵,是一項十分重要的工作。
本研究主要完成偵察打擊一體化無人機地面站系統(tǒng)部分控制軟件的規(guī)劃和設(shè)計,基于分層模塊化的設(shè)計思想,采用事件驅(qū)動的通信機制,實現(xiàn)了對偵察打擊一體化無人機的飛行控制。
地面站軟件系統(tǒng)是整個無人機系統(tǒng)的地面神經(jīng)中樞,主要完成控制無人機的發(fā)射、起飛和回收,接收和處理無人機系統(tǒng)飛行數(shù)據(jù),完成對無人機的飛行航線管理、操作與控制、飛行參數(shù)與飛行軌跡的綜合顯示、導(dǎo)引頭工作參數(shù)以及視頻圖像的顯示、數(shù)據(jù)記錄、回放以及數(shù)據(jù)分析等任務(wù)。
根據(jù)偵察打擊一體化無人機地面站系統(tǒng)的設(shè)計目標以及實際應(yīng)用需要,軟件功能可概括為以下幾個方面:
(1)能夠制定飛行任務(wù),支持任務(wù)的添加、修改、刪除,可以根據(jù)不同的策略自動生成任務(wù)航線;
(2)能夠控制無人機的狀態(tài)切換,顯示飛行數(shù)據(jù)、監(jiān)視并顯示機載和地面設(shè)備狀態(tài),保證飛行安全;
(3)具備控制導(dǎo)引頭的功能,并能進行導(dǎo)引頭狀態(tài)顯示以及視頻圖像解碼;
(4)具有電子地圖功能,能實時顯示飛行軌跡;
(5)能記錄并回放飛行數(shù)據(jù),事后可對飛行數(shù)據(jù)進行處理和分析;
(6)保證系統(tǒng)穩(wěn)定可靠、采取實時高效地數(shù)據(jù)傳輸機制,以滿足大數(shù)據(jù)量的傳輸要求;
(7)人機界面友好,方便操作。
地面站系統(tǒng)軟件基于分層模塊化的設(shè)計思想,借鑒MVC開發(fā)模式,系統(tǒng)框架按照用戶界面層、數(shù)據(jù)實體層和接口層分層設(shè)計。用戶界面層為人機交互的主要部分,提供交互式的頁面,用戶界面層的各個功能模塊共同實現(xiàn)地面站系統(tǒng)的主要功能。數(shù)據(jù)實體層負責(zé)數(shù)據(jù)的傳遞和處理,針對不同的模塊,設(shè)計不同的控制類和界面層交互,從而完成各功能模塊間的數(shù)據(jù)流向控制。接口層完成數(shù)據(jù)的存儲和底層數(shù)據(jù)的接收處理工作。圖1為地面站軟件系統(tǒng)的框架圖。
地面站軟件分為以下幾個功能模塊:
(1)航線規(guī)劃:對無人機進行航線規(guī)劃,可修改、存儲至文件和從文件導(dǎo)入,并能通過測控鏈路上穿至無人機;
(2)無人機控制:對無人機的操作與控制主要是響應(yīng)地面操控設(shè)備以及軟件界面按鍵值,生成相應(yīng)的遙控指令,封裝至遙控數(shù)據(jù)幀,通過測控鏈路傳輸至無人機,控制無人機的巡航、俯沖、拉起和回收等操作;
(3)綜合顯示:飛行參數(shù)和飛行軌跡的綜合顯示,接收下行遙測數(shù)據(jù),進行信息分解,顯示無人機的工作狀態(tài)、火控計算結(jié)果等,顯示無人機的速度、姿態(tài)、位置等飛行狀態(tài);
(4)火控解算:通過無人機飛行參數(shù)、目標點位置信息以及導(dǎo)引頭狀態(tài)信息進行攻擊區(qū)域、無人機視場解算等火控解算;
(5)電子地圖:完成工作區(qū)域電子地圖加載顯示,放大、縮小、平移等地圖功能;能顯示原點、盤旋點、降落點等點信息;能顯示規(guī)劃航線、飛行航跡;
(6)導(dǎo)引頭控制與顯示:操控導(dǎo)引頭搜索、捕獲并跟蹤目標,顯示導(dǎo)引頭的視頻圖像,監(jiān)控導(dǎo)引頭的工作狀態(tài);
(7)狀態(tài)監(jiān)測:監(jiān)視機載和地面設(shè)備的工作狀態(tài),顯示當(dāng)前無人機的飛行狀態(tài),導(dǎo)引頭的工作狀態(tài),在設(shè)備工作異常時告警,保證可靠飛行;
(8)數(shù)據(jù)記錄、回放、處理與分析:存儲飛行數(shù)據(jù),能將存儲的飛行數(shù)據(jù)進行數(shù)據(jù)回放,并對飛行數(shù)據(jù)進行處理,分析飛行過程,進行數(shù)據(jù)統(tǒng)計;
(9)通信管理:完成地面站與無人機之間的數(shù)據(jù)通信,管理遙測信息的接收和遙控指令的發(fā)送;
(10)鏈路控制:能夠監(jiān)視鏈路狀態(tài)信息,能控制鏈路功率、頻道等;
(11)日志記錄:能夠記錄系統(tǒng)運行日志。
地面站軟件工作時,首先進行系統(tǒng)自檢,自檢完成后進行任務(wù)規(guī)劃,操作員通過地面站軟件觀察導(dǎo)引頭回傳圖像,根據(jù)目標信息判斷是否手動搜索,例如,目標在視場內(nèi)時在手動搜索模式下發(fā)送鎖定指令進行目標鎖定,目標在視場外在自動模式下通過數(shù)引指令引導(dǎo)目標,經(jīng)過火控解算模塊輔助決策是否攻擊,之后對記錄的數(shù)據(jù)進行處理和分析,完成整個飛行過程。地面站軟件的系統(tǒng)工作流程如圖2所示。
本研究采用VS2010作為開發(fā)工具,以C#為主要程序語言,基于Net FrameWork3.5框架下進行開發(fā),以此為基礎(chǔ)設(shè)計實現(xiàn)地面站軟件系統(tǒng)。
系統(tǒng)的綜合顯示模塊涉及的數(shù)據(jù)量比較大,要解決的關(guān)鍵是處理數(shù)據(jù)間的傳遞以及界面刷新的問題。采用多線程同步技術(shù)以及全局變量實現(xiàn)數(shù)據(jù)的傳遞,后臺線程接收和處理數(shù)據(jù),主頁面線程通過全局變量讀取已處理的數(shù)據(jù)成果,互不干涉,界面效果流暢。具體解決方法如下:
使用C#的System.Threading Thread類來實現(xiàn)線程。長時間搶占主線程會造成界面反應(yīng)遲鈍,因此系統(tǒng)采用后臺多線程的方法監(jiān)聽端口和處理數(shù)據(jù),線程間采用全局靜態(tài)變量(static)、事件(event)、消息(message)和互斥對象(Mutex)的方式實現(xiàn)線程同步和調(diào)度,避免出現(xiàn)資源競爭而引起幾個線程乃至整個系統(tǒng)的死鎖[5]。
本系統(tǒng)采用事件驅(qū)動、全局變量的方式,通過消息來實現(xiàn)各線程之間的數(shù)據(jù)傳遞。系統(tǒng)開始,網(wǎng)絡(luò)端口監(jiān)測線程不斷監(jiān)測外部數(shù)據(jù),接收到外部數(shù)據(jù)之后,不斷將數(shù)據(jù)存儲至數(shù)據(jù)緩存區(qū),數(shù)據(jù)處理線程將緩存數(shù)據(jù)解析到數(shù)據(jù)實體類,供主頁面數(shù)據(jù)刷新定時器中的方法調(diào)用并顯示,同時解析完一幀數(shù)據(jù)后將解析完的數(shù)據(jù)移出。
綜合顯示模塊流程圖如圖3所示,主要代碼實現(xiàn)如下:
(1)建立TCP/IP連接套結(jié)字:
(2)新建網(wǎng)絡(luò)端口監(jiān)測線程,接收數(shù)據(jù)存入數(shù)據(jù)緩存:
(3)新建數(shù)據(jù)處理線程
(4)主頁面刷新數(shù)據(jù)定時器訪問數(shù)據(jù)實體類,將數(shù)據(jù)顯示在主頁面上。
MapX插件擁有強大的地圖功能,可實現(xiàn)地圖的基本操作,如放大,縮小,平移等。使用MapX插件進行封裝,本系統(tǒng)使用MapX地圖插件封裝成一個GMAP類,使用時需指定地圖路徑。封裝的插件主要包括插件的初始化,工具欄的加載,點、線、圓等元素的標繪方法,坐標變換方法等。
航線管理[6]基于MapX插件,根據(jù)不同情況,設(shè)計有三種航線生成方式:
(1)通過鼠標點擊地圖上的點,輸入航點形成航線;
(2)根據(jù)航線高度,航點邊距生成以飛機原點為中心自動生成正方形航線;
(3)根據(jù)目標點信息、航線長度、航線寬度、風(fēng)向信息、禁飛區(qū),自動規(guī)避禁飛區(qū),自動生成攻擊航線。航線管理模塊流程圖如圖4所示。
火控解算是偵察打擊一體化無人機的重要模塊,是操作人員控制無人機進行鎖定、攻擊等指令時輔助決策手段,包含可攻擊區(qū)域解算、目標位置解算、視場解算、目標引導(dǎo)解算和攻擊閾值解算。
火控解算模塊流程圖如圖5所示。主要方法設(shè)計如下:
(1)計算飛機的橫滾角roll、俯仰角pitch和航向角yaw信息
public static void updateRbe(float roll, float pitch, float yaw);
(2)可攻擊區(qū)域解算和攻擊閾值解算
根據(jù)目標信息,攻擊角度和飛機位置,可計算無人機的可攻擊區(qū)域,根據(jù)飛機位置和已計算得出的可攻擊區(qū)域判定攻擊閾值范圍:
public unsafe static void getGuide_area(position_FIRE target, position_FIRE point_Far, position_FIRE point_near, position_FIRE* point_One, position_FIRE* point_Two);
(3)目標位置解算
根據(jù)飛機位置、導(dǎo)引頭參數(shù),解算目標經(jīng)緯度信息:
public unsafe static position_FIRE getTarget(position_FIRE flight, seeker s);
(4)視場解算
根據(jù)飛機位置信息、導(dǎo)引頭參數(shù)計算視場區(qū)域:
public unsafe static field_video getArea(position_FIRE flight, seeker s);
(5)目標引導(dǎo)解算
根據(jù)目標位置信息和飛機位置信息,計算導(dǎo)引頭數(shù)引參數(shù):
public static seeker getGuide_cal(position_FIRE target, position_FIRE flight)。
為驗證本無人機地面站軟件系統(tǒng)功能,結(jié)合無人機系統(tǒng)、無人機控制鏈路和無人機地面站軟件系統(tǒng)進行了系統(tǒng)聯(lián)調(diào)試驗,試驗過程及步驟如下:
(1)無人機系統(tǒng)(包含導(dǎo)引頭)、無人機控制鏈路和無人機地面站全系統(tǒng)加電;
(2)無人機系統(tǒng)將系統(tǒng)機載狀態(tài)、導(dǎo)引頭視頻信息通過無人機控制鏈路下傳;
(3)通過無人機軟件系統(tǒng)顯示無人機系統(tǒng)狀態(tài)等信息,記錄下傳的數(shù)據(jù);
(4)對記錄的數(shù)據(jù)進行回放;
(5)對記錄的數(shù)據(jù)進行處理分析。
在實際試驗過程中,地面站軟件系統(tǒng)運行流暢,無卡死卡頓現(xiàn)象。系統(tǒng)軟件部署在三個臺位上,分別是綜合顯示控制臺位、導(dǎo)引頭鏈路控制臺位以及數(shù)據(jù)處理分析臺位。
(1)綜合顯示控制臺位
圖6所示為綜合顯示控制臺位頁面,主要包括綜合顯示模塊、火控解算模塊和無人機指令控制模塊。綜合顯示模塊能實時解析并顯示機載狀態(tài),如飛行模式、機載設(shè)備信息狀態(tài)、飛機位置和航跡等(例如,通過菜單可進入航線管理模塊頁面,如圖7所示,可新建、保存、讀取、上傳,查詢航線操作等);試驗過程中,火控解算模塊通過解算功能將數(shù)據(jù)顯示在頁面中,輔助操作員決策;指令控制區(qū)域包含常用操作指令,能通過鏈路系統(tǒng)進行指令上傳。
(2)導(dǎo)引頭鏈路控制臺位
導(dǎo)引頭鏈路控制臺位主要包括鏈路控制和狀態(tài)顯示模塊、導(dǎo)引頭控制和狀態(tài)顯示模塊以及數(shù)據(jù)記錄與回放模塊。圖8為導(dǎo)引頭鏈路臺位頁面。鏈路控制頁面能顯示鏈路鏈接狀態(tài),可對機載上行、下行鏈路的狀態(tài)進行顯示,顯示誤碼信息、功率信息等,操作簡單方便。導(dǎo)引頭頁面可顯示導(dǎo)引頭狀態(tài)信息、導(dǎo)引頭方位和俯仰信息、導(dǎo)引頭狀態(tài)和自檢信息,導(dǎo)引頭圖像清晰,視頻無亂碼。
圖9為數(shù)據(jù)記錄與回放頁面。數(shù)據(jù)記錄與回放模塊直接在鏈路接收數(shù)據(jù)時對數(shù)據(jù)管理和記錄,保證原始數(shù)據(jù)未做修改??蓪σ延涗浀臄?shù)據(jù)進行加載,數(shù)據(jù)回放模塊解析記錄的數(shù)據(jù),將解析后的各類數(shù)據(jù)進行顯示,并模擬實際無人機系統(tǒng)數(shù)據(jù)向無人機地面軟件系統(tǒng)發(fā)送。圖9左圖綠色高亮所示的復(fù)合數(shù)據(jù)、飛控遙測數(shù)據(jù)、飛控遙控數(shù)據(jù)等,解析完成后可通過網(wǎng)口發(fā)出至綜合顯示模塊。
(3)數(shù)據(jù)處理分析臺位
圖10所示為數(shù)據(jù)處理分析臺位頁面,主要包括數(shù)據(jù)處理與分析功能模塊。將記錄的數(shù)據(jù)加載到數(shù)據(jù)處理與分析程序中,系統(tǒng)讀取并解析成各系統(tǒng)狀態(tài)量,可選擇指定系統(tǒng)狀態(tài)量繪制曲線;反過來,通過選取曲線上的點可讀取此刻系統(tǒng)各狀態(tài)信息。
本研究設(shè)計的無人機地面站軟件系統(tǒng),經(jīng)過工程試驗檢驗,界面友好,操作便捷,長時間運行正常,有一定的工程應(yīng)用價值。存在的問題是,在使用過程中,地圖控件的功能僅能滿足基本需求,例如缺少封閉區(qū)域填充紋理操作。在以后的工作中,將添加更多的功能以滿足更多場合的需要。