張云洲, 胡禹超, 吳成東, 宋云宏
(1.東北大學(xué) 信息科學(xué)與工程學(xué)院,遼寧 沈陽 110819; 2.奧維通信股份有限公司,遼寧 沈陽 110179)
?
·專題研討——虛擬仿真實(shí)驗(17)·
三維姿態(tài)實(shí)時顯示的小型無人機(jī)飛控仿真系統(tǒng)
張云洲1, 胡禹超1, 吳成東1, 宋云宏2
(1.東北大學(xué) 信息科學(xué)與工程學(xué)院,遼寧 沈陽 110819; 2.奧維通信股份有限公司,遼寧 沈陽 110179)

本文設(shè)計并實(shí)現(xiàn)了一種小型無人機(jī)飛行控制仿真系統(tǒng),規(guī)劃了合理的系統(tǒng)架構(gòu),由在環(huán)程序、飛行動力學(xué)模型、地面站程序及三維可視化顯示等部分共同構(gòu)成仿真系統(tǒng)。針對實(shí)際問題,提出了飛行姿態(tài)的三維直觀顯示、動力學(xué)仿真模擬的方法,結(jié)合硬件在環(huán)和軟件在環(huán)等兩種方式建立了數(shù)據(jù)鏈路,構(gòu)建了三維飛行器模型并導(dǎo)入仿真系統(tǒng)。仿真與實(shí)際飛行數(shù)據(jù)表明,所構(gòu)建的仿真系統(tǒng)能夠很好地滿足小型無人機(jī)姿態(tài)控制和飛行仿真,實(shí)現(xiàn)了較高的精度和良好的實(shí)時性。
無人機(jī); 飛行控制; 仿真系統(tǒng); 三維姿態(tài); 數(shù)據(jù)鏈路; 在環(huán)程序
由于在機(jī)體、燃料消耗、操縱訓(xùn)練、后勤維修等方面優(yōu)于有人駕駛飛機(jī),并具有更強(qiáng)的機(jī)動性、適應(yīng)性和生存力,無人機(jī)(Unmanned Aerial Vehicle, UAV)在軍事和民用等領(lǐng)域獲得了廣泛應(yīng)用。作為無人機(jī)系統(tǒng)研制的關(guān)鍵設(shè)備之一,飛行仿真系統(tǒng)可用來設(shè)計無人機(jī)控制律,驗證飛控系統(tǒng)性能及可靠性,為系統(tǒng)開發(fā)提供支持,因而受到了高度重視[1-2]。國內(nèi)外研究機(jī)構(gòu)對無人機(jī)仿真系統(tǒng)的研究,主要集中在軟硬件平臺、飛行動力學(xué)仿真、地面站構(gòu)建、飛行姿態(tài)分析、數(shù)據(jù)測試等方面。
文獻(xiàn)[1]中構(gòu)建了一個基于PC機(jī)的無人機(jī)仿真系統(tǒng),集合了無人機(jī)動力學(xué)模型和數(shù)據(jù)/曲線分析功能,著重于控制策略的研究。文獻(xiàn)[2]中提出以全數(shù)字模式支持飛行控制率的驗證,并設(shè)計了兩種相關(guān)聯(lián)的半實(shí)物仿真系統(tǒng)對UAV飛行狀態(tài)進(jìn)行仿真,可以獲得UAV飛行控制率設(shè)計的合理性和有效性。為尋求UAV飛行系統(tǒng)控制率的有效設(shè)計和驗證,文獻(xiàn)[3]中構(gòu)建了硬件在環(huán)(Hardware-in-loop, HIL)的實(shí)時仿真系統(tǒng),以分級和模塊化的規(guī)則在Matlab/Simulink環(huán)境下建立了UAV非線性模型。HIL仿真系統(tǒng)依托xPC目標(biāo)系統(tǒng),配置了UAV的相關(guān)數(shù)據(jù),可以取得較理想的仿真效果。文獻(xiàn)[3]中提出一種基于無人機(jī)模擬器的飛控系統(tǒng)仿真方法,考慮工程計算與仿真訓(xùn)練的需求,飛行參數(shù)可以用最小二乘法對實(shí)際飛行數(shù)據(jù)進(jìn)行擬合。文獻(xiàn)[4]中提出了一種基于虛擬現(xiàn)實(shí)的無人機(jī)遠(yuǎn)程仿真平臺,采用了"人在回路"的方案克服UAV控制的不利因素,以解決UAV操控手的訓(xùn)練問題。
HIL和模塊化在無人機(jī)仿真中處于較突出的位置,而視覺顯示逐漸受到重視。文獻(xiàn)[5]中提出了一種以CAN總線和以太網(wǎng)總線為基礎(chǔ)的UAV 微航電(MicroAvionics)系統(tǒng),將其以HIL方式集成于聯(lián)合飛行網(wǎng)絡(luò)仿真器,可用于微型直升機(jī)和固定翼飛行器自主導(dǎo)航及控制的仿真研究。文獻(xiàn)[6]中提出了一種多無人機(jī)協(xié)同的仿真與測試框架,在不同層次上采用了模塊化和分級架構(gòu),能夠簡便地從仿真轉(zhuǎn)向?qū)嶋H環(huán)境,從而減少了測試和調(diào)試時間。考慮到傳統(tǒng)的訓(xùn)練仿真器一般獨(dú)立于UAV系統(tǒng),UAV操作員無法在一次進(jìn)程中完成系統(tǒng)測試和訓(xùn)練,文獻(xiàn)[7]中提出了一種基于UAV機(jī)載設(shè)備的新型訓(xùn)練仿真器,引入了系統(tǒng)架構(gòu)和信號流水線,以實(shí)時方式加載無人機(jī)模型和過程;該仿真器可同時測試飛控系統(tǒng)、無線數(shù)據(jù)鏈、地面站。部分無人機(jī)地面控制站系統(tǒng)中還引入了遙控遙測臺和視景臺,實(shí)時采集分析遙測數(shù)據(jù)、定時發(fā)送遙控指令,以及向地面導(dǎo)航站實(shí)時發(fā)送UAV位置數(shù)據(jù);視景臺用來顯示圖像數(shù)據(jù),在導(dǎo)航地面站規(guī)劃飛行航線,實(shí)時跟蹤UAV位置和顯示飛行狀態(tài)。上述地面導(dǎo)航系統(tǒng)主要依托Windows平臺,內(nèi)置穩(wěn)定性較差,并不適合于對穩(wěn)定性要求較高的無人機(jī)地面站。
在飛控系統(tǒng)和地面站方面,開源項目得到了廣泛應(yīng)用。基于ArduPilot Mega的ArduPlane開源無人機(jī)項目始于2009年,其地面站軟件功能尚不夠完善[8]。Paparazzi UAS開源項目始于2003年,目前比較成熟和穩(wěn)定,適用于多種無人機(jī)型、硬件平臺及操作系統(tǒng);其地面站軟件功能較豐富,但存在多種缺陷。在飛行動力學(xué)仿真方面,開源模型JSBSim支持跨平臺和面向?qū)ο蟮拈_發(fā)方式,被廣泛應(yīng)用于BoozSimulator、Outerra、FlightGear及OpenEagles等飛行模擬器中[9]。它可以支持任何飛行器的仿真建模而不需要特定的編譯和鏈接程序代碼,而且并不依靠XML格式實(shí)現(xiàn)[10]。
傳統(tǒng)的無人機(jī)地面站系統(tǒng)數(shù)據(jù)回顯主要采用二維數(shù)字和圖表曲線形式,無法直接觀察在三維空間內(nèi)飛行的狀態(tài)。在傳統(tǒng)方式中,通常由VRML、WTK、Creator/Vega Prime和OpenGL等平臺以虛擬方式進(jìn)行仿真,飛行場景由紋理匹配的方式生成,因此可信度低、建模過程復(fù)雜耗時。近年來,研究者提出了無人機(jī)三維視景仿真,用三維圖像來實(shí)時再現(xiàn)UAV飛行過程和狀態(tài),能夠輔助操作人員進(jìn)行判斷,并減少其工作量。
總體上,Matlab/Simulink等平臺得到廣泛應(yīng)用,基于專用平臺的無人機(jī)仿真系統(tǒng)正在受到高度重視,得到了迅速發(fā)展[3,5,11-15]。本文設(shè)計并實(shí)現(xiàn)了一種小型無人機(jī)飛行控制系統(tǒng)仿真平臺,將飛機(jī)模型導(dǎo)入基于真實(shí)地形數(shù)據(jù)建立的三維環(huán)境中,通過在環(huán)程序驅(qū)動仿真系統(tǒng),得到三維可視化的仿真結(jié)果。仿真與實(shí)測飛行數(shù)據(jù)表明,本文構(gòu)建的系統(tǒng)具有良好的仿真效果。
本文所設(shè)計和構(gòu)建的無人機(jī)飛控仿真系統(tǒng)由在環(huán)程序、飛行動力學(xué)模型、地面站程序及三維可視化程序組成,其系統(tǒng)架構(gòu)如圖1所示。

