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