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