圖1 無人機(jī)飛行控制仿真系統(tǒng)框架
考慮到無人機(jī)系統(tǒng)的實(shí)際需求,仿真平臺的工作流程設(shè)置為:① 在環(huán)程序?qū)⒖刂菩畔?主要是控制舵機(jī)和油門的PWM信息)通過UDP協(xié)議發(fā)往飛行動力學(xué)模型(JSBSim);② 動力學(xué)模型根據(jù)控制信息實(shí)時計算UAV狀態(tài)信息,將姿態(tài)數(shù)據(jù)返回在環(huán)程序,同樣采用UDP協(xié)議;③ 在環(huán)程序通過數(shù)據(jù)鏈路連接地面站程序,將其所獲取的UAV狀態(tài)信息通過TCP協(xié)議發(fā)往地面站;④ 地面站接收在環(huán)程序的狀態(tài)信息,處理后輸出至顯示屏,并可根據(jù)需要向在環(huán)程序發(fā)送設(shè)定參數(shù)及控制指令;⑤ 地面站將姿態(tài)信息發(fā)往三維姿態(tài)實(shí)時顯示程序處理;⑥ 遙控信號通過相應(yīng)的接口發(fā)送至在環(huán)程序。
飛行動力學(xué)模型依托開源的JSBSim進(jìn)行設(shè)計,在程序代碼中不需要對特定的飛機(jī)進(jìn)行建模。飛機(jī)本身的模型如飛機(jī)質(zhì)量和幾何屬性均位于XML格式的文件中;其它需定義的模型特征則包括起落架位置和屬性、視角、載荷、推進(jìn)系統(tǒng)等。
地面站程序?qū)︼w機(jī)實(shí)際飛行時的姿態(tài)傳感器數(shù)據(jù)進(jìn)行整合處理后,將數(shù)據(jù)通過指定的通信接口送給三維可視化程序(FlightGear)進(jìn)行顯示。作為開源的飛行模擬軟件,F(xiàn)lightGear能夠滿足項目的個性化需求,擁有強(qiáng)大的模擬功能,包括動力學(xué)系統(tǒng)、視景系統(tǒng)、儀表系統(tǒng)、助航系統(tǒng)等。同時,F(xiàn)lightGear主要組件與硬件和操作系統(tǒng)無關(guān),具有較高的可重用性和可擴(kuò)展性。
地面站程序依托Paparazzi平臺進(jìn)行開發(fā),功能包括飛行監(jiān)控、地圖導(dǎo)航、航線規(guī)劃與航跡操作等。本文根據(jù)無人機(jī)研究和運(yùn)用過程中的實(shí)際問題,在地面站基本架構(gòu)的基礎(chǔ)上提出和開發(fā)了多項功能,有助于無人機(jī)飛行狀態(tài)的研究、分析和控制,主要包括:① 飛行姿態(tài)的三維直觀顯示。由于無人機(jī)本身的特點(diǎn),地面操作人員很難對三維空間內(nèi)飛行的無人機(jī)飛行狀態(tài)形成直觀的感受。將無人機(jī)發(fā)送至地面站的數(shù)據(jù)轉(zhuǎn)換為三維姿態(tài)圖像,能夠直觀便捷地為地面人員的操作決策提供依據(jù)。 ② 飛行動力學(xué)仿真模擬。通過建立無人機(jī)外形及各個部件的物理模型,以計算機(jī)演算無人機(jī)的動力學(xué)狀態(tài),使地面人員不必實(shí)際操作即可對無人機(jī)的飛行過程形成基本的了解,便于研究人員分析和改善無人機(jī)的物理結(jié)構(gòu)及飛控系統(tǒng)的控制算法。上述功能將有效提高無人機(jī)的研究和分析效率,而且是大多數(shù)無人機(jī)地面站軟件所欠缺的。
基于操作系統(tǒng)平臺考慮,本文采用跨平臺的JSBSim來構(gòu)建無人機(jī)飛行動力學(xué)模型。
2.1 無人機(jī)模型定義
無人機(jī)模型的參數(shù)信息以XML語言規(guī)范進(jìn)行編寫。JSBSim將參數(shù)文件分為兩大部分,分別用于定義飛機(jī)和引擎。飛機(jī)定義文件描述了無人機(jī)的尺寸、重量、機(jī)體結(jié)構(gòu)、舵機(jī)特性等機(jī)械特征;引擎定義文件則規(guī)定了無人機(jī)所使用的引擎型號,輸入輸出特性及螺旋槳的特性。在使用過程中,可以根據(jù)無人機(jī)特點(diǎn)進(jìn)行相應(yīng)的修改以滿足所需的模型特性。
飛機(jī)模型的部件定義位于模型文件夾下的set文件中,給出了聲音、面板、模型等所在的路徑。引擎模型Engines文件夾中存放了UAV所使用的引擎型號及輸入輸出特性,需要根據(jù)引擎實(shí)際特性構(gòu)建模型。
2.2 飛行動力學(xué)模型及參數(shù)
在飛行過程中,無人機(jī)受到作用于機(jī)身上的力和力矩共同影響。作用在飛機(jī)上的力由三部分組成,包括引擎推力、重力和氣動力。而作用于飛機(jī)上的力矩是矢量,沿空間坐標(biāo)系分解為三個力矩:滾轉(zhuǎn)力矩、偏轉(zhuǎn)力矩和俯仰力矩[10]。
2.2.1 氣動力
阻力D、側(cè)力Y、升力L的氣動力計算公式為
(1)
式中:CD、CY、CL分別為阻力、側(cè)力及升力系數(shù);S是機(jī)翼的參考面積;q是動壓,與無人機(jī)所在高度的空氣密度ρ和飛機(jī)的空速V相關(guān):
(2)
2.2.2 氣動力矩
滾轉(zhuǎn)力矩R、俯仰力矩M、偏轉(zhuǎn)力矩N的氣動力矩計算公式為
(3)

