何志輝, 高萬林,2, 何雄奎, 任延昭, 馬仲偉
(1. 中國農(nóng)業(yè)大學 信息與電氣工程學院, 北京 100083; 2. 農(nóng)業(yè)農(nóng)村部 農(nóng)業(yè)信息化標準化重點實驗室, 北京 100083; 3. 中國農(nóng)業(yè)大學 理學院, 北京 100193; 4. 深圳禾苗通信科技有限公司西安分公司, 陜西 西安 710000)
隨著嵌入式微處理器、傳感器、導航、通信、動力與能源供給以及控制理論等技術的發(fā)展,對具有廣闊軍事和民用前景的縱列式無人直升機進行研究與開發(fā)具有很重要的現(xiàn)實意義[1-5].設計及搭建縱列式無人直升機樣機,研究開發(fā)縱列式無人直升機飛行控制系統(tǒng)對深入研究該機型是必要的[6-7].縱列式無人機直升機主要優(yōu)點是兩副旋翼同步反向旋轉,相互抵消旋翼產(chǎn)生的反扭矩,因此可以將動力全部用于旋翼旋轉產(chǎn)生升力[8-9].同時由于這種布局的直升機無尾漿,可以節(jié)省尾槳消耗的功率,該功率約占總功率的7%~10%,懸停時的氣動效率高于傳統(tǒng)單旋翼布局[10-11].另外這種布局的直升機在機體質量接近單旋翼直升機的同時,具有更大的槳盤面積,可以獲得更大的起飛質量,在相同起飛質量時,具有更小的搬運體積,其安全性也較單旋翼無人直升機好.同時由于縱列式無人直升機在結構上較為對稱,在結構上比單旋翼直升機更加簡單,便于模塊化設計,方便維護和降低使用成本[12].
與多旋翼無人機及單旋翼帶尾漿的直升機相比,縱列式無人直升機有其獨特的優(yōu)點,如載重比較大,續(xù)航時間較長,但是目前沒有針對縱列式無人直升機的開源飛控,必須對縱列式無人直升機的飛行控制系統(tǒng)加以深入研究與開發(fā),并進行飛行試驗.文中從縱列式無人直升機的飛行控制原理、硬件設計、軟件開發(fā)、系統(tǒng)調試與飛行試驗等幾個方面對搭建的飛行控制系統(tǒng)進行較為詳細的闡述,最后通過遙控飛行試驗對所設計的飛行控制系統(tǒng)進行驗證.
電動無人直升機采用由電動機、電池和電子調速器組成的電動系統(tǒng)作為動力,相對于內(nèi)燃機驅動的傳統(tǒng)直升機,具有噪聲低、振動小、清潔無污染、維護性好、可靠性高等特點.文中所設計的縱列式無人直升機采用無刷電動機驅動,其機械結構簡單、操縱靈敏、噪聲低,所設計的三維模型如圖1所示.
圖1 縱列式無人直升機三維模型
該縱列式無人直升機由2個無刷電動機提供動力,另外有 6個數(shù)字舵機,前后旋翼下面各安裝3個數(shù)字舵機,控制前后自動傾斜器實現(xiàn)前后旋翼的總距變化、橫向周期變距和縱向周期變距.所搭建的縱列式無人直升機樣機如圖2所示.
圖2 縱列式無人直升機樣機
文中所搭建的縱列式無人直升機樣機總體參數(shù)如下:質量3.0 kg;最大起飛質量5.5 kg;機身長度1 650 mm;機身高度245 mm;槳盤半徑405 mm;槳葉長度360 mm;槳葉弦長34 mm;槳葉數(shù)6片;電動機功率1 250×2 W;電池電壓22.2 V,容量2 200×2 mAh.
縱列式無人直升機完成飛行控制必須具備的基本條件是有效控制飛行器的滾轉、俯仰、航向和高度[13].該縱列式無人直升機通過2個無刷電動機的轉速和6個數(shù)字舵機輸出角度控制前后兩個自動傾斜器的狀態(tài),使得無人直升機產(chǎn)生垂向運動、縱向運動、橫向運動和偏航運動.
垂直向上、向下運動是通過同等增加、減少前后旋翼的總距來實現(xiàn)的,如圖3a所示.俯仰控制是通過前、后旋翼拉力大小的差分變化來實現(xiàn)的,即通過前、后旋翼的差分總距或差分縱向周期變距來實現(xiàn),如圖3b所示.滾動控制是通過沿橫滾軸同等傾斜前后傾斜盤來實現(xiàn),即通過前后旋翼的橫向周期變距來實現(xiàn),如圖3c所示.最后,偏航運動是通過前后兩個旋翼的橫向周期變距的差分變化獲得的,如圖3d所示.
圖3 縱列式無人直升機飛行控制原理
縱列式無人直升機的飛行控制系統(tǒng)硬件按模塊化設計思想可以分為以下幾個模塊:主控制模塊、傳感器模塊、遙控器接收機模塊、無線通信模塊和電壓模塊等模塊部分.
1) 主控制模塊是縱列式無人直升機飛行控制系統(tǒng)最核心控制部分.它的主要任務是在每個控制周期內(nèi)處理姿態(tài)傳感器采集到的數(shù)據(jù),通過控制算法,計算得到無人機的位姿信息,再結合遙控器發(fā)送過來的飛行動作控制信號,綜合計算并將計算結果轉化為不同占空比的脈寬調制(pulse width modulation,PWM)信號來驅動2個無刷電動機和6個數(shù)字舵機,以確??v列式無人直升機平穩(wěn)地完成目標飛行任務[14].
2) 傳感器模塊是縱列式無人直升機的飛行姿態(tài)參數(shù)的測量裝置,其測量的信息主要包括3軸加速度、3軸角速度、航向和姿態(tài)信息等.在傳感器測量的過程中,由于無人機機體振動等外界環(huán)境和傳感器自身的局限性,對測量的參數(shù)有很大的影響,從而導致測得的無人機姿態(tài)和位置信息不精確.因此需要將加速度計、陀螺儀和磁力計等姿態(tài)測量傳感器的信息進行融合,獲得相對較為精確的無人機的橫滾角、俯仰角、偏航角姿態(tài)信息[14-16].
3) 遙控器接收機模塊用于接收遙控器的控制信號,將遙控信號傳遞給主控制器模塊.
4) 無線通信模塊可用于主控制器模塊和上位機之間的通信,完成控制參數(shù)的修改,也可以將無人機的姿態(tài)信息發(fā)送到上位機進行顯示[2].
5) 電壓模塊為主控制模塊和傳感器及無線通信模塊提供穩(wěn)定的5.0 V和3.3 V電壓,保證各模塊的正常工作.
根據(jù)以上各功能模塊設計的整個縱列式無人直升機飛行控制系統(tǒng)硬件總體結構如圖4所示.
圖4 縱列式無人直升機飛行控制系統(tǒng)硬件總體結構
2.2.1主控制模塊選型及電路設計
通過綜合考慮,采用STM32H750微控制器芯片作為縱列式無人直升機控制系統(tǒng)的主控制器模塊芯片.它具有 CortexTM-M7內(nèi)核,工作頻率高達480 MHz.使用串行總線(serial peripheral interface,SPI)接口與 6軸運動處理傳感器 LSM6DSR,磁強力計 LIS2MDL通信.使用PPM方式讀取遙控器接收到的遙控信號,采用定時器TIM2和TIM3輸出電動機轉速 PWM以及數(shù)字舵機的控制信號.
2.2.2姿態(tài)檢測模塊
縱列式無人直升機的姿態(tài)檢測單元選用LSM6DSR慣性模塊作為機體姿態(tài)檢測的傳感器.LSM6DSR是意法半導體在2019年6月推出的高性能MEMS慣性模塊,該模塊封裝包含1個3軸數(shù)字加速度計和1個3軸數(shù)字陀螺儀,角速率滿量程被擴大至4 000(°)·s-1,且在溫度和時間上具有高穩(wěn)定性.加速度可選量程為±2,±4,±6,±8和±16g,陀螺儀可選量程為±125,±250,±500,±1 000,±2 000和±4 000 (°)·s-1.LSM6DSR慣性模塊的方向及引腳示意圖如圖5所示.文中采用該模塊進行機體姿態(tài)檢測,其外圍電路設計如圖6所示.
圖5 LSM6DSR慣性模塊的方向及引腳連接示意圖
圖6 LSM6DSR慣性模塊外圍電路設計
縱列式無人直升機的航向采用磁力計進行測量.磁力計選用意法半導體公司的LIS2MDL傳感器.該器件可以測量3軸方向的磁場強度,動態(tài)測量范圍為±50×10-4T,測量值通過16位數(shù)據(jù)輸出,另外該器件提供了SPI和I2C總線兩種接口,文中選擇SPI接口方式進行通信.該器件的供電電壓為1.71~3.60 V.LIS2MDL磁力計模塊的方向及引腳連接示意圖如圖7所示.文中所設計的LIS2MDL磁力計模塊外圍電路如圖8所示.
圖7 LIS2MDL磁力計模塊的方向及引腳連接示意圖
圖8 LIS2MDL磁力計模塊外圍電路設計
2.2.3遙控器接收模塊
PWM和 PPM(pulse position modulation)是接收機輸出信號的兩種通行標準.PWM信號相對于PPM信號最大的區(qū)別在于PWM的每條物理連線上只能傳輸1個通道的信號,因此有幾個通道的信號,就需要幾組物理連線[17].每組物理連線一般為3根線:電源線、信號線和地線,因此如果通道數(shù)較多,則物理連線會比較多,而在PPM方式下,僅需1根電源線、1根信號線和1根地線,共3根線就可以傳輸多個通道的控制信號,非常方便.文中的接收機選用與富斯科技FS-i6遙控器發(fā)射機配對的FS-iA6B接收機組成的一個6通道2.4 GHz遙控指令系統(tǒng).
文中使用飛行控制系統(tǒng)的主控制芯片STM32H750VBT6的高級定時器 TIM1輸入捕獲模式測量遙控器上的油門、俯仰、橫滾和偏航4個通道輸入的 PWM脈沖寬度.
2.2.4無線通信模塊
采用ESP-12F WiFi模塊作為無線通信模塊和縱列式無人直升機的飛行控制系統(tǒng)進行通信,利用上位機可以對縱列式無人直升機的飛行控制系統(tǒng)進行無線調參,同時縱列式雙引擎無人直升機的姿態(tài)信息也可以通過串口WiFi模塊發(fā)送到上位機進行顯示.
ESP-12F WiFi模塊是由安信可科技開發(fā)的,該模塊核心處理器ESP8266 在較小尺寸封裝中集成了業(yè)界領先的Tensilica L106 超低功耗32 位微型MCU,帶有16 位精簡模式,主頻支持80 MHz 和160 MHz,支持RTOS,集成Wi-Fi MAC/BB/RF/PA/LNA.ESP8266 負責無線上網(wǎng)接入承擔WiFi 適配器的任務時,可以將其添加到任何基于微控制器的設計中,連接簡單易行,只需通過SPI/SDIO 接口或I2C/UART口即可.
2.2.5電源模塊
文中的飛行控制系統(tǒng)模塊的供電電壓是通過無刷電子調速器自帶的BEC進行供電,其輸出電壓為5~8 V可調,但飛行控制系統(tǒng)中不同的模塊和傳感器對電壓的需要不同,需要5.0 V和3.3 V兩種電壓,因此文中設計了5.0 V和3.3 V兩種穩(wěn)壓電源電路,如圖9所示.
圖9 穩(wěn)壓電源電路
根據(jù)不同功能進行設計可以將縱列式無人直升機飛行控制軟件系統(tǒng)分為系統(tǒng)初始化、姿態(tài)數(shù)據(jù)采集、控制律解算、電動機及舵機控制、無線數(shù)據(jù)傳輸以及地面控制站6個模塊,其主程序流程如圖10所示.
圖10 縱列式無人直升機主程序流程圖
在縱列式無人直升機飛行控制系統(tǒng)軟件的子模塊軟件設計中,姿態(tài)數(shù)據(jù)采集模塊和控制律解算模塊軟件設計是重點和難點[2].
3.2.1姿態(tài)數(shù)據(jù)采集模塊軟件設計
姿態(tài)數(shù)據(jù)采集模塊軟件設計主要包括初始化、數(shù)據(jù)采集和數(shù)據(jù)解算3部分.
1) 模塊初始化.初始化主要是對寄存器進行設置,包括6軸運動傳感器LSM6DSR和3軸磁力計 LIS2MDL的初始化.
2) 數(shù)據(jù)采集.數(shù)據(jù)采集先通過SPI總線采集數(shù)據(jù)并保存在數(shù)組里,然后將數(shù)據(jù)合并成所需的數(shù)據(jù)形式.
3) 數(shù)據(jù)解算.數(shù)據(jù)解算的目的是將采集的數(shù)據(jù)轉化為姿態(tài)角,即滾轉角、俯仰角和偏航角.另外數(shù)據(jù)解算還涉及多傳感器的信息融合,以解決陀螺儀存在積分誤差發(fā)散、溫漂現(xiàn)象和加速度計動態(tài)性能差等問題[2].
從機體坐標系到地面坐標系的旋轉矩陣[18]R為
(1)
式中: s和c分別表示正弦和余弦函數(shù);φ為滾轉角;θ為俯仰角;ψ為偏航角.
為了避免在數(shù)據(jù)融合過程中利用歐拉角表示姿態(tài)而導致的旋轉矩陣求解運算量大的問題,使用四元數(shù)表示旋轉矩陣為[19]
(2)
由以上兩式可解算出飛行器的姿態(tài)角為
(3)
將獲取的加速度、角速度以及磁場數(shù)據(jù)使用四元數(shù)互補濾波算法融合,即可獲得精確的姿態(tài)角信息.根據(jù)四元數(shù)得到姿態(tài)角的程序如下:
attitude_angle.yaw=atan2(2f*(q1q2+q0q3),q0q0+q1q1-q2q2-q3q3)*57.3f;
attitude_angle.rol=atan2(2f*q2q3+2f*q0q1,q0q0-q1q1-q2q2+q3q3)*57.3f;
attitude_angle.pit=asin(2f*(q0q2-q1q3))*57.3f.
3.2.2控制律解算模塊軟件設計
控制模塊軟件利用傳感器反饋的姿態(tài)角,并采取一定的控制策略完成遙控接收機或者導航解算給定的控制任務[2].文中采用串級PID對縱列式無人直升機的姿態(tài)進行控制,內(nèi)環(huán)控制角速度,外環(huán)控制角度.串級PID控制原理如圖11所示.
圖11 縱列式無人直升機串級PID控制原理圖
縱列式無人直升機飛行控制系統(tǒng)PID控制算法程序實現(xiàn)如下:
void pid_cal(struct pid_data_t *pid_para, float target, float measure)
{
pid_para->error=target-measure;
pid_para->integral+=pid_para->error;
pid_para->differ=-(measure- pid_para->measure_last);
pid_para->error_last=pid_para->error;
pid_para->measure_last=measure;
pid_para->p_out=pid_para->kp * pid_para->error;
pid_para->i_out=pid_para->ki * pid_para->integral;
pid_para->d_out=pid_para->kd * pid_para->differ;
pid_para->output=pid_para->p_out+pid_para->i_out+pid_para->d_out;
}
在整個程序開發(fā)過程中使用了軟件集成開發(fā)環(huán)境 KEIL 5.可以選擇 C 或C++語言進行編程,然后進行編譯、鏈接和調試,可以很方便地將調試好的程序上傳到單片機,還可以進行在線調試.
系統(tǒng)調試分為 3 個階段,依次為硬件調試、軟件調試和軟硬件聯(lián)調.硬件調試是在焊接好 PCB 板的基礎上,進一步確認硬件電路無故障,提供各模塊正常工作的硬件環(huán)境[2,20].主要調試內(nèi)容包括電源轉換電路、STM32H750VBT6 最小系統(tǒng)、姿態(tài)傳感器模塊、無線通信模塊和遙控接收機模塊.飛行控制系統(tǒng)軟件包括上位機(地面站)調試軟件和下位機飛行控制軟件兩部分,上位機調試軟件主要是檢測上位機和下位機通信的串口收發(fā)協(xié)議是否正確,下位機飛行控制軟件的調試依托系統(tǒng)硬件,主要檢測各模塊能否正常工作以及控制算法參數(shù)調試.軟硬件聯(lián)調目的是使整個飛行控制系統(tǒng)正常穩(wěn)定工作,最終實現(xiàn)遙控飛行等[2].
縱列式無人直升機的飛行控制試驗具有一定的危險性,一旦失控,不但會損壞機體平臺和器件,甚至可能傷及試驗人員.因此,需要設計一個安全可靠的試驗方案,文中采取“系留試驗+放飛遙控試驗”的試驗方案:① 搭建系留試驗平臺,進行系留遙控試驗,基本確定各通道控制參數(shù),使之在臺架上能夠進行較為穩(wěn)定的姿態(tài)控制;② 進行放飛遙控試驗,進一步調試參數(shù),使其在空中的飛行更為穩(wěn)定.
4.3.1系留試驗
各通道的系留試驗基本類似,文中以俯仰通道的系留試驗為例進行說明.俯仰的試驗方法如下:撥動遙控器的俯仰搖桿,觀察無人機能否較好地跟隨操縱意圖,在試驗過程中從小到大修改被試驗PID參數(shù),直到無人機能較好地跟蹤操縱者的控制意圖,并記錄下PID控制參數(shù).俯仰通道具體的試驗過程如下:當縱列式無人直升機的俯仰角在0°附近時(俯仰角范圍從物理上進行了限制,最小-6.5°到最大4.5°,俯仰角可以通過上位機讀取),按上仰方向打俯仰搖桿,俯仰角到最大4.5°時,再反向打俯仰搖桿,下俯至最小-6.5°位置停止,觀察整個俯仰試驗過程的情況.縱列式無人直升機俯仰通道的俯仰過程如圖12所示.
圖12 俯仰通道系留試驗
為證明上述試驗結果,對試驗觀察進行量化,觀察上位機上顯示的慣導傳感器檢測到的俯仰角隨時間變化的數(shù)據(jù)波形如圖13所示.
圖13 俯仰角隨時間變化的數(shù)據(jù)波形
由圖13可知,俯仰通道能較好地跟蹤指令信號,誤差角度在可接受范圍內(nèi),基本上達到試驗要求.橫滾通道及偏航通道的試驗方法和俯仰通道試驗方法相類似,試驗也達到了預期控制效果.經(jīng)過系留遙控試驗,能夠較為穩(wěn)定地控制機體姿態(tài),可以進行放飛遙控試驗.
4.3.2放飛遙控試驗
放飛遙控試驗對飛行場地有一定的要求,需要場地比較空曠,試飛場地內(nèi)沒有樹木、電線桿和圍觀觀眾.試飛對天氣情況也有一定要求,需要風速小、能見度高,以便于觀察縱列式無人直升機試飛中的情況.另外需要有拍攝錄像設備,以記錄試飛情況.由于試飛具有一定的危險性,為防止螺旋槳槳葉傷及試驗人員并保護機體,給機體增加防護裝置.最后根據(jù)試飛的需求,選擇了中農(nóng)航天智慧農(nóng)業(yè)集成示范園里的藜麥地作為試飛場地,飛行試驗情況如圖14所示.放飛遙控試驗表明文中所設計的飛行控制系統(tǒng)能夠對縱列式無人直升機的姿態(tài)進行穩(wěn)定控制,達到了預期設計目標.
圖14 縱列式無人直升機放飛遙控試驗
文中從硬件設計、軟件設計和系統(tǒng)調試與飛行試驗等幾個方面較為詳細地介紹了縱列式無人直升機飛行控制系統(tǒng)的設計和實現(xiàn)過程.在試驗上,依次進行了軟硬件系統(tǒng)聯(lián)調、系留試驗、放飛遙控試驗.飛行試驗表明:所設計的飛行控制系統(tǒng)初步實現(xiàn)了對機體姿態(tài)的有效控制.