2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩48頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  畢業(yè)設計(論文)</b></p><p>  學 生: </p><p>  指導老師: 陳 興 武 老 師 </p><p>  院 系: 信息科學與工程學院 </p><

2、p>  專 業(yè): 電氣工程及其自動化 </p><p>  班 級: </p><p>  學 號: </p><p><b>  2014年6月</b></p><p&

3、gt;<b>  1緒論1</b></p><p>  1.1研究的背景和意義1</p><p>  1.2研究現(xiàn)狀與發(fā)展2</p><p>  1.3研究內(nèi)容3</p><p>  2姿態(tài)控制系統(tǒng)的總體方案設計3</p><p>  2.1姿態(tài)控制系統(tǒng)的架構與方案比較3&

4、lt;/p><p>  2.1.1MCU的功能分析3</p><p>  2.1.2姿態(tài)信息采集傳感器的選型4</p><p>  2.1.3姿態(tài)控制方案的選擇4</p><p>  2.2姿態(tài)控制系統(tǒng)的總體設計7</p><p>  3硬件系統(tǒng)的設計8</p><p>  3.

5、1硬件的構建8</p><p>  3.2基于STM32的飛控主板的電路設計9</p><p>  3.2.1電源模塊的設計9</p><p>  3.2.2FLASH模塊的設計10</p><p>  3.2.3接收機輸入PWM的設計10</p><p>  3.2.4控制電機PWM輸出信號的設

6、計10</p><p>  3.2.5JTAG編程接口的設計11</p><p>  3.2.6USB接口的設計11</p><p>  3.2.7MPU6000電路的設計12</p><p>  3.2.8電池電量檢測電路的設計12</p><p>  3.2.9指示燈的設計13</p&g

7、t;<p>  3.3主控電路PCB板的設計13</p><p>  4基于STM32的uC/OS-II系統(tǒng)設計13</p><p>  4.1系統(tǒng)軟件編譯環(huán)境的介紹與配置13</p><p>  4.2uC/OS-II系統(tǒng)的移植15</p><p>  4.3STM32整體配置15</p>&

8、lt;p>  4.3.1輸入/輸出管腳的配置16</p><p>  4.3.2串口的配置16</p><p>  4.3.3定時器輸出PWM的配置17</p><p>  4.3.4SPI接口驅(qū)動程序設計18</p><p>  4.4uC/OS-II系統(tǒng)的任務劃分19</p><p>  

9、5四旋翼機的姿態(tài)控制程序設計19</p><p>  5.1姿態(tài)采集和解算的程序設計19</p><p>  5.1.1姿態(tài)信息的采集程序設計19</p><p>  5.1.2姿態(tài)信息的解算程序設計23</p><p>  5.2姿態(tài)控制的程序設計23</p><p>  5.2.1姿態(tài)控制的流

10、程23</p><p>  5.3姿態(tài)的PID控制程序設計24</p><p>  5.3.1姿態(tài)比例控制程序設計25</p><p>  5.3.2姿態(tài)積分控制程序設計25</p><p>  5.3.3姿態(tài)微分控制程序設計25</p><p>  5.3.4姿態(tài)的控制機制26</p>

11、;<p><b>  6系統(tǒng)調(diào)試26</b></p><p>  6.1系統(tǒng)的硬件調(diào)試26</p><p>  6.2軟件調(diào)試28</p><p>  6.3總體測試結果30</p><p><b>  7設計總結35</b></p><p>

12、;<b>  致謝36</b></p><p><b>  參考文獻37</b></p><p>  附錄1 bsp.c和bsp.h添加的程序清單38</p><p>  附錄2 SPI的寫指令程序清單38</p><p>  附錄3 SPI的讀指令程序清單39</p>&

13、lt;p>  附錄4 姿態(tài)控制的PID程序清單39</p><p>  附錄5 飛控板的原理圖41</p><p>  附錄6 飛控板的PCB42</p><p>  附錄7 飛控板的實物圖42</p><p>  附錄8 組裝好的四翼飛行器實物圖43</p><p>  基于ARM CORTEX 處理

14、器的四旋翼機的姿態(tài)控制系統(tǒng)設計</p><p><b>  摘 要</b></p><p>  本文采用一種基于ARM CORTEX處理器的uC/OS-II實時操作的四旋翼機姿態(tài)控制系統(tǒng),分析了飛控系統(tǒng)的要求和性能指標,設計了四旋翼機姿態(tài)控制系統(tǒng)的硬件結構的整體框架,包括電源模塊、flash模塊、輸入和輸出PWM、JTAG和USB模塊、姿態(tài)采集模塊、電池電量的檢測設計

15、等;軟件的總體設計,包括系統(tǒng)的移植,姿態(tài)信息的采集,四元數(shù)的轉換,軟件的流程等;對uC/OS-II進行任務劃分與優(yōu)先級的規(guī)劃,將系統(tǒng)分成了以下任務:姿態(tài)解算和控制任務、數(shù)據(jù)采集(A/D)任務、遙控任務、LED指示任務、電壓檢測和警報任務等。對ARM CORTEX處理器的四旋翼機的姿態(tài)控制系統(tǒng)做出了詳細的論證。</p><p>  最后對硬件和軟件的在上位機上進行仿真與調(diào)試的結果進行分析,并進行了飛行器的實際飛行控

16、制,印證了本設計的姿態(tài)控制系統(tǒng)的可行性。</p><p>  關鍵詞: 四旋翼機、uC/OS-II、姿態(tài)控制、ARM</p><p><b>  ABSTRACT</b></p><p>  This paper presents uC/OS-II real-time operating system based on ARM CORTEX p

17、rocessor for four rotorcraft attitude control system, analyzed the requirements and performance indicators of the flight control system, designed four rotorcraft attitude control system hardware configuration overall fra

18、mework, including power modules, flash modules, input and output PWM, JTAG and USB modules, attitude acquisition module, the design of battery level detection; software overall design, including the syst</p><p

19、>  Finally , through the results of simulation and debugging of hardware and software for analysis, and doing the actual aircraft flight control , confirms the feasibility of the design of the attitude control system

20、.</p><p>  Keywords: Four rotorcraft, uC / OS-II, attitude control, ARM</p><p><b>  緒論</b></p><p><b>  研究的背景和意義</b></p><p>  從20世紀30年代以來,隨著航空技術的

21、不斷發(fā)展,小型無人機憑借其質(zhì)量輕,體積小,操作方便靈活,噪聲小,隱蔽性能好等優(yōu)越性能在軍用和民用領域中占據(jù)著舉足輕重的地位,在民用領域中,無人機可以實現(xiàn)森林防火,監(jiān)控監(jiān)測、地震救災、實地考察、攝像測繪;在軍用領域中無人機主要運用于軍事偵察、目標追蹤、武器實驗等。無人機的運用和影響范圍正在不斷擴大,使得無人機的發(fā)展受到各個國家的廣泛關注。目前,不少世界先進國家已經(jīng)大力支持和投入無人機的研究和開發(fā)之中[1]。</p><

