李 瑞, 史瑩晶, 李青松
(1. 電子科技大學(xué) 自動(dòng)化工程學(xué)院, 成都 611731; 2. 中國(guó)船舶重工集團(tuán)公司 第七二二研究所, 武漢 225001)
與固定翼飛行器相比,四旋翼飛行器(以下簡(jiǎn)稱:四旋翼)結(jié)構(gòu)簡(jiǎn)單緊湊、機(jī)動(dòng)性強(qiáng)、操控靈活、能源利用率高、安全性高,適合在近地面環(huán)境中執(zhí)行監(jiān)視、偵查等任務(wù),具有廣闊的軍事和民用前景,因而,吸引了大批科研人員進(jìn)行相關(guān)研究[1-6]。
由于四旋翼飛行器在動(dòng)力學(xué)上具有靜不穩(wěn)定、欠驅(qū)動(dòng)、強(qiáng)耦合、非線性等特點(diǎn),使得控制器設(shè)計(jì)與實(shí)現(xiàn)有較大難度。傳統(tǒng)的純數(shù)值仿真雖簡(jiǎn)便、高效,但控制效果不夠直觀,且仿真環(huán)境過于理想化,難以真實(shí)地反映復(fù)雜的實(shí)際情況;而實(shí)物飛行測(cè)試雖直觀、真實(shí),但實(shí)驗(yàn)風(fēng)險(xiǎn)大、成本高、周期長(zhǎng),并且容易受到天氣、環(huán)境等制約。
半實(shí)物仿真則介于純數(shù)值仿真和實(shí)物飛行之間,其將部分控制對(duì)象及控制裝置實(shí)物嵌入仿真系統(tǒng)結(jié)構(gòu)中,旨在保留數(shù)值仿真優(yōu)良特性的同時(shí),不失被控對(duì)象的真實(shí)性。飛行器模型可從實(shí)物控制器采集到真實(shí)的信息,以此檢驗(yàn)飛控板的控制性能。同時(shí),半實(shí)物仿真可靠、操作便捷,可謂兼?zhèn)淞思償?shù)值仿真和實(shí)物飛行測(cè)試的優(yōu)點(diǎn)。
對(duì)四旋翼來說,半實(shí)物仿真既是便捷可靠的科研手段,又可作為從純數(shù)值仿真向?qū)嵨镲w行的過渡平臺(tái),國(guó)內(nèi)外已有多所高校及科研院所成功搭建了四旋翼半實(shí)物仿真平臺(tái)[7-11]。固高四旋翼半實(shí)物仿真平臺(tái)主要由運(yùn)動(dòng)控制卡、3自由度實(shí)驗(yàn)本體組成,基于Matlab快速模型,方便修改調(diào)試,大大縮短控制器設(shè)計(jì)周期。dSPACE是由軟件和專用硬件組成的一整套開發(fā)平臺(tái),可實(shí)現(xiàn)快速原型化和半實(shí)物仿真一體化。Chen等[11]采用dSPACE仿真平臺(tái)對(duì)一款商用四旋翼飛行器(Draganflyer3)進(jìn)行了辨識(shí)和控制算法檢驗(yàn),Kis等[12]也基于自主研發(fā)的四旋翼平臺(tái)進(jìn)行了實(shí)時(shí)仿真。宋子豪[13]利用dSPACE系統(tǒng)搭建了八旋翼飛行器仿真平臺(tái),控制器采用實(shí)物飛控板,仿真對(duì)象是Simulink數(shù)學(xué)模型,對(duì)八旋翼無人機(jī)的多種飛行模式進(jìn)行仿真并成功運(yùn)用到實(shí)物飛行中。但是,目前多數(shù)半實(shí)物仿真平臺(tái)或采用商用的仿真系統(tǒng),其軟、硬件造價(jià)昂貴,或仿真系統(tǒng)的實(shí)時(shí)性和穩(wěn)定性不好,或真實(shí)信息舍棄過多,導(dǎo)致控制效果不夠明顯。
針對(duì)實(shí)際應(yīng)用需求,設(shè)計(jì)并實(shí)現(xiàn)了一款可快速迭代、實(shí)時(shí)性高、界面友好、可信度高的半實(shí)物仿真平臺(tái),并在該平臺(tái)上進(jìn)行了四旋翼的仿真分析,所得半實(shí)物仿真結(jié)果能夠直接應(yīng)用于四旋翼實(shí)物平臺(tái)。
因?yàn)榉抡婊芈分杏杏布?shí)物,為保證對(duì)象模型解算能夠在規(guī)定的采樣周期內(nèi)完成,仿真平臺(tái)需要滿足強(qiáng)實(shí)時(shí)性。實(shí)時(shí)操作系統(tǒng)VxWorks是專為實(shí)時(shí)嵌入式系統(tǒng)設(shè)計(jì)的操作系統(tǒng),自推出以來,得到包括美國(guó)軍方在內(nèi)的國(guó)內(nèi)外用戶的認(rèn)可,已被廣泛應(yīng)用于包括美國(guó)火星探路者、F-16、B-2轟炸機(jī)等的大量嵌入式設(shè)備上[14],是市場(chǎng)占有率最高的嵌入式系統(tǒng)之一。本文采用VxWorks操作系統(tǒng),使仿真系統(tǒng)軟件在可靠性、穩(wěn)定性和實(shí)時(shí)性方面有了保障;同時(shí)為VxWorks操作系統(tǒng)和仿真計(jì)算機(jī)在半實(shí)物仿真應(yīng)用提供了經(jīng)驗(yàn)。
本文將從上位機(jī)、仿真計(jì)算機(jī)、四旋翼飛行控制器3方面介紹上述四旋翼半實(shí)物仿真平臺(tái),并給出對(duì)四旋翼的姿態(tài)、位置控制的實(shí)驗(yàn)結(jié)果。
四旋翼半實(shí)物仿真平臺(tái)總體設(shè)計(jì)框架如圖1所示。整個(gè)仿真平臺(tái)包括由個(gè)人電腦組成的上位機(jī)、四旋翼飛行控制板、工控機(jī)組成的仿真計(jì)算機(jī)3部分。
圖1 總體框架圖
個(gè)人電腦運(yùn)行上位機(jī)程序,主要用于在線監(jiān)控仿真過程和參數(shù)修改以及仿真結(jié)果展示。除此之外,在嵌入式交叉編譯中,個(gè)人電腦不但充當(dāng)宿主機(jī)用于VxWorks目標(biāo)機(jī)操作系統(tǒng)配置、驅(qū)動(dòng)軟件和應(yīng)用程序的編譯和調(diào)試,而且實(shí)現(xiàn)四旋翼模型、飛控系統(tǒng)仿真模型的建立及其全數(shù)字仿真的運(yùn)行、驗(yàn)證,并且完成模型及其控制律的下載等任務(wù)。四旋翼飛控板運(yùn)行原始四旋翼飛控程序,在半實(shí)物仿真中作為實(shí)物接入。工控機(jī)運(yùn)行VxWorks操作系統(tǒng)和仿真應(yīng)用程序,主要負(fù)責(zé)解析上位機(jī)命令和參數(shù)、對(duì)象模型離散化、四旋翼動(dòng)力學(xué)和運(yùn)動(dòng)學(xué)模型解算。個(gè)人電腦和飛控板、飛控板與工控機(jī)之間通過串口連接,個(gè)人電腦與工控機(jī)之間通過網(wǎng)絡(luò)連接,以太網(wǎng)的作用是下載編譯后的可運(yùn)行模塊、在線調(diào)整模型參數(shù)、數(shù)據(jù)傳輸、仿真啟??刂?。四旋翼飛控板和實(shí)時(shí)對(duì)象模型通過高速硬件接口形成一個(gè)閉環(huán)控制回路。
對(duì)物體運(yùn)動(dòng)的描述首先要建立合適的坐標(biāo)系。文章采用慣性坐標(biāo)系和機(jī)體坐標(biāo)系構(gòu)建四旋翼飛行器動(dòng)力學(xué)模型。慣性坐標(biāo)系中OXe指向地理北向,OYe指向地理東向,OZe垂直于地面向下。機(jī)體坐標(biāo)系中沿著機(jī)體向前的方向?yàn)闄C(jī)體系X軸,沿著機(jī)身向右,與X軸垂直為機(jī)體Y軸方向,沿著機(jī)體垂直向下為機(jī)體系Z軸,滿足右手定則。
將四旋翼飛行器看做一個(gè)剛體,可以將四旋翼動(dòng)力學(xué)模型分為平移運(yùn)動(dòng)和旋轉(zhuǎn)運(yùn)動(dòng)兩個(gè)子系統(tǒng)。在懸停狀態(tài)下,忽略空氣阻力,由文獻(xiàn)[15]可知,四旋翼飛行器的非線性數(shù)學(xué)模型為:
式中:(x,y,z)為四旋翼的位置坐標(biāo);φ,θ,φ為機(jī)體坐標(biāo)系下四旋翼沿3軸的旋轉(zhuǎn)角度,分別是滾轉(zhuǎn)角、俯仰角和偏航角;Ix,Iy,Iz分別為四旋翼飛行器3軸轉(zhuǎn)動(dòng)慣量;l為旋翼在機(jī)體軸向與四旋翼質(zhì)心的距離;系統(tǒng)的控制輸入U(xiǎn)1和U2~U4分別為4個(gè)旋翼產(chǎn)生的力和力矩;m為四旋翼飛行器的質(zhì)量。
根據(jù)第1節(jié)提出的總體設(shè)計(jì)框架,下文將分別設(shè)計(jì)上位機(jī)程序、四旋翼飛行控制器和仿真計(jì)算機(jī)程序。
仿真平臺(tái)的上位機(jī)程序框架如圖2所示。
圖2 上位機(jī)程序框架
上位機(jī)程序設(shè)計(jì)主要在虛擬儀器開發(fā)環(huán)境Labwindows/CVI中完成。通過與數(shù)據(jù)采集卡連接,CVI可以實(shí)現(xiàn)個(gè)性化定制,針對(duì)專用界面和功能,在同一臺(tái)電腦上可以實(shí)現(xiàn)示波器、頻譜分析、信號(hào)發(fā)生等各種功能。CVI應(yīng)用程序采用模塊化設(shè)計(jì),基于消息響應(yīng)機(jī)制,用戶只需要編寫模塊的響應(yīng)回調(diào)函數(shù)即可實(shí)現(xiàn)相應(yīng)的功能,方便快捷,不需要用戶對(duì)界面編程有很深入的了解。
如圖3所示,上位機(jī)程序主要分為仿真控制、參數(shù)配置、結(jié)果展示以及通信4個(gè)模塊。其中網(wǎng)絡(luò)通信采用傳輸控制協(xié)議/網(wǎng)間協(xié)議(Transmission Control Protocol/Internet Protocol,TCP/IP),上位機(jī)程序作為客戶端,打開上位機(jī)的時(shí)候主動(dòng)發(fā)出連接請(qǐng)求。由于四旋翼飛行控制分為姿態(tài)控制和位置控制,因此需要對(duì)不同的控制模式進(jìn)行切換,仿真控制程序主要負(fù)責(zé)模式切換和仿真運(yùn)行以及數(shù)據(jù)保存回顯等功能。
圖3 上位機(jī)界面
為了實(shí)現(xiàn)半實(shí)物仿真平臺(tái)的設(shè)計(jì),首先需要設(shè)計(jì)四旋翼飛行器的控制器。在第2節(jié)的基礎(chǔ)上,對(duì)四旋翼非線性數(shù)學(xué)模型進(jìn)行線性化處理,四旋翼的控制可以解耦成高度、俯仰、滾轉(zhuǎn)和偏航等通道。采用PID控制算法對(duì)4個(gè)通道分別控制,系統(tǒng)框圖見圖4。
圖4 四旋翼飛行器控制器結(jié)構(gòu)
針對(duì)四旋翼的實(shí)物平臺(tái),將上文設(shè)計(jì)的控制器轉(zhuǎn)為嵌入式C語言程序,并將程序移植到飛行控制板上,根據(jù)主控芯片的處理速度,設(shè)計(jì)合適的控制流程,如圖5所示。
圖5 四旋翼飛行控制器
在實(shí)物平臺(tái)上,通過遙控器或者個(gè)人電腦PC端給出控制指令,控制器首先接收控制指令并對(duì)指令進(jìn)行解析,然后判斷四旋翼的控制模式,最后根據(jù)期望的控制量對(duì)四旋翼進(jìn)行控制。其中,模式判斷每3 ms進(jìn)行一次,角速度控制周期為2 ms,角度控制周期為5 ms,速度控制周期為20 ms,位置控制周期為50 ms。在姿態(tài)控制模式中,外環(huán)為角度控制,內(nèi)環(huán)為角速度控制,外環(huán)的輸出作為內(nèi)環(huán)的輸入;在位置控制模式中,外環(huán)為位置控制,內(nèi)環(huán)為速度控制,速度控制器的輸出量為角度控制器的輸入。
仿真計(jì)算機(jī)主要負(fù)責(zé)網(wǎng)絡(luò)通信任務(wù)、串口通信任務(wù)、通信狀態(tài)檢測(cè)、飛行控制器解算、對(duì)象模型動(dòng)力學(xué)解算、仿真控制指令的解析和執(zhí)行、仿真周期定時(shí)任務(wù)。根據(jù)任務(wù)的功能和特性,進(jìn)行模塊化設(shè)計(jì)。
圖6 仿真計(jì)算機(jī)程序結(jié)構(gòu)
本文針對(duì)第2節(jié)構(gòu)建的四旋翼模型和3.2節(jié)中設(shè)計(jì)的雙回路PID控制器,首先在Matlab環(huán)境中搭建了Simulink模型。實(shí)時(shí)工作間(Real-Time Workshop,RTW)是Matlab/Simulink一個(gè)工具箱,在代碼自動(dòng)生成技術(shù)方面較為成熟。因而,使用RTW將仿真模型轉(zhuǎn)化為實(shí)時(shí)性高、性能可靠的目標(biāo)平臺(tái)代碼。
四旋翼仿真模型導(dǎo)入過程為:① 設(shè)置仿真模型參數(shù),設(shè)置目標(biāo)文件格式。針對(duì)工控機(jī)平臺(tái)選擇ert.tlc文件和C語言。② 設(shè)置仿真周期。針對(duì)實(shí)時(shí)仿真平臺(tái)采用固定仿真周期,選擇ode4步長(zhǎng)模式解算器。③ 在Simulink界面點(diǎn)擊Build Model(生成模型)等待生成嵌入式代碼,存放在當(dāng)前目錄文件夾中。④ 在協(xié)同仿真環(huán)境Workbench中新建仿真項(xiàng)目,復(fù)制嵌入式代碼到項(xiàng)目文件夾中,編寫仿真任務(wù)應(yīng)用程序,設(shè)置控制器和對(duì)象模型的輸入輸出接口。
網(wǎng)絡(luò)通信是一種常用的通信方式,其傳輸速度快、實(shí)現(xiàn)方便并且技術(shù)已經(jīng)成熟,可實(shí)現(xiàn)跨平臺(tái)之間的通信,適合Windows程序和VxWorks程序之間的通信。因此,本文將工控機(jī)平臺(tái)作為服務(wù)器端,上位機(jī)作為客戶端,使用網(wǎng)絡(luò)通信的方式來實(shí)現(xiàn)工控機(jī)平臺(tái)與PC端上位機(jī)之間的長(zhǎng)時(shí)間的可靠通信。
四旋翼飛行控制板與外界數(shù)據(jù)的交互通過串口方式實(shí)現(xiàn)。在對(duì)四旋翼進(jìn)行控制時(shí),控制任務(wù)采用固定周期解算控制輸出,角度環(huán)控制采用5 ms的更新周期,角速度環(huán)更新周期是2 ms。為了保證串口通信的可靠、實(shí)時(shí)性,采用有限狀態(tài)機(jī)編寫串口接收模塊。對(duì)數(shù)據(jù)幀解析過程如圖7所示。
圖7 串口解析有限狀態(tài)機(jī)
仿真任務(wù)模塊是半實(shí)物仿真平臺(tái)的核心,必須保證一定的實(shí)時(shí)性和準(zhǔn)確性。本文設(shè)計(jì)的仿真任務(wù)模塊主要完成仿真初始化、四旋翼動(dòng)力學(xué)解算。仿真任務(wù)阻塞在接收信號(hào)量階段,一旦串口數(shù)據(jù)解析正確將發(fā)送信號(hào)量,實(shí)現(xiàn)仿真任務(wù)的同步。仿真任務(wù)解算完畢將分別通過串口和網(wǎng)口將四旋翼反饋狀態(tài)發(fā)送至上位機(jī)用于實(shí)時(shí)顯示和保存,并通過網(wǎng)口將反饋狀態(tài)發(fā)送至飛行控制器進(jìn)行下一步控制解算。半實(shí)物仿真平臺(tái)如圖8所示。
文中設(shè)計(jì)了一系列仿真實(shí)驗(yàn)對(duì)半實(shí)物仿真平臺(tái)進(jìn)行性能測(cè)試。首先在Matlab/Simulink中完成四旋翼控制器和對(duì)象模型的搭建,對(duì)姿態(tài)控制和位置控制進(jìn)行仿真驗(yàn)證。然后將四旋翼對(duì)象模型生成相應(yīng)的嵌入式C代碼,移植到仿真計(jì)算機(jī),將控制器移植到實(shí)際的飛控板中,在半實(shí)物仿真平臺(tái)中驗(yàn)證控制器的控制效果。最后將飛控板移植到實(shí)際四旋翼實(shí)物平臺(tái)進(jìn)行實(shí)際飛行驗(yàn)證。
在將控制器移植到飛控板之前,必要的Matlab仿真可以減小后續(xù)飛行器調(diào)試的工作量。姿態(tài)控制是四旋翼穩(wěn)定飛行的關(guān)鍵,在Simulink中分別設(shè)置四旋翼期望的滾轉(zhuǎn)角、俯仰角、偏航角均為12°,四旋翼飛行器的階躍響應(yīng)如圖9所示。由圖可見,在控制器作用下,四旋翼姿態(tài)角的角度響應(yīng)能在2s以內(nèi)達(dá)到期望姿態(tài)角,超調(diào)量小于3%,且?guī)缀鯖]有穩(wěn)態(tài)誤差。
(a) 滾轉(zhuǎn)角的姿態(tài)控制
在姿態(tài)角控制的基礎(chǔ)上加入位置環(huán)控制器,同樣的,設(shè)置四旋翼為零初始狀態(tài),分別給定3個(gè)軸向坐標(biāo)點(diǎn)為10 m,四旋翼可以在4 s內(nèi)從靜止?fàn)顟B(tài)飛到期望目標(biāo)位置。
為了保證VxWorks中實(shí)時(shí)仿真的可靠性,分別在Matlab中和實(shí)時(shí)操作系統(tǒng)中運(yùn)行相同的控制器和對(duì)象模型,對(duì)比兩者的運(yùn)行結(jié)果。采用RTW生成四旋翼PID控制器和對(duì)象模型的VxWorks應(yīng)用程序。在全數(shù)字仿真中,仿真步長(zhǎng)采用固定步長(zhǎng),為了得到準(zhǔn)確的計(jì)時(shí),在仿真中采用輔助時(shí)鐘計(jì)時(shí)方法。Matlab中仿真周期是10 ms,在VxWorks應(yīng)用中采用同樣的仿真周期。
從圖10可以看出,Matlab解算和工控機(jī)解算高度一致,證明了基于VxWorks的實(shí)時(shí)仿真可靠性較高。VxWorks為了滿足高實(shí)時(shí)性,犧牲了部分?jǐn)?shù)據(jù)精度,在拐點(diǎn)附近表現(xiàn)明顯,但不影響最終的仿真結(jié)論。
(a) 基于滾轉(zhuǎn)角的仿真對(duì)比(b) 基于俯仰角的仿真對(duì)比
在前期工作的基礎(chǔ)上,將四旋翼飛行控制器直接應(yīng)用于實(shí)物平臺(tái),將飛控板固定在實(shí)際四旋翼上,連接傳感器、電調(diào)、數(shù)傳等接口,對(duì)基本功能調(diào)試后進(jìn)行室外實(shí)際飛行。在室外飛行中,通過3位開關(guān)切換到指定模式,給四旋翼一個(gè)期望的坐標(biāo)位置,在5 s左右都能接近目標(biāo)點(diǎn)附近并逐漸收斂,實(shí)際飛行比半實(shí)物仿真稍慢,但總體趨勢(shì)吻合較好,說明半實(shí)物仿真置信度較高,可用于指導(dǎo)四旋翼飛行控制器的設(shè)計(jì)。
圖11 X軸向位置仿真
進(jìn)一步,采用導(dǎo)航向量場(chǎng)算法設(shè)計(jì)了四旋翼包圍飛行實(shí)驗(yàn)。讓四旋翼從任意點(diǎn)起飛,在導(dǎo)航向量場(chǎng)控制和雙回路PID控制器作用下,四旋翼將逐漸沿著期望的圓形軌跡飛行。這里,以參考點(diǎn)作為坐標(biāo)原點(diǎn),期望半徑為4 m,起飛位置坐標(biāo)(-3,-3),起飛點(diǎn)初始狀態(tài)設(shè)為零。首先在半實(shí)物仿真平臺(tái)中驗(yàn)證,圖12(a)表示半實(shí)物仿真結(jié)果,圖12(b)表示實(shí)際飛行效果。對(duì)比分析半實(shí)物仿真和實(shí)際飛行結(jié)果可以發(fā)現(xiàn),半實(shí)物仿真結(jié)果更加平滑,穩(wěn)態(tài)誤差更小。實(shí)際飛行效果與半實(shí)物仿真效果吻合,進(jìn)一步驗(yàn)證了半實(shí)物仿真的可靠性,因而,四旋翼飛行控制器半實(shí)物仿真結(jié)果可以直接應(yīng)用于實(shí)際飛行。
(a) 半實(shí)物仿真結(jié)果(b) 實(shí)際飛行效果
根據(jù)四旋翼飛行器半實(shí)物仿真的功能要求,設(shè)計(jì)了半實(shí)物仿真平臺(tái)的總體框架和硬件選型。為保證半實(shí)物仿真平臺(tái)的實(shí)時(shí)性,采用嵌入式實(shí)時(shí)操作系統(tǒng)VxWorks。在此基礎(chǔ)上,對(duì)半實(shí)物仿真平臺(tái)的3部分:上位機(jī)、飛行控制器、仿真計(jì)算機(jī)進(jìn)行設(shè)計(jì)和實(shí)現(xiàn),分別完成了四旋翼飛行器的全數(shù)字仿真、半實(shí)物仿真,并通過半實(shí)物仿真與實(shí)際飛行數(shù)據(jù)對(duì)比驗(yàn)證了半實(shí)物仿真平臺(tái)的可靠性。
本文設(shè)計(jì)的四旋翼半實(shí)物仿真平臺(tái)界面友好,實(shí)時(shí)性高,能指導(dǎo)四旋翼飛行控制器設(shè)計(jì),具有很好的實(shí)用價(jià)值。