江 濤,吳愛國,郭潤夏,崔 巍,張 潔
(1.天津大學 電氣與自動化工程學院,天津300072;2.中國民航大學 航空自動化學院,天津300300)
相較于簡單的PID 控制,先進飛行控制算法 (如非線性控制、智能控制等)考慮了無人直升機強耦合、非線性、時變的特點,能提高無人直升機的飛行性能、抗擾性和可靠性[1-3]。為了實現涉及復雜計算的先進飛行控制算法,本文設計出基于DSP和FPGA 的無人直升機飛行控制系統。
與通用型嵌入式微處理器相比,DSP采用了獨特的體系結構,具備硬件乘法器、哈佛結構并提供獨立的雙總線結構,因此它具有很強的數字信號處理能力,可用于實現復雜的控制算法[4,5]。然而,DSP采集、處理傳感器信息,生成舵機驅動信號,并無優勢,反而會影響控制的實時性,而FPGA的突出特點是超高速和并行性[6,7],可并發地生成舵機驅動信號,采集、處理多個傳感器的信息,具有很好的實時性。所設計系統結合DSP和FPGA的優點,實現了合理的任務分配,具有計算能力強、實時性好、靈活度高的特點,為實現無人直升機的先進控制算法提供了良好的硬件基礎。
如圖1所示,無人直升機飛行控制系統的核心是飛行控制器。以飛行控制器為基礎,增加各類機載設備和模型直升機即構成無人直升機飛行控制系統。

圖1 無人直升機飛行控制系統架構
飛行控制器的主控芯片采用TI 公司的DSP 芯片TMS320F28335 和 Altera 公司的 FPGA 芯片EP3C16E144I7。TMS320F28335 是浮點型 DSP,具 備150M 的高速處理能力[8,9],可高效地實現包含大量浮點數運算的飛行控制算法。EP3C16E144I7 具有豐富資源:15408個LE (邏輯單元),85個用戶可使用I/O 口,516096位的內部存儲器資源。因此它可靈活配置一定數量的UART 接口、SPI接口等硬件功能模塊,與各類底層設備進行有效的數據通訊。
飛行控制器中,DSP是主控芯片,它通過外部存儲器接口訪問FPGA 內雙口RAM。DSP僅需簡單地讀寫雙口RAM 內的寄存器即可獲取傳感器信息、操縱舵機以及與地面站通信。因此DSP可將大部分運行時間用于飛行控制算法,保證控制實時性不受底層驅動程序影響。
FPGA作為DSP的協處理器,處于DSP和底層設備之間,簡化了DSP和底層設備的交互作用過程。這具體表現為:①FPGA從IMU (慣性測量模塊)、GPS和氣壓高度計分別獲取無人直升機的姿態、經緯度和高度信息,然后存入雙口RAM 供DSP讀取;②FPGA通過無線電接收機獲取遙控器信息;③FPGA根據飛行模式、遙控器信息和DSP內控制算法生成的舵機控制量,產生舵機的PWM 驅動信號,實現無人直升機的飛行控制;④FPGA 通過無線模塊與地面站進行數據通信,以實現地面站對無人直升機的監控。
綜上所述,飛行控制系統中DSP 主要用于實現飛行控制算法,FPGA 協助DSP高效地操縱底層設備。這種分工合作考慮DSP和FPGA 各自的特點,使二者各盡其長,充分實現資源利用最大化。
飛行控制系統軟件設計包括地面站、FPGA 和DSP 這3部分。地面站監控軟件負責發布命令至飛行控制器,還用于接收、顯示并保存來自飛行控制器的飛行信息。以下重點介紹FPGA 和DSP的軟件設計。
FPGA 的最大特點是并行性。如圖2所示,本文將FPGA 軟件設計為互相影響、并發執行的幾個功能模塊:姿態采集模塊、經緯度采集模塊、高度采集模塊、PWM 模塊、地面站通信模塊以及頂層控制模塊。

