大熱的四軸飛行器設(shè)計(jì),提供軟硬件參考方案
一、項(xiàng)目概述
1.1 項(xiàng)目摘要
四軸飛行器具有不穩(wěn)定,非線性特性,姿態(tài)控制為四軸飛行器控制系統(tǒng)的核心。機(jī)械部分搭建四個(gè)具有對(duì)稱結(jié)構(gòu)的螺旋槳葉和驅(qū)動(dòng)電機(jī)。電氣部分則采用STM32為控制核心的慣性參考模塊作為姿態(tài)控制板,通過(guò)四軸飛行器的飛行原理,建立數(shù)學(xué)模型,設(shè)計(jì)四軸飛行器的姿態(tài)控制系統(tǒng)。陀螺儀,加速度,地磁計(jì)分別采集運(yùn)動(dòng)軌跡數(shù)據(jù),姿態(tài)修正,進(jìn)行航向控制,采用PI算法進(jìn)行姿態(tài)角的閉環(huán)控制。另外運(yùn)用一塊STM32作為自主飛行控制板,兩塊主控芯片通過(guò)無(wú)線串口進(jìn)行數(shù)據(jù)傳送,當(dāng)姿態(tài)控制板受到來(lái)自飛行控制板的控制信號(hào)時(shí),姿態(tài)控制板通過(guò)數(shù)字控制總線控制四個(gè)電調(diào),電調(diào)再把控制信號(hào)轉(zhuǎn)化為電機(jī)轉(zhuǎn)速控制電機(jī)運(yùn)行,達(dá)到飛行效果。
1.2 項(xiàng)目背景/選題動(dòng)機(jī)
四軸飛行器有著其他類型航模無(wú)可比擬的優(yōu)勢(shì),懸停穩(wěn)定,不需要占用很大的面積空間;機(jī)械結(jié)構(gòu)簡(jiǎn)單,維護(hù)方便,飛行損耗成本低;可擴(kuò)展性好,在四軸飛行器上能搭載攝像頭,或者其他傳感器,應(yīng)用前景廣泛,可用于軍事,救援等特殊使命。而四軸飛行器的控制核心是姿態(tài)控制,而iNEMO模塊則為四軸飛行器搭建了基礎(chǔ)的控制硬件平臺(tái)。
二、需求分析
2.1 功能要求
(1) 傳感器要求能夠檢測(cè)四軸飛行器的航向,姿態(tài)信息。
(2) 主控器能快速獲得各個(gè)傳感器的數(shù)據(jù),并進(jìn)行數(shù)據(jù)處理。
(3) 各個(gè)電機(jī)要能進(jìn)行實(shí)時(shí)調(diào)速,實(shí)現(xiàn)穩(wěn)定飛行。
(4) 飛行控制板與姿態(tài)控制板進(jìn)行一定距離實(shí)時(shí)通訊,并能控制飛行器的快速調(diào)速以實(shí)現(xiàn)飛行控制。
(5) 通過(guò)無(wú)線通訊獲取地磁模塊地磁與加速度原始數(shù)據(jù),通過(guò)飛行控制板進(jìn)行處理并顯示航向。
(6) 通過(guò)對(duì)電源模塊的電壓AD采樣,獲取電池電量信息并在飛行控制板上顯示
2.2 性能標(biāo)準(zhǔn)
(1) 水平原地連續(xù)旋轉(zhuǎn)
懸停在空中1米左右,偏航測(cè)試,四軸就開(kāi)始原地連續(xù)旋轉(zhuǎn)起來(lái)。這個(gè)飛行主要用于測(cè)試飛控姿態(tài)預(yù)測(cè)算法的能力。好的飛行控制算法應(yīng)該是盡量保持飛行器機(jī)身水平,不會(huì)漂移太多。
(2) 單邊掛重物實(shí)驗(yàn)
懸停在空中,瞬間給飛行器四軸中一個(gè)軸臂上掛一個(gè)重物,對(duì)這樣沖擊力,觀察飛行器能不能快速做出反應(yīng),時(shí)間越短越好
(3) 加速上升或者下降
在飛行器處于懸停狀態(tài),加速上升或者加速下降,觀察機(jī)身是否激烈抖動(dòng),抖動(dòng)小或不抖動(dòng)抗風(fēng)能力強(qiáng)
三、方案設(shè)計(jì)
3.1 系統(tǒng)功能實(shí)現(xiàn)原理
四軸飛行器飛行原理:
當(dāng)四個(gè)旋翼的轉(zhuǎn)速相等且產(chǎn)生的升力之和等于飛行器自身的重力時(shí),飛行器處于懸停狀態(tài);在懸停的基礎(chǔ)上,飛行器的任意一組旋翼轉(zhuǎn)速等量的增加或減少,而另一組飛行速度不變,將產(chǎn)生偏航的效果;同時(shí)等量增加或減少飛行器4個(gè)旋翼速度時(shí),將使飛行器上升或下降;當(dāng)其中飛行器的其中一個(gè)旋翼速度增加或減少,處于對(duì)角線上的旋翼速度減小或增加,飛行器將會(huì)向一個(gè)方向傾斜,產(chǎn)生俯仰運(yùn)動(dòng)或滾俯運(yùn)動(dòng)。如圖1所示。
圖1
四軸飛行器的飛行控制系統(tǒng)包括主控制模塊,各個(gè)傳感器模塊,飛行控制板,通訊模塊,電機(jī)調(diào)速模塊,電池模塊。主控制模塊與傳感器模塊合成一個(gè)模塊,使用的是意法半導(dǎo)體公司的iNEMO模塊慣性測(cè)量模塊,該模塊之間通過(guò)采用I2C通訊模式進(jìn)行數(shù)據(jù)傳輸,并將控制信號(hào)發(fā)送給電調(diào);飛行控制板與主控制器采用無(wú)線串口進(jìn)行數(shù)據(jù)收發(fā)和命令控制;電源模塊為各個(gè)傳感器和控制芯片提供電源,并為電調(diào)和電機(jī)提供動(dòng)力。四軸飛行器的系統(tǒng)總體設(shè)計(jì)框圖如圖2所示。
圖2
3.2 硬件資源配置
主控制器
系統(tǒng)主控制器采用意法半導(dǎo)體公司32位微處理器STM30f103系列為主控制器,它是專門為控制系統(tǒng),工業(yè)控制系統(tǒng)和無(wú)線網(wǎng)絡(luò)等對(duì)功耗和成本敏感的嵌入式應(yīng)用領(lǐng)域而設(shè)計(jì)的。STM32系列32位閃存微控制器基于為嵌入式應(yīng)用開(kāi)發(fā)的具有突破性的ARM Cortex –TM內(nèi)核,高速指令處理能力,支持浮點(diǎn)數(shù)運(yùn)算,有強(qiáng)大的數(shù)據(jù)處理能力;擁有USB,USART,SPI,I2C等多個(gè)外設(shè)接口,12位精度的ADC,采集更精確的數(shù)據(jù),減小數(shù)據(jù)誤差;STM32開(kāi)發(fā)完整的固件庫(kù),完善的開(kāi)發(fā)工具為用戶大大縮短開(kāi)發(fā)周期,節(jié)約開(kāi)發(fā)成本;
慣性參考單元
STEVAL-MKI062V2開(kāi)發(fā)套件,這款iNEMO模塊集成了5個(gè)意法半導(dǎo)體傳感器:雙軸滾轉(zhuǎn)-俯仰陀螺儀(LPR430AL),單軸偏航陀螺儀(LY330ALH),6軸地磁測(cè)量模塊(LSM303DLH),壓力傳感器(LPS001DL)和溫度傳感器(STLM75)。
無(wú)線射頻模塊
用于收發(fā)數(shù)據(jù)命令采用CC1101無(wú)線通信模塊,串口通訊方式,低功耗工作,傳輸距離可達(dá)到200m,提供3種用戶可選波特率,可傳輸字節(jié)為30的數(shù)據(jù)幀,且有大數(shù)據(jù)的緩沖區(qū)。
電源模塊
電源模塊為主控制器,各個(gè)傳感器和電機(jī)供電,鋰電池供電,由ASM1117轉(zhuǎn)換為5V為慣性測(cè)量模塊和電調(diào)供電。
顯示部分
顯示部分為無(wú)線發(fā)送回來(lái)數(shù)據(jù)進(jìn)行處理顯示和對(duì)發(fā)送控制命令的顯示,具有輔助調(diào)節(jié)作用,該部分采用2.4寸TFT顯示。
圖3
3.3系統(tǒng)軟件架構(gòu)
姿態(tài)檢測(cè)算法
將陀螺儀和加速度計(jì)的初始測(cè)量值減去常值誤差,獲得角速度和加速度,并對(duì)加速度進(jìn)行積分。然后對(duì)角加速度積分和加速度積分?jǐn)?shù)值融合處理。融合目的包括兩個(gè)方面:一個(gè)對(duì)角速度的飄移進(jìn)行估算,加入到角度值里面。另一個(gè)對(duì)陀螺儀的常值數(shù)值進(jìn)行修正。
控制算法
算法的核心是對(duì)角速度做PI計(jì)算,P的作用是使四軸飛行器能夠產(chǎn)生對(duì)于外界干擾的抵抗力矩,I的作用是讓四軸飛行器產(chǎn)生一個(gè)與角度成正比的抵抗力。對(duì)角速度做I預(yù)算實(shí)際得到的是角度值,如果四軸有一個(gè)傾斜角度,那么四軸飛行器就會(huì)自己進(jìn)行調(diào)整,直到傾角為零。它所產(chǎn)生的抵抗力與角度成正比,但是如果只有I的話,四軸飛行器會(huì)馬上進(jìn)行震蕩,PI必須結(jié)合起來(lái)使用。
控制系統(tǒng)框架圖
3.4 系統(tǒng)軟件流程
四軸飛行器姿態(tài)控制程序運(yùn)行流程圖如圖5所示,系統(tǒng)上電以后進(jìn)行系統(tǒng)初始化,包括時(shí)鐘配置,端口初始化,液晶界面初始化。由控制器發(fā)出控制指令,如果四軸飛行器上姿態(tài)調(diào)整板能接受并產(chǎn)生應(yīng)答信號(hào),則進(jìn)行傳感器校準(zhǔn),系統(tǒng)電量檢測(cè),電量充足則等待無(wú)線指令,當(dāng)接收到無(wú)線指令后,由姿態(tài)控制板就行姿態(tài)檢測(cè),數(shù)據(jù)采集進(jìn)行算法處理,并通過(guò)IIC把控制命令傳遞給電調(diào)進(jìn)行電機(jī)轉(zhuǎn)速控制,以進(jìn)行飛行控制。在整個(gè)過(guò)程中采用ADC采集電源模塊輸出電壓,以進(jìn)行電量檢測(cè),如果電量不足,則飛行器落?;蛘卟黄痫w。
程序運(yùn)行流程圖
評(píng)論