飛控設計文檔_第1頁
飛控設計文檔_第2頁
飛控設計文檔_第3頁
飛控設計文檔_第4頁
飛控設計文檔_第5頁
已閱讀5頁,還剩17頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、四旋翼飛控系統(tǒng)設計文檔第一章 緒論1.1 研究背景任何由人類制造、能飛離地面、在空間飛行并由人來控制的飛行物,稱為飛行器。在大氣層內飛行的飛行器稱為航空器,如氣球、滑翔機、飛艇、飛機、直升機等。它們靠空氣的靜浮力或空氣相對運動產生的空氣動力升空飛行。飛行器不僅廣泛應用于軍事,在民用領域的作用也在增加,機載 GPS 和 MEMS(Micro-Electro-Mechanical Systems)慣性傳感器的飛行器甚至可以在沒有人為控制的室外環(huán)境中飛行,也就是大家所熟知的無人機,。因此國內外研究人員對飛行器進行了大量研究。對飛行器的研究目前主要包括固定翼、旋翼及撲翼式三種,而我們所研究的四旋翼飛行

2、器在布局形式上屬于旋翼的一種,相對于別的旋翼式飛行器來說四旋翼飛行器結構緊湊,能產生更大的升力,而且不需要專門的反扭矩槳保持飛行器扭矩平衡。四旋翼飛行器能夠垂直起降,不需要滑跑就可以起飛和著陸,從而不需要專門的機場和跑道,降低了使用成本,可以分散配置,便于偽裝,對敵進行突襲和偵察。四旋翼飛行器能夠自由懸停和垂直起降,結構簡單,易于控制,這些優(yōu)勢決定了其具有廣泛的應用領域,在民用,醫(yī)療,軍事等領域都有著無限的潛力。在民用領域,它可以進行航拍,以得到在地面難以測量和計算的數(shù)據(jù);在醫(yī)療領域,四旋翼直升機可以進入普通地面機器人難以到達的地區(qū)進行搜救等活動,最大程度的避免人員財產損失;在軍用方面,四旋翼

3、直升機可以作為偵查使用,它飛行靈活,穩(wěn)定,同時,若在四旋翼直升機上增加其他機械裝置,則可以利用它完成更加復雜和重要的任務。然而,作為一個 MIMO 非線性系統(tǒng),四旋翼飛行器輸入變量與輸出變量之間的耦合作用、時變非線性的動力學特征、系統(tǒng)本身的不確定性及外部的干擾等的引入,使得系統(tǒng)的控制問題變得十分復雜。如何能夠設計出有足夠的飛行動力并且具有良好穩(wěn)定性的控制系統(tǒng),是四旋翼飛行器如今面臨的主要問題,這也使得強大而又易于控制的發(fā)動機和控制飛行器協(xié)調工作的控制系統(tǒng)成為四旋翼飛行器設計的關鍵。近幾年來,國外一些知名研究機構擴展了四旋翼飛行器的研究領域,希望其在無GPS信號的室內環(huán)境中可以利用一些特定的傳感

4、器數(shù)據(jù)進行導航,所以擁有一個穩(wěn)定的飛控系統(tǒng)是非常必要的,而國內對于四旋翼飛行器飛控系統(tǒng)的研究起步較晚,一些穩(wěn)定的飛控系統(tǒng)都被商品化,我們不能對其根據(jù)自己的需求進行修改,這給我們的研究帶來很多的不便,因此我們需要開發(fā)一款屬于自己的飛控系統(tǒng)。1.2 國內外研究現(xiàn)狀MD4-200 是德國 microdrones 公司研發(fā)的微型無人飛行器,機體和云臺完全采用碳纖維材料制造,這種材料擁有更輕的重量和更高的強度,也使 MD4-200具有抗電磁干擾的能力。飛行時間不低于 20 分鐘。MD4-200 的核心是 AAHRS(姿態(tài)、高度及航向參考系統(tǒng)),集成了加速度計、陀螺儀、磁力計、氣壓計、濕度計、溫度計等多種