圖2 FPGA 軟件中各功能模塊連接及對外引腳
由于各模塊并發運行,系統的運行速度不受底層設備的數量影響,因而具有很好的實時性。各模塊的功能及實現細節如下所述。
2.1.1 姿態采集模塊
姿態采集模塊通過UART 接口從IMU (慣性測量單元)采集無人直升機的姿態信息。本系統所選IMU 由荷蘭Xsens Technologies B.V.公司制造,其采樣周期可設置。為保證采樣精度,將IMU 采樣周期設置為舵機工作周期(22ms)的一半 (11ms)。IMU 每隔11ms向FPGA 發送一個姿態幀,姿態幀依次包括幀頭、橫滾角、俯仰角、偏航角和校驗和。一個舵機工作周期內,姿態采集模塊可接收兩組姿態角數據并進行平均濾波,然后向頂層控制模塊發送姿態更新請求。
2.1.2 經緯度采集模塊
經緯度采集模塊通過UART 接口從GPS采集無人直升機所處的經緯度。經緯度采集模塊和GPS按照NMEA0183協議進行通信。NMEA 0183定義了很多語句,經緯度采集模塊僅接受GPRMC語句。
GPRMC語句中經緯度以字符串表示,飛行控制算法卻需要浮點數表示的經緯度。因此經緯度采集模塊接收到GPRMC語句后,先分離出經緯度字符串,然后將其轉化為對應的浮點數,最后向高度采集模塊發送高度采集通知。
2.1.3 高度采集模塊
標準海平面附近,大氣壓和海拔高度近似呈線性關系,即大氣壓每下降1hPa,海拔高度就升高8.43m[10,11]。因此高度采集模塊通過SPI接口從氣壓高度計采集大氣壓,再采用線性變換將其換算成無人直升機所處高度。
由于溫度影響壓力的測量,本系統所選氣壓高度計MS5611-01BA03同時具備壓力和溫度傳感器,以實現壓力測量的溫度補償。
經緯度和高度同屬無人直升機的位置信息,因此它們的采集過程應該同步。高度采集模塊從經緯度采集模塊接收到高度采集通知后,讀取大氣壓和溫度測量值并對大氣壓測量值進行溫度補償,然后將大氣壓變換為無人直升機的高度,最后向頂層控制模塊發送位置更新請求。
2.1.4 PWM 模塊
PWM 模塊從頂層控制模塊獲取飛行模式和舵機控制量,從無線電接收機獲取遙控器信息,并根據飛行模式、舵機控制量和遙控器信息產生舵機的PWM 驅動信號,實現無人直升機的飛行控制。
PWM 模塊根據飛行模式選擇PWM 信號生成策略。本系統具有手動、姿態和位置3種飛行模式。手動模式下,所有PWM 驅動信號的脈寬由遙控器信息決定。姿態模式下,對于總距舵機和油門舵機的PWM 驅動信號,其脈寬由遙控器信息決定;對于縱向變距舵機、橫向變距舵機和尾槳舵機的PWM 驅動信號,其脈寬由舵機控制量決定。位置模式下,所有PWM 驅動信號的脈寬由舵機控制量決定。
2.1.5 地面站通信模塊
地面站通信模塊在頂層控制模塊的控制下,通過無線模塊與地面站進行數據通信,以實現地面站對無人直升機的監控。這具體表現為:①為使地面站能監視無人直升機,地面站通信模塊接收到頂層控制模塊的飛行信息上傳命令后,會將無人直升機姿態、所處經緯度和高度以及舵機控制量等發送至地面站;②為使地面站能控制無人直升機,地面站通信模塊接收地面站發送的飛行模式切換、姿態給定或者位置給定命令字,然后向頂層控制模塊發送命令字處理請求。
2.1.6 頂層控制模塊
頂層控制模塊處于各模塊之間,協調它們有序工作,實現它們和DSP之間的信息傳遞。頂層控制模塊的工作流程如圖3所示。