22、p>  四旋翼飛行器是通過四個螺旋槳的高速旋轉,產(chǎn)生向上的推力,推動機身直升飛行的典型的無人機。四旋翼飛行器可以通過改變每個轉子的相對速度進而改變推力,從而對整個機身的位置和方向進行控制。從四旋翼無人機的結構來看,它具有外形新穎、結構簡單、靈活飛行、體積微小輕便等特點,和傳統(tǒng)的固定翼相比,它以其獨特的飛行控制方式,可以靈活的垂直起降,具有較強的機動性能、噪聲小、盤旋能力好、安全性能強、可潛伏性好等優(yōu)點。所以說無論在目前的軍事還是民

23、用領域中四旋翼機都有廣闊的應用前景[2]。</p><p>  四旋翼飛行器控制系統(tǒng)的核心部分是飛控處理器的內(nèi)核和飛控系統(tǒng)的軟件,目前,四旋翼飛控系統(tǒng)正不斷向小型化和高精度的方向發(fā)展。ARM CORTEX-M3是一種基于ARM7架構的新型的ARM內(nèi)核。STM32系列微控制器是ST公司最新開發(fā)的以性能強大的ARM Cortex-M3為內(nèi)核的高性能和低能耗的32位RISC處理器。它已經(jīng)大幅提升了中斷響應速度,并具有集

24、成度高和開發(fā)性強等特點。可見ARM CORTEX-M3內(nèi)核是一種體積小、可嵌入的計算機內(nèi)核,它控制精度高、處理速度快、能夠適應復雜的外界環(huán)境,符合四旋翼飛控系統(tǒng)的發(fā)展趨勢[3]。</p><p>  μC/OS-Ⅱ是一種基于搶占式優(yōu)先級的硬件內(nèi)核。它屬于一個完整的、可裁剪、可固化、可移植的搶占式多任務內(nèi)核,它包含任務調(diào)度,任務管理、內(nèi)存管理、時間管理和任務間的同步與通信等基本功能。本設計提出基于μC/OS-Ⅱ系統(tǒng)

25、的ARM CORTEX處理器的四軸旋翼機姿態(tài)控制系統(tǒng),旨在設計一款靈活性好、可擴展的嵌入式飛控系統(tǒng)。靈活性好要求系統(tǒng)開發(fā)軟件在不同的硬件平臺上方便移植;可擴展性良好則要求系統(tǒng)具有較多的通信接口和良好的模塊性,為今后的升級和開發(fā)做好相應的基礎。該系統(tǒng)硬件結構簡單,并且具有模塊化的軟件平臺、清晰調(diào)理的任務管理、性能穩(wěn)定等優(yōu)點,因此具有較強的理論和實踐價值[4]。</p><p><b>  研究現(xiàn)狀與發(fā)展&

26、lt;/b></p><p>  近年來,四軸飛行器受到國內(nèi)外許多科研機構的濃厚興趣,四軸飛行器是一個智能控制學、空氣動力學等融合了多領域研究課題,在短短的幾年內(nèi)已經(jīng)取得了相對較大的進步。但是,在國內(nèi),四旋翼飛行器的發(fā)展還正處于初級階段,四旋翼飛行器的開發(fā)缺乏經(jīng)驗和核心技術,并且在專業(yè)領域當中尚未能得到大批量的生產(chǎn)。因此我們有必要投入更多的精力和人力到四旋翼飛行器的開發(fā)當中。</p><

27、p>  美國麻省理工大學的 Jonathan P. How 教授帶領 ACL (aeronautical computer laboratory)團隊研制的DraganFlyer II 型四旋翼飛行器,他們運用的是自主設計的可以實時室內(nèi)自動駕駛無人機測試的RAVEN 系統(tǒng)。其主要目的是通過地面站對多臺無人機實現(xiàn)陣列操控。他們利用 IMU 慣性測量原件對飛行器進行各個姿態(tài)的測量,利用激光掃描陣列來感知周圍的環(huán)境,規(guī)劃和重建飛行的航線

28、。目前,此項目已經(jīng)完成了室內(nèi)多臺無人機陣列的目標連續(xù)搜索、追蹤、多機編隊飛行等實驗,該技術已經(jīng)處在世界的領先水平[5]。</p><p>  美國斯坦福大學的 Tomlin 教授領導的混合動力系統(tǒng)實驗室研制了Draganflyer III 飛行器,他們采用的是基于兩片 PIC186520 單片機的STARMAC系統(tǒng),第一代飛行器由于處理器控制速度和精度一般,所以無法實現(xiàn)高級的控制算法,第二代的基于 STARMAC

29、 系統(tǒng)的四旋翼飛行器,配備6軸IMU測量單元和 GPS導航實現(xiàn)對飛行器姿態(tài)和位置等信息的采集。目前,該團隊已致力于飛行器的高級應用控制[6]。</p><p>  北京中國航空航天大學自動化科學與電氣工程學院的胡金輝與袁少強研制了基于ATMEGA128單片機的四旋翼飛行控制系統(tǒng),ATMEGA128是ATMEL公司研發(fā)的8位AVR 微處理器,它通過擴展一些必要的外圍電路,具有較高的性價比和集成度,但是由于ATMEG

30、A128是8位AVR單片機,其處理速度和處理精度都有待提高[7]。</p><p>  哈爾濱工業(yè)大學設計的基于嵌入式處理器 S3C44BOX 的μC/OS-Ⅱ無人機控制系統(tǒng), μC/OS-Ⅱ?qū)崟r操作系統(tǒng)將各個任務模塊通過進行調(diào)度管理的形式組合成一個緊密結合的整體。整個飛控系統(tǒng)性能可靠,具有一定的擴展性,可移植性好,適應不同的應用需求,滿足了對無人機飛行控制系統(tǒng)小型化、低功耗、實時性的要求[8]。</p&g

31、t;<p><b>  研究內(nèi)容</b></p><p>  為了適應四旋翼飛行器系統(tǒng)的穩(wěn)定性和精確度,要求飛控系統(tǒng)的設計必須要思路新穎,算法清晰簡潔,必須追求在軟件和硬件上進行突破、創(chuàng)新。本課題采用實時操作系統(tǒng)μC/OS-Ⅱ,主要是考慮到了μC/OS-Ⅱ具有固定優(yōu)先級和搶占式的調(diào)度方法,其價格便宜,是一個免費的、開源的實時嵌入式內(nèi)核,提供了實時系統(tǒng)所需的基本功能。其核心代碼占

32、用的內(nèi)存少、且可裁剪,可移植性好,可謂短小精悍。用uCOS-II系統(tǒng)開發(fā)四軸飛行器的姿態(tài)控制,其開發(fā)簡便,算法精簡,實時性能好,多任務處理,可以對四軸飛行器的姿態(tài)控制更加及時,精準,而且uCOS-II隨著近些年的發(fā)展,已經(jīng)相對比較穩(wěn)定了,2000年7月,uCOS-II在一個航空項目中得到了美國聯(lián)邦航空管理局對商用飛機的符合RTCA DO-178B標準的認證[9],可以說,uCOS-II的每一種功能,每一個函數(shù)及每一行代碼都已經(jīng)經(jīng)過各種考