5、高精度傳感器和卓越的控制算法,md4-200的操控因而變得非常簡單??芍贫w行航線規(guī)劃,讓飛行器按照預設的航線自動飛行。采用選配的 GPS 系統(tǒng)能夠實現(xiàn)空間位置鎖定與自動航點導航功能,還可以選擇以 microSD 卡作為記錄器的飛行記錄儀來實時記錄和分析飛行數(shù)據(jù),所有重要的飛行數(shù)據(jù)都可以下載到數(shù)據(jù)中心,包括電池狀態(tài)、高度、姿態(tài)、位置、飛行時間等,用于航后的數(shù)據(jù)分析。MD4-200 還具有安全保護措施以避免墜毀,它能夠在電量不足和失去控制信號時自主降落。OS4是瑞士洛桑聯(lián)邦理工學院(EPFL)自動化系統(tǒng)實驗室開發(fā)的一種電動小型四旋翼飛行器(S.Bouabdallah, R.Siegwart,20

6、07),研究的重點是機構設計方法和自主飛行控制算法,目標是要實現(xiàn)室內和室外環(huán)境中的完全自主飛行。該項目進行了兩個階段的研究。已經(jīng)分別基于多種控制算法(例如:PID、LQ、Backstepping、Sliding-mode),實現(xiàn)了飛行器姿態(tài)控制。2006年 1 月 EPFL 已經(jīng)實現(xiàn)了 OS4在室內環(huán)境中基于慣導的自主懸??刂?。麻省理工學院(MIT)計算機科學和人工智能實驗室 Robust Robotics Group開發(fā)了一種微型四旋翼飛行器(R.He,S.Prentice,N.Roy,2008),安裝北陽(Hokuyo)的激光測距儀、地平面?zhèn)鞲衅?、攝像機,組成了“激光測距+視覺”的自主飛行

7、系統(tǒng)。它既沒有安裝 GPS 也沒有安裝慣性導航裝置,因為對于微型飛行器而言,慣性導航裝置成本高昂、體積大和質量重。這種微型四旋翼飛行器利用機載的激光測距儀估算自身的相對位置、偏航角和高度信息;利用機載激光掃描儀和照相機用于環(huán)境感知、重建并規(guī)劃飛行、建立自身在環(huán)境地圖中的映射和確立明確的飛行路徑以在室內狹小的空間和存在 GPS 盲區(qū)的區(qū)域安全穩(wěn)健的自主飛行。Kinect Quadrocopter MIT 是麻省理工學院 Computer Science and ArtificialIntelligence Laboratory 和 Robotics and States Estimation L

8、aboratory 合作研制的。在四旋翼飛行器上安裝 Kinect,使四旋翼能夠完全自主 3D 地圖映射(3-Dmapping)和飛行。采用 SLAM (Simultaneous Localization And Mapping)算法構建環(huán)境模型,并使用 Kinect 傳感器采集數(shù)據(jù)信息。SLAM 地圖映射使得飛行器還能夠在 GPS 盲區(qū)(如室內、密集的城市環(huán)境等)自主飛行執(zhí)行任何和進行遠程控制(A.Bachrach,R.He,N.Roy,2009a,A.Bachrach,R.He,N.Roy,2009b)。這對于四旋翼4DraganFlyer X4 是 Draganfly Innovatio

9、n Inc.設計的一種超級遙控攝像飛機,具有驚人的性能和良好的穩(wěn)定性,它輕便小巧易于攜帶,質量為 680g,最大長度約 77.5cm,有效載荷為 250g??捎脕頊y量、工業(yè)測繪、軍事偵察、空中攝影等;機載高性能處理器可以運行數(shù)千行代碼并且接收傳感器(三個加速度計,三個陀螺儀,一個氣壓傳感器)輸出的信息并加以處理。操作者使用手持式控制器可以控制它飛行的方向、速度大小,也可以調整飛行的高度??梢宰龅阶詣悠胶猓擁椖坑?Office of Naval Research 和 ArmyResearch Office 資助,具有明顯的軍事用途。AR.Drone 直升飛機是法國派諾特(Parrot)公司開發(fā)

10、的一款飛行器,AR.Drone類似于一款無人駕駛直升機,擁有四個獨立旋翼,操作員可以使用 iPad、iPhone、和 iPod Touch 上的軟件對其進行飛行控制操作。由于整個飛機的操作都是基于飛機自身發(fā)出的 Wi-Fi 信號,因此操控距離可達 50 米。該飛行器的下方還加裝有重力感應裝置、陀螺儀、機械控制芯片等部件,利用智能飛行技術可以糾正風力和其他環(huán)境誤差,平衡 AR.Drone 的飛行速度和角度。這款航模的駕駛艙前部安裝有一個攝像頭,可以將第一人稱視角的畫面通過 Wi-Fi 信號傳回 iPad(或iPhone、iPod Touch),這樣就能在 iPad 上看到逼真的模擬駕駛艙畫面,而

