張?jiān)浦蓿?胡禹超, 吳成東, 宋云宏
(1.東北大學(xué) 信息科學(xué)與工程學(xué)院,遼寧 沈陽(yáng) 110819; 2.奧維通信股份有限公司,遼寧 沈陽(yáng) 110179)
?
·專題研討——虛擬仿真實(shí)驗(yàn)(17)·
三維姿態(tài)實(shí)時(shí)顯示的小型無(wú)人機(jī)飛控仿真系統(tǒng)
張?jiān)浦?, 胡禹超1, 吳成東1, 宋云宏2
(1.東北大學(xué) 信息科學(xué)與工程學(xué)院,遼寧 沈陽(yáng) 110819; 2.奧維通信股份有限公司,遼寧 沈陽(yáng) 110179)
本文設(shè)計(jì)并實(shí)現(xiàn)了一種小型無(wú)人機(jī)飛行控制仿真系統(tǒng),規(guī)劃了合理的系統(tǒng)架構(gòu),由在環(huán)程序、飛行動(dòng)力學(xué)模型、地面站程序及三維可視化顯示等部分共同構(gòu)成仿真系統(tǒng)。針對(duì)實(shí)際問題,提出了飛行姿態(tài)的三維直觀顯示、動(dòng)力學(xué)仿真模擬的方法,結(jié)合硬件在環(huán)和軟件在環(huán)等兩種方式建立了數(shù)據(jù)鏈路,構(gòu)建了三維飛行器模型并導(dǎo)入仿真系統(tǒng)。仿真與實(shí)際飛行數(shù)據(jù)表明,所構(gòu)建的仿真系統(tǒng)能夠很好地滿足小型無(wú)人機(jī)姿態(tài)控制和飛行仿真,實(shí)現(xiàn)了較高的精度和良好的實(shí)時(shí)性。
無(wú)人機(jī); 飛行控制; 仿真系統(tǒng); 三維姿態(tài); 數(shù)據(jù)鏈路; 在環(huán)程序
由于在機(jī)體、燃料消耗、操縱訓(xùn)練、后勤維修等方面優(yōu)于有人駕駛飛機(jī),并具有更強(qiáng)的機(jī)動(dòng)性、適應(yīng)性和生存力,無(wú)人機(jī)(Unmanned Aerial Vehicle, UAV)在軍事和民用等領(lǐng)域獲得了廣泛應(yīng)用。作為無(wú)人機(jī)系統(tǒng)研制的關(guān)鍵設(shè)備之一,飛行仿真系統(tǒng)可用來(lái)設(shè)計(jì)無(wú)人機(jī)控制律,驗(yàn)證飛控系統(tǒng)性能及可靠性,為系統(tǒng)開發(fā)提供支持,因而受到了高度重視[1-2]。國(guó)內(nèi)外研究機(jī)構(gòu)對(duì)無(wú)人機(jī)仿真系統(tǒng)的研究,主要集中在軟硬件平臺(tái)、飛行動(dòng)力學(xué)仿真、地面站構(gòu)建、飛行姿態(tài)分析、數(shù)據(jù)測(cè)試等方面。
文獻(xiàn)[1]中構(gòu)建了一個(gè)基于PC機(jī)的無(wú)人機(jī)仿真系統(tǒng),集合了無(wú)人機(jī)動(dòng)力學(xué)模型和數(shù)據(jù)/曲線分析功能,著重于控制策略的研究。文獻(xiàn)[2]中提出以全數(shù)字模式支持飛行控制率的驗(yàn)證,并設(shè)計(jì)了兩種相關(guān)聯(lián)的半實(shí)物仿真系統(tǒng)對(duì)UAV飛行狀態(tài)進(jìn)行仿真,可以獲得UAV飛行控制率設(shè)計(jì)的合理性和有效性。為尋求UAV飛行系統(tǒng)控制率的有效設(shè)計(jì)和驗(yàn)證,文獻(xiàn)[3]中構(gòu)建了硬件在環(huán)(Hardware-in-loop, HIL)的實(shí)時(shí)仿真系統(tǒng),以分級(jí)和模塊化的規(guī)則在Matlab/Simulink環(huán)境下建立了UAV非線性模型。HIL仿真系統(tǒng)依托xPC目標(biāo)系統(tǒng),配置了UAV的相關(guān)數(shù)據(jù),可以取得較理想的仿真效果。文獻(xiàn)[3]中提出一種基于無(wú)人機(jī)模擬器的飛控系統(tǒng)仿真方法,考慮工程計(jì)算與仿真訓(xùn)練的需求,飛行參數(shù)可以用最小二乘法對(duì)實(shí)際飛行數(shù)據(jù)進(jìn)行擬合。文獻(xiàn)[4]中提出了一種基于虛擬現(xiàn)實(shí)的無(wú)人機(jī)遠(yuǎn)程仿真平臺(tái),采用了"人在回路"的方案克服UAV控制的不利因素,以解決UAV操控手的訓(xùn)練問題。
HIL和模塊化在無(wú)人機(jī)仿真中處于較突出的位置,而視覺顯示逐漸受到重視。文獻(xiàn)[5]中提出了一種以CAN總線和以太網(wǎng)總線為基礎(chǔ)的UAV 微航電(MicroAvionics)系統(tǒng),將其以HIL方式集成于聯(lián)合飛行網(wǎng)絡(luò)仿真器,可用于微型直升機(jī)和固定翼飛行器自主導(dǎo)航及控制的仿真研究。文獻(xiàn)[6]中提出了一種多無(wú)人機(jī)協(xié)同的仿真與測(cè)試框架,在不同層次上采用了模塊化和分級(jí)架構(gòu),能夠簡(jiǎn)便地從仿真轉(zhuǎn)向?qū)嶋H環(huán)境,從而減少了測(cè)試和調(diào)試時(shí)間。考慮到傳統(tǒng)的訓(xùn)練仿真器一般獨(dú)立于UAV系統(tǒng),UAV操作員無(wú)法在一次進(jìn)程中完成系統(tǒng)測(cè)試和訓(xùn)練,文獻(xiàn)[7]中提出了一種基于UAV機(jī)載設(shè)備的新型訓(xùn)練仿真器,引入了系統(tǒng)架構(gòu)和信號(hào)流水線,以實(shí)時(shí)方式加載無(wú)人機(jī)模型和過(guò)程;該仿真器可同時(shí)測(cè)試飛控系統(tǒng)、無(wú)線數(shù)據(jù)鏈、地面站。部分無(wú)人機(jī)地面控制站系統(tǒng)中還引入了遙控遙測(cè)臺(tái)和視景臺(tái),實(shí)時(shí)采集分析遙測(cè)數(shù)據(jù)、定時(shí)發(fā)送遙控指令,以及向地面導(dǎo)航站實(shí)時(shí)發(fā)送UAV位置數(shù)據(jù);視景臺(tái)用來(lái)顯示圖像數(shù)據(jù),在導(dǎo)航地面站規(guī)劃飛行航線,實(shí)時(shí)跟蹤UAV位置和顯示飛行狀態(tài)。上述地面導(dǎo)航系統(tǒng)主要依托Windows平臺(tái),內(nèi)置穩(wěn)定性較差,并不適合于對(duì)穩(wěn)定性要求較高的無(wú)人機(jī)地面站。
在飛控系統(tǒng)和地面站方面,開源項(xiàng)目得到了廣泛應(yīng)用?;贏rduPilot Mega的ArduPlane開源無(wú)人機(jī)項(xiàng)目始于2009年,其地面站軟件功能尚不夠完善[8]。Paparazzi UAS開源項(xiàng)目始于2003年,目前比較成熟和穩(wěn)定,適用于多種無(wú)人機(jī)型、硬件平臺(tái)及操作系統(tǒng);其地面站軟件功能較豐富,但存在多種缺陷。在飛行動(dòng)力學(xué)仿真方面,開源模型JSBSim支持跨平臺(tái)和面向?qū)ο蟮拈_發(fā)方式,被廣泛應(yīng)用于BoozSimulator、Outerra、FlightGear及OpenEagles等飛行模擬器中[9]。它可以支持任何飛行器的仿真建模而不需要特定的編譯和鏈接程序代碼,而且并不依靠XML格式實(shí)現(xiàn)[10]。
傳統(tǒng)的無(wú)人機(jī)地面站系統(tǒng)數(shù)據(jù)回顯主要采用二維數(shù)字和圖表曲線形式,無(wú)法直接觀察在三維空間內(nèi)飛行的狀態(tài)。在傳統(tǒng)方式中,通常由VRML、WTK、Creator/Vega Prime和OpenGL等平臺(tái)以虛擬方式進(jìn)行仿真,飛行場(chǎng)景由紋理匹配的方式生成,因此可信度低、建模過(guò)程復(fù)雜耗時(shí)。近年來(lái),研究者提出了無(wú)人機(jī)三維視景仿真,用三維圖像來(lái)實(shí)時(shí)再現(xiàn)UAV飛行過(guò)程和狀態(tài),能夠輔助操作人員進(jìn)行判斷,并減少其工作量。
總體上,Matlab/Simulink等平臺(tái)得到廣泛應(yīng)用,基于專用平臺(tái)的無(wú)人機(jī)仿真系統(tǒng)正在受到高度重視,得到了迅速發(fā)展[3,5,11-15]。本文設(shè)計(jì)并實(shí)現(xiàn)了一種小型無(wú)人機(jī)飛行控制系統(tǒng)仿真平臺(tái),將飛機(jī)模型導(dǎo)入基于真實(shí)地形數(shù)據(jù)建立的三維環(huán)境中,通過(guò)在環(huán)程序驅(qū)動(dòng)仿真系統(tǒng),得到三維可視化的仿真結(jié)果。仿真與實(shí)測(cè)飛行數(shù)據(jù)表明,本文構(gòu)建的系統(tǒng)具有良好的仿真效果。
本文所設(shè)計(jì)和構(gòu)建的無(wú)人機(jī)飛控仿真系統(tǒng)由在環(huán)程序、飛行動(dòng)力學(xué)模型、地面站程序及三維可視化程序組成,其系統(tǒng)架構(gòu)如圖1所示。
圖1 無(wú)人機(jī)飛行控制仿真系統(tǒng)框架
考慮到無(wú)人機(jī)系統(tǒng)的實(shí)際需求,仿真平臺(tái)的工作流程設(shè)置為:① 在環(huán)程序?qū)⒖刂菩畔?主要是控制舵機(jī)和油門的PWM信息)通過(guò)UDP協(xié)議發(fā)往飛行動(dòng)力學(xué)模型(JSBSim);② 動(dòng)力學(xué)模型根據(jù)控制信息實(shí)時(shí)計(jì)算UAV狀態(tài)信息,將姿態(tài)數(shù)據(jù)返回在環(huán)程序,同樣采用UDP協(xié)議;③ 在環(huán)程序通過(guò)數(shù)據(jù)鏈路連接地面站程序,將其所獲取的UAV狀態(tài)信息通過(guò)TCP協(xié)議發(fā)往地面站;④ 地面站接收在環(huán)程序的狀態(tài)信息,處理后輸出至顯示屏,并可根據(jù)需要向在環(huán)程序發(fā)送設(shè)定參數(shù)及控制指令;⑤ 地面站將姿態(tài)信息發(fā)往三維姿態(tài)實(shí)時(shí)顯示程序處理;⑥ 遙控信號(hào)通過(guò)相應(yīng)的接口發(fā)送至在環(huán)程序。
飛行動(dòng)力學(xué)模型依托開源的JSBSim進(jìn)行設(shè)計(jì),在程序代碼中不需要對(duì)特定的飛機(jī)進(jìn)行建模。飛機(jī)本身的模型如飛機(jī)質(zhì)量和幾何屬性均位于XML格式的文件中;其它需定義的模型特征則包括起落架位置和屬性、視角、載荷、推進(jìn)系統(tǒng)等。
地面站程序?qū)︼w機(jī)實(shí)際飛行時(shí)的姿態(tài)傳感器數(shù)據(jù)進(jìn)行整合處理后,將數(shù)據(jù)通過(guò)指定的通信接口送給三維可視化程序(FlightGear)進(jìn)行顯示。作為開源的飛行模擬軟件,F(xiàn)lightGear能夠滿足項(xiàng)目的個(gè)性化需求,擁有強(qiáng)大的模擬功能,包括動(dòng)力學(xué)系統(tǒng)、視景系統(tǒng)、儀表系統(tǒng)、助航系統(tǒng)等。同時(shí),F(xiàn)lightGear主要組件與硬件和操作系統(tǒng)無(wú)關(guān),具有較高的可重用性和可擴(kuò)展性。
地面站程序依托Paparazzi平臺(tái)進(jìn)行開發(fā),功能包括飛行監(jiān)控、地圖導(dǎo)航、航線規(guī)劃與航跡操作等。本文根據(jù)無(wú)人機(jī)研究和運(yùn)用過(guò)程中的實(shí)際問題,在地面站基本架構(gòu)的基礎(chǔ)上提出和開發(fā)了多項(xiàng)功能,有助于無(wú)人機(jī)飛行狀態(tài)的研究、分析和控制,主要包括:① 飛行姿態(tài)的三維直觀顯示。由于無(wú)人機(jī)本身的特點(diǎn),地面操作人員很難對(duì)三維空間內(nèi)飛行的無(wú)人機(jī)飛行狀態(tài)形成直觀的感受。將無(wú)人機(jī)發(fā)送至地面站的數(shù)據(jù)轉(zhuǎn)換為三維姿態(tài)圖像,能夠直觀便捷地為地面人員的操作決策提供依據(jù)。 ② 飛行動(dòng)力學(xué)仿真模擬。通過(guò)建立無(wú)人機(jī)外形及各個(gè)部件的物理模型,以計(jì)算機(jī)演算無(wú)人機(jī)的動(dòng)力學(xué)狀態(tài),使地面人員不必實(shí)際操作即可對(duì)無(wú)人機(jī)的飛行過(guò)程形成基本的了解,便于研究人員分析和改善無(wú)人機(jī)的物理結(jié)構(gòu)及飛控系統(tǒng)的控制算法。上述功能將有效提高無(wú)人機(jī)的研究和分析效率,而且是大多數(shù)無(wú)人機(jī)地面站軟件所欠缺的。
基于操作系統(tǒng)平臺(tái)考慮,本文采用跨平臺(tái)的JSBSim來(lái)構(gòu)建無(wú)人機(jī)飛行動(dòng)力學(xué)模型。
2.1 無(wú)人機(jī)模型定義
無(wú)人機(jī)模型的參數(shù)信息以XML語(yǔ)言規(guī)范進(jìn)行編寫。JSBSim將參數(shù)文件分為兩大部分,分別用于定義飛機(jī)和引擎。飛機(jī)定義文件描述了無(wú)人機(jī)的尺寸、重量、機(jī)體結(jié)構(gòu)、舵機(jī)特性等機(jī)械特征;引擎定義文件則規(guī)定了無(wú)人機(jī)所使用的引擎型號(hào),輸入輸出特性及螺旋槳的特性。在使用過(guò)程中,可以根據(jù)無(wú)人機(jī)特點(diǎn)進(jìn)行相應(yīng)的修改以滿足所需的模型特性。
飛機(jī)模型的部件定義位于模型文件夾下的set文件中,給出了聲音、面板、模型等所在的路徑。引擎模型Engines文件夾中存放了UAV所使用的引擎型號(hào)及輸入輸出特性,需要根據(jù)引擎實(shí)際特性構(gòu)建模型。
2.2 飛行動(dòng)力學(xué)模型及參數(shù)
在飛行過(guò)程中,無(wú)人機(jī)受到作用于機(jī)身上的力和力矩共同影響。作用在飛機(jī)上的力由三部分組成,包括引擎推力、重力和氣動(dòng)力。而作用于飛機(jī)上的力矩是矢量,沿空間坐標(biāo)系分解為三個(gè)力矩:滾轉(zhuǎn)力矩、偏轉(zhuǎn)力矩和俯仰力矩[10]。
2.2.1 氣動(dòng)力
阻力D、側(cè)力Y、升力L的氣動(dòng)力計(jì)算公式為
(1)
式中:CD、CY、CL分別為阻力、側(cè)力及升力系數(shù);S是機(jī)翼的參考面積;q是動(dòng)壓,與無(wú)人機(jī)所在高度的空氣密度ρ和飛機(jī)的空速V相關(guān):
(2)
2.2.2 氣動(dòng)力矩
滾轉(zhuǎn)力矩R、俯仰力矩M、偏轉(zhuǎn)力矩N的氣動(dòng)力矩計(jì)算公式為
(3)
2.2.3 氣動(dòng)參數(shù)計(jì)算
無(wú)人機(jī)的氣動(dòng)參數(shù)都是在風(fēng)洞實(shí)驗(yàn)數(shù)據(jù)的基礎(chǔ)上,進(jìn)行插值計(jì)算得到。因此,力和力矩系數(shù)(即氣動(dòng)參數(shù))存在多種可能的數(shù)學(xué)模型。JSBSim所使用的系數(shù)模型為[7]:
(4)
(5)
2.2.4 不確定性模型
由于獲取參數(shù)實(shí)驗(yàn)本身存在誤差以及物理系統(tǒng)模型的局限性,從實(shí)驗(yàn)獲取以上氣動(dòng)參數(shù)存在不確定性。為了解決不確定性造成的影響,本文引入?yún)?shù)不確定性模型[11]。
(6)
式中:
(9)
2.2.5 運(yùn)動(dòng)學(xué)方程
本文采用了文獻(xiàn)[1]所給出的運(yùn)動(dòng)學(xué)方程得到無(wú)人機(jī)姿態(tài)的三個(gè)歐拉角和其在機(jī)體坐標(biāo)系下的速度,從而建立無(wú)人機(jī)的運(yùn)動(dòng)學(xué)模型。
在環(huán)程序用PWM信號(hào)所代表的控制量輸入到JSBSim引擎中,仿真引擎通過(guò)對(duì)以上飛行動(dòng)力學(xué)方程的實(shí)時(shí)解算,即可得到無(wú)人機(jī)在當(dāng)前時(shí)刻的狀態(tài)量,進(jìn)而得出無(wú)人機(jī)在整個(gè)仿真過(guò)程中的運(yùn)行軌跡。上述模型根據(jù)控制量和無(wú)人機(jī)自身特性,解算飛行姿態(tài)、位置、速度等,得到仿真數(shù)據(jù)和曲線。在此基礎(chǔ)上,將仿真和實(shí)際測(cè)試進(jìn)行了對(duì)比,以驗(yàn)證該模型的可靠性。
2.3 在環(huán)程序與數(shù)據(jù)交互
在環(huán)程序分為硬件在環(huán)和軟件在環(huán)兩種:① 硬件在環(huán)是將實(shí)際控制器和虛擬控制對(duì)象結(jié)合的仿真方法。被用于測(cè)試代碼在實(shí)際控制器中的實(shí)時(shí)運(yùn)行情況。具體地,將代碼寫入實(shí)際飛行控制器中,由PC機(jī)將仿真的傳感器數(shù)據(jù)及地面站控制指令發(fā)送至實(shí)際飛行控制器中,經(jīng)綜合處理后將生成的控制信息發(fā)回PC機(jī),以此來(lái)檢驗(yàn)代碼的運(yùn)行效果。② 軟件在環(huán)運(yùn)行與硬件在環(huán)相同的代碼。但其作為PC機(jī)上的本地可執(zhí)行文件運(yùn)行,在寄存器級(jí)上模擬飛行控制板硬件。因此,關(guān)鍵的底層硬件驅(qū)動(dòng)(如ADC、陀螺儀、加速度計(jì)和GPS)運(yùn)行環(huán)境與真實(shí)飛行過(guò)程相仿。
對(duì)于兩種在環(huán)方式,均需要建立數(shù)據(jù)鏈路,以便與地面站和飛行動(dòng)力學(xué)模型進(jìn)行數(shù)據(jù)交互。
2.3.1 空-地?cái)?shù)據(jù)交互
考慮到數(shù)據(jù)準(zhǔn)確性和可靠性,本文使用TCP協(xié)議(軟件在環(huán))或串口(硬件在環(huán))與地面站程序進(jìn)行交互。由于在環(huán)程序與地面站程序相對(duì)獨(dú)立,需要設(shè)計(jì)專用的通信程序。具體步驟如下:
(1) 根據(jù)所提供的數(shù)據(jù)交互接口與在環(huán)程序建立連接;
(2) 與地面站程序建立TCP連接;
(3) 等待在環(huán)程序或地面站程序發(fā)送數(shù)據(jù);
(4) 獲取在環(huán)程序發(fā)送的數(shù)據(jù),校驗(yàn)數(shù)據(jù)的有效性,將有效數(shù)據(jù)發(fā)往地面站;
(5) 獲取地面站程序發(fā)送的數(shù)據(jù),校驗(yàn)數(shù)據(jù)的有效性,將有效數(shù)據(jù)發(fā)往在環(huán)程序;
(6) 返回第③步。
2.3.2 與JSBSim仿真引擎進(jìn)行數(shù)據(jù)交互
從數(shù)據(jù)傳輸?shù)膶?shí)時(shí)性和快速性方面考慮,本文采用UDP協(xié)議的Socket套接字與JSBSim進(jìn)行數(shù)據(jù)交互。指定JSBSim仿真引擎的數(shù)據(jù)輸入端口,在無(wú)人機(jī)模型配置文件中指定端口號(hào)。JSBSim引擎啟動(dòng)后,將監(jiān)聽來(lái)自于指定端口的數(shù)據(jù)。JSBSim支持變量設(shè)置及獲取、仿真啟動(dòng)及停止等指令,建立與JSBSim的連接后可以向JSBSim監(jiān)聽端口發(fā)送指令來(lái)控制仿真過(guò)程。
對(duì)于地面站程序與在環(huán)程序之間的通信,本文通過(guò)軟件進(jìn)行數(shù)據(jù)有效性校驗(yàn)及轉(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ù)后,需要針對(duì)FlightGear進(jìn)行單位轉(zhuǎn)換。與FlightGear通信必須使用指定的通信模型,并且為了保證通用性而包含了飛行器模型飛行時(shí)需要的所有參數(shù)信息。本文僅使用部分參數(shù),如經(jīng)度、緯度、海拔、以及各個(gè)方向的旋轉(zhuǎn)角度等。
由于數(shù)據(jù)需要通過(guò)UDP協(xié)議進(jìn)行傳輸,為了適應(yīng)網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)格式,需要對(duì)原始數(shù)據(jù)進(jìn)行封裝處理。本文采用Python中struct-pack方法,將各個(gè)獨(dú)立的數(shù)據(jù)封裝為一個(gè)整體。
系統(tǒng)通過(guò)基于UDP協(xié)議的Socket套接字發(fā)送數(shù)據(jù)。發(fā)送步驟參考外部數(shù)據(jù)的實(shí)際生成時(shí)間,即一旦獲得數(shù)據(jù)更新就立刻進(jìn)行數(shù)據(jù)處理和發(fā)送,以保證數(shù)據(jù)發(fā)送的快速性和實(shí)時(shí)性。
保障姿態(tài)數(shù)據(jù)即時(shí)發(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) 對(duì)姿態(tài)數(shù)據(jù)專用變量中的數(shù)據(jù)進(jìn)行封裝;
(6) 發(fā)送封裝后的數(shù)據(jù),開放次要中斷;
(7) 返回第2步。
3.2 數(shù)據(jù)鏈路構(gòu)建
飛行模擬對(duì)實(shí)時(shí)性要求較高,畫面渲染和模擬數(shù)據(jù)傳輸?shù)南到y(tǒng)資源開銷很大;而且前后幀的模擬數(shù)據(jù)相差很小,飛行模擬對(duì)數(shù)據(jù)的可靠性要求不高。因此,本文使用基于數(shù)據(jù)報(bào)套接字的UDP協(xié)議構(gòu)建地面站/FlightGear、軟件在環(huán)程序/JSBSim模型的通信模塊。
通信模塊分為客戶端和服務(wù)器端,可以部署于同一臺(tái)機(jī)器或不同的機(jī)器上。在網(wǎng)絡(luò)中進(jìn)行通信至少需要一對(duì)套接字,分別運(yùn)行于客戶端(稱為ClientSocket)和服務(wù)器端(ServerSocket)。本文使用UDP協(xié)議實(shí)現(xiàn)數(shù)據(jù)傳輸。
硬件在環(huán)仿真中需要將實(shí)際控制器的數(shù)據(jù)通過(guò)串口與PC機(jī)相連,以便進(jìn)行數(shù)據(jù)交換。同時(shí),基于數(shù)據(jù)可靠性考慮,在地面站與軟件在環(huán)程序通信模塊上采用TCP協(xié)議,以保證地面站對(duì)軟件在環(huán)程序能進(jìn)行準(zhǔn)確控制。
4.1 飛行器及地形的三維模型
本文使用AC3D軟件完成三維飛行器模型的構(gòu)建,并導(dǎo)入仿真系統(tǒng)。
FlightGear使用原始高程數(shù)據(jù),經(jīng)過(guò)轉(zhuǎn)換成為三維地形模型而實(shí)現(xiàn)地景模型的構(gòu)建。地形數(shù)據(jù)基于SRTM(Shuttle Radar Topography Mission)構(gòu)建,世界場(chǎng)景由TerraGear工具集/渲染庫(kù)生成,將地理信息數(shù)據(jù)轉(zhuǎn)換為三維模型或地圖。TerraGear可以導(dǎo)入數(shù)字高程模型地形網(wǎng)格的三維數(shù)據(jù)集,以及城市輪廓、海岸線、湖泊輪廓的二維多邊形數(shù)據(jù)集,也可以根據(jù)數(shù)據(jù)生成機(jī)場(chǎng)、跑道。FlightGear使用外部動(dòng)力學(xué)模型(external),其他程序可通過(guò)TCP/IP或者UDP網(wǎng)絡(luò)協(xié)議給FlightGear發(fā)送飛行參數(shù)數(shù)據(jù)包驅(qū)動(dòng)視景顯示。本文采用external方式,將飛行器的位置和姿態(tài)信息通過(guò)通信模塊發(fā)送給FlightGear的仿真模塊,驅(qū)動(dòng)飛行器仿真。
4.2 無(wú)人機(jī)仿真過(guò)程及數(shù)據(jù)分析
本文所建立的無(wú)人機(jī)仿真過(guò)程為:① 構(gòu)建JSBSim無(wú)人機(jī)仿真模型;② 編譯代碼并寫入實(shí)際飛行控制器(硬件在環(huán))或者將飛控代碼編譯為PC機(jī)可執(zhí)行文件;③ 啟動(dòng)在環(huán)程序及JSBSim仿真引擎;④ 啟動(dòng)通信模塊,使各程序之間能正常通信;⑤ 啟動(dòng)FlightGear顯示無(wú)人機(jī)三維姿態(tài)圖像;⑥ 使用地面站控制在環(huán)程序的仿真過(guò)程。
在本文所構(gòu)建的無(wú)人機(jī)仿真平臺(tái)中,飛控代碼通過(guò)平臺(tái)執(zhí)行,并將六自由度飛行數(shù)據(jù)進(jìn)行處理,經(jīng)通信模塊傳遞給FlightGear。在仿真系統(tǒng)顯示屏上可以準(zhǔn)確地以三維模型顯示無(wú)人機(jī)的各種姿態(tài),并能夠變換視角從任意角度觀察無(wú)人機(jī)的姿態(tài)。
為簡(jiǎn)便起見,本文在PPRZ中將仿真航跡指定為以STDBY為圓心、以50 m為半徑的圓周,且海拔高度為120 m(地面海拔高度45 m)。整個(gè)仿真過(guò)程中,固定翼無(wú)人機(jī)均采用自動(dòng)模式。圖2所示為實(shí)驗(yàn)結(jié)果的截圖,其中左側(cè)子圖是仿真無(wú)人機(jī)的飛行軌跡,右側(cè)子圖是FlightGear顯示的虛擬飛機(jī)姿態(tài)及位置。
圖2 無(wú)人機(jī)仿真航行實(shí)驗(yàn)
從飛行軌跡圖中可以看出,仿真無(wú)人機(jī)在做順時(shí)針繞圓周運(yùn)動(dòng),與此相應(yīng)的無(wú)人機(jī)姿態(tài)是向右滾轉(zhuǎn)。在后視視角及俯視45°視角上,均可以觀察到虛擬無(wú)人機(jī)的姿態(tài)與仿真方向相符,仿真系統(tǒng)顯示的虛擬無(wú)人機(jī)姿態(tài)及位置均能很好地吻合無(wú)人機(jī)的軌跡。
無(wú)人機(jī)飛行仿真的海拔高度曲線如圖3所示,可以看出:高度值在起飛之后的一段時(shí)間內(nèi)出現(xiàn)超調(diào),但很快恢復(fù)至預(yù)設(shè)高度,并保持平穩(wěn)狀態(tài),可以驗(yàn)證飛行控制算法的穩(wěn)定性。
圖3 無(wú)人機(jī)仿真飛行海拔高度曲線
圖4為移除了地圖背景的無(wú)人機(jī)仿真飛行軌跡,仿真軌跡雖然沒有完全緊貼預(yù)設(shè)軌跡,但始終以較小偏差穩(wěn)定在預(yù)設(shè)軌跡附近。從飛控代碼和仿真環(huán)境方面進(jìn)行分析,圖中情形均符合實(shí)際情況。
圖4 無(wú)人機(jī)仿真飛行軌跡
4.3 無(wú)人機(jī)仿真系統(tǒng)驗(yàn)證
在仿真的基礎(chǔ)上,本文進(jìn)行了無(wú)人機(jī)的實(shí)際飛行實(shí)驗(yàn)以驗(yàn)證仿真系統(tǒng)的可靠性。為了與仿真過(guò)程盡可能相似,無(wú)人機(jī)的控制算法和航跡設(shè)定均與仿真過(guò)程相同(設(shè)定航跡的圓心位置有些偏差,但半徑均為50 m)。實(shí)際飛行時(shí)風(fēng)力為西北風(fēng)2級(jí)。
無(wú)人機(jī)由遙控手動(dòng)起飛,升高至海拔110 m時(shí)切換至自動(dòng)模式,之后按預(yù)設(shè)軌跡自主飛行。從圖5可以看出,無(wú)人機(jī)自右方進(jìn)入自動(dòng)模式;由于受西北風(fēng)的影響,最初的飛行軌跡偏向東南方,之后在飛控對(duì)航跡的修正下,無(wú)人機(jī)距離預(yù)定軌跡的偏差逐漸減小。
圖6顯示了無(wú)人機(jī)飛行實(shí)驗(yàn)的數(shù)據(jù)及曲線。
圖5 無(wú)人機(jī)實(shí)際飛行的軌跡
圖6(a)和(b)分別顯示了地面站數(shù)傳接收數(shù)據(jù)的速率和GPS定位精度。圖6(c)給出了無(wú)人機(jī)的飛行模式變化,0代表手動(dòng)模式,1代表增穩(wěn)模式,2代表自動(dòng)模式。圖6(d)為GPS高度曲線。在1 500 s之后數(shù)據(jù)傳輸速率有所下降,而GPS的定位精度降低。原因在于:此時(shí)無(wú)人機(jī)處于手動(dòng)下降過(guò)程中(在圖6(d)中可以看出高度的下降),由于周圍建筑物的阻擋,數(shù)傳和GPS的信號(hào)均受到較大影響,因此導(dǎo)致GPS定位精度變差;由于GPS高度曲線的可信度受GPS精度和數(shù)傳速率的影響,僅當(dāng)GPS及數(shù)傳信號(hào)比較好時(shí),地面站接收的高度信息才具有參考價(jià)值。
從圖6可以看出,當(dāng)無(wú)人機(jī)處于自動(dòng)模式時(shí),通信鏈路和GPS信號(hào)良好,無(wú)人機(jī)高度穩(wěn)定在預(yù)設(shè)的海拔120 m附近。這表明自動(dòng)飛行時(shí)得到的數(shù)據(jù)是具有參考價(jià)值的,即圖5所示飛行軌跡是可靠的。
對(duì)比圖2和圖5可以觀察到,仿真和實(shí)際的飛行軌跡在排除環(huán)境風(fēng)力的影響后較為接近。對(duì)比圖3和圖6(d),考慮到實(shí)際GPS定位精度的影響,可以認(rèn)為自動(dòng)飛行模式下的仿真與實(shí)際飛行高度較為接近。上述對(duì)比表明本文設(shè)計(jì)的仿真系統(tǒng)能較好地模擬實(shí)際飛行狀態(tài)、驗(yàn)證飛行控制算法。
(a) 地面站數(shù)傳接收數(shù)據(jù)速率
(b) GPS定位精度
(c) 飛行控制模式
(d) GPS定位的海拔高度
本文設(shè)計(jì)并構(gòu)建了小型無(wú)人機(jī)的飛行控制仿真系統(tǒng),實(shí)現(xiàn)了無(wú)人機(jī)三維姿態(tài)顯示,飛行運(yùn)動(dòng)學(xué)仿真模塊和航線仿真飛行。仿真與實(shí)際飛行數(shù)據(jù)表明,所構(gòu)建的仿真系統(tǒng)能夠很好地滿足小型無(wú)人機(jī)姿態(tài)控制和飛行仿真,并實(shí)現(xiàn)較高的精度和準(zhǔn)確性。該系統(tǒng)可用于無(wú)人機(jī)飛行控制率、飛行性能評(píng)估、實(shí)時(shí)姿態(tài)觀察及評(píng)估,對(duì)固定翼無(wú)人機(jī)總體方案規(guī)劃和飛行品質(zhì)評(píng)估研究具有積極的參考價(jià)值。
[1] 董苗波, 孫增圻. 基于PC機(jī)的無(wú)人機(jī)仿真系統(tǒng)開發(fā)[J]. 系統(tǒng)仿真學(xué)報(bào), 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ī)的無(wú)人機(jī)仿真系統(tǒng)[J]. 系統(tǒng)仿真學(xué)報(bào), 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)國(guó), 王振華, 等. 無(wú)人機(jī)自適應(yīng)編隊(duì)飛行控制設(shè)計(jì)與仿真[J]. 系統(tǒng)仿真學(xué)報(bào), 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
國(guó)家自然科學(xué)基金資助項(xiàng)目(61273078);中國(guó)博士后科研基金(2012M511164);教育部高?;A(chǔ)科研業(yè)務(wù)費(fèi)項(xiàng)目(N130404023)
張?jiān)浦?1974-), 男, 河南澠池人, 博士, 副教授,研究方向?yàn)橹悄軝C(jī)器人/無(wú)人機(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