圖3 頂層控制模塊的流程
為了實現信息傳遞,FPGA 內設置雙口RAM 以保存需要傳遞的信息。該雙口RAM 的容量為256×16位,被映射至DSP的地址空間,可由DSP和頂層控制模塊讀寫。
如圖3所示,頂層控制模塊通過雙口RAM 實現的信息傳遞過程有如下幾類:
(1)姿態信息傳遞:頂層控制模塊接收到姿態更新請求后,將姿態采集模塊采集的姿態信息寫入雙口RAM,然后通知DSP讀取已更新的姿態信息。
(2)位置信息傳遞:頂層控制模塊接收到位置更新請求后,將經緯度采集模塊采集的經緯度信息和高度采集模塊采集的高度信息寫入雙口RAM,然后通知DSP 讀取已更新的位置信息。
(3)舵機控制信息:DSP 將保存在雙口RAM 內的舵機控制量更新后,頂層控制模塊從雙口RAM 內讀取飛行模式和舵機控制量,再將它們下發至PWM 模塊。
(4)飛行信息傳遞:DSP 將保存于雙口RAM 內的舵機控制量更新后,頂層控制模塊將姿態信息、位置信息、舵機控制量等飛行信息和飛行信息上傳命令下發至地面站通信模塊。
(5)命令信息傳遞:頂層控制模塊接收到命令字處理請求后,從地面站通信模塊獲取命令字,根據命令字類型修改保存在雙口RAM 內的飛行模式、姿態給定和位置給定。
DSP軟件主要實現無人直升機的姿態控制算法和位置控制算法。如圖4所示,DSP軟件主要包括DSP時鐘初始化、看門狗初始化、外部存儲器接口初始化以及主循環。

圖4 DSP軟件的流程
主循環根據飛行模式選擇控制策略。手動模式下,任何控制算法都不執行,無人直升機的飛行由遙控器控制。姿態模式下,僅姿態控制算法執行,無人直升機的飛行姿態由姿態控制算法控制。位置模式下,姿態控制算法和位置控制算法都執行,無人直升機的飛行姿態和位置分別由姿態控制算法和位置控制算法控制。
從DSP軟件流程可知,由于FPGA 的協助,DSP無需實現簡單繁瑣的設備驅動程序,只需簡單地讀寫FPGA 內雙口RAM,即可獲取姿態和位置等信息,更新舵機控制量。這大大減少了DSP操縱底層設備的時間開銷,使DSP有足夠的CPU 時間用于控制算法。
實現先進的飛行控制算法不僅需要良好的硬件基礎,還需對控制理論有深入研究。由于控制理論水平的限制,本實驗DSP內姿態控制算法仍采用PID 控制。實驗前將橫滾角、俯仰角和偏航角的給定設為0。手動模式下,通過遙控器操縱直升機起飛并使其水平懸停。然后將系統切入姿態模式,進行無人直升機的姿態控制實驗。實驗完成后,地面站保存的姿態數據如圖5、圖6和圖7所示。

圖5 橫滾角試飛數據

圖6 俯仰角試飛數據