11、 Parrot公司還提供有 SDK,游戲開發(fā)者可以針對該產品設計開發(fā)虛擬空戰(zhàn)游戲。1.3 國內外現(xiàn)有的四旋翼飛控系統(tǒng)1.4 文檔主要內容設計四旋翼飛行器需要綜合很多方面,例如設計飛行器結構、選擇合適的傳感器件和有效的控制算法等等。本文的主要任務是實現(xiàn)四旋翼飛行器完整控制系統(tǒng)的設計,包括實驗用飛行器模型硬件部分及軟件部分設計,系統(tǒng)的動力學建模,姿態(tài)解算原理及實現(xiàn),基于動力學模型的控制器設計,最終還要完成裝置的調試和飛行實驗。具體研究內容分為以下幾個部分:(1) 系統(tǒng)硬件設計。通過分析四旋翼飛行器的飛行原理,確定結構模塊化的硬件設計思路,分別進行系統(tǒng)控制模塊、PWM驅動模塊、IMU(慣性測量)模塊

12、和遙控器信號捕捉模塊硬件原理的分析和實物電路的設計。(2) 結合四旋翼飛行器的硬件結構,進行軟件編程部分的工作。按照四旋翼飛行器的飛行原理和控制特性進行系統(tǒng)飛行控制主程序以及各模塊軟件編程。(3) 對四旋翼飛行器系統(tǒng)的控制方法進行研究,根據(jù)飛行原理進行動力學建模,并完成系統(tǒng)控制器的設計。(4) 系統(tǒng)調試和實驗結果分析。首先對系統(tǒng)的各個模塊進行相關調試和檢測,然后組裝模型,進行四旋翼飛行器實物系統(tǒng)的飛行實驗,驗證理論設計方案的合理性。第二章 四旋翼飛控系統(tǒng)硬件平臺搭建2.1 四旋翼飛行器飛行原理圖2-1 四旋翼模型圖四旋翼飛行器故名思議采用四個旋翼作為飛行的直接動力源,旋翼對稱分布在機體的前后、

13、左右四個方向,如圖2-1,四個旋翼處于同一高度平面,且四個旋翼的結構和半徑都相同,旋翼1 和旋翼3 逆時針旋轉,旋翼2 和旋翼4 順時針旋轉,四個電機對稱的安裝在飛行器的支架端。四旋翼飛行器和典型的傳統(tǒng)直升機不同,直升機配備有一個主轉子和一個尾漿。他們是通過控制舵機來改變螺旋槳的槳距角,從而控制直升機的姿態(tài)和位置。四旋翼飛行器是通過調節(jié)四個電機轉速來改變旋翼轉速,實現(xiàn)升力的變化,從而控制飛行器的姿態(tài)和位置。由于飛行器是通過改變旋翼轉速實現(xiàn)升力變化,這樣會導致其動力不穩(wěn)定,所以需要一種能夠長期確保穩(wěn)定的控制方法。圖2-2 四旋翼飛行器飛行原理圖四旋翼飛行器是一種六自由度的垂直起降機,因此非常適合

14、靜態(tài)和準靜態(tài)條件下飛行。但是四旋翼飛行器只有四個輸入力,同時卻有六個狀態(tài)輸出,所以它又是一種欠驅動系統(tǒng)。因為電機1 和電機3 逆時針旋轉的同時,電機2 和電機4 順時針旋轉,所以當飛行器平衡飛行時,陀螺效應和空氣動力扭矩效應均被抵消。四旋翼典型的控制模式有兩種,即“十”模式和“X”模式,如圖2-2是“十”模式控制原理圖,圖a)中表示的是1號電機轉速比3號電機快,這飛行器會向后方運動,同理圖b)中3號電機轉速比1號電機轉速快,則飛行器向前方運動,圖c)和圖d)表示的是飛行器向左右運動的控制原理圖,圖e)和圖f)表示的是飛行器上下運動的控制原理圖,當四個電機轉速同時增大時飛行器會上升,同時減小時飛

15、行器會下降。圖g)和圖h)表示的是飛行器偏航方向的控制原理圖,當1號和3號電機轉速比2號和四號轉速快時,飛行器會逆時針旋轉,同理增加2號和4號電機的轉速,飛行器會順時針旋轉。四旋翼的另外一種控制模式是“X”模式,和“十”模式控制方式相比只有在前后和左右方向上不同,而垂直方向和偏航方向控制完全相同?!癤”模式下左右運動依靠左右兩對電機的轉速差控制,前后運動依靠前后兩對電機的轉速差控制。本實驗室開發(fā)的飛控系統(tǒng)基于的是“X”模式。2.2 四旋翼飛控系統(tǒng)硬件平臺設計2.2.1 設計目標本實驗室所設計的四旋翼飛控系統(tǒng)的目標是設計出一套完整的四軸飛行器飛行控制系統(tǒng),并利用硬件和軟件實現(xiàn)設計的控制系統(tǒng),從而