2.2.3 氣動參數(shù)計算
無人機(jī)的氣動參數(shù)都是在風(fēng)洞實(shí)驗數(shù)據(jù)的基礎(chǔ)上,進(jìn)行插值計算得到。因此,力和力矩系數(shù)(即氣動參數(shù))存在多種可能的數(shù)學(xué)模型。JSBSim所使用的系數(shù)模型為[7]:
(4)
(5)
2.2.4 不確定性模型
由于獲取參數(shù)實(shí)驗本身存在誤差以及物理系統(tǒng)模型的局限性,從實(shí)驗獲取以上氣動參數(shù)存在不確定性。為了解決不確定性造成的影響,本文引入?yún)?shù)不確定性模型[11]。

(6)
式中:

(9)
2.2.5 運(yùn)動學(xué)方程
本文采用了文獻(xiàn)[1]所給出的運(yùn)動學(xué)方程得到無人機(jī)姿態(tài)的三個歐拉角和其在機(jī)體坐標(biāo)系下的速度,從而建立無人機(jī)的運(yùn)動學(xué)模型。
在環(huán)程序用PWM信號所代表的控制量輸入到JSBSim引擎中,仿真引擎通過對以上飛行動力學(xué)方程的實(shí)時解算,即可得到無人機(jī)在當(dāng)前時刻的狀態(tài)量,進(jìn)而得出無人機(jī)在整個仿真過程中的運(yùn)行軌跡。上述模型根據(jù)控制量和無人機(jī)自身特性,解算飛行姿態(tài)、位置、速度等,得到仿真數(shù)據(jù)和曲線。在此基礎(chǔ)上,將仿真和實(shí)際測試進(jìn)行了對比,以驗證該模型的可靠性。
2.3 在環(huán)程序與數(shù)據(jù)交互
在環(huán)程序分為硬件在環(huán)和軟件在環(huán)兩種:① 硬件在環(huán)是將實(shí)際控制器和虛擬控制對象結(jié)合的仿真方法。被用于測試代碼在實(shí)際控制器中的實(shí)時運(yùn)行情況。具體地,將代碼寫入實(shí)際飛行控制器中,由PC機(jī)將仿真的傳感器數(shù)據(jù)及地面站控制指令發(fā)送至實(shí)際飛行控制器中,經(jīng)綜合處理后將生成的控制信息發(fā)回PC機(jī),以此來檢驗代碼的運(yùn)行效果。② 軟件在環(huán)運(yùn)行與硬件在環(huán)相同的代碼。但其作為PC機(jī)上的本地可執(zhí)行文件運(yùn)行,在寄存器級上模擬飛行控制板硬件。因此,關(guān)鍵的底層硬件驅(qū)動(如ADC、陀螺儀、加速度計和GPS)運(yùn)行環(huán)境與真實(shí)飛行過程相仿。
對于兩種在環(huán)方式,均需要建立數(shù)據(jù)鏈路,以便與地面站和飛行動力學(xué)模型進(jìn)行數(shù)據(jù)交互。
2.3.1 空-地數(shù)據(jù)交互
考慮到數(shù)據(jù)準(zhǔn)確性和可靠性,本文使用TCP協(xié)議(軟件在環(huán))或串口(硬件在環(huán))與地面站程序進(jìn)行交互。由于在環(huán)程序與地面站程序相對獨(dú)立,需要設(shè)計專用的通信程序。具體步驟如下:
(1) 根據(jù)所提供的數(shù)據(jù)交互接口與在環(huán)程序建立連接;
(2) 與地面站程序建立TCP連接;
(3) 等待在環(huán)程序或地面站程序發(fā)送數(shù)據(jù);
(4) 獲取在環(huán)程序發(fā)送的數(shù)據(jù),校驗數(shù)據(jù)的有效性,將有效數(shù)據(jù)發(fā)往地面站;
(5) 獲取地面站程序發(fā)送的數(shù)據(jù),校驗數(shù)據(jù)的有效性,將有效數(shù)據(jù)發(fā)往在環(huán)程序;
(6) 返回第③步。
2.3.2 與JSBSim仿真引擎進(jìn)行數(shù)據(jù)交互
從數(shù)據(jù)傳輸?shù)膶?shí)時性和快速性方面考慮,本文采用UDP協(xié)議的Socket套接字與JSBSim進(jìn)行數(shù)據(jù)交互。指定JSBSim仿真引擎的數(shù)據(jù)輸入端口,在無人機(jī)模型配置文件中指定端口號。JSBSim引擎啟動后,將監(jiān)聽來自于指定端口的數(shù)據(jù)。JSBSim支持變量設(shè)置及獲取、仿真啟動及停止等指令,建立與JSBSim的連接后可以向JSBSim監(jiān)聽端口發(fā)送指令來控制仿真過程。
對于地面站程序與在環(huán)程序之間的通信,本文通過軟件進(jìn)行數(shù)據(jù)有效性校驗及轉(zhuǎn)發(fā),以確保數(shù)據(jù)傳輸?shù)臏?zhǔn)確性。地面站和在環(huán)程序均使用TCP協(xié)議,以保證大量數(shù)據(jù)的穩(wěn)定傳輸。
3.1 姿態(tài)數(shù)據(jù)傳輸
篩選出姿態(tài)數(shù)據(jù)模型相關(guān)的數(shù)據(jù)后,需要針對FlightGear進(jìn)行單位轉(zhuǎn)換。與FlightGear通信必須使用指定的通信模型,并且為了保證通用性而包含了飛行器模型飛行時需要的所有參數(shù)信息。本文僅使用部分參數(shù),如經(jīng)度、緯度、海拔、以及各個方向的旋轉(zhuǎn)角度等。
由于數(shù)據(jù)需要通過UDP協(xié)議進(jìn)行傳輸,為了適應(yīng)網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)格式,需要對原始數(shù)據(jù)進(jìn)行封裝處理。本文采用Python中struct-pack方法,將各個獨(dú)立的數(shù)據(jù)封裝為一個整體。
系統(tǒng)通過基于UDP協(xié)議的Socket套接字發(fā)送數(shù)據(jù)。發(fā)送步驟參考外部數(shù)據(jù)的實(shí)際生成時間,即一旦獲得數(shù)據(jù)更新就立刻進(jìn)行數(shù)據(jù)處理和發(fā)送,以保證數(shù)據(jù)發(fā)送的快速性和實(shí)時性。
保障姿態(tài)數(shù)據(jù)即時發(fā)送的程序流程如下:
(1) 初始化存放姿態(tài)數(shù)據(jù)的專門變量;
(2) 等待并獲取數(shù)據(jù)更新,關(guān)閉次要中斷;
(3) 從截獲的數(shù)據(jù)中提取出姿態(tài)相關(guān)數(shù)據(jù);
(4) 更新姿態(tài)數(shù)據(jù)變量的數(shù)值;
(5) 對姿態(tài)數(shù)據(jù)專用變量中的數(shù)據(jù)進(jìn)行封裝;
(6) 發(fā)送封裝后的數(shù)據(jù),開放次要中斷;
(7) 返回第2步。
3.2 數(shù)據(jù)鏈路構(gòu)建
飛行模擬對實(shí)時性要求較高,畫面渲染和模擬數(shù)據(jù)傳輸?shù)南到y(tǒng)資源開銷很大;而且前后幀的模擬數(shù)據(jù)相差很小,飛行模擬對數(shù)據(jù)的可靠性要求不高。因此,本文使用基于數(shù)據(jù)報套接字的UDP協(xié)議構(gòu)建地面站/FlightGear、軟件在環(huán)程序/JSBSim模型的通信模塊。
通信模塊分為客戶端和服務(wù)器端,可以部署于同一臺機(jī)器或不同的機(jī)器上。在網(wǎng)絡(luò)中進(jìn)行通信至少需要一對套接字,分別運(yùn)行于客戶端(稱為ClientSocket)和服務(wù)器端(ServerSocket)。本文使用UDP協(xié)議實(shí)現(xiàn)數(shù)據(jù)傳輸。
硬件在環(huán)仿真中需要將實(shí)際控制器的數(shù)據(jù)通過串口與PC機(jī)相連,以便進(jìn)行數(shù)據(jù)交換。同時,基于數(shù)據(jù)可靠性考慮,在地面站與軟件在環(huán)程序通信模塊上采用TCP協(xié)議,以保證地面站對軟件在環(huán)程序能進(jìn)行準(zhǔn)確控制。
4.1 飛行器及地形的三維模型
本文使用AC3D軟件完成三維飛行器模型的構(gòu)建,并導(dǎo)入仿真系統(tǒng)。
FlightGear使用原始高程數(shù)據(jù),經(jīng)過轉(zhuǎn)換成為三維地形模型而實(shí)現(xiàn)地景模型的構(gòu)建。地形數(shù)據(jù)基于SRTM(Shuttle Radar Topography Mission)構(gòu)建,世界場景由TerraGear工具集/渲染庫生成,將地理信息數(shù)據(jù)轉(zhuǎn)換為三維模型或地圖。TerraGear可以導(dǎo)入數(shù)字高程模型地形網(wǎng)格的三維數(shù)據(jù)集,以及城市輪廓、海岸線、湖泊輪廓的二維多邊形數(shù)據(jù)集,也可以根據(jù)數(shù)據(jù)生成機(jī)場、跑道。FlightGear使用外部動力學(xué)模型(external),其他程序可通過TCP/IP或者UDP網(wǎng)絡(luò)協(xié)議給FlightGear發(fā)送飛行參數(shù)數(shù)據(jù)包驅(qū)動視景顯示。本文采用external方式,將飛行器的位置和姿態(tài)信息通過通信模塊發(fā)送給FlightGear的仿真模塊,驅(qū)動飛行器仿真。
4.2 無人機(jī)仿真過程及數(shù)據(jù)分析
本文所建立的無人機(jī)仿真過程為:① 構(gòu)建JSBSim無人機(jī)仿真模型;② 編譯代碼并寫入實(shí)際飛行控制器(硬件在環(huán))或者將飛控代碼編譯為PC機(jī)可執(zhí)行文件;③ 啟動在環(huán)程序及JSBSim仿真引擎;④ 啟動通信模塊,使各程序之間能正常通信;⑤ 啟動FlightGear顯示無人機(jī)三維姿態(tài)圖像;⑥ 使用地面站控制在環(huán)程序的仿真過程。
在本文所構(gòu)建的無人機(jī)仿真平臺中,飛控代碼通過平臺執(zhí)行,并將六自由度飛行數(shù)據(jù)進(jìn)行處理,經(jīng)通信模塊傳遞給FlightGear。在仿真系統(tǒng)顯示屏上可以準(zhǔn)確地以三維模型顯示無人機(jī)的各種姿態(tài),并能夠變換視角從任意角度觀察無人機(jī)的姿態(tài)。
為簡便起見,本文在PPRZ中將仿真航跡指定為以STDBY為圓心、以50 m為半徑的圓周,且海拔高度為120 m(地面海拔高度45 m)。整個仿真過程中,固定翼無人機(jī)均采用自動模式。圖2所示為實(shí)驗結(jié)果的截圖,其中左側(cè)子圖是仿真無人機(jī)的飛行軌跡,右側(cè)子圖是FlightGear顯示的虛擬飛機(jī)姿態(tài)及位置。