33、驗和測試了,用在四旋翼飛行器上,其安全性和可靠性將更加高。在已有的S3C44BOX 的無人機控制系統(tǒng)上,本課題采用ARM CORTEX-M3處理器,ARM CORTEX-M3具有72MHz最高主頻,具有高達1MB的片內(nèi)閃存,兼具馬達控制、US</p><p>  飛行器的俯仰及橫滾角度信息是小型無人機姿態(tài)控制的重要參數(shù),這些參數(shù)的采集與處理是無人機平穩(wěn)飛行控制的關鍵。本課題主要掌握6軸運動檢測單元MPU6000及

34、ARM處理器的應用技術,結合uCOS-II系統(tǒng)的使用,實現(xiàn)無人機的角速率、加速度等信息的采集,結合相關的信息處理技術解算出無人機的俯仰、滾轉等角度;根據(jù)該飛行參數(shù),反饋控制四軸旋翼舵量,實現(xiàn)無人機的平穩(wěn)飛行。</p><p>  姿態(tài)控制系統(tǒng)的總體方案設計</p><p>  姿態(tài)控制系統(tǒng)的架構與方案比較</p><p>  四旋翼飛行器姿態(tài)控制系統(tǒng)的總體架構必須要

35、有傳感器以及MCU等器件組成。傳感器負責四旋翼飛行器飛行姿態(tài)信息的采集并轉換成電信號以便和MCU進行通信;MCU負責采集傳感器的輸出信號,并將采集進來的電信號轉換成可用的變量,并通過讀取的變量對四旋翼飛行器進行智能化控制。</p><p><b>  MCU的功能分析</b></p><p>  (1) 采用ATMEGA2560單片機作為四旋翼飛行器姿態(tài)控制系統(tǒng)的MC

36、U,該單片機擁有系統(tǒng)編程的片上引導程序、JTAG接口、廣泛的片上調(diào)試支持、兩個具有獨立預分頻器和比較模式的8位定時器、4個8位PWM輸出通道、主/從SPI串行接口。從ATMEGA2560的特點來看,它適合外接多種傳感器、處理速度較高,在國外,運用ATMEGA2560單片機為核心的APM飛控系統(tǒng)已經(jīng)做得相對成熟。但是,ATMEGA2560需要用5V電壓供電,功耗相對較大,并且它是8位單片機,處理精度還不夠高。</p><

37、;p>  (2) 采用ST公司基于ARM CORTEX-M3內(nèi)核為嵌入式開發(fā)領域?qū)iT推出的STM32微處理器作為四旋翼飛行器的姿態(tài)控制系統(tǒng)的MCU。本設計采用的是STM32f103VCT6,該單片機包含JTAG、 2個16位的輸入捕捉,輸出比較以及PWM輸出通道的定時器、2個16位看門狗定時器、3 SPI/I2S、2個I2C、5個USART、USB 2.0全速接口、2個12位D/ A轉換器、快速I/ O端口,并且該單片機是32位C

38、ortex-M3的微控制器,控制精度較高,只需用3.3V供電,功耗較低,STM32還包含一個SysTick的計時器,方便作為uCOS-II的時鐘源,且基于ARM CORTEX-M3處理器的姿態(tài)控制系統(tǒng)還處在發(fā)展階段,所以選擇STM32微處理器作為四旋翼飛行器姿態(tài)控制系統(tǒng)的MCU具有一定的優(yōu)越性能和發(fā)展前景。</p><p>  姿態(tài)信息采集傳感器的選型</p><p>  (1)采用MPU

39、6050三軸陀螺儀、三軸加速度的六軸慣性測量元件。MPU6050集成了3個16位ADC用于陀螺儀的數(shù)字化輸出和另外3個16位ADC用于加速度計的數(shù)字化輸出,該慣性測量元件還集成了一個低通濾波器和DMP數(shù)字運動處理器,可將測量出來的角速度和角加速度直接轉化成四元數(shù)輸出。MPU6050運用的是I2C總線進行數(shù)據(jù)通信,通信的速度可達500kHz以內(nèi)。</p><p>  (2)采用MPU6000六軸慣性測量元件。相比之

40、下,MPU6000集成了MPU6050所有功能,除此之外,它還可以通過SPI和主機進行通信,通信的速率最大可達1MHz,更方便四旋翼飛行器的姿態(tài)信息的及時傳輸。</p><p>  綜上所述:本設計采用STM32f103VCT6為核心通過SPI的通信方式和MPU6000慣性測量元件進行通信,來采集四旋翼飛行器的姿態(tài)信息進而對飛行器的姿態(tài)進行控制。</p><p><b>  姿態(tài)

41、控制方案的選擇</b></p><p>  四旋翼飛行器是通過主控板輸出的四路PWM來驅(qū)動電調(diào),進而去驅(qū)動四路電機的帶動兩對正反螺旋槳高速旋轉,來實現(xiàn)機體的垂直運動、俯仰運動、滾轉運動、偏航運動、前后運動、側向運動等基本的6個自由度的飛行動作。目前,四旋翼飛行器的類型有“十”型飛行器和“X”型飛行器。</p><p>  (1) “十”型飛行器</p><p

42、>  1) “十”型飛行器的飛行原理</p><p>  如下圖所示,是“十”型四旋翼飛行器控制四路電機,確保姿態(tài)的平穩(wěn)的原理:</p><p><b>  圖2-1 垂直運動</b></p><p><b>  圖2-2 俯仰運動</b></p><p><b>  圖2-3滾轉運

43、動</b></p><p><b>  圖2-4偏航運動</b></p><p>  “十”型飛行器垂直起飛時,兩個對角的電機同向旋轉,相鄰的電機反向旋轉,剛好平衡電機對機身的反扭矩,當四旋翼飛行器四個電機轉速增加時,相應的總的向上的拉力也增加,當向上的拉力大于自身的重力時,四旋翼飛行器就垂直起飛了;當飛行器要執(zhí)行俯仰運動,只要將電機1的轉速增加,將電機3

44、的轉速下降,整個機身就會往Y軸旋轉角方向運動;同樣,增加電機4的轉速減少電機2的轉速可以實現(xiàn)滾轉運動;同時增加電機1和電機3的轉速,減少電機2和電機4的轉速可以實現(xiàn)機身的偏航運動;當圖2-2和圖2-3,當飛行器實現(xiàn)俯仰運動或者滾轉運動的時候,垂直飛行器的向上的拉力產(chǎn)生一個水平的分量,可以實現(xiàn)前后運動和側向運動。</p><p>  2) “十”型飛行器的特點</p><p>  從上面的分