16、實現(xiàn)我們的控制目標,期望通過該飛行控制系統(tǒng)可以讓四旋翼飛行器在近地環(huán)境下,通完成垂直起降、懸停等動作,并在對其施以外界干擾時能自動調節(jié)迅速恢復到平穩(wěn)狀態(tài),最后能在此基礎上通過暴力測試。同時為了能夠滿足飛行試驗的需要提出了以下要求:(1)具有較高的可靠性。(2)具有較好的可維護性,配件的購買和更換方便,便于外場試驗。(3)具有較好的安全防護機制,可以應對突發(fā)的故障。(4)具有一定的續(xù)航能力,提高外場飛行試驗效率。2.2.2 系統(tǒng)硬件結構整個系統(tǒng)硬件部分根據(jù)模塊化思想進行設計,結構框圖如圖2-3所示 圖2-3系統(tǒng)硬件結構框圖從上圖可以看出整個系統(tǒng)主要包含的模塊有遙控器信號捕捉模塊、IMU(姿態(tài)測量

17、模塊)、PID控制器模塊、PWM輸出模塊、IIC模塊和USART(無線串口)模塊。下面簡要介紹每個模塊的功能:遙控器信號捕捉模塊:這個模塊主要用來捕捉遙控器的PWM波信號,遙控器2通道信號主要用做飛行器的油門,1通道信號作為飛行器橫滾角設定值,3通道信號作為飛行器俯仰角設定值,4通道作為飛行器俯仰角設定值,5通道信號作為模式切換開關信號。IMU(姿態(tài)測量模塊):該模塊包括三個傳感器總共九軸數(shù)據(jù),這個模塊和STM32連接的接口是IIC接口,九軸數(shù)據(jù)通過基于互補濾波的姿態(tài)解算算法算出當前飛行器的姿態(tài)然后和上一個模塊給出的姿態(tài)設定值做差,得到姿態(tài)誤差。PID控制器模塊:該模塊由軟件生成,我們開發(fā)最后

18、決定使用分段PID串級控制,使用串級控制的好處是可以很好地消除外部擾動,之所以使用分段PID是因為在誤差小時,所需要的控制作用較小,而誤差較大的時候所需要的控制作用較大。,該模塊輸入是姿態(tài)誤差,輸出是控制量對應的四個電機的PWM輸出。PWM輸出模塊:利用stm32自帶的PWM生成器直接產生需要的PWM波,PWM波的參數(shù)主要是周期與占空比。IIC模塊:之所以要加上這個模塊是因為STM32這塊芯片的硬件IIC使用時不能滿足使用要求,我們開發(fā)的時候是根據(jù)時序自己編寫軟件的模擬IIC來解決這個問題的。USART(無線串口)模塊:這個模塊主要是用于調試PID參數(shù)和姿態(tài)數(shù)據(jù)的實時回傳給上位機,里面主要涉及

19、的是通信協(xié)議的編寫。2.2.3 器件選取(1)微控制器選型飛控系統(tǒng)是一個多輸入多輸出系統(tǒng),輸入信號主要是對四旋翼飛行器飛行姿態(tài)的設定值,開發(fā)第一階段使用遙控器信號給定姿態(tài)的設定值,第二階段使用上位機給定姿態(tài)設定值,所以選擇的控制器需要都能夠接受這兩種設定信號。飛控系統(tǒng)輸出的控制信號是PWM(脈沖寬度調制)信號,所以需要微控制器可以比較容易的產生PWM信號。整個飛控系統(tǒng)還涉及到飛行姿態(tài)的解算,所以需要微控制器的主頻較高,這樣可以提高姿態(tài)解算的時間。還有IMU(慣性測量單元)接口是IIC接口,所以需要所選擇的微控制器具有IIC通信接口。最后由于控制系統(tǒng)具有3ms的控制周期,所以需要微控制器的定時器

20、精度較高,基于以上這么多要求,本飛控系統(tǒng)選定的微控制器是ST(意法半導體公司)的STM32系列芯片。圖2-4 STM32芯片圖如圖2-4所示,這個系列的芯片是基于ARM Cortex-M3內核的微控制器,片上集成32-512KB的Flash存儲器。6-64KB的SRAM存儲器。具有3種低功耗模式:休眠,停止,待機模式。為RTC和備份寄存器供電的VBAT。兩種調試模式:串行調試(SWD)和JTAG接口。具有12通道DMA控制器,支持的外設有定時器,ADC,DAC,SPI,IIC和USART。具有2個12位的us級的A/D轉換器(16通道),A/D測量范圍:0-3.6 V、雙采樣和保持能力、片上集