圖7 偏航角試飛數據
圖5、圖6和圖7中出現的姿態角突變由機體震動等因素引起,其幅值并不大,在可接受范圍內。實驗結果表明,所設計飛行控制系統能將無人直升機的3個姿態角控制在0度附近;其中,俯仰角和滾轉角的控制效果最好,偏航角的控制效果差一些。這驗證了設計方案的有效性。
為實現先進飛行控制算法,本文設計了基于DSP 和FPGA 的無人直升機飛行控制系統。DSP 的數字信號處理能力強,主要實現復雜的飛行控制算法。FPGA 的突出特點是高速性和并行性,主要實現簡單繁瑣的設備驅動程序,協助DSP高效地操縱底層設備。由于雙核架構和合理的任務分配,所設計系統與傳統的單核飛行控制系統相比,計算能力更強、實時性更好、靈活性更高,為實現先進飛行控制算法提供了良好的硬件基礎。
本文受控制理論水平的限制,僅采用傳統的PID 控制進行了姿態控制的試飛實驗,驗證了設計方案的有效性。因此下一步研究的重點是研究可行的先進飛行控制算法,然后將其在所設計系統上實現并進行實驗驗證。
[1]SUN Xiuyun,FANG Yongchun,SUN Ning.Backsteppingbased adaptive attitude and height control of a small-scale unmanned helicopter [J].Control Theory & Applications,2012,29 (3):381-388 (in Chinese).[孫秀云,方勇純,孫寧.小型無人直升機的姿態與高度自適應反步控制 [J].控制理論與應用,2012,29 (3):381-388.]
[2]WANG Yong,GUO Runxia.Attitude control of unmanned helicopter based on improved SDRE [J].Computer Measurement & Control,2013,21 (9):2480-2485 (in Chinese).[王勇,郭潤夏.基于改進SDRE的無人直升機姿態控制 [J].計算機測量與控制,2013,21 (9):2480-2485.]
[3]GUO Shushan,YUAN Suozhong.Study of landing control over the unmanned helicopter [J].Electronic Sci & Tech,2010,23 (9):110-121 (in Chinese).[郭署山,袁鎖中.基于神經網絡的艦載無人直升機著艦控制研究 [J].電子科技,2010,23 (9):110-121.]
[4]LUO Qiufeng,GAO Zhen,LI Yong.Implementation of flight control computer based on dual DSP28335 [J].Journal of Terahertz Science and Electronic Information Technology,2014,12 (1):123-126 (in Chinese).[羅秋鳳,高振,李勇.基于DSP28335雙核飛控計算機的實現 [J].太赫茲科學與電子信息學報,2014,12 (1):123-126.]
[5]DOU Qinqin,TAN Libin,REN Shangkun.Designed on nondestructive detection system based on DSP28335 [J].Journal of Yichun College,2013,35 (6):1-4 (in Chinese).[豆勤勤,談莉斌,任尚坤.基于DSP28335的無損檢測儀系統設計[J].宜春學院學報,2013,35 (6):1-4.]
[6]WEN Changbao,ZHANG Yingchao,LI Jianhua.Rotational frequency measurement system of rotating object based on FPGA [J].Computer Engineering and Design,2014,35 (2):473-477 (in Chinese).[文常保,張穎超,李建華.基于FPGA 的軸轉物體轉速測量系統設計 [J].計算機工程與設計,2014,35 (2):473-477.]
[7]XIAO Jitao,MA Youming,ZHOU Mingzheng,et al.Design of high-speed data acquisition system based on FPGA [J].Computer Technology and Development,2012,22 (6):217-220 (in Chinese).[肖積濤,馬幼鳴,周鳴爭,等.基于FPGA 的高速數據采集系統的設計 [J].計算機技術與發展,2012,22 (6):217-220.]
[8]HU Guowen,WANG Yinjie,WANG Lin.Optimization design of wind-solar hybrid power generation system based on DSP28335 [J].Electronic Design Engineering,2012,20(20):102-125 (in Chinese).[胡國文,王銀杰,王林.基于DSP28335的風光互補發電系統的優化設計 [J].電子設計工程,2012,20 (20):102-105.]
[9]LIU Lingshun, GAO Yanli,ZHANG Shutuan,et al.TMS320F28335 DSP principle and programming [M].Beijing:Beihang University Press,2011:1-4 (in Chinese).[劉陵順,高艷麗,張樹團,等.TMS320F28335DSP 原理及開發編程 [M].北京:北京航空航天大學出版社,2011:1-4.]
[10]WANG Zhigang,TANG Fei,WANG Xiaohao,et al.Design of altimeter system based on MS5534B.MEMS Device &Technology,2008,45 (6):351-355 (in Chinese). [王志剛,唐飛,王曉浩,等.基于MS5534B的氣壓高度計系統的設計 [J].微納電子技術,2008,45 (6):351-355.]
[11]ZHANG Jinyan,LIU Gaoping,YANG Ruxiang.Implementation of height measurement system based on pressure sensor BMP085 [J].Microcomputer &Its Application,2014,33(6):64-67 (in Chinese).[張金燕,劉高平,楊如祥.基于氣壓傳感器BMP085的高度測量系統實現 [J].微型機與應用,2014,33 (6):64-67.]