45、析不難看出,“十”型飛行器的飛行靈活,可以運動的方向角度范圍較大,可以實現(xiàn)較為復雜的運動,但是,在控制機身平穩(wěn)飛行時,只有一對電機控制運動方向,另外一對電機起平衡飛行的作用,所以“十”型飛行器的姿態(tài)控制比較不穩(wěn)定。</p><p>  (2) “X” 型飛行器</p><p>  1) “X” 型飛行器的控制原理</p><p>  如下圖所示,是“十”型四旋翼飛行

46、器控制四路電機,確保姿態(tài)的平穩(wěn)的原理:</p><p><b>  圖2-5 垂直運動</b></p><p><b>  圖2-6 俯仰運動</b></p><p><b>  圖2-7 滾轉運動</b></p><p><b>  圖2-8 偏航運動</b&

47、gt;</p><p>  “X”型飛行器垂直運動和“十”型飛行器的原理一樣,當飛行器要執(zhí)行俯仰運動,將電機1和電機2的轉速同時增加,將電機3和電機4的轉速下降,整個機身就會往Y軸旋轉角方向運動;同樣,增加電機2和電機4的轉速減少電機1和電機3的轉速可以實現(xiàn)滾轉運動;同時增加電機1和電機4的轉速,減少電機2和電機3的轉速可以實現(xiàn)機身的偏航運動;當圖2-6和圖2-7,當飛行器實現(xiàn)俯仰運動或者滾轉運動的時候,垂直飛行

48、器的向上的拉力產(chǎn)生一個水平的分量,可以實現(xiàn)前后運動和側向運動。</p><p>  2) “X” 型飛行器的特點</p><p>  “X” 型飛行器相對于“十”型飛行器而言,可以運動的方向角度相對較小,但是在控制姿態(tài)上,飛行器的四個電機不僅其平衡機身的作用,在控制方向角上,四個電機也同時起作用,所以“X”型飛行器的姿態(tài)控制會更加穩(wěn)定。</p><p>  綜上所述

49、,本設計選擇“X”型飛行器的姿態(tài)控制方案。</p><p>  姿態(tài)控制系統(tǒng)的總體設計</p><p>  四旋翼飛行器姿態(tài)控制系統(tǒng)的控制過程復雜,信息量大,邏輯復雜,時序繁多,有較高的試試性要求。實現(xiàn)四旋翼飛行器飛行的高度平穩(wěn)和控制及時是本設計的主要目的。四旋翼飛行器姿態(tài)控制系統(tǒng)的所有功能可以看作是MCU對運動檢測單元輸入信息采樣,經(jīng)處理后,將控制信息偏移反饋到電機,實現(xiàn)機身的智能化調(diào)節(jié)

50、的過程。所以四旋翼飛行器姿態(tài)控制系統(tǒng)的總體設計應該包括以下幾個方面:</p><p>  (1) 硬件的驅(qū)動 硬件的驅(qū)動目的是為了完成四旋翼飛行器硬件動作所涵蓋的所有功能。本設計采用了STM32定時器輸出四個PWM信號來驅(qū)動電機,通過外部中斷的采集來采集遙控模塊的輸入PWM,通過系統(tǒng)自帶的SPI來驅(qū)動慣性測量單元MPU6000,通過AD采集功能來實現(xiàn)對電池電量的管理等。</p><p>

51、  (2) 姿態(tài)信息處理 </p><p>  通過硬件驅(qū)動IMU慣性測量單元,采集慣性測量單元輸出的姿態(tài)數(shù)據(jù)并進行處理,轉換成姿態(tài)控制系統(tǒng)所能識別的橫滾角、俯仰角和偏航角。本設計采用四元數(shù)法,通過慣性測量元件采集的當前飛行器的三軸加速度和角速度,轉化為四維向量,再做相應的線性變換后輸出,利用四元數(shù)與歐拉角的關系,將四元數(shù)轉換為相應的歐拉角就得到飛行器的的姿態(tài)。</p><p><

52、b>  (3)擴展模塊 </b></p><p>  為了以后的發(fā)展,還必須考慮到相應的外接接口和集成度的問題,本設計增加了集成在飛控板上的GPS模塊、data falsh、氣壓傳感器接口、電子羅盤接口等。</p><p>  (4)姿態(tài)調(diào)節(jié)的方法 </p><p>  對于四旋翼姿態(tài)的控制,本設計采用的是典型的控制理論中的PID控制,利用期望

53、姿態(tài)和當前姿態(tài)的偏差,通過PID控制作用輸出不同的四路PWM信號來驅(qū)動電機,讓飛行器自我調(diào)節(jié)姿態(tài)直到滿足當前的姿態(tài)與期望姿態(tài)的偏差為0為止。</p><p><b>  (5)任務管理 </b></p><p>  μC/OS-Ⅱ?qū)崟r操作系統(tǒng)姿態(tài)控制系統(tǒng)的關鍵就是任務的劃分,本設計可以將控制系統(tǒng)分為調(diào)度管理任務、數(shù)據(jù)采集(包括IMU姿態(tài)測量單元數(shù)據(jù)的采集和電池電量的

54、AD采集)、遙控任務、姿態(tài)調(diào)整等按照不同的優(yōu)先級分配管理任務。</p><p><b>  硬件系統(tǒng)的設計</b></p><p>  硬件系統(tǒng)的構造首先必須要綜合考慮STM32自身的配置及其各個管腳的功能、復用功能的調(diào)用、各個芯片可靠的供電電流及其安全保護措施,又要考慮到IMU姿態(tài)傳感器的管腳需求,同時還要考慮充分利用STM32的資源,盡可能多的將功能口線外引出來為

55、后面的開發(fā)和調(diào)試做好準備。</p><p><b>  硬件的構建</b></p><p>  為了讓四旋翼飛行器平穩(wěn)、安全、可靠的飛行,硬件電路必須要小型化、低功耗。在四旋翼飛行器飛行器過程中,姿態(tài)調(diào)節(jié)是一個高速調(diào)節(jié)的控制過程,就要求測量變量的敏感元件反應速度快,在飛行過程中,為了讓飛控系統(tǒng)更安全起見,我們要對電池電量實時關注,并返回給MCU,讓MCU可以進行一些安

56、全性處理,硬件的總體結構如圖所示:</p><p>  圖3-1 硬件的總體框圖</p><p>  基于STM32的飛控主板的電路設計</p><p>  本飛控主板采用的是ST公司的基于ARM CORTEX內(nèi)核的型號為STM32VCT6為核心處理器。同時為了以后的發(fā)展需要,還將系統(tǒng)內(nèi)部的IO端口,系統(tǒng)中的SPI總線、I2C總線和多余的串口線外引出來,提高了飛控主

57、板的用途和利用率。</p><p><b>  電源模塊的設計</b></p><p>  圖3-2 電源模塊的設計</p><p>  主板電路的電源采用TPS79133開關型穩(wěn)壓電源。當使能引腳EN置零是,芯片開始正常工作,輸出穩(wěn)定的3.3V電壓供主板工作,輸入端為5V電壓,當P1跳線帽短接的時候,5V電壓可以從電調(diào)中引過來;當P1跳線帽斷