21、成一個溫度傳感器。具有最多高達112個的快速I/O端口:根據(jù)型號的不同,有26,37,51,80,和112的I/O端口,所有的端口都可以映射到16個外部中斷向量。除了模擬輸入,所有的都可以接受5V以內的輸入。最多多達11個定時器:4個16位定時器,每個定時器有4個IC/OC/PWM或者脈沖計數(shù)器。2個16位的6通道高級控制定時器:最多6個通道可用于PWM輸出。2個看門狗定時器(獨立看門狗和窗口看門狗)。Systick定時器:24位倒計數(shù)器。2個16位基本定時器用于驅動DAC。最多多達13個通信接口:2個IIC接口(SMBus/PMBus),5個USART接口(ISO7816接口,LIN,IrD

22、A兼容,調試控制),3個SPI接口(18 Mbit/s),兩個和IIS復用,CAN接口(2.0B),USB 2.0全速接口,SDIO接口。(2)IMU(慣性測量單元) 選型四旋翼飛行器在空中飛行時由于受到周圍環(huán)境的影響,無法使飛行器一直保持平衡的狀態(tài),這就需要一定的傳感器件來對飛行器的姿態(tài)進行檢測,而現(xiàn)在一般使用傳感器就是IMU,以前的IMU一般只有三軸陀螺儀,但是由于陀螺儀往往存在溫度漂移,所以就需要有其他的傳感器件對陀螺儀數(shù)據(jù)進行糾正?,F(xiàn)在IMU一般包括三軸陀螺儀,三軸加速度計和三軸磁力計,其中加速度計和磁力計用來對陀螺儀數(shù)據(jù)進行糾正。本套飛控系統(tǒng)選用的傳感器信號是MPU6050,其整合了

23、三軸加速度計和三軸陀螺儀,坐標軸定義如圖2-5圖2-5 MPU6050坐標軸定義MPU6050的角速度全格感測范圍為±250、±500、±1000與±2000°/sec (dps),可準確追蹤快速與慢速動作,并且,用戶可程式控制的加速器全格感測范圍為±2g、±4g±8g與±16g。產品傳輸可透過最高至400kHz的IIC。磁力計選用的是Honeywell公司的HMC5883l三軸數(shù)字羅盤,接口是IIC,通過配置輸出頻率最高是75HZ。(3)電調、電機、螺旋槳及機架選型實驗室的四旋翼飛行器電調、電機和螺旋槳

24、都是DJI公司的,其中電調(電子調速器,用來控制電機的轉速,輸入是一定周期的PWM波,英文簡稱ESC)如圖2-6的規(guī)格參數(shù)如下: 電流 : 30 AOPTO兼容信號頻率 : 30Hz - 450Hz電池 : LiPo ( 3-4S 1500mAh 2600 mAh)。電機如圖2-7,規(guī)格參數(shù)如下:定子尺寸 : 22 x 15mm KV值 : 920KV rpm/V 螺旋槳 : 10 x 4.5 in型號:2212實際重量:60克。螺旋槳如圖2-8所示,規(guī)格是10英寸。圖2-6 DJI電調圖2-7 DJI電機圖2-8 DJI 1045螺旋槳由于飛控程序一開始不穩(wěn)定,在調試的時候肯定會出現(xiàn)炸機的情

25、況,所以機架必須非常結實,我們選取的機架是XAircraft公司的X450Pro機架,如圖2-9圖2-9 XAircraft X450Pro機架 (4)電源、遙控器及無線模塊選型關于遙控器的選型,主要看設計飛控系統(tǒng)時需要多少個輸入信號,為了滿足當前使用和以后繼續(xù)開發(fā)的要求,實驗室選擇的是天地飛公司的一款7通道的遙控器,型號WFT07,如圖2-10所示圖2-10 天地飛遙控器與接收機關于電源的選型,本系統(tǒng)選用的是鋰電池,用它來給電調供電,同時通過穩(wěn)壓電路輸出5V給控制板供電。關于無線模塊的選型,由于有時候飛行器飛的距離比較遠,所以選擇如圖2-11這款無線模塊,它的型號是XBEE PRO 900

26、HP 250MW,傳輸距離野外無遮擋距離一般為4-10km。圖2-11 XBEE PRO 900無線模塊第三章 四旋翼飛行器軟件設計3.1 軟件設計需求本系統(tǒng)主要完成的是四旋翼飛行器的垂直起降控制和一定范圍內的姿態(tài)變化控制。在飛行控制的軟件設計中,預期的目標是讓飛行器能夠快速到達設定的姿態(tài),并且在垂直方向可以穩(wěn)定在設定的高度上,而對于飛行器最基本的飛行特性-懸停就是第一個我們要完成的任務。 由四旋翼飛行器的飛行原理可知,飛行器飛行姿態(tài)的調節(jié)最終體現(xiàn)在四個帶螺旋槳電機的速度調節(jié)上,在四個電機不同的轉速組合條件下,飛行器能夠實現(xiàn)俯仰、橫滾、偏航等不同的飛行姿態(tài),相應的飛行控制系統(tǒng)也使用三個控制通道