圖2 無人機(jī)仿真航行實(shí)驗
從飛行軌跡圖中可以看出,仿真無人機(jī)在做順時針繞圓周運(yùn)動,與此相應(yīng)的無人機(jī)姿態(tài)是向右滾轉(zhuǎn)。在后視視角及俯視45°視角上,均可以觀察到虛擬無人機(jī)的姿態(tài)與仿真方向相符,仿真系統(tǒng)顯示的虛擬無人機(jī)姿態(tài)及位置均能很好地吻合無人機(jī)的軌跡。
無人機(jī)飛行仿真的海拔高度曲線如圖3所示,可以看出:高度值在起飛之后的一段時間內(nèi)出現(xiàn)超調(diào),但很快恢復(fù)至預(yù)設(shè)高度,并保持平穩(wěn)狀態(tài),可以驗證飛行控制算法的穩(wěn)定性。

圖3 無人機(jī)仿真飛行海拔高度曲線
圖4為移除了地圖背景的無人機(jī)仿真飛行軌跡,仿真軌跡雖然沒有完全緊貼預(yù)設(shè)軌跡,但始終以較小偏差穩(wěn)定在預(yù)設(shè)軌跡附近。從飛控代碼和仿真環(huán)境方面進(jìn)行分析,圖中情形均符合實(shí)際情況。