58、開的時候,5V電壓需要從電池經(jīng)過UBEC穩(wěn)壓轉換成5V接入到輸入端,同時為了整塊主板的工作安全可靠,在輸入端加了可以自動恢復型保險絲(F1)和5V穩(wěn)壓二極管(D3)。</p><p>  FLASH模塊的設計</p><p>  圖3-3 FLASH模塊的設計</p><p>  STM32本身具有較大的存儲單元,但是為了以后主板能夠運行各種不同的系統(tǒng),采用SPI通

59、信的AT45DB161D芯片,該芯片體積小,內(nèi)存大,有4096頁的每頁包含528字節(jié)的存儲單元,傳輸速度快,最大可達66Mhz的傳輸速度,很適合主板的內(nèi)存外擴。</p><p>  接收機輸入PWM的設計</p><p>  圖3-4 輸入PWM的設計</p><p>  接收機輸入PWM的接口占用八個STM32的IO接口,該接口可以外接一個接收器用來接收遙控器的信

60、號,通過接收到遙控器發(fā)射出來的PWM信號不同的占空比對飛行器進行各個方向的控制。</p><p>  控制電機PWM輸出信號的設計</p><p>  圖3-5 輸出PWM電路的設計</p><p>  控制電機的PWM輸出信號占用了STM32的定時器1四個輸出PWM輸出接口和定時器3的四個輸出PWM輸出接口,每個接口的輸出經(jīng)過電阻電容的濾波使得波形更加穩(wěn)定,然后將

61、該接口接到電調(diào),通過電調(diào)去驅(qū)動四個電機,控制飛行器的飛行。</p><p>  JTAG編程接口的設計</p><p>  圖3-6 JTAG編程接口的設計</p><p>  該端口用于PC機和主板進行通信,用戶可以在PC機上編程,并將軟件程序(即HEX文件)通過JTAG接口下載到STM32中,并通過MDK編譯環(huán)境對主板進行在線調(diào)試,可以實時監(jiān)測程序的每一個參數(shù)

62、的值,為了對管腳起到保護,對于該電平拉高的管腳都增加上拉電阻進行限流保護。為了節(jié)約空間,主板只引出了一個接地信號,用戶可以將JTAG進行修改,將所有的JTAG的接地信號都同這根引腳進行短接,不影響JTAG的功能。</p><p><b>  USB接口的設計</b></p><p>  圖3-7 USB接口的設計</p><p>  將STM3

63、2的USB接口引出來,可以方便用戶進行下載程序,同時該接口采用通用的迷你USB,使得主板和PC機的通信更加高速及時,而且更加方便用戶的操作。由于USB是高速信號,所以在布線的時候必須要注意PA11和PA12兩條線必須是差分等長線路。</p><p>  MPU6000電路的設計</p><p>  圖3-8 MPU6000接口的設計</p><p>  MPU600

64、0姿態(tài)測量傳感器的電路接口的設計是本設計的關鍵,MPU6000支持I2C總線和SPI總線的通信,采用SPI的通信可以更加及時的將姿態(tài)信息傳輸給STM32,以便STM32更加及時的對姿態(tài)進行處理。為了充分發(fā)揮MPU6000的各個功能,將MPU的I2C總線外接出來,以便外接一個磁力傳感器作為從設備,將FSYNC幀同步引腳接到單片機上,并將數(shù)據(jù)中斷產(chǎn)生引腳也引到單片機上,用戶可以自由運用MPU6000的所有功能。</p><

65、;p>  電池電量檢測電路的設計</p><p>  圖3-9 電池電量檢測電路的設計</p><p>  電池電量的檢測包括電壓的檢測和電流的檢測。如圖,接線端子P18和P19用來接電池用的,電池電壓經(jīng)過R58和R59兩個電阻進行分壓之后通過PC2引到單片機的ADC通道,單片機通過該路的AD采集就能測出電池電壓;電池電壓經(jīng)過采樣電阻R60之后產(chǎn)生一定的壓差,該壓差的差值太小,不能被

66、單片機識別,所以將R60兩端的電壓差值經(jīng)過電流傳感器MAX9643進行差分放大、并抑制住了共模信號,電流傳感器的輸出通過PA0接到單片的ADC通道,單片機通過AD采樣可以測出電池的電流。</p><p><b>  指示燈的設計</b></p><p>  圖3-12 指示燈的設計</p><p>  主板電路指示燈的作用是用來指示某些功能是否

67、正常運行,其中LED4是用來判斷電源是否正常上電,LED1用來指示滾轉狀態(tài),LED2用來指示俯仰運動狀態(tài),LED3用來指示偏航運動狀態(tài)。</p><p>  主控電路PCB板的設計</p><p>  整塊主控板的布局和規(guī)劃需要做如下考慮:</p><p>  (1)晶振必須要盡可能近的靠近單片機,以便供單片機更好的時鐘信號。</p><p>

68、;  (2)整體布局盡可能緊湊,減小整塊飛控板的面積,使飛控板更加集成化。</p><p>  (3)必須要考慮到插座的擺放位置,確保插座的穩(wěn)固,以便防止拔插出現(xiàn)脫落等現(xiàn)象。</p><p>  (4)信號線之間的連線盡可能短,保證信號線的傳輸速度和準確性。</p><p>  (5)需要對每一層進行對地鋪銅,做好屏蔽作用。</p><p>

69、  整塊飛控板的布局如附錄7所示</p><p>  基于STM32的uC/OS-II系統(tǒng)設計</p><p>  系統(tǒng)軟件編譯環(huán)境的介紹與配置</p><p>  目前STM32較為熱門的編譯環(huán)境有IAR編譯器和MDK編譯器兩種。MDK是一個集成了多功能編譯器的窗口化軟件開發(fā)環(huán)境。MDK不僅具有編譯功能,還可以用在線調(diào)試器通過JLINK連接目標程序進行在線調(diào)試,在

70、MDK編程環(huán)境下進行對uC/OS-II系統(tǒng)程序設計既方便又快捷。</p><p>  用MDK編譯環(huán)境進行系統(tǒng)程序設計的簡單操作和配置如下:</p><p>  (1)先打開準備好的STM32的標準外設庫,如4-1圖所示,打開MDK,在project中點擊Open project…打開APP工程。</p><p>  圖4-1 MDK打開工程界面</p>

71、;<p>  (2)選擇芯片型號,打開編譯窗口的option,在divice中選擇ST公司的STM32F103VC,如下圖所示:</p><p>  圖4-2 MDK芯片型號選擇界面</p><p>  (3)在圖5-2中的Target菜單欄中設置外部晶振為8MHz,在output菜單欄中勾選.HEX文件,為了讓串口打印正常,還必須在C/C++菜單欄中的Optinizatio