27、,采用一定的控制律控制每個通道。在軟件設計的時候忽略各通道之間的耦合作用。根據(jù)上述飛行控制系統(tǒng)的設計要求,將四旋翼飛行器飛控系統(tǒng)軟件任務劃分為以下幾部分:(1)初始化任務:完成系統(tǒng)、外設及相關數(shù)據(jù)變量的初始化工作(2)數(shù)據(jù)通訊任務:通過點對點無線模塊完成數(shù)據(jù)的下傳、上傳。(3)遙控器信號捕捉任務:通過對遙控器信號的解析通過一定的時序完成對遙控器信號的捕捉 (4)數(shù)據(jù)采集任務:完成陀螺儀、加速度計及磁力計的數(shù)據(jù)采集工作。(超聲波)(5)定時器定時及PWM輸出:需要利用一個定時器對控制周期進行定時,同時利用四個定時器來產生PWM波對電調進行控制,繼而控制電機。(6)姿態(tài)解算任務:對采集到的九軸數(shù)據(jù)

28、利用一定的濾波算法融合在一起,進而實現(xiàn)對飛行器姿態(tài)的解算。(7)控制律解算任務:采用PID控制律,在每個控制周期內對PWM波輸出進行更新,即對電機的控制量更新,本飛控系統(tǒng)是個控制姿態(tài)的閉環(huán)系統(tǒng)而不是控制電機轉速的閉環(huán)系統(tǒng)。課件軟件任務工作量大,而且涉及到各個任務之間的協(xié)作問題,所以設計出一個合理的任務時序,可以提高整個系統(tǒng)運行效率。3.2 飛控系統(tǒng)及各模塊的軟件流程3.2.1飛控系統(tǒng)軟件流程本系統(tǒng)軟件開發(fā)環(huán)境是IAR Embedded Workbench IDE for ARM,這個環(huán)境具有高度優(yōu)化的 IAR AVR C/C+編譯器;一個強大的編輯器;一個工程管理器;一個具有世界先進水平的高級

29、語言調試器。使用戶在開發(fā)新的項目時也能在所熟悉的開發(fā)環(huán)境中進行。一般基于ARM開發(fā)系統(tǒng)用的開發(fā)環(huán)境有兩個,一個就是IAR,另外一個是MDK,明顯后者在編譯的時候速度很慢,而且調試環(huán)境前者比后者簡單且容易直觀,所以選擇前者作為開發(fā)環(huán)境。圖2-12是整個系統(tǒng)的軟件流程圖 圖2-12 飛控系統(tǒng)整體軟件流程圖從圖中可以看出整個系統(tǒng)的流程是這樣的,首先必須對系統(tǒng)的各個硬件模塊進行初始化,初始化完畢以后需要讀出保存在Flash的控制參數(shù),這些控制參數(shù)都是在上一次試飛過程中調試完畢并保存在Flash中的,讀取完參數(shù)后把這些參數(shù)賦值給相應的運算變量以備之后的PID運算,緊接著依據(jù)捕捉的遙控器2通道的信號上升沿

30、是否大于1700判斷是否需要對電子調速器進行行程的校準,接著就是進入姿態(tài)解算模塊對姿態(tài)數(shù)據(jù)進行更新,再對發(fā)送給上位機的緩沖區(qū)數(shù)據(jù)進行更新。之后就是判斷系統(tǒng)是否處于解鎖和關閉狀態(tài),這些都是出于安全防護的考慮,因為如果對整個系統(tǒng)沒有鎖定這一功能,而操作者在對系統(tǒng)上電的時候系統(tǒng)就處于運行狀態(tài),假如這個時候遙控器信號不是正常值,很容易出現(xiàn)危險的情況。同理為什么要判斷遙控器是否關閉,原因是遙控器關閉的時候信號處于異常狀態(tài),如果不加這個判斷,即遙控器關閉狀態(tài)下對系統(tǒng)上電,且解鎖完畢,飛行器會出現(xiàn)異常的工作狀況。接著就是等待控制周期標志置位,對控制量進行更新,本系統(tǒng)的控制周期是2.5ms,之所以采用這個控制

31、周期是因為控制電調的PWM波周期是2.5ms。這里還需要說明一點是程序流程圖里面沒有提到好幾個子模塊的程序,它們分別是遙控器信號捕捉模塊,主要應用的是中斷子程序,算法在下面小節(jié)會具體說明;還有控制周期定時子模塊,主要是控制周期一到對標志置位;還有數(shù)據(jù)發(fā)送子程序,應用DMA發(fā)送;姿態(tài)傳感器數(shù)據(jù)接收子模塊,通信協(xié)議是IIC;還有上位機數(shù)據(jù)接收子程序,應用的是中斷子程序;還有PWM控制量輸出子程序;還有“X”模式四個電機控制量耦合關系子程序和Flash讀取存儲子程序。本章只敘述程序的流程和算法,代碼詳見附錄。下面將對這些子程序一一詳細介紹。3.2.2飛控系統(tǒng)子模塊軟件流程(1)Flash存儲和讀取子

