摘 要: 一種基于RTOS的小型無人機飛行控制系統的設計與實現。該系統基于C8051F120單片機和USOS II嵌入式實時操作系統,通過使用實際飛行獲取的飛行參數,采用PID控制律實現了姿態控制;通過使用GPS提供的方位信息,實現了無人機的軌跡控制。同時,該控制系統還提供了飛行參數的存儲。
關鍵詞: C8051F120;實時操作系統;無人機;PID
?
隨著無人機的逐漸小型、微型化,無人機的飛行控制系統逐漸向微型化、低功耗、低成本的方向發展。飛行控制系統作為無人機的關鍵技術部件,國外已有廠商針對小型無人機開發出了微型飛控系統,如美國Vesta Technology公司的AP30、AP40、AP50[1]系列、Cloud Cap Technology公司的PICCOLO系列以及MICROPILOT公司研制的MP 1000等。它們體積小、重量輕,但價格都比較高,或者根本就限制對華銷售。國內科研單位主要研制的是針對中、大型無人機的飛控系統。這類飛行控制系統的體積、重量、功耗都很大,而且成本高,不能滿足微、小型無人機的需要。針對以上情況,本文研究設計了針對微、小型無人機的小體積、低功耗、低成本的小型無人機飛行控制系統。
1 系統總體設計
1.1 飛行控制系統系統需求
針對小型無人機飛控系統的特點,提出了系統的軟硬件需求。
(1)硬件需求
小型無人機飛行控制系統的硬件需要滿足處理速度快、多路模擬、數字信號采集/輸出能力及數據存儲能力強。其具體需求如下:
①具有較高的處理速度,能夠勝任控制系統的眾多事務處理。
?、诰哂卸嗦纺M信號的較高精度的采集能力。飛機姿態參數的采集使用空速傳感器、高度傳感器、角速度傳感器等,上述傳感器輸出的都是模擬信號,需經量化后送往處理器處理。
③具備對8路遙控PCM指令信號的采集能力。本系統有自主飛行和遙控兩種控制模式,在起飛和著陸階段均采用遙控模式。在遙控模式下,由操縱員操作遙控器發送指令控制舵機、油門等執行機構。遙控器發送的指令形式為PCM,一般有8個通道。
④提供多路PWM信號輸出接口。升降舵、方向舵、副翼、油門都擬采用PWM控制方式。
?、菘纱鎯s10min的飛行記錄信息。
⑥至少兩路UART接口。飛控系統擬采用GPS導航,GPS模塊通信接口為UART;采用GPRS模塊實現地面站與飛控系統的通信,GPRS模塊通信接口也為UART。
?、咛峁┖铰伏c等參數的設置、飛行記錄等信息輸出的接口。通過PC、PDA可方便地訪問這些參數。
⑧為以后功能擴展預留接口。
(2)軟件需求
無人機飛行控制系統的軟件設計較為復雜。飛行動態連續控制中,應確保處理運算、控制等所有任務無相互干擾,同步、實時進行;需要完成姿態控制、軌跡控制、數據采集記錄、舵機油泵的控制等任務。
1.2 飛行控制系統硬件總體設計
硬件系統的總體框圖如圖1所示,整個系統由接收機信號采集通道、接口電路、傳感器信號轉換電路、PWM輸出通道組成。GPS導航模塊、GPRS無線通信模塊均通過UART接口與系統相連。系統與PC、PDA的通信接口也采用UART口,由于只在地面時才使用PC、PDA進行參數設置、讀出飛行記錄信息等,故與GPRS模塊復用同一路UART。
?
1.3 飛行控制系統軟件總體設計
為確保程序運行可靠及編程簡便,系統采用了嵌入式操作系統USOS II[2]。USOS II是針對中低檔單片機而設計的嵌入式實時操作系統內核。同時支持按時間片輪轉、按優先級搶占、二者結合共三種調度策略,具有完善的任務管理功能,提供定時、延時服務,支持消息、信號(signal)通信機制,支持臨界代碼段保護,提供二進制、計數型信號量(semaphore)同步對象等,支持Bottom-half中斷管理機制[3]。通過對飛行控制任務的分析,將整個程序分為縱向控制任務、橫向控制任務、飛行軌跡控制任務、飛行參數記錄任務。其中,縱向控制任務包含油門控制和升降舵控制兩個相互交聯的子任務;而橫向控制任務包含方向舵控制、副翼控制兩個相互交聯的子任務,同時這兩個子任務也與升降舵控制子任務有交聯,以保證轉彎過程中對高度的損失能夠及時補償。與任務并列的程序還有AD中斷、串口中斷、比較器中斷等。軟件系統結構圖如圖2所示。
2 硬件設計
2.1 處理器的選型
在選擇處理器時,需考慮可靠性、處理速度、系統集成度、開發成本方面的因素。
盡管ARM和DSP有相當高的處理速度,但多為商業級芯片。在使用中,一般要進行數據存儲器和程序存儲器的擴展,另外其I/O口不兼容5V電平邏輯,不便于芯片擴展,開發工具成本也較高。故在本系統中未采用,而選用了Cygnal公司的高速混合信號系統級C8051F120[4]單片機。針對本應用,它有以下優點:
(1)100MI/s的處理速度,完全能夠勝任飛行控制系統的事務處理。
(2)片上集成Flash程序存儲器。
(3)2路UART口,滿足本系統對UART的需求。
(4)共有16路AD采樣通道,12位和8位精度通道各有8路,滿足本系統的要求。
(5)6路PWM通道,可完成對升降舵、方向舵、副翼、發動機等執行機構的控制。
(6)片內集成比較器,可完成遙控指令測量。
2.2 接收機信號采集電路
遙控接收機的輸出信號為PCM脈寬信號。接收機輸入控制系統的通道為8個,分別控制油門、升降舵、方向舵、副翼、遙控模式與自主模式狀態切換及備用。
C8051F120內部集成了斯密特回滯比較器,上升沿和下降沿都允許中斷,因此可用來測量信號脈寬。由于輸入通道共有8個,而C8051F120僅有2個比較器,因此需要通過多路開關實現分時采集。為了防止接收機與系統之間的干擾,兩板之間采用光耦實現電氣隔離。電路原理如圖3所示。8路PCM碼信號經雙路四選一模擬開關CD4052選擇后再經光耦輸入單片機比較器的引腳;通道選擇信號由單片機普通I/O經光耦后接到CD4052的選擇引腳。
2.3 控制信號輸出電路
方向舵、升降舵、副翼、發動機[5]等都通過PWM信號控制,C8051F120自身已提供了6路PWM通道,基本滿足了控制需求。
為便于擴展,控制系統將C8051F120內部集成的兩路12位數模轉換器接出,用以控制模擬量的執行機構。
2.4 擴展Flash電路
由于飛行控制器需要具有記錄至少最后10min飛行數據的能力,而頻繁改動單片機自身Flash則有可能會帶來不可預知的后果,因此擴展了一片Sumsung公司的NAND結構Flash存儲器K9F2808。該存儲器按頁進行讀寫,按塊擦除,通過I/O口分時復用作為命令/地址/數據。為防止啟動或復位時電壓不穩的誤擦除操作,K9F2808的WP接了10 kΩ的上拉電阻,同時與地之間連接濾波電容。其余控制引腳直接與單片機的普通IO口相連。
3 飛行控制律設計
3.1 飛行控制系統結構
一般的飛行控制結構如圖4所示,由內部的姿態控制回路和外部的軌跡控制回路組成。其中,內回路主要用來控制和穩定飛機的姿態;外回路主要功能是控制飛機飛行軌跡,如高度的穩定與控制。因此,飛行控制軟件的設計也分為內部控制回路和外部控制回路兩部分。
控制律的設計方法上,考慮到控制對象為高穩定性小型無人機,因此采用較為靈活簡單的PID[6]控制方式。從成本考慮,無人機的建模采用實際遙控飛行,利用飛行數據采集系統記錄飛行數據[7],繼而推算模型的方法,節省使用風洞的費用。
3.2 姿態控制律設計
??? 姿態控制回路PID控制器結構圖如圖5所示,利用角速率ω和角度θ雙路反饋, 由三軸角速率陀螺反饋構成阻尼回路,角速率通過積分得到角度反饋組成姿態角穩定回路。
??? 將通過遙控飛行所得出的飛機模型帶入上述姿態回路PID控制器結構圖,調整PID控制的各項參數,利用Matlab仿真軟件進行模擬控制律仿真,可分別得到各個姿態回路的PID控制參數。由于對控制對象的靈敏性要求并不高,而對可靠性要求較高,因此調整參數時,控制系統的三大特性排序為:穩定性>準確性>快速性;表現在實際飛行中,飛行器在進行姿態變換時,反應較慢,但平穩性較高。
3.3 縱向控制律的分析與設計
縱向控制時,油門、升降舵分別為兩個相互關聯的回路,體現在編程上,兩個回路由兩個任務控制,采用共用變量在兩個任務間傳遞數據。
設計中,采用高度偏差控制油門,采用空速偏差控制升降舵位置。同時,為防止飛機失速進入俯沖,對迎角進行限幅處理。
3.3.1 高度控制原理
常規控制原理認為油門位置的變化導致推力的變化,從而使飛機的飛行速度變化。
但是在實際飛行中發現,推力的改變只是在開始過渡階段使飛行速度變化。而當飛行速度的改變使升力發生變化時,飛機的航跡角將改變,使飛機爬升或下滑,而飛機的迎角和速度最終不會改變。因此,單純改變油門位置時,飛機運動狀態有一個變化過程。過渡階段引起速度的變化,穩態后飛行速度和迎角均不改變,但飛機的高度發生了變化。
整個控制過程表現為:如果高度大于設定值→油門減小→速度減小→俯仰角減小→飛機下滑→速度增大→俯仰角增大→高度降低/速度、俯仰角不變;反之,高度小于設定值→油門增大→速度增大→俯仰角增大→飛機爬升→速度減小→俯仰角減小→高度增加/速度、俯仰角不變。
高度偏差的大小直接決定油門的位置,從油門的位移到建立一定拉力(推力)的過程是非周期過程,時間常數較大。飛機質量越大,則發動機剩余功率越小,這個動態過程也就越長。
3.3.2 速度控制原理
常規控制原理認為升降舵位置的變化導致迎角的變化,從而使飛機的飛行高度產生變化。
在實際飛行中發現,水平直線飛行中,升降舵的偏轉位置對應著一個迎角。在油門保持不變的情況下,單純偏轉升降舵,迎角的變化不僅能夠改變飛機的俯仰角,使飛機做曲線運動,而且飛行速度也會發生顯著變化。
控制過程表現為:如果速度低于設定值→升降舵下偏→迎角減小→俯仰角減小→飛機下滑→速度增大;反之,速度高于設定值→迎角增大→俯仰角增大→飛機爬升→速度減小。
采用速度偏差控制升降舵的優點是:速度偏差的大小通過升降舵的作用直接決定迎角的大小,飛機迎角變化范圍大,速度控制過程快,作用效果明顯,很容易實現穩定。
3.4 橫側向控制律的分析與設計
橫側向控制時,副翼、方向舵分別為兩個相互關聯的回路,體現在編程上,兩個回路由兩個任務控制,并采用共用變量在兩個任務之間傳遞數據。同時,在側向轉彎時,副翼、方向舵回路也和升降舵聯動,用升降舵的偏轉補償轉彎過程中損失的高度。
系統采用轉彎速率控制方式進行轉彎??刂苹芈吠ㄟ^航向偏差測算出偏差量,從而確定希望的轉彎速率。
3.4.1 方向舵控制原理
在水平直線飛行中,方向舵的偏轉位置對應著一個側滑角,側滑方向與方向舵的偏轉方向相反。如果只是單純的偏轉方向舵,則飛機還會向方向舵的偏轉方向滾轉。
在一定的滾轉角和飛行速度下,只有一個與之對應的轉彎速率(轉彎角速度)。飛機的空速矢量以這個轉彎速率轉動時,就是側滑角為零的協調轉彎。
系統的側向控制通道是由航向通道和方向舵、副翼通道共同組成的一個串級控制回路。具有航向控制、偏航增穩控制、轉彎控制和航跡控制功能。常規的水平轉彎最好使用方向舵控制,同時采用副翼控制飛機轉彎過程中的滾轉。
3.4.2 副翼控制原理
在無側滑的條件下,副翼的偏轉位置對應著一個穩定的滾轉角速度。
單純偏轉副翼,飛機在滾轉的同時還會向滾轉的方向側滑,并使機頭向滾轉的方向偏轉。
無側滑的滾轉沒有安定力矩,只有操縱力矩和機翼的阻轉力矩。若保持滾轉的角度,副翼必須回中使操縱力矩為零。
飛行速度增大,橫側操縱性變好;迎角增大,副翼效能變差;迎角增大到一定程度,將發生反操縱現象。飛機的副翼通道,具有滾轉角控制、滾轉增穩控制和協調方向舵轉彎的控制功能。
4 軟件設計
4.1 主程序設計
主程序主要完成硬件的初始化、操作系統的初始化以及文件系統的初始化。
在以上任務和中斷中,中斷的優先級大于任務優先級。而任務優先級根據其特性設定為:縱向控制任務>橫向控制任務>軌跡控制任務>飛參記錄任務。
4.2 縱向控制任務設計
縱向控制任務完成無人機飛行過程中縱向的姿態控制,保證了無人機處于可控的飛行速度及飛行高度狀態之中,不會發生失速現象。
4.3 橫向控制任務設計
橫向控制任務完成無人機轉彎過程中的橫向姿態控制,控制無人機轉彎的速率,保證無人機在轉彎過程中的安全性,不會陷入“荷蘭滾”狀態中。
4.4 飛行軌跡控制設計
飛行軌跡控制任務完成對飛機的飛行軌跡的控制。該任務通過將GPS提供的方位參數、高度計提供的高度參數、空速管提供的空速參數與預先設定在Flash中各階段的飛行參數相比對,得出高度、速度、方位的誤差傳遞給縱向控制任務和橫向控制任務,以保證無人機按照預先設定的飛行參數飛行。
4.5 飛行參數記錄任務設計
由于USOS II已經提供了比較完善的文件系統管理,因此可采用類似于PC機Dos系統對文件的管理模式。本設計中,將存儲用戶預先設定各個飛行點參數的Flash部分設定為C盤,而存儲飛行數據的Flash存儲設定為D盤。在Flash的初始化成功后,即將以Flash為存儲媒介的C、D盤添加入文件系統中,并創建各個任務。
飛行參數記錄任務將AD中斷、UART中斷、比較器中斷采集到的各種飛行數據進行計算、打包。為提高寫Nand Flash的效率,在內存中開辟了兩個與Flash頁面大小相同、長度為512 B的緩沖區,打包完畢的數據先存入其中一個緩沖區內。當緩沖區存滿后,將緩沖區滿標志置位,并向飛行參數記錄任務發送消息;飛行參數記錄任務接收到緩沖區滿的消息后,會將對應的緩沖區中的數據寫入Flash,并將緩沖區滿的標志清空。
4.6 中斷程序設計
AD采樣中斷完成對高度、速度、航向、姿態、舵機位置的數據采集,比較器中斷完成對油門控制信號的數據采集,UART中斷完成對GPS定位信號的數據采集。
由于采用了雙緩沖區設置,在中斷進行采集數據的情況下,不會影響飛行參數記錄任務將打包后的數據寫入Flash。
目前該小型無人機飛行控制系統已經安裝到試驗的小型無人機上進行多次試飛,經過檢測,該系統運行穩定、可靠。通過試驗取得小型高穩定性無人機的飛行參數,并通過PID控制律設計無人機姿態控制回路的方法,節省了人力、物力,為后續進行較大型無人機飛行控制系統的設計提供了經驗。
參考文獻
[1] AP50控制系統技術手冊[EB/OL].Rev 030505,2003.
[2] 嵌入式軟件網.USOS II嵌入式操作系統使用手冊[EB/OL].http://www.mcu-soft.com, 2006.
[3] 鄭玉全.微型搶占式實時操作系統的設計與實現.單片機與嵌入式系統,2004(1):27-31.
[4] SILICON LABORATORIES.C8051F120混合信號ISP?FLASH.微控制器數據手冊[EB/OL],Rev.1.1,2003,12.
[5] 鄭玉全,陳杰,沈為群,等.基于RTOS的渦噴發動機數字控制系統[J].電子技術應用,2005,31(06):34-37.
[6] 李瑋.無人機飛行PID控制及智能PID控制技術研究.南京理工大學碩士畢業論文,2004(3):29-52.
[7] 陳杰,蔣玉峰.基于RTOS的飛行數據采集記錄統.電子技術應用,2007,33(10):21-25.