【正文】
湖南工業(yè)大學(xué)本科畢業(yè)設(shè)計(jì)(論文) 29 參考文獻(xiàn) [1] 彭軍橋.非共軸式碟形飛行器研究 [D].上海大學(xué) 2021 級(jí)碩士研究生學(xué)位 畢業(yè)論文: 168. [2] 宿敬亞,樊鵬輝,蔡開(kāi)元. 四旋翼飛行器的非線性 PID 姿態(tài)控制 [J].北京航空航天大學(xué)學(xué)報(bào). 2021.第 37 卷第 9 期: 10541055. [3] 吳東國(guó).基于四旋翼飛行器平臺(tái)的低空遙感技術(shù)在公路環(huán)境調(diào)查中的應(yīng)用[J].公路交通技術(shù). 2021.第 6 期: 137138. [4] 姬江濤,扈菲菲,賀智濤,杜新武,劉劍君.四旋翼無(wú)人機(jī)在農(nóng)田信息獲取中的應(yīng)用 [J].農(nóng)機(jī)化研究. 2021.第 2 期: 14. [5] 趙晨,杜勇.四旋翼無(wú)人機(jī)在輸電線路巡視中的應(yīng)用 [J].湖北電力. 2021.第36 卷第 6 期: 3536. [6] 張鵬,程飛,曹宇強(qiáng),孫來(lái),王琪.一種新型四軸搜救飛行器設(shè)計(jì) [J].科技廣場(chǎng). 2021 年 09 期: 145147. [7] 王帥,周洋.用于危險(xiǎn)區(qū)域物品清理的四旋翼飛行抓捕手 [J].兵工自動(dòng)化. 202103.第 30 卷第 3 期: 7880. [8] 劉慶元,徐柳華,沈彩蓮,王小平.基于無(wú)人飛行器遙感影像的數(shù)字?jǐn)z影測(cè)量關(guān)鍵技術(shù)研究 [J].測(cè)繪科學(xué). 2021.第 35 卷第 1 期: 2830. [9] 秦永元.慣性導(dǎo)航 [M].第一版.第一次印刷.北京.科學(xué)出版社. 2021:59. [10] 王冬來(lái),呂強(qiáng),劉峰.小型四軸飛行器動(dòng)力學(xué)參數(shù)測(cè)定方法設(shè)計(jì) [J].科技導(dǎo)報(bào). 2021.第 29 卷第 36 期: 4245. [11] 李 俊,李 運(yùn)堂. 四旋翼飛行器的動(dòng)力學(xué)建模及 PID 控制 [J]. 遼寧工程技術(shù)大學(xué)學(xué)報(bào)(自然科學(xué)版). 2021. 第 31 卷第 1 期: 114116. [12] 肖永利,張 琛. 微型飛行器的研究現(xiàn)狀與關(guān)鍵技術(shù) [A]. 宇航學(xué)報(bào). 第22 卷第 5 期. [13] 郭曉鴻,楊忠,楊成順,黃宵寧,黃同高,張海黎.一種基于 STM32 的四旋翼飛行器控制器 [A]. 應(yīng)用科技報(bào). 2021 年 7 月第 38 卷第 7 期. [14] 高應(yīng)杰,陳鼎新,李榮明. 小型四旋翼無(wú)人飛行器控制算法研究 [A]. 。同時(shí)也歷練了人的性格 —— 耐心,有韌性,相信自己,不能因?yàn)橐粋€(gè)模塊遲遲沒(méi)有突破就放棄自己。 這次的畢業(yè)設(shè)計(jì)極大 地 激發(fā)了我對(duì)四旋翼飛行器的興趣和熱愛(ài)。緊接著就是 PID 控制程序的設(shè)計(jì)和學(xué)習(xí)。在跟網(wǎng)友的討論和學(xué)習(xí)中,我成功用遙控器通過(guò)主控器對(duì)電調(diào)完成初始化。虛心求教使人進(jìn)步。在經(jīng)過(guò)檢驗(yàn)自己的姿態(tài)解算正確無(wú)誤之后,我開(kāi)始學(xué)習(xí)電字調(diào)速器的使用,加入了匿名小 四軸聊天群。熟悉了 STM32的操作方法后,我直接進(jìn)入對(duì) MPU6050的研究,在網(wǎng)上搜索了大量資料,看到這個(gè)慣性器件有內(nèi)置的運(yùn)動(dòng)處理單元可以直接輸出姿態(tài)數(shù)據(jù),讓我很興奮,因?yàn)檫@無(wú)疑減小了自己的工作量。 首先從主控器 STM32F103C8T6 學(xué)起。 湖南工業(yè)大學(xué)本科畢業(yè)設(shè)計(jì)(論文) 28 第 八 章 心得體會(huì) 自從選定這個(gè)題目之后,我心里就很忐忑,因?yàn)?飛行器這方面的知識(shí)知之甚少,而且時(shí)間也不算充足。 由于飛控板是自己設(shè)計(jì)并制作的,有一定缺陷,比如 MPU6050 的固定問(wèn)題。后續(xù)工作可以加入 HMC5883L 地磁傳感器,使其更加穩(wěn)定。但 YAW的值由于漂移較大,沒(méi)有進(jìn)行 PID 控制。 湖南工業(yè)大學(xué)本科畢業(yè)設(shè)計(jì)(論文) 27 第七章 結(jié)論 及存在的問(wèn)題 目前,四旋翼飛行器已經(jīng)可以平穩(wěn)飛行,可以將實(shí)時(shí)數(shù)據(jù)發(fā)送至上位機(jī),遙控器控制正常,基本功能均已實(shí)現(xiàn)。 調(diào) PID 參數(shù)是一個(gè)很耗時(shí)間、很考驗(yàn)?zāi)托牡氖虑椋瑫r(shí)也是件很危險(xiǎn)的事情 。 調(diào) PID 的步驟是先要找到等幅震蕩時(shí)候的 P 值,然后再加入 D 值進(jìn)行調(diào)節(jié)。明白 P 的作用是回復(fù)到水平面的回復(fù)力。 確保電機(jī)和螺旋槳已經(jīng)擰緊,否則將威脅到人身安全。 根據(jù)自己的實(shí)際情況, 由于存在穩(wěn)態(tài)誤差,需要加入滯后校正環(huán)節(jié) I。增加D 的值至 ,效果不太明顯,說(shuō)明還小了。同樣的,從一個(gè)很小的值調(diào)起。 接下來(lái)調(diào) D。 所以 P 值應(yīng)該在 ~ 之間。把 P 的值加大到 ,飛行器依然向一邊偏,但是偏離水平面的角度較之前變小了。令 P=1時(shí),發(fā)現(xiàn)飛行器往一邊偏,偏離水平面的角度較大。 I 的作用是消除穩(wěn)態(tài)誤差 ,使飛行器最終穩(wěn)定在水平面 。 P 可以表示為回復(fù)力大小,它的目標(biāo)是使飛行器回到水平面。調(diào) PITCH 方向同理。一般來(lái)講 , +模式的飛行器相對(duì)好調(diào)一些,因?yàn)?ROLL、 PITCH 方向只分別涉及到兩個(gè)電機(jī),容易調(diào)些。 這里介紹一種用繩子綁住飛行器整定參數(shù)的方法。 以對(duì)橫滾角 ROLL 的控制為例,程序流程圖如下: 湖南工業(yè)大學(xué)本科畢業(yè)設(shè)計(jì)(論文) 25 開(kāi) 始輸 出 當(dāng) 前 值 n o w 與 目 標(biāo) 值 t a rE r r o r _ i + = e r r o r計(jì) 算 偏 差 e r r o r = t a r n o w計(jì) 算 P _ o u t = P * e r r o r計(jì) 算 I _ o u t = I * E r r o r _ i計(jì) 算 P I D _ R O L . O U T = P _ o u t + I _ o u t + D _ o u t計(jì) 算 D _ o u t = D * g r y o . x結(jié) 束 圖 PID 控制程序流程圖 PID 控制器參數(shù)整定 四旋翼飛行器的 PID 參數(shù)整定是一個(gè)比較 復(fù)雜 的過(guò)程,在調(diào)參的過(guò)程中,總會(huì)有這樣那樣的問(wèn)題 出 現(xiàn), 這樣更加 使人對(duì)四旋翼飛行器的理解深刻。由于陀螺儀輸出的直接就是角速度,因此,可以將微分項(xiàng)改為微分系數(shù)與陀螺儀相應(yīng)軸的輸出量。 定義 PID 結(jié)構(gòu)體: struct PID {float P, pout, I, iout, D, dout, IMAX, OUT; }PID; 定義 PID 型變量 PID_ROL, PID_PIT, PID_YAW,分成三組 PID,分別調(diào)節(jié)三個(gè)方向的歐拉角偏差。 將此 PID 表達(dá)式轉(zhuǎn)化為程序語(yǔ)言??梢缘玫诫x散化的 PID表達(dá)式如下: )]1()([*)(*)()(( dp0p ????? ?? kekeT TKjeT TKkeKku kjIp 其中,令I(lǐng)TTK *p = iK 即為積分系數(shù)。 PID 控制器程序?qū)崿F(xiàn) 本設(shè)計(jì)采用位置式的 PID 算法控制。但 這對(duì)于主頻為 72M 的 STM32 主控器來(lái)說(shuō)還是可以承受的。不同點(diǎn)是控制的姿態(tài)數(shù)據(jù)不同,使得兩者帶給主控器的計(jì)算量不同。 PID 控制思想 對(duì)于四旋翼飛行器姿態(tài)的控制有兩種方式:姿態(tài)四元數(shù)控制和歐拉角控制。這三種 基本控制規(guī)律可以單獨(dú)使用,但更多是組合使用。 pK 表示控制器比例系數(shù)。 在模擬系統(tǒng)中, PID 算法表達(dá)式為: ])()(1)([)t( dt tdeTdtteTteKP DIp ? ??? 其中, P(t)表示 PID 控制器的調(diào)節(jié)輸出量。 PID 控制器是一個(gè)閉環(huán)控制系統(tǒng),其輸入值為被控變量的實(shí)際值與目標(biāo)值的偏差,經(jīng)過(guò)比例、積分和微分計(jì)算,得到一個(gè)調(diào)節(jié)量輸出至執(zhí)行機(jī)構(gòu)。 PID 控制器介紹 PID 控制器又稱比例 積分 微分控制器,由比例單元 P、積分單元 I 和微分單元 D 組成。四旋翼飛行器的姿態(tài)控制 方法 一般分兩種:四元數(shù)控制和歐拉角控制 。由于上一節(jié)介紹的姿態(tài)四元數(shù)與歐拉角之間的轉(zhuǎn)換結(jié)果中歐拉角單位為弧度,而我們實(shí)際使用要將其轉(zhuǎn)化為度,所以再進(jìn)行如下變換(以 ROLL 角為例): RO L LRO L L = * 1 8 0π 即實(shí)際變換如下: 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)解算完成。 利用上文介紹的方法操作 MPU6050 的 DMP 寄存器,可得到姿態(tài)四元數(shù)。但是陀螺儀受外部影響弱,穩(wěn)定性高,動(dòng)態(tài)性能好,但其只輸出角速度,需要對(duì)角速度積分才能得到姿態(tài),這樣就無(wú)法避免積分造成的誤差產(chǎn)生累積。一旦飛行器的電機(jī)啟動(dòng),機(jī)架就會(huì)有 很大震動(dòng)。由于加速度計(jì)是對(duì)比力的測(cè)量(作用在單位質(zhì)量上的非引力外力叫做比力,根據(jù)加速度計(jì)的工作原理,我們把加速度計(jì)又稱為比力計(jì)),其很容易受到運(yùn)動(dòng)的影響。 MPU6050 一般采用軟件校正。 本設(shè)計(jì)中 MPU6050 的 DMP 寄存器直接輸出了姿態(tài)四元數(shù),要將姿態(tài)四元數(shù)轉(zhuǎn)換為歐拉角,轉(zhuǎn)換數(shù)學(xué)關(guān)系如下: 22R O L L ( Eul e r ) =a ta n2( 2y z +2 w x,1 2x 2y ) P I T C H ( Eul e r ) =a si n( 2xz +2w y ) 2 2 2 2Y A W ( E u l e r ) = a ta n 2 ( 2 ( w z + x y ) ,w + x y z ) 湖南工業(yè)大學(xué)本科畢業(yè)設(shè)計(jì)(論文) 22 姿態(tài)解算 首先,慣性器件必須校正。 歐拉角是由歐拉首先提出的用來(lái)確定定點(diǎn)轉(zhuǎn)動(dòng)剛體位置的 3 個(gè)一組獨(dú)立角參量,由章動(dòng)角 θ、旋進(jìn)角(即進(jìn)動(dòng)角) ψ 和自轉(zhuǎn)角 j 組成。四元數(shù)表示方法有: q = w + xi + yi +zi; 或者 Q(w , x, y, z)。由于歐拉角表示姿態(tài)非常直觀易懂,而四元數(shù)在組合旋轉(zhuǎn)方面非常方便,所以使用最多。由此可見(jiàn),旋轉(zhuǎn)變換對(duì)于姿態(tài)解算至關(guān)重要。參考坐標(biāo)系在飛行器飛行過(guò)程中保持不變,而機(jī)體坐標(biāo)系相對(duì)于參考坐標(biāo)系要經(jīng)過(guò)一次或多次旋轉(zhuǎn)。 為了描述飛行器姿態(tài)信息,我們需要引入兩個(gè)三維坐標(biāo)系,一個(gè)用來(lái)表示飛行器的機(jī)體坐標(biāo) F,一個(gè)用于 表示參考坐標(biāo)系 R。 捷聯(lián)式慣性導(dǎo)航系統(tǒng)是指將慣性測(cè)量器件(陀螺儀和加速度傳感器)直接安裝在飛行器、艦艇、導(dǎo)彈等需要姿態(tài)、速度、航向等導(dǎo)航信息的主體上,用計(jì)算機(jī)把測(cè)量 到的 信號(hào)變換為導(dǎo)航參數(shù)的一種導(dǎo)航系統(tǒng)。前者是以物理平臺(tái)模擬導(dǎo)航坐標(biāo)系,而后者則是采用數(shù)學(xué)算法計(jì)算導(dǎo)航坐標(biāo)系。本章主要介紹本設(shè)計(jì)在實(shí)踐過(guò)程中使用到的姿態(tài)解算知識(shí)。姿態(tài)解算一旦錯(cuò)誤,后續(xù)工作做的再好也是沒(méi)有用的。詳細(xì)程序見(jiàn)附錄。 本設(shè)計(jì)采用了位置式的 PID 控制。 需要說(shuō)明的是,由于 MPU6050 的測(cè)出的偏航角在靜止時(shí)漂移很小,但是在運(yùn)動(dòng)的過(guò)程中會(huì)產(chǎn)生較大的漂移,所以,很多網(wǎng)友基本放棄 MPU6050 測(cè)出的 YAW,而改用 HMC5883L 這種地磁傳感器來(lái)測(cè) YAW。而這三個(gè)量分屬三個(gè)平面,基本上沒(méi)有相互制約相互影響的關(guān)系。 使得 四旋翼飛行器 姿態(tài) 可控 。 湖南工業(yè)大學(xué)本科畢業(yè)設(shè)計(jì)(論文) 20 PID 控制器程序 PID 控制器的主要任務(wù)就是處理慣性器件返回的姿態(tài)數(shù)據(jù)。計(jì)算方法為: Frequency = 72 000 000/TIM_Prescaler/TIM_Period. 姿態(tài)解算程序 姿態(tài)解算程序已經(jīng)在本章第一節(jié)中介紹過(guò)了,利用 MPU6050 的 DMP 寄存器直接輸出姿態(tài)數(shù)據(jù),然后主控對(duì)姿態(tài)四元數(shù)進(jìn)行變換,得到姿態(tài)歐拉角。 這個(gè)程序模塊主要就是對(duì)定時(shí)器進(jìn)行配置,但是有一點(diǎn)必須注意,那就是主控器輸出的 PWM 頻率必須能夠被電子調(diào)速器識(shí)別,一般要求其輸出為舵 機(jī)信號(hào)。 電調(diào)驅(qū)動(dòng)程序 該程序模塊中也是使用了 STM32F103 另一個(gè)普通定時(shí)器,設(shè)置其功能為PWM 輸出功能。當(dāng)下降沿到來(lái)的時(shí)候,先將 status 第 8 位置 1,表示成功捕獲到一次高電平,然后 讀取TIM_CNT 至 value,再設(shè)置該通道為上升沿捕獲。再將 status第 7 位置 1,表示捕獲到高電平,之后就把該通道設(shè)置為下降沿中斷,如果在等待下降沿的過(guò)程中發(fā)生率定時(shí)器溢出,那么 status 就對(duì)溢出次數(shù)計(jì)數(shù)。捕獲狀態(tài)變量的后 6 位用于記錄捕獲高電平后定時(shí)器溢出的次數(shù),第 7 位用于表示捕獲到高電平標(biāo)志,第 8 位是捕獲完成標(biāo)志。 捕獲 PWM 高電平時(shí)間的思路是這樣的:首先,定義兩個(gè)全局變量,一個(gè)用于標(biāo)記捕獲狀態(tài) status( 8bits),我們讀 bit0 為第 1 位。我們將此捕獲中斷設(shè)置為優(yōu)先級(jí)最高。 STM32F103 支持一個(gè)普通定時(shí)器的四個(gè)通道 捕捉外部 PWM。 湖南工業(yè)大學(xué)本科畢業(yè)設(shè)計(jì)(論文) 19 本設(shè)計(jì)使用了無(wú)線接收機(jī)的四個(gè)通道即:副翼通道、升降舵通道、油門通道、方向舵通道。 程序流程圖如下: S P I 模 塊 配 置開(kāi) 始N R F 2 4 L 0 1 初 始 化主 控 器 分 析 接收 數(shù) 據(jù)向 相 關(guān) 寄 存 器寫 入 要 發(fā) 送 的內(nèi) 容接 收 中 斷發(fā) 送 中 斷N r f _ c h e c k _ e v e n t 圖 無(wú)線通信程序流程圖 無(wú)線接收機(jī)解碼程序 天地飛 7 無(wú)線接收機(jī)向主控輸入的信號(hào)為 PWM信號(hào),該信號(hào)也為舵機(jī)信號(hào),即:周期為 20ms,高電平為 12ms。同時(shí)要將其配置為雙線全雙工模式,實(shí)現(xiàn)兩個(gè)無(wú)線模塊間的相互通信。 總體來(lái)講,主控