72、n選擇Level1(-01)以上的版本。</p><p>  (4)對在線調(diào)試的配置如圖4-3所示:</p><p>  圖4-3 MDK debug界面</p><p>  當剛開始移植完程序時,我們只需要測試程序能否編譯通過,所以選擇Use Simulator;當我們在調(diào)試程序是,需要連接JLink進行在線仿真時,我們要選擇Use Cortext-M/R J-t

73、race,并把run to main()打鉤。打開setings,在flash down load菜單下點擊add,將stm32f10x…加入。如圖4-4所示:</p><p>  圖4-4 MDK芯片flash配置界面</p><p>  uC/OS-II系統(tǒng)的移植</p><p>  uC/OS-II移植簡單快捷,下面對如何將uC/OS-II移植到STM32做粗

74、略介紹。將uCOS-II文件夾中的Source和Ports兩個文件夾全部拷貝到工程文件中,并在工程文件中新建一個uC/OS-II/Port和uC/OS-II/SOURCE兩個文件夾,將Source和Ports的所有.c文件都加到這兩個文件夾中。</p><p>  接著把os_cfg.h中OS_APP_HOOKS_EN、OS_DEBUG_E、OS_EVENT_MULTI_EN、OS_FLAG_EN 、 OS_MB

75、OX_EN、 OS_MEM_EN 、 OS_MUTEX_EN 、OS_Q_EN、OS_SEM_EN、OS_TMR_EN等使能標志位全部清零。再把os_cpu.h中的void OS_CPU_SysTickHandler(void);和 void OS_CPU_SysTickInit(INT32U  cnts);函數(shù)刪掉;同時將os_cpu_c.c文件中和SysTick相關的函數(shù)聲明全部刪掉。將os_dbg.h

76、中的#define  OS_COMPILER_OPT  __root中的_root刪掉,再將 os_cpu_a.asm中的PUBLIC OS_CPU_SR_SAVE、PUBLIC OS_CPU_SR_Restore、PUBLIC OSStartHigRdy、PUBLIC OSCtxSw、PUBLIC OS_IntCtxSw、OS_CPU_PendSVHandler中的PUBLIC改為EXPORT。</p>

77、<p>  將startup_stm32f10x_cl.s中的PendSV_Handler全部改為OS_CPU_PendSVHandler;在 includes.h中加入STM32的硬件驅(qū)動的文件和OS的配置文件,包括: stdio.h、string.h、ctype.h、stdlib.h、stdarg.h、"app_cfg.h"、"os_cfg.h"、"math.h&quo

78、t;、"os_cpu.h"、"ucos_ii.h"。</p><p>  將stm32f10x_it.c中的SysTick_Handler函數(shù)改成進入uC/OS-II執(zhí)行系統(tǒng)時鐘節(jié)拍的程序,如下:</p><p>  在bsp.c和BSP.H文件中添加STM32系統(tǒng)時鐘初始化的代碼,在BSP.H中添加如下代碼,詳見附錄1。</p>&l

79、t;p>  按照以上步驟,就將uC/OS-II移植成功了,接下來就在main函數(shù)中創(chuàng)建用戶需要的任務,系統(tǒng)便能正常運行了。</p><p><b>  STM32整體配置</b></p><p>  STM32各個功能模塊的總體配置步驟包括如下幾個方面:時鐘喚醒、設置各個功能模塊的模式、初始化功能模塊、使能功能模塊。</p><p>  

80、輸入/輸出管腳的配置</p><p>  因為STM32所有的外設文件都在stm32f10x_conf.h中,首先在includes.h中的必須包含stm32f10x_conf.h,創(chuàng)建用戶所需的.c文件,寫入#include "includes.h"。接下來就開始配置時鐘了,由于STM32的通用輸入/輸出管腳(General purpose input output ports簡稱:GPIO

81、)都掛在高速外設時鐘上,所以進行如下命令:RCC_APB2PeriphClockCmd ( RCC_APB2Periph_GPIOC,ENABLE );接下來配置GPIO的速率,輸入輸出模式,對需要的GPIO引腳進行使能;最后進行GPIO的初始化后就可以操作GPIO了。指令GPIO_SetBits(GPIOA,GPIO_Pin_6);GPIO_ResetBits(GPIOA, GPIO_Pin_5);是對GPIO輸出口置1和置0;GPI

82、O_ReadInputDataBit(GPIOA,GPIO_Pin_6);指令是讀取GPIO的輸入電平值。GPIO的配置如下圖所示:</p><p>  圖4-5 GPIO的配置</p><p><b>  串口的配置</b></p><p>  串口的設置包括:時鐘喚醒,復位串口,配置Tx和Rx的IO口,串行口中斷初始化,串口的波特率、字長、

83、校驗位等的配置。串口的配置流程如圖4-6所示:</p><p>  圖4-6 串口UART1的配置</p><p>  定時器輸出PWM的配置</p><p>  定時器輸出PWM的配置包括:定時器和對應輸出PWM的引腳的時鐘喚醒,根據(jù)用戶需要設定的PWM的頻率設定定時器的預分頻、溢出值等,使能輸出PWM。</p><p>  PWM頻率的計

84、算包括以下幾種情況:</p><p>  (1)當用戶設定的定時器預分頻為1時,PWM的計算如下:</p><p>  (2) 當用戶設定的定時器預分頻不為1時,PWM的計算如下:</p><p>  其中fPWM表示設定的時鐘頻率;fCLK表示定時器的時鐘源的頻率,當定時器的時鐘源是高速外設時鐘時,fCLK一般為72MHz,當定時器的時鐘源是低速外設時鐘時,fCL

85、K一般為36MHz ;TIM_Period表示時鐘溢出周期;TIM_Prescaler表示時鐘預分頻數(shù)。定時輸出PWM的配置流程如圖4-7所示:</p><p>  圖4-7 輸出PWM的配置流程</p><p>  SPI接口驅(qū)動程序設計</p><p>  SPI接口驅(qū)動需要包括:SPI功能的時鐘使能和SPI對應管腳的時鐘使能;SPI管腳配置:將SCLK時鐘引腳

86、、MOSI數(shù)據(jù)傳輸管腳和CS片選管腳設置成推挽式輸出模式,將MISO數(shù)據(jù)傳輸管腳設置成上拉輸入模式;對SPI模式進行配置,包括主從模式的配置、單雙工模式的配置、每一個時鐘周期傳輸數(shù)據(jù)的位數(shù)的配置、空閑時時鐘信號的電平配置、跳變沿采樣的配置、采樣時鐘的頻率的配置、從高位還是從低位傳輸?shù)呐渲?、校驗位的配置等。具體流程見圖4-8所示。</p><p>  圖4-8 SPI接口的驅(qū)動流程</p><p