圖4 無人機(jī)仿真飛行軌跡
4.3 無人機(jī)仿真系統(tǒng)驗證
在仿真的基礎(chǔ)上,本文進(jìn)行了無人機(jī)的實(shí)際飛行實(shí)驗以驗證仿真系統(tǒng)的可靠性。為了與仿真過程盡可能相似,無人機(jī)的控制算法和航跡設(shè)定均與仿真過程相同(設(shè)定航跡的圓心位置有些偏差,但半徑均為50 m)。實(shí)際飛行時風(fēng)力為西北風(fēng)2級。
無人機(jī)由遙控手動起飛,升高至海拔110 m時切換至自動模式,之后按預(yù)設(shè)軌跡自主飛行。從圖5可以看出,無人機(jī)自右方進(jìn)入自動模式;由于受西北風(fēng)的影響,最初的飛行軌跡偏向東南方,之后在飛控對航跡的修正下,無人機(jī)距離預(yù)定軌跡的偏差逐漸減小。
圖6顯示了無人機(jī)飛行實(shí)驗的數(shù)據(jù)及曲線。

圖5 無人機(jī)實(shí)際飛行的軌跡
圖6(a)和(b)分別顯示了地面站數(shù)傳接收數(shù)據(jù)的速率和GPS定位精度。圖6(c)給出了無人機(jī)的飛行模式變化,0代表手動模式,1代表增穩(wěn)模式,2代表自動模式。圖6(d)為GPS高度曲線。在1 500 s之后數(shù)據(jù)傳輸速率有所下降,而GPS的定位精度降低。原因在于:此時無人機(jī)處于手動下降過程中(在圖6(d)中可以看出高度的下降),由于周圍建筑物的阻擋,數(shù)傳和GPS的信號均受到較大影響,因此導(dǎo)致GPS定位精度變差;由于GPS高度曲線的可信度受GPS精度和數(shù)傳速率的影響,僅當(dāng)GPS及數(shù)傳信號比較好時,地面站接收的高度信息才具有參考價值。
從圖6可以看出,當(dāng)無人機(jī)處于自動模式時,通信鏈路和GPS信號良好,無人機(jī)高度穩(wěn)定在預(yù)設(shè)的海拔120 m附近。這表明自動飛行時得到的數(shù)據(jù)是具有參考價值的,即圖5所示飛行軌跡是可靠的。
對比圖2和圖5可以觀察到,仿真和實(shí)際的飛行軌跡在排除環(huán)境風(fēng)力的影響后較為接近。對比圖3和圖6(d),考慮到實(shí)際GPS定位精度的影響,可以認(rèn)為自動飛行模式下的仿真與實(shí)際飛行高度較為接近。上述對比表明本文設(shè)計的仿真系統(tǒng)能較好地模擬實(shí)際飛行狀態(tài)、驗證飛行控制算法。

