引言
四軸飛行器是一種具有4個對稱旋翼的直升機,具有垂直起降、結(jié)構(gòu)簡單、操縱方便、機動靈活等優(yōu)點。隨著傳感器技術(shù)和控制理論的不斷發(fā)展,尤其是微電子和微機械技術(shù)的逐步成熟,使四軸飛行器的自主飛行控制得以實現(xiàn)。姿態(tài)控制是四軸飛行器飛行控制系統(tǒng)的基礎(chǔ),而姿態(tài)的檢測是姿態(tài)控制的關(guān)鍵,姿態(tài)檢測的精確程度直接決定了姿態(tài)控制的效果。ADI公司的三軸慣性測量傳感器ADISl6355是一個由三軸陀螺和三軸加速度計組成的慣性感應(yīng)系統(tǒng)。它能夠準確地檢測運動物體繞三個軸向的角速度和線加速度,在導(dǎo)航與控制、平臺穩(wěn)定、運動控制、圖像穩(wěn)定、機器人等領(lǐng)域有著廣泛的應(yīng)用。本文利用ST公司的STM32F103VB單片機對ADISl6355的數(shù)據(jù)進行采集,通過無線數(shù)據(jù)傳輸模塊把傳感器數(shù)據(jù)發(fā)送回計算機,并對四軸飛行器的姿態(tài)進行了估計與分析。
1 慣性測量傳感器ADISl6355
ADISl6355是ADI公司推出的一款具有-40~85℃溫度范圍內(nèi)校準、SPI接口輸出的六自由度慣性測量傳感器,出廠前已經(jīng)對產(chǎn)品的零偏和靈敏度進行了全溫校準。ADISl6355具有三軸陀螺和三軸加速度計。三軸陀螺和加速度計具有14位分辨率,陀螺的測量范圍可配置為±75°/s、±150°/s、±300°/s,加速度計的測量范圍為±10g,傳感器帶寬達350 Hz。ADISl6355的輸出零偏穩(wěn)定性為0.015°/s,溫度系數(shù)為0.008(°/s)/℃,角度隨機游走為4.2°/s,適于精度要求較高的應(yīng)用。ADISl6355的結(jié)構(gòu)框圖如圖1所示。傳感器內(nèi)部完成了信號的采集、校準與濾波處理,具有自檢功能,還有1路ADC輸入、1路DAC輸出和2路數(shù)字I/O。SPI接口能夠輸出3個角速率信號、3個線加速度計信號、3個溫度傳感器信號和電源電壓信號。
2 應(yīng)用電路設(shè)計
ST公司的32位STM32系列微控制器是專門為微控制系統(tǒng)、工業(yè)控制系統(tǒng)和無線網(wǎng)絡(luò)等對功耗和成本敏感的嵌入式應(yīng)用領(lǐng)域而設(shè)計的。ST-M32F103VB是一款基于ARMv7-M體系結(jié)構(gòu)的32位標準處理器,工作頻率高達72 MHz,具有3個通用定時器、1個高級控制定時器、7個獨立的DMA通道、1個USB接口、3個USART接口、2個SPI接口和2個I2C接口。STM32F103VB的外圍電路僅需要外部晶振和少數(shù)電容,內(nèi)部自帶的USB接口便于調(diào)試和下載。
2.1 ADlSl6355接口電路
ADISl6355與STM32F103VB通過標準SPI接口進行連接,其硬件接口電路如圖2所示。ADIS16355的SCLK、DOUT、DIN、CS、RST腳分別與ST-M32F103VB的SPll~SCK、SPll_MISO、SPll_MOSI、SPll_NSS、PB0腳連接。ADISl6355的VCC腳經(jīng)0.1μF的電容接地,用于濾除干擾。
STM32F103VB的SPI接口配置為全雙工主模式,每幀傳輸16位數(shù)據(jù),每幀先發(fā)送MSB。時鐘極性配置為空閑狀態(tài)時,SCK保持高電平;時鐘相位配置為數(shù)據(jù)采樣從第二個時鐘邊沿開始。通信的波特率配置為64分頻,為1.125 MHz。為提高SPI的速度,降低CPU資源的使用率,采用了SPI的DMA模式,SPI接收到的數(shù)據(jù)直接存儲在定義好的數(shù)組里。STM32F103VB的SPI接口配置程序如下:
2.2 無線數(shù)據(jù)傳輸模塊及其接口
無線數(shù)據(jù)傳輸模塊使用的是nRF2401芯片,它工作于2.4GHz ISM頻段,輸出功率和通信頻道可通過程序進行配置。該模塊功耗非常低,以-5 dBm的功率發(fā)射時工作電流只有10.5 mA,接收時工作電流只有18 mA。實際使用時其無線傳輸距離可達30 m,最大傳輸速率可達1000 kbps。單片機和無線數(shù)據(jù)傳輸模塊的連接使用普通的I/O口,其電路設(shè)計如圖3所示。無線數(shù)據(jù)傳輸數(shù)模塊的DATA為雙向引腳,與其相連接的PEll引腳應(yīng)配置為輸入模式。
2.3 電源模塊
電源模塊主要為STM32F103VB、ADISl6355和無線數(shù)據(jù)傳輸模塊供電,其電路設(shè)計如圖4所示。鋰電池提供的11.1 V電源經(jīng)ASMlll7-5.O轉(zhuǎn)換為5 V,再經(jīng)過ASMlll7-3.3轉(zhuǎn)換為3.3 V。其中,5 V為ADISl6355提供電源,3.3 V為STM32F103VB和無線數(shù)據(jù)傳輸模塊提供電源。Dl是用于電源指示的LED,Rl為O.5 A可恢復(fù)保險。
3 四軸飛行器姿態(tài)估計
四軸飛行器的姿態(tài)主要指它在地面坐標系中的3個姿態(tài)角,即俯仰角、橫滾角和偏航角。其中,俯仰角和橫滾角可以通過對陀螺的角速度積分得到,也可通過3個軸向的加速度推算出來,但偏航角只能對角速度積分得到。由于在四軸飛行器測試平臺上檢測姿態(tài),對偏航角先不做要求。根據(jù)參考文獻,四軸飛行器的姿態(tài)控制系統(tǒng)模型中3個軸向的加速度可表示為:
其中,u、v、w為機體坐標系下3個軸向的線速度,p、q、r為機體坐標系下繞3個軸的角速度,θ、φ為四軸飛行器的俯仰角和橫滾角,U1為總的升力,m為飛行器的質(zhì)量。在試驗平臺上檢測時,四軸飛行器的位置固定不變,上式可簡寫成:
其中,為加速度計測得的加速度,通過式(2)可推算得到俯仰角和橫滾角如下:
配置陀螺的測量范圍為±300°/s,1 min內(nèi)測得的ADISl6355三個軸的角速度、加速度和溫度曲線如圖5所示。在約19 s時使飛行器繞x軸進行滾轉(zhuǎn)運動,在約45 s時使飛行器恢復(fù)到剛開始的靜止狀態(tài)。由圖5可知,靜止時角速度的輸出范圍為±2°/s,x、y軸加速度計的輸出范圍為±O.015 g,溫度由26℃到30℃逐步上升。若把陀螺的測量范圍配置為±75°/s,靜止時的角速度輸出范圍為±l°/s,但很容易超出±75°/s的范圍,因此±75°/s的測量范圍不適用于四軸飛行器姿態(tài)檢測。
對角速度進行積分得到飛行器的三個姿態(tài)角,如圖6所示。通過式(3)由加速度信息推算的兩個角度如圖7所示。對比圖6和圖7可知,由角速度積分得到的角度最終不是靜止時的0°。原因是陀螺存在漂移,隨著時間的積累,測量的誤差會在積分中一直累加,而由加速度信息推算出來的角度就不存在漂移。圖7中約第24 s時,y軸角度出現(xiàn)一個峰值(高達70°),而實際的旋轉(zhuǎn)角度只在±30°之間,其原因是振動引起加速度值突增,導(dǎo)致推算出的角度過大。
結(jié)語
實際使用中,加速度計對振動非常敏感,應(yīng)根據(jù)應(yīng)用的場合對加速度數(shù)據(jù)進行處理。四軸飛行器具有4個無刷電機,實際飛行時電機引起的振動非常大,如果簡單地通過加速度來推算角度就會出現(xiàn)很多圖7中第24 s的尖點,與實際情況不符合。可以通過對加速度進行均值濾波得到改善。對陀螺角速度的積分可利用加速度推算出的角度值進行修正。
本文使用STM32F103VB單片機對慣性測量傳感器ADISl6355進行數(shù)據(jù)采集,并通過無線數(shù)據(jù)傳輸模塊把數(shù)據(jù)發(fā)送回計算機。利用ADISl6355對四軸飛行器姿態(tài)進行檢測,可分別利用角速度信息和加速度信息對飛行器姿態(tài)進行估計,兩種方法各有優(yōu)缺點,在實際使用時要綜合進行考慮。