劉璇
摘要:近年來,四旋翼飛行器在軍事和民用領域的使用越來越廣泛。微型四旋翼飛行器能夠?qū)崿F(xiàn)垂直起降、自由懸停等功能。但是四旋翼飛行器具有欠驅(qū)動、強耦合、非線性、多變量和干擾敏感等特性,為飛行器的設計和控制帶來困難。本論文采用 ARM 架構的主控芯片,設計制作了一個四旋翼飛行器的控制實驗平臺。介紹了在構建四旋翼飛行器實驗平臺的過程中遇到的難題,并提供了相應的解決辦法。
關鍵詞:四旋翼飛行器; STM32F103; PID
一、引言
四旋翼飛行器是在旋翼飛行器中算是比較簡單的一種,其包涵了旋翼飛行器的基本硬件結構框架,可以以較低的成本實現(xiàn)旋翼飛行器平臺的搭建,進行四旋翼飛行器的學習和開發(fā)。
四旋翼飛行器的四組電機及機翼分別位于十字形結構機身的各個頂點。相對機翼的電機旋轉(zhuǎn)方向相同,相鄰機翼的電機旋轉(zhuǎn)方向相反,這樣使得四個機翼旋轉(zhuǎn)產(chǎn)生的扭矩相互抵消,產(chǎn)生的重力相互疊加,從而克服機身重力,使得四旋翼飛行器可以實現(xiàn)飛行的功能。通過分別控制四個電機不同的轉(zhuǎn)速,就可以實現(xiàn)對飛行器姿態(tài)和高度的控制。
與傳統(tǒng)的固定翼飛行器相比,四旋翼飛行器具有體積小、噪聲低、機械結構對稱、動力學模型簡單的特點,能夠做出垂直起降、自由懸停等動作,具備了良好的靈活性,能夠在有限的空間內(nèi)垂直運動、低速飛行。在超低空近地飛行當中能夠發(fā)揮極大地作用。因而可以應用于更多的軍事、生產(chǎn)生活場景中。它可為海上、廢墟等不適合人員進入的環(huán)境提供偵察、救援、繪圖等服務[1]。
目前,世界上人們研究的四旋翼飛行器一般體積不大,屬于微小型四旋翼飛行器,一般來說分為三類:遙控航模四旋翼飛行器、微型四旋翼飛行器和小型四旋翼飛行器。
二、飛行動力學原理
偏航角、俯仰角、滾轉(zhuǎn)角在四旋翼飛行器飛行過程中,我們需要控制其飛行高度和姿態(tài)。所謂高度,就是飛行器重心相對于地面的垂直高度。而姿態(tài),我們這里通過三個角度來定義和描述(為方便說明概念,這里采用固定翼飛行器圖示):偏航角(Yaw):以機翼所在直線為軸的旋轉(zhuǎn)運動俯仰角(Pitch):以豎直方向(垂直于機身所在平面)為軸的旋轉(zhuǎn)運動滾轉(zhuǎn)角(Roll):以機艙所在直線為軸的旋轉(zhuǎn)運動。
“+”模式和“x”模式這兩種模式的飛行器在飛行過程所呈現(xiàn)的布局類型不同,對應的電機轉(zhuǎn)速控制策略也不相同。比如現(xiàn)在想要將飛行器從水平飛行的姿態(tài)改變?yōu)闄C頭向上的姿態(tài)(即改變飛行器的俯仰角)。如果是“+”模式,需要將 3 號電機轉(zhuǎn)速升高,1 號電機轉(zhuǎn)速降低;如果是“x”模式,需要 2、3 號電機轉(zhuǎn)速同時升高,1、4 號電機轉(zhuǎn)速同時降低。顯然“x”模式 4 個電機同時變速,動作更加靈活,單控制起來比較復雜,“+”模式只有 2 個電機變速,動作靈活性變差,但是控制簡單容易實現(xiàn)。
四旋翼飛行器有四個控制量,即四個電機的轉(zhuǎn)速,通過控制電機轉(zhuǎn)速可以改變升力大小,從而控制四旋翼飛行器的姿態(tài)和高度。當飛行器自由懸停時,電機 1 和電機 3 轉(zhuǎn)向相同,電機 2 和電機 4 轉(zhuǎn)向相同,四個電機轉(zhuǎn)速均相同,這樣四個旋翼產(chǎn)生的扭矩相互抵消,而產(chǎn)生的升力相互疊加,與飛行器重力相平衡。當飛行器處于動態(tài)過程中時,四個電機的轉(zhuǎn)向不變,但轉(zhuǎn)速不再保持一致.
三、系統(tǒng)硬件框架
本實驗平臺的主控芯片采用 ARM 架構的 STM32F103 系列芯片進行信號的運算和控制算法的實現(xiàn),運算結果以 PWM 波的形式輸出,驅(qū)動無刷電子調(diào)速器。無刷電子調(diào)速器一方面負責三相無刷直流電機的功率驅(qū)動,另一方面為主控板提供 5V 電源,實現(xiàn)了主電路到控制電路的電力電子變換。實驗平臺是執(zhí)行機構是四個直流無刷電機,控制量是電機轉(zhuǎn)速,調(diào)節(jié)四個電機不同的轉(zhuǎn)速從而實現(xiàn)姿態(tài)和高度的調(diào)節(jié)。反饋環(huán)節(jié)采用姿態(tài)傳感器和超聲波高度測量單元,實時測量飛行器的當前姿態(tài)角和高度值。給定信號通過專用的航模遙控器給出,將給定信號與實時測量結果的差值作為主控芯片的輸入,將此差值經(jīng)過積分分離 PID 算法計算,得到主控芯片的輸出。這樣就實現(xiàn)了整個系統(tǒng)的閉環(huán)。在實際飛行過程中,飛行器可能會受到風力干擾、電磁干擾、安裝誤差等多種擾動信號,閉環(huán)控制是必不可少的。
由于飛行器的慣性與其半徑的 5 次方成正比,半徑越小,飛行器的慣性越小,調(diào)節(jié)起來靈活性就會比較高,原則上選用比較小的機架。考慮到適當?shù)陌惭b尺寸,同時螺旋槳之間旋轉(zhuǎn)產(chǎn)生的亂流可能互相影響降低效率,最終選擇 f450 機架。
四旋翼飛行器的四個槳葉為了平衡扭矩有兩種相反的轉(zhuǎn)向,但是要保證順時針、逆時針兩種轉(zhuǎn)向旋翼的風都向下吹這樣才能得到最大的升力以克服重力,顯然同一種旋向的槳是不能滿足這種需求的,所以需要正反槳。
本實驗中使用的 2 對 1045 正反槳,前兩位數(shù)字代表槳的直徑(單位:英寸 1英寸=2.54 厘米),即 1045 槳的直徑為 25.4 厘米,后兩位數(shù)字代表槳的進角。槳葉采用尼龍混碳材料,具有更高的強度(是普通尼龍槳的 3 倍),具有更高的效率,在高負載下,槳不容易變形.此系列螺旋槳具有很好的平衡性.會很大程度使飛行器的驅(qū)動更加靈活,減少飛行噪音,提高效能。
F450 機架對角電機軸距為 450mm,機身重量為 282g,采用 PA66+30%超高強度塑膠材料制成,耐摔、耐撞擊。主體采用集成式的 PCB 板連線,配備鍍金復合 PCB電路板,使電源、電調(diào)的連線更加快捷、安全。經(jīng)過優(yōu)化設計的超大安裝空間,為各種飛控系統(tǒng)保證充足的安裝空間。采用非標的 M2.5 階梯螺絲,這樣能使 PCB 板和力臂穩(wěn)固連接[2]。我們采用無刷直流電機,它本質(zhì)上是一種交流電機,但是通過一些電力電子技術使其調(diào)速特性和直流電機完全一樣,無刷直流電機很好的滿足了高速線性調(diào)速的需求,目前已經(jīng)成為四旋翼飛行器的主流,價格也相對較高。
四旋翼飛行器中選用無刷直流電機時要考慮電機和槳葉的配合問題。槳葉越大,轉(zhuǎn)動時提供的升力越大,也因此需要更大的力量來驅(qū)動,槳葉轉(zhuǎn)速越高,升力也越大。對與帶動槳葉轉(zhuǎn)動的無刷電機而言,kv 值越高,所能提供的轉(zhuǎn)動力量越小。這樣,高 KV 值的電機需要選用小槳葉,一次轉(zhuǎn)動的升力較小,但轉(zhuǎn)速較高;低 KV 值的電機需要選用大槳葉,轉(zhuǎn)動速度較低,但是每次轉(zhuǎn)動可以提供較大的升力。如果低 KV 值的電機帶小槳葉,可能提供的升力不足,無法起飛或者飛行不穩(wěn);如果高 KV 值的電機帶大槳葉,電機會處于低速運轉(zhuǎn)狀態(tài),容易燒毀電機和電調(diào)。一般來時,10 英寸的槳配合 1000k 左右的無刷直流電機使用。endprint
功率驅(qū)動單元采用的是好贏天行者 30A 無刷電調(diào),接受主控板的輸出信號,對電機速度進行調(diào)節(jié),同時輸出一路 5V(2A)電源為控制板供電。實際上該電調(diào)內(nèi)部是一個 DSP 變頻器,將主控板輸出的 PWM 信號采集、編碼,以 4096 的分辨率測量脈寬得到相應轉(zhuǎn)速值,再由變頻器控制變頻,從而實現(xiàn)電機轉(zhuǎn)速調(diào)節(jié)。
四旋翼飛行器四個升力是分散的,一旦受到外部干擾就不能保持穩(wěn)定,只有不斷通過反饋調(diào)節(jié)才能保持系統(tǒng)穩(wěn)定或者按照期望的方式進行姿態(tài)調(diào)整,這就對元器件的反應速度提出了很高的要求。常規(guī)的 PPM 電調(diào)更新頻率只有 50Hz,滿足不了四旋翼轉(zhuǎn)速快速變化的需要。好贏天行者 30A 無刷電調(diào)是旋翼飛行器的專用快速電調(diào),使用 IIC 總線傳輸轉(zhuǎn)速信號,可達到每秒上千次的變化能力,保證了飛行器對于突加擾動的抑制能力。30A 是電調(diào)能夠提供的最大持續(xù)電流值,完全可以滿足電機需求。
在實際使用電調(diào)時,可以對電調(diào)的功能進行設置,這就是所謂的電調(diào)編程。具體使用時可以參照說明書進行設置,可以使用遙控器編程,也可以購買廠家的編程卡。需要注意的是,四個電調(diào)的啟動模式必須是一樣的,否則會在一開始四個電機有很大轉(zhuǎn)速差,可能導致摔機。進行電調(diào)編程時要連接電機才能進行。
可見,電調(diào)是四旋翼飛行器整個硬件架構中十分重要的部分,產(chǎn)品的功能完善和高度集成,在很大程度上保證了系統(tǒng)的可靠性。
控制器是四旋翼飛行器硬件架構的核心部分,接收傳感器的姿態(tài)和高度信息,輸出電調(diào)模塊的驅(qū)動信號。很多數(shù)據(jù)傳輸和數(shù)據(jù)處理過程都是在控制器內(nèi)部進行的,控制思想也主要體現(xiàn)在控制器內(nèi)部的程序代碼。四旋翼飛行器具有干擾敏感性,必須進行閉環(huán)控制,而且要求系統(tǒng)具有很快的調(diào)節(jié)能力,這就要求控制器具有很快的數(shù)據(jù)處理能力。
本實驗中采用的主控芯片是 STM32F103RCT6 芯片。采用 ARM 架構的 Cortex-M3 32 位 CPU,工作頻率最高可達 72MHz,計算能力 1.25 DMIPS/MHz,256kB Flash 存儲器,48kB SRAM,51 個 GPIO 口,3 個 SPI 接口,5 個 USART 接口,2 個 I2S 接口,2 個 I2C 接口,1 個 CAN 總線接口,1 個 USB 接口。3 個 12 位 ADC,具有 1MHz的轉(zhuǎn)換速率,12 通道的 DMA。滿足該實驗的控制器要求。
本實驗中采用的基本是模塊化元器件,電路設計較為簡單,只需要考慮各部分的信號接口和供電即可,所以直接采用了萬用板進行電路搭建,方便了今后添加模塊時的線路改造,缺點是焊接時要保證每一條線路的可靠連接,整體的抗干擾性能較差。為了適應模塊化設計的需要試驗中選用了 Core103R 核心板。Core103R 核心板在 STM32F103RCT6 芯片外部添加了基本的外圍電路,包括晶振電路,USB 控制電路,USB 接口等 引出了 I/O 資源 帶 JTAG/SWD 調(diào)試下載接口 排針間距 2.54mm,體積較小,適合接入用戶系統(tǒng)。
MPU6050 模塊是整合性 6 軸運動處理組件,整合了 3 軸陀螺儀、3 軸加速度計,以及一個可擴展的數(shù)字運動處理器 DMP,可通過 I2C 接口連接一個獨立的數(shù)字傳感器,比如磁力計。擴展之后就可以通過其 I2C 接口輸出一個 9 軸的信號[3]。與分立的陀螺儀和加速度計相比,免除了組合陀螺儀與加速度計之間的軸間測量誤差的問題,減少了大量的包裝空間。模塊內(nèi)部采用的陀螺儀測量范圍是± 2000°/s,加速度計測量范圍是±16g,芯片內(nèi)置 16 位 AD 轉(zhuǎn)換器,16 位原始數(shù)據(jù)輸出。通信方式采用標準的 I2C 通信協(xié)HC-SR04 超聲波模塊利用聲音傳播的原理來實現(xiàn)測距功能。有兩個功能引腳,Trig 稱為控制信號輸入,引腳在內(nèi)部接一個 10K 的上拉電阻,使用時用單片機的IO 口拉低 Trig 引腳,然后給一個 10us 以上的脈沖信號。模塊會通過發(fā)射口自動發(fā)出 8 個 40kHz 周期信號并檢測回波。一旦檢測到有回波信號則回響信號輸出引腳Echo 就會輸出一高電平,高電平持續(xù)的時間就是超聲波從發(fā)射到返回的時間[4]。這樣,所測距離就可以利用聲速公式計算:測試距離=(高電平時間*聲速(340M/S))/2
該模塊的供電電壓為 5V,輸出高電平為 5V,低電平為 0V,可以直接和主控芯片 IO 口相連接,探測距離為 2cm-450cm,有 2cm 的盲區(qū),精度可達 0.3cm,基本上滿足控制系統(tǒng)的需求。天地飛 7 遙控器是一款深圳天地飛科技有限公司生產(chǎn)的專門面向于無人機航模的遙控器,支持中文界面。本實驗中采用遙控器進行信號給定,通過手動調(diào)節(jié)的方式在很大程度上降低了對實驗平臺的參數(shù)要求。天地飛 7 遙控器和接收機之間在全球免申請的 2.4G 頻段內(nèi)以 PPM 通信方式進行通信,調(diào)頻通信技術避免了空間電磁干擾,保證了信號的穩(wěn)定可靠傳輸。WFT07s 有 7 個通道,本實驗中使用的是 1 2 34 通道,通過對這 4 個通道的編程來實時對飛行器姿態(tài)進行調(diào)整,遙控器的教練模式、混控編程給飛行器的調(diào)試帶來很大便利,電壓檢測、失控保護等功能增加了系統(tǒng)的可靠性。
本實驗中使用鋰電池供電,重 178g,質(zhì)量輕,起飛效率高。鋰電池 1 節(jié)標準電壓為 3.7v,3s 代表 3 節(jié)電池串聯(lián),即供電電壓為 11.1V;2200mah 是指電池容量,如果電池以 2200ma 的容量放電,可持續(xù)放電 1 小時;30C 是放電系數(shù),表示電池最高可以 2200ma*30=66A 的電流持續(xù)放電,朗宇 x2212-980kv 無刷電機的工作電流可達 15A 左右,該電池可以給 4 個朗宇 x2212-980kv 無刷電機持續(xù)供電。該電池容量較小,質(zhì)量輕,但如果要長時間飛行可以在重量允許范圍內(nèi)搭配容量更大的電池。3s 電池是 3 節(jié)電池串聯(lián),由于制造工藝的原因,無法保證 3 塊電池內(nèi)阻完全相同,如果按照普通方式充電,必然會導致電壓分配不均勻,這樣,在一塊電池充滿的同時,其它電池不能同時充滿,容易引起充電不滿或者過度充電的現(xiàn)象。解決辦法是對單節(jié)電池分別進行充電。鋰電池有兩組引出線,一組是輸出線,另一組是單節(jié)鋰電池引出線,充電時將電池按照說明書和 B6 平衡充相連接,就可以實現(xiàn)對單節(jié)鋰電池充電,充滿電時平衡充會自動發(fā)出提示音。
參考文獻:
[1]樊冬雪,成怡,金海林,修春波.四軸飛行器視覺導航設計[J].電子技術應用,2014,40(8):140-142.
[2]楊浩. 基于嵌入式 Linux 實時控制 的四軸飛行器設計與實現(xiàn)[D].西安:西安交通大學,2015.
[3]谷麗華,崔暢,高松巍,許會. 基于 MPU-6050 的步態(tài)信號采集系統(tǒng)[J].沈陽:沈陽工業(yè)大學學報,2015,37(2):176-183.
[4]丁鷺飛.超聲原理(第 3 版)[M].西安:西安電子科技大學出版社,2002.endprint