(a) 地面站數(shù)傳接收數(shù)據(jù)速率

(b) GPS定位精度

(c) 飛行控制模式

(d) GPS定位的海拔高度
本文設(shè)計并構(gòu)建了小型無人機(jī)的飛行控制仿真系統(tǒng),實(shí)現(xiàn)了無人機(jī)三維姿態(tài)顯示,飛行運(yùn)動學(xué)仿真模塊和航線仿真飛行。仿真與實(shí)際飛行數(shù)據(jù)表明,所構(gòu)建的仿真系統(tǒng)能夠很好地滿足小型無人機(jī)姿態(tài)控制和飛行仿真,并實(shí)現(xiàn)較高的精度和準(zhǔn)確性。該系統(tǒng)可用于無人機(jī)飛行控制率、飛行性能評估、實(shí)時姿態(tài)觀察及評估,對固定翼無人機(jī)總體方案規(guī)劃和飛行品質(zhì)評估研究具有積極的參考價值。
[1] 董苗波, 孫增圻. 基于PC機(jī)的無人機(jī)仿真系統(tǒng)開發(fā)[J]. 系統(tǒng)仿真學(xué)報, 2004, 16(7): 1460-1462.
[2] Zhou Zhijiu, Wei Minfeng. Research on Flight Control Simulation System of UAV[J]. Aerospace Control, 2010, 28(1): 64-69.
[3] Peng Lu, Qingbo Geng. Real-time Simulation System for UAV Based on Matlab/Simulink[C]//IEEE 2nd International Conference on Computing, Control and Industrial Engineering(CCIE), 2010(1): 399-404.
[4] Zhi-hua Qiao, Yi-bo Li, Shao-peng Kang,etal. Design of UAV Telepresence and Simulation Platform Based on VR[C]//Proceedings of International Conference on Cyberworlds, 2008: 520-524.
[5] Serdar Ates, Ismail Bayezit, Gokhan Inalhan. Design and Hardware-in-the-Loop Integration of a UAV Micro-avionics System in a Manned-Unmanned Joint Airspace Flight Network Simulator[J]. Unmanned Aircraft Systems, 2009: 359-386.
[6] A. Mancini, A. Cesetti, A. Iualè,etal. A Framework for Simulation and Testing of UAVs in Cooperative Scenarios[J]. Unmanned Aircraft Systems, 2009, 307-329.
[7] Jianan Wu, Wei Wang, Jinhong Zhang,etal. Research of A Kind of New UAV Training Simulator Based on Equipment Simulation[C]//International Conference on Electronic and Mechanical Engineering and Information Technology (EMEIT), 2011(9): 4812-4815.
[8] ArduPilot Mega Development Team. ArduPlane Instruction[EB/OL]. http://code.google.com/p/ardupilot-mega/wiki/home?tm=6.
[9] Jon S. Berndt. JSBSim Reference Manual[EB/OL]. http://jsbsim. sourceforge.net/ JSBSimReferenceManual.pdf, 2011.
[10] JSBSim Project Team. JSBSim Flight Dynamics Model[EB/OL]. http://jsbsim.sourceforge.net/JSBSim/, 2012.
[11] 陳 兵, 朱紀(jì)洪, 孫增圻. 基于PC機(jī)的無人機(jī)仿真系統(tǒng)[J]. 系統(tǒng)仿真學(xué)報, 2002, 14(5): 613-616.
[12] Paw Y C, Balas G J. Development and application of an integrated framework for small UAV flight control development[J]. Mechatronics, 2011, 21(5): 789-802.
[13] Jin Guo-dong, Gu liang-xian, Lu Li-bin. UAV Simulator-Based Simulation of Flight Control System[C]//Proceedings of International Workshop on Intelligent Systems and Applications-ISA, 2009.
[14] Richard Garcia, Laura Barnes. Multi-UAV Simulator Utilizing X-Plane[J]. Journal of Intelligent and Robotic Systems, 2010, 57(4): 393-406.
[15] 劉小雄, 章衛(wèi)國, 王振華, 等. 無人機(jī)自適應(yīng)編隊飛行控制設(shè)計與仿真[J]. 系統(tǒng)仿真學(xué)報, 2009, 21(5): 1420-1422.
Simulation System for Unmanned Aerial Vehicle Based on Real-time 3-D Posture Display
ZHANGYun-zhou1,HUYu-chao1,WUCheng-dong1,SONGYun-hong2
(1. College of Information Science and Engineering, Northeastern University, Shenyang 110819, China;2. Aowei Communication Co., Ltd., Shenyang 110179, China)
This paper designed and implemented a small fly-control simulation system. The fundamental parts of the system contained in-loop program, flight dynamics model and 3-D visual display. Aiming at real problems, we proposed some methods for 3-D display of flight-posture and dynamics simulation, built data links with such ways as hardware-in-loop and software-in-loop, and built the 3-D air vehicle model which was embedded into the simulation system. According to the simulation and real flight data, the proposed simulation system could meet the requirement of attitude control and flight simulation of small UAV with high accuracy and good real-time performance.
unmanned aerial vehicle; flight control; simulation system; 3-D posture; data link; in-loop program
2014-05-13
國家自然科學(xué)基金資助項目(61273078);中國博士后科研基金(2012M511164);教育部高校基礎(chǔ)科研業(yè)務(wù)費(fèi)項目(N130404023)
張云洲(1974-), 男, 河南澠池人, 博士, 副教授,研究方向為智能機(jī)器人/無人機(jī)、嵌入式視覺、多媒體傳感器網(wǎng)絡(luò)。
Tel.:13940101976,024-83687761;E-mail:zhangyunzhou@is.neu.edu.cn
TP 391.9;V 249.4
A
1006-7167(2015)01-0073-06