楊?yuàn)檴?,王?/p>
(南京航空航天大學(xué) 自動(dòng)化學(xué)院,江蘇 南京 210016)
飛行控制系統(tǒng)是航空航天院校自動(dòng)控制專(zhuān)業(yè)一門(mén)重要的專(zhuān)業(yè)課程,因其術(shù)語(yǔ)繁多、描述生澀,學(xué)生難以快速接受。因此,需要研制出一款與飛行控制及相關(guān)課程緊密結(jié)合的實(shí)驗(yàn)平臺(tái)來(lái)為培養(yǎng)飛行控制專(zhuān)業(yè)基礎(chǔ)扎實(shí)的創(chuàng)新型人才提供很好的支撐[1-3]。
本項(xiàng)目小組前期研制出一套基于FlightGear的三維可視化飛行控制仿真實(shí)驗(yàn)平臺(tái),基于Matlab/Simulink編寫(xiě)飛機(jī)模型仿真和飛行控制設(shè)計(jì)實(shí)驗(yàn)界面,并與FlightGear直接對(duì)接,可實(shí)時(shí)三維立體顯示飛機(jī)姿態(tài)。該平臺(tái)提高了學(xué)生對(duì)飛行控制原理的三維立體直觀的認(rèn)識(shí),加強(qiáng)了飛行控制設(shè)計(jì)理論的理解,鍛煉了自主設(shè)計(jì)飛行控制器的能力[4]。但是由于該平臺(tái)無(wú)實(shí)物、純仿真的特點(diǎn),缺乏被控對(duì)象的真實(shí)性,展示效果不夠直觀。
針對(duì)此問(wèn)題,本文設(shè)計(jì)了一套半實(shí)物飛行控制仿真平臺(tái),將航模飛機(jī)、舵機(jī)、飛控板和操縱桿等實(shí)物集成在一起,使得學(xué)生不僅可以直觀地觀察到航模飛機(jī)上真實(shí)舵面轉(zhuǎn)動(dòng)的過(guò)程,還可以分別體驗(yàn)自動(dòng)駕駛和人工駕駛的過(guò)程,且本實(shí)驗(yàn)平臺(tái)保留了與FlightGear視景軟件的連接,因此本平臺(tái)還具備實(shí)時(shí)三維立體觀測(cè)飛行姿態(tài)的特點(diǎn)。該實(shí)驗(yàn)教學(xué)平臺(tái)既可以給教師作演示操作,也可以分難度開(kāi)設(shè)飛行控制律設(shè)計(jì)實(shí)驗(yàn),為提高學(xué)生綜合飛行控制設(shè)計(jì)能力提供實(shí)驗(yàn)平臺(tái)。該實(shí)驗(yàn)平臺(tái)還可為自動(dòng)控制、探測(cè)與制導(dǎo)及機(jī)械自動(dòng)化等專(zhuān)業(yè)的本科生培養(yǎng)提供實(shí)驗(yàn)條件[5-7]。
本文將從平臺(tái)整體軟硬件結(jié)構(gòu)、用戶端軟件、飛行控制軟件和FlightGear連接設(shè)計(jì)幾個(gè)方面介紹上述半實(shí)物飛行控制實(shí)驗(yàn)平臺(tái),并以高度控制的實(shí)驗(yàn)仿真為例,驗(yàn)證該平臺(tái)的實(shí)用性。
半實(shí)物飛行控制仿真實(shí)驗(yàn)平臺(tái)的總體設(shè)計(jì)結(jié)構(gòu)如圖1所示。整個(gè)半實(shí)物仿真平臺(tái)實(shí)物部分包括航模飛機(jī)、舵機(jī)、飛控板和操縱桿。計(jì)算機(jī)上運(yùn)行實(shí)驗(yàn)平臺(tái)的系統(tǒng)用戶端程序軟件和FlightGear視景軟件。飛行控制程序在飛控板上運(yùn)行。
圖1 半實(shí)物飛行控制實(shí)驗(yàn)平臺(tái)結(jié)構(gòu)圖
本仿真實(shí)驗(yàn)平臺(tái)選取一款典型固定翼飛機(jī)為控制對(duì)象,使用C語(yǔ)言編寫(xiě)系統(tǒng)用戶端程序和飛行控制程序。仿真控制臺(tái)軟件通過(guò)串口接收飛控板解算出來(lái)的執(zhí)行機(jī)構(gòu)指令和發(fā)送軟件中飛機(jī)模型解算出來(lái)的傳感器信息給飛控板,飛控板將執(zhí)行機(jī)構(gòu)指令,即舵面指令,通過(guò)PWM信號(hào)發(fā)送給航模飛機(jī)上的舵機(jī),從而實(shí)現(xiàn)舵面的實(shí)時(shí)偏轉(zhuǎn)。同時(shí),仿真控制臺(tái)軟件通過(guò)FlightGear視景軟件,實(shí)時(shí)顯示三維視景。系統(tǒng)用戶程序中的遙控遙測(cè)軟件通過(guò)串口接收飛控板上傳來(lái)的飛控?cái)?shù)據(jù)進(jìn)行數(shù)據(jù)展示,并發(fā)送控制指令和控制律參數(shù)給飛控板,從而對(duì)飛控板上的控制律進(jìn)行調(diào)整。操縱桿指令由操縱桿產(chǎn)生,通過(guò)仿真控制臺(tái)軟件接收操縱桿指令,再轉(zhuǎn)發(fā)給飛控板,實(shí)現(xiàn)操縱桿對(duì)飛行器模型的人工控制。
飛機(jī)模型為一個(gè)典型的六自由度固定翼飛機(jī)模型,其模型基于12階運(yùn)動(dòng)方程建立[7-8]。飛機(jī)模型的氣動(dòng)參數(shù)、飛機(jī)模型的輸入和輸出參數(shù)均與本項(xiàng)目之前設(shè)計(jì)的Matlab仿真平臺(tái)中的飛機(jī)模型參數(shù)相同[4]。本實(shí)驗(yàn)平臺(tái)中的飛機(jī)模型是在VC環(huán)境下用C語(yǔ)言實(shí)現(xiàn),寫(xiě)在仿真控制臺(tái)軟件中,以便于進(jìn)行飛行模型解算和數(shù)據(jù)交互[9-10]。
1) 仿真控制臺(tái)軟件
仿真控制臺(tái)的軟件架構(gòu)如圖2所示。
圖2 仿真控制臺(tái)軟件架構(gòu)
仿真控制臺(tái)軟件主要實(shí)現(xiàn)的功能為:飛機(jī)模型解算,通過(guò)串口發(fā)送傳感器數(shù)據(jù)給飛控板,接收飛控板控制律解算出來(lái)的執(zhí)行機(jī)構(gòu)指令,通過(guò)UDP協(xié)議將飛機(jī)狀態(tài)數(shù)據(jù)發(fā)送給三維實(shí)時(shí)視景軟件FlightGear,實(shí)現(xiàn)用戶端界面的顯示和設(shè)置參數(shù),接收操縱桿輸入數(shù)據(jù),對(duì)飛機(jī)實(shí)現(xiàn)人工控制操作。
圖3所示為仿真控制臺(tái)用戶端界面。界面的設(shè)計(jì)主要可以分為4個(gè)部分,分別是串口選擇模塊、仿真初值設(shè)置模塊、數(shù)據(jù)顯示模塊和仿真控制模塊。串口選擇模塊用于設(shè)置正確的串口,以便與飛控板進(jìn)行數(shù)據(jù)交互。初值設(shè)置模塊用于設(shè)置飛機(jī)起飛時(shí)候的狀態(tài),初值保存在配置文件中,當(dāng)仿真控制臺(tái)軟件打開(kāi)時(shí)自動(dòng)讀取該配置文件中的初值。數(shù)據(jù)實(shí)現(xiàn)模塊用于實(shí)時(shí)顯示當(dāng)前的飛機(jī)狀態(tài)參數(shù)和飛控板返回的執(zhí)行機(jī)構(gòu)參數(shù)。仿真控制模塊用于控制仿真的運(yùn)行過(guò)程,包含運(yùn)行、暫停和復(fù)位3種模式。
點(diǎn)擊界面中的“記錄”按鈕,仿真數(shù)據(jù)就被記錄在文件中,然后通過(guò)Matlab軟件打開(kāi)該文件進(jìn)行畫(huà)圖分析即可得到仿真曲線。
圖3 仿真控制臺(tái)軟件界面
2) 遙控遙測(cè)軟件
遙控遙測(cè)軟件架構(gòu)框圖如圖4所示。
隨著社會(huì)、經(jīng)濟(jì)和人口的發(fā)展, 水資源已成為稀缺的自然資源, 習(xí)近平總書(shū)記提出了“節(jié)水優(yōu)先、空間均衡、系統(tǒng)治理、兩手發(fā)力”的治水思路,賦予了新時(shí)期治水的新內(nèi)涵、新要求、新任務(wù),為我們強(qiáng)化水治理、保障水安全指明了方向。在2015年十二屆全國(guó)人大三次會(huì)議上,李克強(qiáng)總理提出了“互聯(lián)網(wǎng)+”的行動(dòng)計(jì)劃。短短三年的時(shí)間,“互聯(lián)網(wǎng)+”的發(fā)展模式在房產(chǎn)、醫(yī)療、教育、家居等傳統(tǒng)行業(yè)如潮涌至,且逐漸發(fā)展成熟。
圖4 遙控遙測(cè)軟件架構(gòu)
遙控遙測(cè)軟件實(shí)現(xiàn)的功能主要為:通過(guò)串口接收飛控板發(fā)送的飛控信息,實(shí)現(xiàn)用戶端界面顯示并設(shè)置控制指令和控制律參數(shù),發(fā)送控制指令和控制律參數(shù)給飛控板,在界面上顯示飛機(jī)狀態(tài)數(shù)據(jù)和執(zhí)行機(jī)構(gòu)指令。
圖5為遙控遙測(cè)界面,可以分為4個(gè)部分實(shí)現(xiàn),分別是串口選擇模塊、數(shù)據(jù)顯示模塊、指令設(shè)置模塊和參數(shù)設(shè)置模塊。其中指令設(shè)置模塊用于設(shè)置控制指令,本軟件可以設(shè)置高度、航向和速度指令。參數(shù)設(shè)置模塊用于設(shè)置控制律參數(shù),用于調(diào)整飛控板中的控制律。串口選擇模塊和數(shù)據(jù)顯示模塊的功能與仿真控制臺(tái)軟件中的相同。
圖5 遙控遙測(cè)軟件界面
半實(shí)物仿真實(shí)驗(yàn)平臺(tái)中的飛行控制器基于STM32開(kāi)發(fā)板開(kāi)發(fā),飛控軟件基于VC環(huán)境用C語(yǔ)言實(shí)現(xiàn)[11-13]。飛行控制器軟件主要用于實(shí)現(xiàn)接收仿真控制臺(tái)界面發(fā)送的傳感器數(shù)據(jù)和遙控遙測(cè)界面發(fā)送的控制指令,進(jìn)行控制律解算,將解算出來(lái)的執(zhí)行機(jī)構(gòu)數(shù)據(jù)發(fā)回給仿真控制臺(tái)軟件和遙控遙測(cè)軟件。同時(shí),飛控軟件將飛機(jī)模型舵面操作指令輸出給飛機(jī)模型中的舵機(jī),從而實(shí)現(xiàn)舵面實(shí)時(shí)偏轉(zhuǎn)。
飛控軟件中已經(jīng)基于參考文獻(xiàn)[7-8]設(shè)計(jì)出了一款經(jīng)典飛行控制律,以便于初學(xué)者參考及教師課堂演示。針對(duì)更高難度的實(shí)驗(yàn),控制律可以通過(guò)遙控遙測(cè)界面中的參數(shù)設(shè)置進(jìn)行修改并發(fā)送給飛控板。
圖6所示為飛控系統(tǒng)的軟件架構(gòu)。半物理仿真系統(tǒng)基于STM32開(kāi)發(fā)板進(jìn)行開(kāi)發(fā),所以底層需要有STM32板卡驅(qū)動(dòng)。在板卡驅(qū)動(dòng)的基礎(chǔ)上移植μcos-II實(shí)時(shí)操作系統(tǒng)到STM32開(kāi)發(fā)板,然后分別設(shè)計(jì)傳感器任務(wù)、執(zhí)行機(jī)構(gòu)任務(wù)、飛控?cái)?shù)據(jù)發(fā)送任務(wù)、指令參數(shù)接收任務(wù)、舵機(jī)指令發(fā)送任務(wù)和控制律解算任務(wù),由實(shí)時(shí)操作系統(tǒng)的任務(wù)調(diào)度統(tǒng)一管理,實(shí)現(xiàn)完整的飛行控制系統(tǒng)任務(wù)。
圖6 飛控系統(tǒng)的軟件架構(gòu)
本平臺(tái)中采用了開(kāi)源軟件FlightGear來(lái)實(shí)現(xiàn)虛擬場(chǎng)景的三維顯示。該軟件代碼開(kāi)放,場(chǎng)景逼真,且接口簡(jiǎn)單,僅通過(guò)UDP協(xié)議即可發(fā)送數(shù)據(jù)給FlightGear軟件[4]。
FlightGear軟件I/O接口設(shè)置如圖7所示,其中Protocol設(shè)置為native-fdm; Medium設(shè)置為socket; Hz設(shè)置為100;Direction設(shè)置為in;端口選擇5500,數(shù)據(jù)傳輸選擇UDP模式。
圖7 FlightGear軟件接口設(shè)置
文中以控制飛機(jī)高度為例詳細(xì)演示本實(shí)驗(yàn)平臺(tái)的實(shí)驗(yàn)過(guò)程并展示了本半實(shí)物平臺(tái)的易用性。半實(shí)物仿真平臺(tái)實(shí)物如圖8所示。
圖8 半物理飛控實(shí)驗(yàn)平臺(tái)
實(shí)驗(yàn)步驟如下:
1) 打開(kāi)FlightGear視景軟件,設(shè)置視景軟件將仿真地點(diǎn)設(shè)為祿口國(guó)際機(jī)場(chǎng)(LUKOU)的早晨,起飛點(diǎn)為機(jī)場(chǎng)跑道,可以使用戶更加直觀地進(jìn)行觀測(cè)。FlightGear視景軟件中飛機(jī)起飛效果圖如圖9所示。
2) 打開(kāi)仿真控制臺(tái)軟件,設(shè)置串口,點(diǎn)擊界面中的初值設(shè)置按鈕,設(shè)置飛機(jī)模型的仿真初值。
3) 點(diǎn)擊仿真控制臺(tái)軟件界面中的操縱桿按鈕,打開(kāi)操縱桿界面,設(shè)置操縱桿指令初值,成功連接操縱桿。
4) 打開(kāi)遙控遙測(cè)軟件,設(shè)置串口。在界面中設(shè)置控制律參數(shù)和高度、航向、速度指令,其中高度指令1000m,航向57.9°,速度200m/s。設(shè)置好后點(diǎn)擊發(fā)送按鈕,發(fā)送給飛控板。
5) 點(diǎn)擊仿真控制臺(tái)界面左下角的運(yùn)行按鈕開(kāi)始仿真。
6) 點(diǎn)擊仿真控制臺(tái)中的記錄按鈕,仿真過(guò)程中的數(shù)據(jù)將被記錄在文件中,然后通過(guò)Matlab軟件打開(kāi)該文件進(jìn)行畫(huà)圖分析仿真結(jié)果。
仿真開(kāi)始后,操作者可以通過(guò)修改遙控遙測(cè)界面的指令參數(shù)調(diào)整飛機(jī)姿態(tài),也可以通過(guò)操縱桿人工控制飛機(jī)姿態(tài)。飛機(jī)姿態(tài)通過(guò)飛控板直接發(fā)送數(shù)據(jù)給航模舵機(jī)控制舵面實(shí)時(shí)偏轉(zhuǎn),并通過(guò)UDP協(xié)議將數(shù)據(jù)發(fā)送給FlightGear視景軟件實(shí)現(xiàn)三維實(shí)時(shí)顯示。飛機(jī)高度響應(yīng)曲線如圖10所示。
圖9 FlightGear視景效果圖
圖10 高度響應(yīng)曲線
為滿足飛行控制實(shí)驗(yàn)仿真平臺(tái)被控對(duì)象的真實(shí)性,設(shè)計(jì)了本文中介紹的半實(shí)物仿真平臺(tái)。該平臺(tái)將航模飛機(jī)、舵機(jī)、飛控板和操縱桿作為實(shí)物加入到飛控實(shí)驗(yàn)平臺(tái)中,使得被控對(duì)象更加直觀。學(xué)生可以直接看到自己所設(shè)計(jì)的飛行控制律被下載到飛控板,然后飛控板通過(guò)發(fā)送控制信號(hào)給舵機(jī),從而控制飛機(jī)舵面實(shí)時(shí)轉(zhuǎn)動(dòng),并由FlightGear視景軟件實(shí)時(shí)三維立體顯示飛機(jī)姿態(tài)。整個(gè)過(guò)程更加直觀生動(dòng)。該平臺(tái)還可以通過(guò)操縱桿實(shí)現(xiàn)人工駕駛功能,直接對(duì)飛機(jī)姿態(tài)進(jìn)行控制。平臺(tái)的軟件界面簡(jiǎn)潔友好,操作方便靈活,便于學(xué)生盡快上手設(shè)計(jì),具有很強(qiáng)的實(shí)用性。