【正文】
我認為四旋翼飛行器可以說是一個豐富多彩的技術(shù)平臺,它考驗了開發(fā)者對硬件的了解程度,對算法的學(xué)習(xí)理解,對硬件編程的能力 及控制技術(shù)的實踐和感悟。由于自己知之甚少,經(jīng)常在群里遭人鄙視,但學(xué)習(xí)就是這樣,沒有低級的問題就沒有很大的提升。建議后續(xù)工作可以繪制相關(guān)的 PCB 電路板,做成成型的模塊,可以增加系統(tǒng)可靠性,也可以改善飛行器的外形,使其更加美觀 ,同時也可以降低成本。做好安全措施,不要急躁,多試一些數(shù),發(fā)現(xiàn)問題冷靜思考,相信一定會成功的。 飛行器 PID 參數(shù)整定 經(jīng)驗如下: 首先要做的工作是確保電子調(diào)速器的油門行程一致,即初始化電調(diào)成功。 經(jīng)過一次次嘗試,發(fā)現(xiàn) P 的值為 的時候,飛行器左右等幅湖南工業(yè)大學(xué)本科畢業(yè)設(shè)計(論文) 26 震蕩,至此,認為 P 已經(jīng)調(diào)好了。 D 可以表示為阻尼力 ,它抑制 P 的作用但回不回得到水平面不是它關(guān)心的問題 。使人對問題的分析解決能力得到提升。 TTK dp * = dK 即為微分系數(shù)。兩種方法的基本思想相同:設(shè)定一個目標(biāo)姿態(tài),計算當(dāng)前姿態(tài)與目標(biāo)姿態(tài)的偏差,輸入至 PID 控制器,使其輸出相應(yīng)的調(diào)節(jié)量至電子調(diào)速器,調(diào)整螺旋槳轉(zhuǎn)速,達到目標(biāo)姿態(tài)。然后再對執(zhí)行效果進行采集并反饋回來再次與目標(biāo)值比較,如此往復(fù)計算執(zhí)行,直至消除偏差。由姿態(tài)四元數(shù)與歐拉角間的轉(zhuǎn)化公式將姿態(tài)四元數(shù)轉(zhuǎn)化為歐拉角。 第二,加速度計和陀螺儀的數(shù)據(jù)融合。 四元數(shù)可以理解為一個實數(shù)和一個向量的組合,也可以理解為四維的向量 。使用經(jīng)過校準(zhǔn)的慣性測量傳感器測出慣性數(shù)據(jù),通過數(shù)據(jù)融合算法就可以計算出飛行器的姿態(tài) 。 湖南工業(yè)大學(xué)本科畢業(yè)設(shè)計(論文) 21 第五章 四旋翼飛行器姿態(tài)解算 四旋翼飛行器能不能成功起飛的根本因素在于其姿態(tài)解算的結(jié)果是否正確有效。 對四旋翼飛行器的控制屬于是 3 維運動控制,即,對 ROLL, PITCH, YAW 這三個量的控制。主控器可以支持四個通道同時輸出四路 PWM,對于四旋翼飛行器的電機驅(qū)動剛好適合。一個用于記錄捕獲到一次下降沿時的 TIM_CNT 的值 value。遙控器發(fā)出的命令的不同就在于 PWM 信號的高電平時間的長短,所以我們解碼的關(guān)鍵問題就是捕捉無線接收機輸入到主控中的 PWM 信號高電平的時間。這兩種方法都有 一定的好處當(dāng)然也有缺點。 湖南工業(yè)大學(xué)本科畢業(yè)設(shè)計(論文) 18 在一切設(shè)置完成之后, DMP 就被成功使能,要得到實時姿態(tài)數(shù)據(jù),只需要在程序主函數(shù) 的 while(1)循環(huán)中調(diào)用 dmp_read_fifo(gyro, accel, quat, amp。 與DMP 計算輸出四元數(shù)有關(guān)。對 MPU 進行初始化 mpu_set_sensors(INV_XYZ_GYRO | INV_XYZ_ACCEL)??傮w來說,下位機的任務(wù)就是測量四旋翼飛行器的實時姿態(tài)并返回主控,主控根據(jù)返回的姿態(tài)進行PID 控制,計算出能夠使飛行器達到目標(biāo)姿態(tài)的各個電機輸出的 PWM 量。 SUM是 0x88一直到 DATA最后一字節(jié)的和, uint8格式。 ( 4) 飛控狀態(tài)。 該上位機具有以下功能: ( 1) 基本功能。當(dāng)然有一點誤差也沒有太大關(guān)系。硬件上的區(qū)別在于慣性器件的安裝位置:+模式的四旋翼飛行器的慣性器件 X 軸與一條機臂平行, Y 軸與另外一條機臂平行 。工作電壓為— 6V。油門在左手邊的是美國手,在右手邊的是日本手。 MPU6050 集成度高,相比單個的電子陀螺儀和加速度傳感器成本低,精度高,性價比非常好,堪稱運動傳感器的典范。16g。250, 177。 在線調(diào)試器和編程器方面,建議使用意法半導(dǎo)體的 STLink。 操作 STM32 微型控制器目前有兩種主流方式,即:寄存器操作法和庫函數(shù)操作法。 2 個 12 位內(nèi)置模式轉(zhuǎn)換器,多大 16 個轉(zhuǎn)換通道,轉(zhuǎn)化之間僅 1us。這個必須考慮到設(shè)計中,因為選定電機,螺旋槳,飛行器的升力就大致確定了。 正反槳是四旋翼飛行器常用的螺旋槳, 一般選用 碳纖和尼龍復(fù)合材料制成,硬度強 。 電子調(diào)速器有三根輸出線。無刷電機通常適用于控制要求比較高,轉(zhuǎn)速比較高的設(shè)備。當(dāng) 3好螺旋槳轉(zhuǎn)速增加, 4 號螺旋槳轉(zhuǎn)速減小,飛行器實現(xiàn) Roll 方向的運動。當(dāng) 3 號螺旋槳轉(zhuǎn)速增加,而 4 號螺旋槳轉(zhuǎn)速不變時,飛行器可以實現(xiàn)偏航。這三個角反應(yīng)了飛行器的對地姿態(tài)。第一,可以引起大家對四旋翼飛行器的興趣和熱情。所以,其研究價值非同一般。這給很多電子技術(shù)愛好者提供了豐富的學(xué)習(xí)資料。 國內(nèi)研究現(xiàn)狀 國內(nèi)對四旋翼飛行器的研究也比較多。研究人員將整個系統(tǒng)安裝在一個實驗平臺上,使飛行器實現(xiàn)了自主懸停,使用的控制算法是 Backstepping。飛行器的能源供給、數(shù)據(jù)處理、電機驅(qū)動以及飛行控制都由外部提供。除此之外,這些無人機在自身結(jié)構(gòu)、體積、重量及成本等方面都有缺點。 本設(shè)計主要介紹一種四旋翼飛行器的實現(xiàn)方案,以意法半導(dǎo)體公司生產(chǎn)的基于 AMR CortexM3 內(nèi)核的 STM32F103C8T6 微型控制器作為計算控制單元,以Invensense 公司生產(chǎn)的 MPU6050 作為慣性測量單元,整合飛行器姿態(tài) ,以NRF24L01 無線通信模塊作為通信渠道,實現(xiàn)了上位機與下位機各項數(shù)據(jù)的實時傳輸,使用 WFLY07 遙控器實現(xiàn)了對四旋翼飛行器的無線遙控。 本文詳細介紹了四旋翼飛行器的飛行原理、硬件構(gòu)造和軟件設(shè)計 , 設(shè)計 了一種 PID 控制器,實現(xiàn)了四軸飛行器的各項動作控制。而四旋翼飛行器結(jié)構(gòu)簡單,體積小巧,重量輕便,機動性強,飛行靈活,可 垂直起降,懸停甚至完成一些高難度飛行動作。 OS4 已經(jīng)基于PID、 LQ、 Backstepping 及 Slidingmode 等多種控制算法實現(xiàn)了飛行器姿態(tài)控制。之后 HMX4 的研究人員又研發(fā)出一種基于機載與地面雙攝像頭的視覺定位與定姿系統(tǒng),進一步提高了測量精度。清華大學(xué)、北京航空航天大學(xué)、上海交通大學(xué)、浙江大學(xué)等都有對此項目有很大的研發(fā)投 入并獲取了一定研究成果。 湖南工業(yè)大學(xué)本科畢業(yè)設(shè)計(論文) 3 國內(nèi)有很多針對多旋翼飛行器的技術(shù)論壇,也有很多技術(shù)論壇專門開設(shè)了四旋翼飛行器討論版塊,匯聚了眾多四旋翼 飛行器的愛好者,提供了飛行器技術(shù)學(xué)習(xí)和提升的平臺。 四旋翼飛行器所 具備的優(yōu)越性能,應(yīng)用前景十分廣闊。第二,對四旋翼飛行器的飛行原理和基礎(chǔ)知識有詳細認知,為后續(xù)同學(xué)打好基礎(chǔ)。 Roll 角為橫滾角,如圖,設(shè)螺旋槳 1 為飛行器機頭。當(dāng) 3 號螺旋槳轉(zhuǎn)速不變, 2 號螺旋槳轉(zhuǎn)速增加, 4 號螺旋槳轉(zhuǎn)速減小,飛行器可實現(xiàn)橫滾運動,即飛行器向左飛。當(dāng) 2 號螺旋槳轉(zhuǎn)速增加, 4 號螺旋槳轉(zhuǎn)速減小,飛行器是實現(xiàn) Pitch 運動。航模無疑是一個理想平臺。紅色和黑色線分別接入到電源正負極,白色線用于接收無線接收機的 PWM 信號。 正反槳參數(shù)解釋: 1045 是指槳的直徑為 10 英寸( 1 英寸 =254mm),槳的角度是 45176。所以,如果 飛行器自身過重就會飛不起來,所以電池的容量要選擇合適。 7 通道 DMA 控制器,支持定時器、 ADC、 SPI、 I2C 和 USART 等外設(shè)。 意法半導(dǎo)體公司為所有 STM32 系列的控制器撰寫了完整的固件庫,目前已經(jīng)更新到 版本。 STLink 是意法半導(dǎo)體為 STM8 和 STM32 系列專門設(shè)計制造的,其易于安裝,使用方便。500, 177。 MPU6050 與所有設(shè)備寄存器之間的通信采用 I2C 接口。 圖 mpu6050 天地飛 7 遙控器 天地飛遙控器是深圳天地飛科技開發(fā)有限公司開發(fā)設(shè)計并制造的專用航模湖南工業(yè)大學(xué)本科畢業(yè)設(shè)計(論文) 12 遙控器,可用在固定翼、直升機及多旋翼等飛行器上。本設(shè)計中采用美國手,即左邊搖桿上下圍油門,左右為方向舵。工作電流 30mA。 X 模式的四旋翼飛行器的慣性器件安裝位置是把+模式的慣性器件順時針或者逆時針旋轉(zhuǎn) 45176。 由于調(diào)試需要,要將主控器安裝在可以拆卸,容易插拔線的地方??梢援?dāng)做普通的串口收發(fā)數(shù)據(jù),可以選擇串口,選擇波特率范圍 1200500000,有數(shù)據(jù)校驗功能,具備兩種收發(fā)碼格式: CHR、 HEX??梢詫崟r顯示飛行器的 3D 狀態(tài),實時顯示出 3 個姿態(tài)角,加速度計 3 軸數(shù)據(jù),陀螺儀 3 軸數(shù)據(jù),地磁計 3 軸數(shù)據(jù)。 FUN表示下位機的功能幀頭。同時,下位機將四旋翼飛行器的姿態(tài)數(shù)據(jù),電機動作量,遙控器數(shù)據(jù)通過無線模塊發(fā)送至上位機。設(shè) 置 加速度傳感器和陀螺儀 的最大量程 mpu_configure_fifo(INV_XYZ_GYRO|INV_XYZ_ACCEL)。 dmp_enable_feature()。sensor_timestamp, amp。 A 方法的好處是不用局限于特定的 GPIO 口,但缺點是可能通信的質(zhì)量不如 SPI 模塊。 湖南工業(yè)大學(xué)本科畢業(yè)設(shè)計(論文) 19 本設(shè)計使用了無線接收機的四個通道即:副翼通道、升降舵通道、油門通道、方向舵通道。捕獲狀態(tài)變量的后 6 位用于記錄捕獲高電平后定時器溢出的次數(shù),第 7 位用于表示捕獲到高電平標(biāo)志,第 8 位是捕獲完成標(biāo)志。 這個程序模塊主要就是對定時器進行配置,但是有一點必須注意,那就是主控器輸出的 PWM 頻率必須能夠被電子調(diào)速器識別,一般要求其輸出為舵 機信號。而這三個量分屬三個平面,基本上沒有相互制約相互影響的關(guān)系。姿態(tài)解算一旦錯誤,后續(xù)工作做的再好也是沒有用的。 為了描述飛行器姿態(tài)信息,我們需要引入兩個三維坐標(biāo)系,一個用來表示飛行器的機體坐標(biāo) F,一個用于 表示參考坐標(biāo)系 R。四元數(shù)表示方法有: q = w + xi + yi +zi; 或者 Q(w , x, y, z)。由于加速度計是對比力的測量(作用在單位質(zhì)量上的非引力外力叫做比力,根據(jù)加速度計的工作原理,我們把加速度計又稱為比力計),其很容易受到運動的影響。由于上一節(jié)介紹的姿態(tài)四元數(shù)與歐拉角之間的轉(zhuǎn)換結(jié)果中歐拉角單位為弧度,而我們實際使用要將其轉(zhuǎn)化為度,所以再進行如下變換(以 ROLL 角為例): RO L LRO L L = * 1 8 0π 即實際變換如下: 22ROL L =a ta n2( 2y z +2 w x,1 2x 2y ) * 57. 3 P I T C H = a si n( 2x z + 2w y ) * 57 .3 2 2 2 2Y A W =a ta n2( 2( w z +x y ) ,w +x y z ) * 至此,姿態(tài)解算完成。 在模擬系統(tǒng)中, PID 算法表達式為: ])()(1)([)t( dt tdeTdtteTteKP DIp ? ??? 其中, P(t)表示 PID 控制器的調(diào)節(jié)輸出量。不同點是控制的姿態(tài)數(shù)據(jù)不同,使得兩者帶給主控器的計算量不同。 將此 PID 表達式轉(zhuǎn)化為程序語言。 這里介紹一種用繩子綁住飛行器整定參數(shù)的方法。 I 的作用是消除穩(wěn)態(tài)誤差 ,使飛行器最終穩(wěn)定在水平面 。 接下來調(diào) D。 確保電機和螺旋槳已經(jīng)擰緊,否則將威脅到人身安全。 湖南工業(yè)大學(xué)本科畢業(yè)設(shè)計(論文) 27 第七章 結(jié)論 及存在的問題 目前,四旋翼飛行器已經(jīng)可以平穩(wěn)飛行,可以將實時數(shù)據(jù)發(fā)送至上位機,遙控器控制正常,基本功能均已實現(xiàn)。 湖南工業(yè)大學(xué)本科畢業(yè)設(shè)計(論文) 28 第 八 章 心得體會 自從選定這個題目之后,我心里就很忐忑,因為 飛行器這方面的知識知之甚少,而且時間也不算充足。虛心求教使人進步。同時也歷練了人的性格 —— 耐心,有韌性,相信自己,不能因為一個模塊遲遲沒有突破就放棄自己。 這次的畢業(yè)設(shè)計極大 地 激發(fā)了我對四旋翼飛行器的興趣和熱愛。在經(jīng)過檢驗自己的姿態(tài)解算正確無誤之后,我開始學(xué)習(xí)電字調(diào)速器的使用,加入了匿名小 四軸聊天群。 由于飛控板是自己設(shè)計并制作的,有一定缺陷,比如 MPU6050 的固定問題。 調(diào) PID 參數(shù)是一個很耗時間、很考驗?zāi)托牡氖虑?,同時也是件很危險的事情 。 根據(jù)自己的實際情況, 由于存在穩(wěn)態(tài)誤差,需要加入滯后校正環(huán)節(jié) I。 所以 P 值應(yīng)該在 ~ 之間。 P 可以表示為回復(fù)力大小,它的目標(biāo)是使飛行器回到水平面。 以對橫滾角 ROLL 的控制為例,程序流程圖如下: 湖南工業(yè)大學(xué)本科畢業(yè)設(shè)計(論文) 25 開 始輸 出 當(dāng) 前 值 n o w 與 目 標(biāo) 值 t a rE r r o r _ i + = e r r o r計 算 偏 差 e r r o r = t a r n o w計 算 P _ o u t = P * e r r o r計 算 I _ o u t = I * E r r o r _ i計 算 P I D _ R O L . O U T = P _ o u t + I _ o u t + D _ o u t計 算 D _ o u t = D * g r y o . x結(jié) 束 圖 PID 控制程序流程圖 PID 控制器參數(shù)整定 四旋翼飛行器的 PID 參數(shù)整定是一個比較 復(fù)雜 的過程,在調(diào)參的過程中,總會有這樣那樣的問題 出 現(xiàn), 這樣更加 使人對四旋翼飛行器的理解深刻??梢缘玫诫x散化的 PID表達式如下: )]1()([*)(*)()(( dp0p ????? ?? kekeT TKjeT TKkeKku kjIp 其中,令I(lǐng)TTK *p