87、>  以上的操作基本完成了四旋翼飛行器姿態(tài)控制系統(tǒng)的STM32內(nèi)核的基本硬件配置,接下來用戶就可以根據(jù)自己的需要編寫自己的用戶代碼了。</p><p>  uC/OS-II系統(tǒng)的任務劃分</p><p>  由于uC/OS-II系統(tǒng)是一個搶占式優(yōu)先級的實時控制系統(tǒng),在進行系統(tǒng)任務劃分時,必須將實時性要求高的任務的周期設置盡量短,優(yōu)先級往高規(guī)劃,將實時性要求低的任務周期可以設置較長,優(yōu)

88、先級往低規(guī)劃。表4-1是本設計的總體的任務規(guī)劃:</p><p>  表4-1 uC/OS-II任務的劃分</p><p>  四旋翼機的姿態(tài)控制程序設計</p><p>  姿態(tài)采集和解算的程序設計</p><p>  姿態(tài)信息的采集與解算是四旋翼飛行器姿態(tài)控制系統(tǒng)的關鍵部分,姿態(tài)信息采集的精度和速度直接關乎到四旋翼機姿態(tài)控制的準確性和及時

89、性。本設計是從MPU6000陀螺儀加速度傳感器中每20ms采集一次相應的加速度和陀螺角速度,通過傳統(tǒng)的四元數(shù)算法[10],將加速度和陀螺角速度融合運算與濾波,計算出相應的四元數(shù),再將得出的四元數(shù)轉換成相應的三個空間歐拉角(Roll,Pitch,Yaw)。</p><p>  姿態(tài)信息的采集程序設計</p><p>  (1)MPU6000 SPI時序分析</p><p&

90、gt;  圖5-1 MPU6000 SPI時序</p><p>  如上圖所示,MPU6000是SPI的8位的全雙工模式工作的:傳輸數(shù)據(jù)時數(shù)據(jù)由高位向地位傳送;數(shù)據(jù)被采樣在SCLK的上升沿,數(shù)據(jù)輸出在SCLK的下降沿;SCLK配置的最高頻率不能高于1MHz;SPI讀寫操作都在16或更多的時鐘周期完成, 即在兩個或者兩個以上的字節(jié)的時鐘周期完成,第一個字節(jié)為SPI地址,第二字節(jié)SPI數(shù)據(jù),第一字節(jié)的最高位位包含了讀

91、/寫(讀為1或?qū)憺?操作)位。</p><p>  MPU6000的地址和數(shù)據(jù)寄存器如表5-1 和表5-2所示:</p><p>  表 5-1 SPI地址寄存器</p><p>  表 5-2 SPI數(shù)據(jù)寄存器</p><p>  在本設計中,MPU6000和data flash共用一個SPI接口,由于data flash是高速SPI,而M

92、PU6000最大速度才能達到1MHz,所以在系統(tǒng)初始化時將data flash運用STM32內(nèi)部SPI進行配置,MPU6000的SPI用GPIO去模擬。</p><p>  1) SPI的寫指令</p><p>  MPU6000按一次8位進行傳輸,所以用戶只需對MOSI進行8次的循環(huán)動作,而由于該SPI是上升沿輸出模式,所以在對MOSI進行相應位的傳輸?shù)臅r候,給SPI的時鐘信號一個由低到

93、高的跳變信號,從機便可以接收到STM32輸出的電平信號。</p><p>  2) SPI的讀取指令</p><p>  SPI為下降沿采樣模式,在對MISO進行相應位的采用時,給SPI的時鐘信號一個由高到低的跳變信號,STM32便可以接收到從機的輸出的電平信號。</p><p>  3) STM32向MPU6000的地址寫入一個字節(jié)的數(shù)據(jù)</p>&

94、lt;p>  MPU6000內(nèi)部寄存器的地址最高位為0表示寫命令,所以在片選信號拉低時,將要寫入數(shù)據(jù)的地址寫入到MPU6000,緊接著寫入相應數(shù)據(jù),將片選信號拉高,完成操作。</p><p>  4) STM32從MPU6000的地址讀取一個字節(jié)的數(shù)據(jù)</p><p>  MPU6000內(nèi)部寄存器的地址最高位為1表示寫命令,所以在片選信號拉低時,將要讀取數(shù)據(jù)的地址的最高位置一并寫入到

95、MPU6000,緊接著讀取相應數(shù)據(jù),將片選信號拉高,完成操作。</p><p>  (2) MPU6000初始化</p><p>  表5-3 MPU6000初始化相關寄存器</p><p>  表4-1是MPU6000初始化的相關寄存器,MPU6000剛上電時處在休眠狀態(tài),需要對MPU6000進行一系列操作才能正常操作。首先,對PWR_MGMT_1的bit6位清零

96、,解除休眠模式,接著對PWR_MGMT_1的bit7位置1,MPU6000進行復位,緊接著通過將USER_CTRL的bit5清零將I2C通信關閉,最后根據(jù)用戶需要設置SMPLRT_DIV、CONFIG、GYRO_CONFIG等寄存器來配置MPU6000的陀螺儀采樣率、低通濾波器頻率、陀螺儀測量范圍后芯片就正常工作,用戶就可以讀取陀螺和加速度的值了。</p><p>  (3)陀螺角速度和加速度的轉換</p&

97、gt;<p>  表5-4 MPU6000陀螺和加速度寄存器</p><p>  如表4-1所示為MPU6000陀螺和加速度的相關寄存器,MPU6000讀取陀螺或者加速度的值的操作如下所示:首先,用戶需先讀取需要參數(shù)的高字節(jié)數(shù)據(jù),MCU將要讀取數(shù)據(jù)的地址最高位置1并通過SPI發(fā)送給MCU6000,SPI片選信號繼續(xù)拉低,MCU繼續(xù)寫一個字節(jié)的隨機數(shù)據(jù)給MCU6000,由于SPI全雙工模式工作的,所以

98、MCU在寫入數(shù)據(jù)的同時已經(jīng)將所要讀取的數(shù)據(jù)讀取到MCU中了,讀取之后片選信號拉高。接著用戶已同樣的方式讀取需要參數(shù)的低字節(jié),并將高字節(jié)和低字節(jié)數(shù)據(jù)合成一個十六位的數(shù)據(jù),并通過運算轉換成用戶需要得到的參數(shù)。</p><p>  1)陀螺角速度的轉換</p><p>  下面以陀螺儀初始化時設定量程為±2000°/s為例,介紹陀螺角速度的轉換:在開機時STM32通過讀取陀螺

99、儀相應地址的高8位和低8位的的值進行合成一個16位的數(shù)據(jù),為了獲得更準確的數(shù)據(jù),可以讀取100次得到100個16位的數(shù)據(jù),再對這些數(shù)據(jù)求和取平均值,得到0點偏移量,在采樣時,每隔20ms去采樣一次陀螺儀地址的數(shù)據(jù),合成一個新的16位的數(shù)據(jù),將該數(shù)據(jù)與0點偏移量進行求差,根據(jù)陀螺儀初始化的值將該差值除以相應的分辨率16.4LSB/°/S,就得到采集出來的角速度了,再將該速度轉換成弧度/s,陀螺儀角速度采樣完成。陀螺儀所設定的量程

