吳司林 王強 藍東浩
【摘 要】隨著信息化時代的蓬勃發展,科學技術不斷更新,飛行器被廣泛的應用在軍事偵查、航拍以及民用快遞運輸等諸多行業。同時飛行器本身也向著飛行控制簡單、飛行續航時間長、自動尋航等方面發展。飛行器以Cortex-M3為內核的STM32F103C8T6芯片做為主控,由無線通訊模塊NRF24L01、加速度和角速度傳感器MPU6050芯片、空心杯電機驅動,以及電源管理模塊等五部分組成。控制器通過讀取自身傳感器實時采集數據并處理數據,利用卡爾曼濾波算法和互補濾波算法對飛行器進行姿態解算,再通過數字PID控制器、模糊算法等控制算法控制電機輸出,實現飛行器在空中穩定的飛行[1]。
【關鍵詞】四軸飛行器;無線通訊;姿態解算;PID控制算法;模糊算法
中圖分類號: TP391.8 文獻標識碼: A 文章編號: 2095-2457(2018)09-0097-002
DOI:10.19694/j.cnki.issn2095-2457.2018.09.045
Design and implementation of aircraft based on STM32 microprocessor
WU Si-lin WANG Qang LAN Dong-hao
(North Minzu University,Ningxia Yinchuan City,750021,China)
【Abstract】With the vigorous development of the information age and the continuous updating of science and technology, the aircraft has been widely used in military reconnaissance, aerial photography and civil express transportation.At the same time, the aircraft itself is developing towards the simple flight control, long endurance and automatic navigation.Aircraft with architecture M3 as the kernel STM32F103C8T6 chip as master, by the wireless module NRF24L01 MPU6050, acceleration and angular velocity sensor chip, hollow cup motor drive, and power management module of five parts.Controller by reading their own sensor real-time acquisition data and processing data, using kalman filter algorithm and complementary filter algorithm for aircraft attitude algorithm, and through the digital PID controller, fuzzy algorithm, such as control algorithm to control motor output, to achieve stable flying aircraft in the air.
【Key words】Four-axis aircraft;Wireless communication;Attitude calculation;PID control algorithm;Fuzzy algorithm
目前飛行器廣泛應用于軍事、民用以及科學研究等多個領域。在抗險救災、噴灑農藥、監控巡邏、航拍等方面的運用凸顯出了飛行器的實用價值。飛行器逐漸成為了一個新興的行業。多旋翼飛行器作為一個智能化的參品無論是在穩定性、可靠性和安全性等技術方面還是在實用性方面都提出了很高的要求。飛行器首先要考慮的是空中懸停,無人機懸停控制算法的設計過程往往很復雜,需要考慮各種因素;其次就是承載能力,作業時飛行器不可能空載而飛,需要帶各種作業所需工具;最后需要考慮的是飛行器飛行時間。因此,要解決飛行器穩定可靠長時間的飛行,控制算法的設計、電源的處理和結構的設計是重要問題。
1 總體設計方案
該設計由內核為Cortex-M3的STM32F103C8T6芯片作為主控,它是一個內核為32 位的微處理器。具有低成本低、低功耗、高性能、高代碼密度、小硅片面積等特點。該控制器的主要任務是實時接收并處理各傳感器模塊采集到的數據和處理通訊模塊所接收的數據,并實時將處理好的數據輸出來調整飛行器的姿態,使飛行器平穩的飛行[1]。飛行器的姿態數據通過陀螺儀MPU6050傳感器來采集,將采集到的數據通過控制器處理之后對飛行器的姿態進行調整;飛行指令通過NRF24L01無線模塊實現數據的接收與發射,對飛行器進行指令的操作,主要由遙控發射數據指令,同時主控接收指令并處理,實現對飛行器操控。系統總體設計框圖如下所示:
圖1 統總體結構圖
2 系統硬件設計
2.1 最小系統的設計
任何控制類的設計都少不了最小系統的設計,最小系統是任何一個處理器正常工作的必要條件,由電源、復位及振蕩電路組成。對于一個完整的系統設計來說,首先需要解決整個系統的供電問題,電源是任何系統正常運行的支撐,所有系統離開了電源將不再有任何價值,因此電源的處理是任何一個系統穩定運行的基礎。復位作用是將系統從一個未知的狀態始化到一個非常明確的狀態。振蕩電路為系統提供基本的時鐘信號[2]。
2.2 電機驅動電路
電機的驅動電路是控制器處理完數據之后執行操作的一部分,控制器將采集到的數據進行處理后以PWM脈沖的形式輸出給電機,實現對8250空心杯電機的的控制。在MOS開啟瞬間時需要消耗電流,如果電流過大,會導致瞬間開啟,縮短MOS管的壽命[3]。MOS管高電平導通,通過PWM占空比控制MOS管的導通,從而控制電機的平均功率。
2.3 MPU6050模塊
MPU6050內部含有的DMP可實現姿態解算,不僅簡化控制算法的設計,而且降低了主控的負擔,省去了姿態解算的過程,從而有更多的時間去處理其他事件,提高系統實時性。R6、R7為上拉電阻,電阻值可選取的范圍為2KΩ到10KΩ。由于接到I2C總線上的器件是漏極開路或集電極開路,因此在總線空閑期間,SDA和SCL都是高電平,可以防止外部干擾造成誤啟動I2C總線[4]。
3 系統軟件設計
硬件是軟件運行的壞境,硬件的好壞直接影響著系統能否穩定運行,但如果要使整個系統穩定運行僅靠硬件結構是不夠的,軟件的運行效率和結構也有很大的影響。任何系統在穩定運行時都必須滿足三個要求,即穩定性、快速性和準確性。PID控制器中P表示比例,I表示積分,D表示積分,將三個變量聯系起來調整PID控制器的參數可設計出所需求的設計。PID控制器的算法可用以下式子表示:
其中:
Kp表示比例增益;
Ki表示積分增益;
Kd表示微分增益;
e表示偏差;
t表示時間;
此外,在該設計中還涉及到了姿態解算等算法。姿態解算的方法有很多種,其中常用的控制算法有卡爾曼濾波算法、互補濾波算法;每個算法各自有各自的特點,在不同的控制場合和控制要求可以選擇不同的算法實現相同或不同的功能。
4 結語
隨著科學技術的發展,生活水平的不斷提高,飛行器在各個領域的需求量不斷提高,對安全性、穩定性、長時間飛行、承載力、便攜等各方面的要求也越來越高。控制算法的設計是飛行器穩定飛行的前提,控制算法的設計是編程的核心,該設計采用了數字PID控制算法、卡爾曼濾波算法等多種算法來解決飛行器的穩定性,經過多次的測試和調試,該系統達到了預期的目標。為使系統更加穩定,調試和測試過程中多次確認每一個參數,以便飛行器在任何情況下都能穩定的飛行,減少外界壞境的影響,將較為理想的參數取出來在不同的壞境下多次調試,以確認更為穩定的參數。
【參考文獻】
[1]劉乾,孫志鋒.基于ARM的四旋翼無人飛行器控制系統[J].機電工程,2011,28(10):1235-1241.
[2]吳勇,羅國富,劉旭輝,周定江,肖松,楊松和.四軸飛行器DIY--基于STM32微控制器[M].北京航天航空大學出版社,2016:10-17.
[3]李剛民,曹巧媛,曹琳琳,陳忠平.單片機原理及實用技術[M].高等教育出版社,2005:33-35.
[4]電子發燒友網.電子技術應用[Z].2017—11—07.
[5]吳勇,羅國富,劉旭輝,周定江,肖松,楊松和.四軸飛行器DIY--基于STM32微控制器[M].北京航天航空大學出版社,2016:51-53.
[6]鄒伯敏.自動控制理論[M].機械工業出版社,2007:246-254.