32、程序STM32微控制器一個比較搶眼的有點事內置了大容量的Flash存儲器,通過STM32內部的Flash控制模塊可以對Flash存儲其進行操作。STM32內置的Flash具有128KB的容量,可以重復擦寫10萬次。以上特性決定了STM32內置Flash可以符合本系統(tǒng)中對于控制參數(shù)的讀寫要求。本飛控系統(tǒng)主要有5組15個參數(shù),每個參數(shù)數(shù)據(jù)類型都是浮點型占用4個字節(jié),所以參數(shù)總共占用的空間是60個字節(jié)。同時在處理傳感器數(shù)據(jù)時需要先對傳感器數(shù)據(jù)進行標定,標定數(shù)據(jù)也會存儲到Flash中,那些數(shù)據(jù)大小也不大,總共是28個字節(jié),所以根本不需要外部Flash來存儲這些數(shù)據(jù),這樣既可以節(jié)約開發(fā)成本,還可以減小控

33、制電路的復雜度。但是特別要注意的是由于內部Flash主要用于程序的存儲,所以這些數(shù)據(jù)存儲在最后幾頁,以免和主程序地址沖突,破壞主程序的執(zhí)行。要成功對STM32內部Flash進行寫操作,關鍵是要遵循如下的流程:圖2-13 Flash寫操作流程這里需要說明的是對Flash寫是寫一頁大小的,所以最后在程序里面不同數(shù)據(jù)各占了一頁的大小。在Flash存儲和讀取子程序主要包括的是Flash本身的讀寫函數(shù),MPU6050標定數(shù)據(jù)讀寫函數(shù),HMC5883L標定數(shù)據(jù)的讀寫函數(shù),控制參數(shù)讀寫函數(shù)。具體代碼詳見附錄。(2) IIC通訊接口子程序上文中有提到過STM32這款微控制器具有其本身的硬件IIC的,但是由于使

34、用不便,所以本系統(tǒng)中使用的IIC通訊接口是模擬硬件IIC時序的模擬IIC,即用軟件代碼實現(xiàn)硬件IIC的功能。IIC只要求兩條總線線路,一條串行數(shù)據(jù)線SDA,一條串行時鐘線SCL。圖2-14表示的是典型的IIC接口連示例。圖2-14 典型的IIC接口連示例每個連接到總線的器件都可以通過唯一的地址和其它器件通信,主機/從機角色和地址可配置,主機可以作為主機發(fā)送器或主機接受器。但是如果兩個或者更多的主機同時請求總線,可以通過沖突檢測和仲裁防止總線數(shù)據(jù)被破壞。IIC的的通信協(xié)議可以簡單概括為如下:a) 數(shù)據(jù)的有效性 在時鐘信號高電平的時候,SDA線上的數(shù)據(jù)必須保持穩(wěn)定,數(shù)據(jù)線僅可在SCL時鐘信號為低電

35、平時改變。b) 起始和結束條件起始條件:當SCL為高電平是,SDA線上由高到低的跳變被定義為起始條件;結束條件:當SCL高電平時,SDA線上由低電平變?yōu)楦唠娖降奶儽欢x為結束條件??偩€在起始條件之后被視為忙狀態(tài),在結束條件后被視為空閑狀態(tài)。c) 應答每當主機向從機發(fā)送完一個字節(jié)的數(shù)據(jù),主機總是需要等待從機給出一個應答信息已確認是否接收成功。從機應答主機所需的時鐘仍是主機提供的,應答出現(xiàn)在每一次主機完成8個數(shù)據(jù)位傳輸后緊跟著時鐘周期。d) 帶有7位地址的數(shù)據(jù)格式典型的IIC傳輸數(shù)據(jù)流由最高位在SCL的驅動下依次傳輸。在起始條件后,第一個字節(jié)由長度為7位的傳輸?shù)刂沸畔⒑烷L度為1位的數(shù)據(jù)方向位組成

