龍 坤,徐思維,楊 帆,2
(1.武漢工程大學 電氣信息學院,武漢430205;2.湖北省視頻圖像與高清投影工程技術研究中心,武漢430205)
四軸飛行器是一種由4 個電機驅動的具有對稱結構的多旋翼無人機,通過改變電機轉速來控制其飛行姿態(tài),具有結構簡單,操作性強等特點,被越來越多地應用于各行各業(yè)中,尤其是在農業(yè)灌溉和噴灑農藥等方面發(fā)揮了巨大作用[1]。 近年來隨著傳感器檢測技術和自動化技術不斷發(fā)展以及微電子和智能制造技術的逐步成熟,國內外很多研究機構的專家學者們開始對四軸飛行器進行整體的運動原理分析。在以STM32 為核心的飛行器控制系統(tǒng)基礎上,建立了經(jīng)典的數(shù)學模型,分析了各種控制算法自主飛行控制的可能性[2]。 四軸飛行器主要采用的是PID 控制算法,在室內環(huán)境中以較小姿態(tài)角對飛行器進行測試。 經(jīng)過調節(jié)系統(tǒng)參數(shù)后,四軸飛行器系統(tǒng)能在一定程度上穩(wěn)定飛行, 但是由于傳統(tǒng)PID 控制算法只能不斷采用試湊法調節(jié)參數(shù),經(jīng)Simulink 仿真后的效果并不理想。 因此,在傳統(tǒng)PID控制基礎上, 本文設計了一種模糊PID 控制算法,在相同條件下,可實時調節(jié)系統(tǒng)參數(shù)來維持四軸飛行器的穩(wěn)定。
四軸飛行器主要有“X”型和“+”型2 種,主要區(qū)別在于機頭方向的選擇。 四軸飛行器的簡化模型如圖1 所示,4 個旋翼同時旋轉所帶來的總的升力作用于飛行器,使其開始做飛行運動,控制器不斷改變驅動4 個旋翼的電機轉速,就可以使飛行器做出相應的飛行運動模式[3]。由于“X”型四軸飛行器機動性更靈活,故本文采用“X”型四軸飛行器。 研究中把4 個旋翼按逆時針方向分別編號為1、2、3、4,其中2號和4 號順時針方向,1 號和3 號逆時針方向,這樣可抵消四軸飛行器做飛行運動時的反扭矩效應以及機身陀螺效應[4-5]。 飛行器一般有5 種飛行狀態(tài):懸停、垂直、俯仰、橫滾和偏航。 由于X,Y 方向對飛行器角速度、角度影響較大,故本文從該點出發(fā),主要研究了系統(tǒng)內外部因素變化時對俯仰、偏航2 種飛行運動模式的影響。
圖1 四軸飛行器的結構Fig.1 Structure of quadrocopter
設計的系統(tǒng)由MPU6050 運動傳感器、2.4G 無線通信模塊、遙控板和飛控板等組成[6]。 飛行器的工作原理如圖2 所示。 當系統(tǒng)內外部因素發(fā)生改變時, 四軸飛行器的穩(wěn)定性將會減弱,MPU6050 傳感器會將檢測到的干擾信號傳給飛控板,然后數(shù)據(jù)被2.4G 無線通信模塊接收后發(fā)給遙控板,此時需手動操作4 向搖桿來控制飛行器姿態(tài), 當飛行器穩(wěn)定后,遙控板會將處理后的信號通過2.4G 無線通信模塊傳給飛控板,四軸飛行器接收到信號后,電機轉速會迅速得到調整以保持自身姿態(tài)穩(wěn)定。
圖2 四軸飛行器控制系統(tǒng)的工作原理Fig.2 Working principle of quadrocopter control system
四軸飛行器的前進動力主要是旋翼產生的總升力,結合飛行器的機械結構可知4 個旋翼產生的總升力為
式中:F 為升力;ρ 表示空氣密度;CT表示阻力系數(shù);A 表示槳盤面積;ω 表示電機的轉速;R 表示槳葉半徑[7]。 由于A、ρ、R 都為常量,將其等效為ki,則旋翼的升力Fi可以簡化為
式中:ki為常量;i 為旋翼數(shù)。
由于俯仰方向是飛行器繞X 軸旋轉,而橫滾方向是繞Y 軸旋轉, 上下左右產生的作用量大小相等,極性相反剛好可以相互補償。 故四軸飛行器在1,3 旋翼上產生的力矩可以表示為
式中:L 表示電機軸心到飛行器重心的距離。
飛行狀態(tài)的控制實際上是對電機轉速進行實時微調,設電機初始轉速為ω0,微調轉速為Δω,由于無法直接表示出飛行器姿態(tài)角度,故可用某一時刻的角加速度來表示角度變化的快慢。 以俯仰方向的角加速度為例:
式中:αx表示繞X 軸旋轉的角加速度;Jxx表示轉動慣量。 在某一初始條件下,若將飛行器系統(tǒng)自身負載用變量K 表示, 當系統(tǒng)負載發(fā)生改變時,K 值也跟隨變化[8]。 故飛行器的角加速度可進一步簡化為
由式(5)可知飛行器角速度即為
式中:K 為系統(tǒng)自身變量;t 為時間常數(shù)。
在該系統(tǒng)中,通過IMU 實時解算的姿態(tài)參考系數(shù)與理想?yún)⒖枷禂?shù)的偏差,參照飛行器實時狀態(tài),輸出合適的電機轉速,實現(xiàn)飛行器的穩(wěn)定飛行[9]。 根據(jù)PID 控制原理,采用方波信號作為輸入角度,搭建起四軸飛行器俯仰方向的PID 控制模型如圖3 所示。
圖3 傳統(tǒng)PID 控制Matlab/Simulink 仿真Fig.3 Conventional PID simulation diagram usingMatlab/Simulink
圖3 中PID 控制器會由輸入的角度偏差對應輸出相應的電機轉速,增益K 主要取決于系統(tǒng)自身負載和電機初始轉速ω0。 為了使仿真系統(tǒng)超調量不超過響應信號最大值,系統(tǒng)上升時間不超過2 s。 系統(tǒng)PID 參數(shù)受飛行器自身負載的影響,K 取不同值時,系統(tǒng)受到的擾動也不同,通過不斷調節(jié)PID 的控制參數(shù),可以發(fā)現(xiàn)PID 各系數(shù)集中在如下范圍內:5≤kp≤7,1≤kd≤3,ki≤0.3,如果在該范圍之外,就無法得到理想的仿真效果。 選取幾組PID 參數(shù)為kp=6,ki=0.05,kd=1 及3,方波幅值為20。 由于四軸飛行器在農業(yè)作業(yè)過程中自身負載會不斷減?。碖 值改變),若系統(tǒng)負載也在1、3 之間轉換,仿真時間設為20 s,則系統(tǒng)響應曲線如圖4 所示。
圖4 傳統(tǒng)PID 控制器系統(tǒng)響應圖Fig.4 System response curve of conventional PID controller
由圖4 可知,當系統(tǒng)自身因素變化時K 值會改變。a 曲線:kd=1,K=1 時,系統(tǒng)超調量約為65.1%,上升時間約為1.73 s;b 曲線:kd=1,K=3 時,系統(tǒng)超調量約為40.3%, 上升時間約為0.51 s;c 曲線:kd=3,K=1 時,系統(tǒng)超調量約為25.5%,上升時間約為1.39 s。 通過對比三個仿真結果可知,適當調節(jié)PID的控制參數(shù)可以達到比較滿意的控制效果。 但是在地形和氣流干擾較大的高原區(qū)域作業(yè)時, 傳統(tǒng)的PID 控制可能會在很大程度上受到外部環(huán)境的干擾,從而導致飛行器失控。
根據(jù)對四軸飛行器姿態(tài)控制原理的進一步分析,結合上述動力學模型,同時考慮到傳統(tǒng)PID 控制參數(shù)對系統(tǒng)的不同控制效果, 通過模糊規(guī)則推理,建立規(guī)則庫。 模糊參數(shù)整定部分的輸入量由輸入期望值與實際輸出值的偏差e 和誤差變化率ec組成,輸出量為PID 參數(shù)的修正量Δkp,Δki,Δkd。 設定模糊語言集{負大(NB),負中(NM),負?。∟S),零(Z0),正?。≒S),正中(PM),正大(PB)},把論域均分成7 個部分進行描述[10-11]。 模糊變量e 和ec 的論域均為(-10,10),Δkp,Δki,Δkd的模糊論域為均為(-1,1)。 模糊PID 的控制原理如圖5 所示。
圖5 模糊PID 的控制原理圖Fig.5 Fuzzy PID control principle diagram
3.2.1 模糊控制規(guī)則的制定
根據(jù)系統(tǒng)在不同參數(shù)下的輸出結果和基于傳統(tǒng)PID 控制調節(jié)經(jīng)驗,制定出符合飛行器系統(tǒng)的模糊控制規(guī)則,其中{NB,NM,NS,Z0,PS,PM,PB}為e,ec,Δkp,Δki,Δkd在論域內的模糊子集[12]。 采用三角形隸屬度曲線對各模糊子集進行描述。 模糊控制器模型如圖6 所示。
基于四軸飛行器的模糊控制規(guī)則如下:
圖6 模糊邏輯控制器Fig.6 Fuzzy logic controller
采用mamdani 推理法,每個輸出控制量的模糊規(guī)則數(shù)為49 個, 由于重心法能使得輸出曲線更平滑,故采用重心法進行解模糊,如式(7),解算得到kp、ki、kd的值。
式中:k 為解模糊所得輸出值;ui為輸入變量;λ(ui)變量ui對應的隸屬度。
3.2.2 系統(tǒng)仿真
在傳統(tǒng)的PID 控制器的基礎上,根據(jù)確定的模糊規(guī)則得到模糊控制器,將其加入到Matlab/Simulink 中,構建一個模糊推理系統(tǒng)動態(tài)仿真環(huán)境[13],搭建起的俯仰方向仿真模型如圖7 所示。
圖7 模糊PID 系統(tǒng)模型Matlab/Simulink 仿真Fig.7 Fuzzy PID simulation diagram using Matlab/Simulink
在不改變傳統(tǒng)PID 控制參數(shù)以及角度初值的前提下,將模糊邏輯控制器模型導入到Matlab 工作區(qū)中,然后調節(jié)系統(tǒng)自身變量K,得到模糊PID 的響應曲線如圖8 所示。
圖8 模糊PID 控制器系統(tǒng)響應圖Fig.8 System response curve of fuzzy PID controller
由圖8 可知:a 曲線:kd=1,K=1 時,系統(tǒng)超調量為45.2%,上升時間為1.69 s;b 曲線:kd=1,K=3 時,系統(tǒng)超調量為20.3%,上升時間為1.01 s;c 曲線:kd=3,K=1 時,系統(tǒng)超調量趨于0,上升時間為1.65 s。通過整體對比圖4 和圖8 后可知,采用模糊PID 控制算法之后,能夠實現(xiàn)系統(tǒng)的超調量趨于0,穩(wěn)定時間相對于傳統(tǒng)PID 控制器更短。 盡管兩種算法都能使飛行器正常飛行, 但在系統(tǒng)內外部因素改變時,模糊PID 控制器能更好地控制飛行器的姿態(tài),保證其穩(wěn)定飛行。
本設計通過遙控板輸入控制信號來給定飛行器的姿態(tài)角度。 由于前文提到了橫滾和俯仰方向產生的作用量大小相等,極性相反,故采用的測試方式相似,得到的結果也相似。 以橫滾方向為例,由于地面風力相對較弱, 故實驗地點選在海拔高度為200 m 的小山上, 以保證有足夠的風力。 飛控板將MPU6050 傳感器采集到的數(shù)據(jù)通過2.4G 通信模塊傳輸?shù)竭b控板[14]。 分別將兩種算法的控制程序通過上位機導入遙控板,并保證實測系統(tǒng)參數(shù)與仿真模型里的一致, 然后在系統(tǒng)里引入一個階躍擾動信號,遙控板控制好電機轉速,在俯仰方向上將姿態(tài)角設為60°, 觀察系統(tǒng)的狀態(tài)變化。 利用STM32 上的顯示屏記錄下幾組角度和角速度數(shù)據(jù),如表1 所示, 四軸飛行器控制系統(tǒng)的響應曲線如圖9 所示。通過觀察可以得知,圖9(a)中角速度響應曲線最大超調量約為51.6%,上升時間約為2.2 s;圖9(b)中角速度響應曲線最大超調量約為38.3%, 上升時間約為1.58 s。 因此,在受到外界干擾的情況下,基于模糊參數(shù)自整定PID 控制器的四軸飛行器系統(tǒng)響應快、超調量小、振蕩小,能迅速地調整飛行器的姿態(tài)使其回到原來的穩(wěn)定狀態(tài)。
表1 四軸飛行器姿態(tài)記錄Tab.1 Quadcopter attitude record
圖9 兩種控制器響應曲線圖Fig.9 Response curve of two kinds of controller
本文通過對四軸飛行器結構和工作原理的分析,在傳統(tǒng)PID 控制和模糊PID 控制兩種算法模式下,通過Matlab 對飛行器角度進行建模仿真,試驗表明, 傳統(tǒng)PID 控制器雖然能夠使飛行器正常飛行,但在高原環(huán)境下難以很好地使飛行器系統(tǒng)持續(xù)穩(wěn)定飛行;而模糊PID 控制器不但能使系統(tǒng)穩(wěn)定運行,還可以自適應調節(jié)系統(tǒng)參數(shù)來適應外部環(huán)境的變化,在初始條件相同的情況下,能進一步減少控制時間以及操作成本。最后設計了基于STM32 的實際系統(tǒng)測試平臺, 測試結果基本上與仿真效果相同。 由于在仿真過程中始終存在靜態(tài)誤差,導致仿真曲線出現(xiàn)小波動,如果采用運算速率更快的處理單元,結合改進的模糊規(guī)則,有望進一步提高四軸飛行器的穩(wěn)定性,產生更大的經(jīng)濟效應。