100、和相應的分辨率如下表所示:</p><p>  表5-5 陀螺儀的量程和分辨率</p><p><b>  2)加速度的轉換</b></p><p>  以加速度初始化時設定量程為±2G為例,介紹加速度的轉換:在開機時STM32通過讀取加速度相應地址的高8位和低8位的的值進行合成一個16位的數(shù)據(jù),同樣可以讀取100次得到100個16位

101、的數(shù)據(jù),對這些數(shù)據(jù)求和取平均值,得到0點偏移量,在采樣時,每隔20ms去采樣一次加速度地址的數(shù)據(jù),合成一個新的16位的數(shù)據(jù),將該數(shù)據(jù)與0點偏移量進行求差,并根據(jù)加速度初始化的值將該差值除以相應的分辨率,就得到采集出來的加速度了,加速度采樣完成。特別注意的是:加速度的Z軸受到重力的影響,所以在計算加速度Z軸求差之后還要加上一個重力的基準值,才是最終測得的加速度Z軸的值。加速度所設定的量程和相應的分辨率如下圖所示:</p>&

102、lt;p>  表5-6 加速度的量程和分辨率</p><p>  姿態(tài)信息的解算程序設計</p><p>  姿態(tài)信息的解算的目的是將陀螺儀角速度和加速度進行融合,計算出計算機系統(tǒng)方便使用的歐拉角(pitch、roll、yaw)。本設計采用的是傳統(tǒng)的,技術相對成熟的四元數(shù)法。運用四元數(shù)法,可以將陀螺儀和加速度計得出的數(shù)值轉換成四維空間,運用四維空間的乘法來表示三維空間的旋轉,減輕了計

103、算機的復雜的算法,加快了反應速度。</p><p>  使用四元數(shù)函數(shù)時,只要輸入已經(jīng)采集過來的陀螺儀和加速度的六個參數(shù),并設定好時候的捕獲時間,就可以解算出四元數(shù)了,最后將四元數(shù)轉換成歐拉角。</p><p><b>  姿態(tài)控制的程序設計</b></p><p><b>  姿態(tài)控制的流程</b></p>

104、<p>  四旋翼飛行器的姿態(tài)控制系統(tǒng)是通過PID的控制思想,將姿態(tài)的給定值和傳感器的測出值的偏差反饋給電機,實現(xiàn)電機的聯(lián)動調(diào)節(jié),保證四旋翼機的平穩(wěn)飛行。四旋翼機姿態(tài)控制的程序流程圖5-2所示。</p><p>  圖5-2 姿態(tài)控制的總流程</p><p>  姿態(tài)的PID控制程序設計</p><p>  姿態(tài)控制系統(tǒng)PID程序設計是本設計中最重要的環(huán)

105、節(jié)。四旋翼飛行器的姿態(tài)控制過程屬于自動化領域的過程控制。對于姿態(tài)控制系統(tǒng)來說,我們要控制他,目前的理論是引入負反饋,PID控制器的作用就是將機身的姿態(tài)輸出經(jīng)過傳感器的測量變送,轉化成可以控制的方向角,這個方向角再和我們預先給定的姿態(tài)方向角進行計算和處理,使得輸出姿態(tài)跟隨輸入姿態(tài)的變化而變化,做到系統(tǒng)的無差調(diào)節(jié),即讓輸出姿態(tài)信息等于輸入姿態(tài)信息。四旋翼飛行器的簡單控制系統(tǒng)的結構圖如圖5-3所示:</p><p> 

106、 圖5-3 四旋翼飛行器的過程控制框圖</p><p>  姿態(tài)比例控制程序設計</p><p>  比例調(diào)節(jié)(簡稱P調(diào)節(jié))中,調(diào)節(jié)器的輸出姿態(tài)信號和輸入姿態(tài)信號的偏差成比例關系。當系統(tǒng)出現(xiàn)誤差時,P調(diào)節(jié)器第一時間反應過來,反饋給輸入姿態(tài),來補償系統(tǒng)偏差。也就是說,當傳感器測量出來的姿態(tài)信息量與我們給定姿態(tài)信息的偏差不為0時,當前誤差多少,我們就給出多少輸出值來補償當前誤差。</p&

107、gt;<p>  姿態(tài)比例控制程序的設計很簡單,只需要將慣性測量單元測出來的姿態(tài)橫滾角、俯仰角、偏航角和我們希望給定的姿態(tài)角分別求差,再將差值分別乘上一個不同的比例系數(shù),就得到了三個比例控制量,再將這三個個比例控制量通過飛行器的控制機制賦值給四路電機。</p><p>  姿態(tài)積分控制程序設計</p><p>  姿態(tài)的積分控制可以提高姿態(tài)控制系統(tǒng)的無差度。比例調(diào)節(jié)方式的特點

108、是快速而有勁,但是比例調(diào)節(jié)不可避免地會使系統(tǒng)存在穩(wěn)態(tài)誤差,因為比例環(huán)節(jié)屬于有差調(diào)節(jié)。所以在姿態(tài)控制系統(tǒng)中有必要引入積分控制環(huán)節(jié)來消除靜差。在數(shù)字控制系統(tǒng)中,只要將測量單元檢測出來的姿態(tài)橫滾角、俯仰角、偏航角和上一次保存下來的姿態(tài)角進行不斷的累加,再將這個值乘上一個不同的積分系數(shù),就得到了三個積分控制量,并通過飛行器的控制機制賦值換算成PWM賦值給四路電機。</p><p>  需要注意的是,這種累加無疑會造成系統(tǒng)

109、的不穩(wěn)定,如果系統(tǒng)長時間處于不平衡位置,由于實際姿態(tài)角與給定姿態(tài)角不斷的隨時間的累計而累加,積分的作用會變得越來越強,最后超出比例控制作用,使姿態(tài)控制系統(tǒng)崩潰。所以在程序設計時必須要給定一個小的角度范圍內(nèi)進行積分項的計算,超出這個范圍后,系統(tǒng)不再對姿態(tài)角進行積分處理,同時,也要對積分項進行限幅處理。</p><p>  姿態(tài)微分控制程序設計</p><p>  微分調(diào)節(jié)器是一種可預見性的調(diào)

110、節(jié)器,這種調(diào)節(jié)器可以提前預知系統(tǒng)的運動趨勢,微分調(diào)節(jié)器和積分調(diào)節(jié)器具有一定的互補性質(zhì),積分調(diào)節(jié)器具有一定的滯后性,而微分調(diào)節(jié)器具有抑制滯后的功能,使姿態(tài)控制系統(tǒng)變得非常敏感。為了簡便系統(tǒng)的算法,本設計巧妙的運用了慣性測量單元自身的自增效應,直接利用慣性測量單元測量出來的陀螺儀角速度的值來代替微分項,使得整個控制系統(tǒng)的算法更加簡潔,反應更加快速。</p><p><b>  姿態(tài)的控制機制</b&g

溫馨提示

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

評論

0/150

提交評論