36、。數(shù)據(jù)方向位為1表示主機請求從機數(shù)據(jù),為0表示主機向從機輸出數(shù)據(jù)。在隨后的第9個時鐘周期,主機將等待從機的應答。e) 仲裁仲裁時間發(fā)生在至少有兩個設備的同時向總線傳輸起始條件、嘗試成為主機的時刻。贏得仲裁的設備將成為主機,其余設備將退出仲裁保持在空閑狀態(tài),直至下一次總線空閑后才能再次申請控制總線。 自己編寫的IIC通訊接口程序其實就是按照上述協(xié)議編寫的模擬IIC程序,實驗證明模擬IIC程序可以準確的讀取傳感器數(shù)據(jù)。(3)MPU6050讀取子程序在讀取傳感器數(shù)之前需要對傳感器進行初始化,讓其進入可用狀態(tài),首先需要設置時鐘,接著定義傳感器數(shù)據(jù)量程,再接著對傳感器設置低通濾波器頻率,最后開啟傳感器。

37、隨后還需要對中斷模式進行配置,讀取事先做好的標定值,然后就是讀取傳感器數(shù)據(jù)。最后再對讀取到的傳感器數(shù)據(jù)減掉標定的偏移量,經(jīng)過滑動平均濾波器最后應用于姿態(tài)解算。(4)磁力計讀取子程序磁力計數(shù)據(jù)讀取和MPU6050數(shù)據(jù)讀取大同小異,也是先對傳感器初始化讓其進入可用狀態(tài),然后讀取標定值,對讀取的數(shù)據(jù)減去標定偏移量,經(jīng)過濾波器最后應用于姿態(tài)解算。(5)姿態(tài)解算子程序姿態(tài)解算主要應用的算法是互補濾波,將在下一個章節(jié)詳細敘述。(6)遙控器信號捕捉子程序遙控器信號在接收機上表現(xiàn)的形式是周期是21ms的PWM波,而其實有用的信號只是高電平,所以遙控器信號捕捉子程序主要做的事情是通過一定的數(shù)量關系把高電平時間捕

38、捉出來。通過示波器可以發(fā)現(xiàn)高電平的時間范圍是1ms到2.5ms之間,程序中把1ms的時間量化為1000的數(shù)量,同理2.5ms量化為2500的數(shù)量,所以定時器需要分頻成1MHZ,即計數(shù)器計一次數(shù)就是1us,然后上升沿瞬間讀一次計數(shù)器,下降沿的瞬間讀一次計數(shù)器,兩次計數(shù)器數(shù)值相減就是高電平的時間。但是計數(shù)器會有溢出出現(xiàn),這個問題的解決在下面的流程圖很好的體現(xiàn):圖2-15 遙控器信號捕捉流程圖當下降沿時間比上升沿時間小時,返回主程序,遙控器信號保持上次的捕捉值不變。本系統(tǒng)主要捕捉遙控器六個通道的信號值,每個通道捕獲原理相同。(7)PWM控制信號輸出STM32有一個PWM波發(fā)生器,只要對相應的寄存器進

39、行賦值就可以得到所需要的PWM波。而本系統(tǒng)需要的PWM控制信號也即是PID計算出一個值然后賦給對應的寄存器就可以得到控制量。這個子程序中還包括對控制量的初始化,對控制量平滑濾波和限幅。最后是根據(jù)相應的控制模式(“X”或者“十”)把控制量輸出到電機,如表2-1和表2-2所示。從表格中可以看到控制量主要是Pitch,Yaw,Roll三個通道的控制量,規(guī)定電機的順序是右后1號電機,右前2號電機,左后3號電機,左前四號電機。表2-1 “十”模式電機控制量控制量電機油門RollPitchYaw電機1+10+1-1電機2+1-10+1電機3+1+10+1電機4+10-1-1表2-2 “X”模式電機控制量

40、控制量電機油門RollPitchYaw電機1+1-1+1-1電機2+1-1-1+1電機3+1+1+1+1電機4+1+1-1-1表格中的“+1”表示控制量相加,“-1”表示控制量相見,比如“X”模式下的對電機1的控制量輸出等于油門量減去Roll控制量加上Pitch控制量減去Yaw控制量。(8)PID控制子程序該子程序主要用來控制姿態(tài),用的是分段串級PID控制,具體算法詳見下面章節(jié)。(9)USART(無線串口)通訊子程序上一章中已經(jīng)提到本系統(tǒng)采用的無線模塊的接口是全雙工異步串口協(xié)議,所以需要用到STM32中的USART收發(fā)器,其中把數(shù)據(jù)發(fā)送到上位機系統(tǒng)采用的是DMA發(fā)送的形式,這樣可以保證數(shù)據(jù)連續(xù)發(fā)送,保證數(shù)據(jù)發(fā)送的實時性,從而上位機上可以看到很好的系統(tǒng)運行的狀況。而上位機把PID參數(shù)發(fā)送到系統(tǒng)中實時性要求不高,而且不需要一直發(fā)送控制參數(shù),只需要發(fā)送一次,系統(tǒng)接收到控制參數(shù)就把其寫入到Flash,然后根據(jù)上位機發(fā)送的標識(用來區(qū)別本

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論