蘇小會, 許 培, 陳毅維
(西安工業(yè)大學 計算機科學與工程學院,西安 710021)
云臺應(yīng)用領(lǐng)域廣,品類漸多,功能復(fù)雜。但是存在幾個較為嚴重的問題,如單自由度,云臺變動范圍受限;采用低端MCU或單片機,性能受限;采用開環(huán)控制調(diào)節(jié)位置,并且無反饋,增加了人工工作量;速度無法實時調(diào)節(jié),精確度不高等[1],這需要從算法和控制策略上進行改進。
目前解決云臺響應(yīng)速度和平衡精確度問題使用的是PID算法,由于不同控制系統(tǒng)的特點不同,對PID響應(yīng)速度和穩(wěn)定性的要求也不同[2]。常用PID算法分為以下幾種[3]:位置式PID算法:它將每次誤差進行累加作為積分,運算量較大,且每次輸出均與過去的狀態(tài)有關(guān);缺點為可能引起大幅度超調(diào)[4]。積分分離式PID算法:在PID控制中引入積分環(huán)節(jié)可以消除穩(wěn)態(tài)誤差。但在啟動、結(jié)束或大幅度更改設(shè)定值時,積分輸出可能會引起較大超調(diào)甚至震蕩,所以在誤差較大時屏蔽積分環(huán)節(jié),當誤差小于一定范圍時,引入積分控制,使得偏差較大時確保響應(yīng)速度偏差較小時確保精度[5]。變速積分PID算法:基本思想是設(shè)法改變積分項的累加速度,使其與偏差大小相對應(yīng):偏差越大,積分越慢,反之則越快[6]。
基于以上算法的缺陷和不足,本文提出了一種變域論模糊PID算法。該算法的原理是在傳統(tǒng)PID控制算法的基礎(chǔ)上增加模糊控制器,模糊控制器用于產(chǎn)生能兼顧控制系統(tǒng)動態(tài)特性與靜態(tài)特性、實際輸出與干擾抑制之間變化的參數(shù)優(yōu)化量,從而提升控制系統(tǒng)的整體性能[7]。變論域模糊自適應(yīng)PID控制算法是在模糊自適應(yīng)PID控制算法基礎(chǔ)上,增加變論域控制器而實現(xiàn)的。
圖3 變論域模糊自適應(yīng)PID算法控制過程
如圖1,整個系統(tǒng)由主控制器、執(zhí)行機構(gòu)和姿態(tài)感知機構(gòu)組成。實線箭頭代表控制信號輸出方向,是主控制器和執(zhí)行模塊組成的步進電機控制機構(gòu);虛線箭頭代表數(shù)據(jù)、指令信息流動的方向,是由主控制器和姿態(tài)感知機構(gòu)組成的閉環(huán)姿態(tài)反饋機構(gòu)[8];主控制器和PC之間由加粗的實線箭頭連接,支持串口、網(wǎng)絡(luò)兩種形式的數(shù)據(jù)交換,一方面PC可以作為數(shù)據(jù)輸出的終端而便于程序的觀察調(diào)試,另一方面,也可以在PC上通過遠程連接或者串口調(diào)用云臺控制程序。
主控制器采用基于ARM920T核的S3C2440芯片,本文使用2個PWM定時器并2個GPIO口,分別用于提供步進電機驅(qū)動器所需的脈沖和方向信號;通過I2C接口將MPU6050的數(shù)據(jù)讀取到主控制器[9]。
圖2是主控器與電機驅(qū)動器連接圖。主控制器共使用4個引腳與步進電機驅(qū)動器(執(zhí)行機構(gòu)M542)相連,其中GPB0和GPB1引腳用做Timer,使用Timer0和Timer1的PWM功能,形成供步進電機轉(zhuǎn)動的脈沖信號;GPF0和GPF1引腳設(shè)為輸出模式,輸出高、低電平控制步進電機的轉(zhuǎn)動方向。M542的PUL+和DIR+共接+5 V電源,使能信號ENA-和ENA+置空,則電機恒使能。
圖2 主控制器與電機驅(qū)動器連接圖
姿態(tài)感知機構(gòu)使用MPU6050芯片,它是一款被整合的6軸運動傳感器件,內(nèi)置3軸陀螺儀,3軸加速計和1個DMP(digital motion processor)硬件加速引擎,提供1個用于與第三方數(shù)字傳感器相連的輔助I2C接口,如磁力計,壓力計等。當與第三方3軸傳感器連接時,MPU6050以其主I2C接口實現(xiàn)完整的9軸數(shù)據(jù)輸出[10]。
為了使得云臺硬件達到快速響應(yīng)和精確控制的目的,提出了基于云臺的變域論模糊PID算法。
模糊自適應(yīng)PID控制算法是在傳統(tǒng)PID控制算法的基礎(chǔ)上增加模糊控制器實現(xiàn)的,模糊控制器用于產(chǎn)生能兼顧控制系統(tǒng)動態(tài)特性與靜態(tài)特性、實際輸出與干擾抑制之間變化的參數(shù)優(yōu)化量,提升控制系統(tǒng)的整體性能,見圖3(a),它由模糊器、規(guī)則庫、模糊推理機、解模糊器幾個部分共同組成。變論域模糊自適應(yīng)PID控制算法同模糊自適應(yīng)PID控制算法目的一樣,也是為了產(chǎn)生能改善系統(tǒng)性能、提高系統(tǒng)應(yīng)對復(fù)雜問題能力的參數(shù)優(yōu)化量;不過變論域模糊自適應(yīng)PID控制算法是在模糊自適應(yīng)PID控制算法基礎(chǔ)上,增加變論域控制器而實現(xiàn)的,見圖3(b)。
模糊控制器是一個2輸入,3輸出系統(tǒng),輸入量為偏差e,偏差變化率ec,輸出是作為PID控制器各項系數(shù)存在的參數(shù)kj(j=p,i,d)的優(yōu)化量Δkj。參數(shù)優(yōu)化量的獲取只通過模糊控制器即可,依次由模糊器實施模糊化處理、由模糊推理機實施模糊邏輯推理、由解模糊器實施解模糊操作;最終用于PID控制器的參數(shù)由參數(shù)生成器對基礎(chǔ)參數(shù)和參數(shù)優(yōu)化量加和求得。
變論域模糊控制器用于縮放進出模糊控制器的變量,以達到等效變論域效果的目的。為實現(xiàn)變論域操作,把施加在模糊論域上的縮小操作轉(zhuǎn)變?yōu)閷τ诨菊撚虻目s小,因此要求輸入值較小,能夠落在縮小后的基本論域中;隨后再把該變化轉(zhuǎn)移到系統(tǒng)的輸入輸出變量上:以論域的縮小和出入值的不變,造成進出系統(tǒng)的值邏輯上的放大,見圖4(a)中一虛一實兩點,并且論域的縮小使得規(guī)則壓縮,模糊論域上的某一點會向著表述同一方向的程度更深的自然語言值的模糊子集偏移,即語義程度加深。反之亦然。不過,通常要求在輸入與輸出值上要進行相反的變論域操作,但是,這并不是絕對的,在某些具有特殊要求的場合可能會要求輸入和輸出都放大或縮小論域。若論域[e,e]縮小后變?yōu)閇-e1,e1],見圖4(b),伸縮因子α=e1/e(0<α<1),可得到如下論域傳遞關(guān)系式:
(1)
圖4 變論域原理圖
若x1是最終落在論域[-αE,αE]的輸入量,x是經(jīng)縮小的基本論域[-e1,e1]進入的輸入量,則x1=(x/α)·(E/e)是使模糊控制器實現(xiàn)縮小論域操作的等效因子,其中x/α是使得x從論域[-e1,e1]轉(zhuǎn)化到論域[e,e],可以把縮小論域理解成基本論域不變,直接放大進出系統(tǒng)的值,但放大后該值必需仍在基本論域范圍中;E/e是使論域從[e,e]轉(zhuǎn)化到[E,E]固定比例,令E/e=1,則x1=x/α。同理,論域[e,e]放大后變?yōu)閇-e2,e2],對于伸縮因子α=e/e2(0<α<1),可得到使模糊控制器實現(xiàn)放大論域操作的等效因子x2=αx·(E/e)=αx。
(2)
即最終模糊論域不發(fā)生改變,只縮放基本論域,縮小基本論域意味著要放大輸入、輸出量的值,放大基本論域意味著要縮小輸入、輸出量的值。
以偏差e和偏差變化率ec兩個變量作為輸入,其輸出為αi、βj(i=e,ec;j=p,i,d),根據(jù)需要為模糊控制器的5個變量分別產(chǎn)生伸縮因子,本文針對輸入、輸出變量分別產(chǎn)生伸縮因子,即令α=αi,β=βj,因α、β分別改變輸入、輸出的論域而又分別被稱為量化因子、比例因子。
輸入論域縮小時,論域系數(shù)Ke、Kec、KΔkj變化為:
(3)
輸入論域放大時,論域系數(shù)Ke、Kec、KΔkj變化為:
(4)
為了便于調(diào)節(jié)模糊控制器的輸入輸出,會給其輸入、輸出上乘以分數(shù)或倍數(shù),這種變化體現(xiàn)在論域系數(shù)上,產(chǎn)生抑制或增強論域縮放的效果。
使用MATLAB對模糊自適應(yīng)PID算法進行仿真,其仿真子系統(tǒng)如圖5所示,其中模糊控制器的實現(xiàn)沒有改變。為了便于仿真,這里選取伸縮因子α、β為:
(5)
IVUC(輸入變論域控制器),OVUC(輸出變論域控制器),其中VUO1、VUO2(變論域操作)用來實現(xiàn)論域的縮小(除以伸縮因子)與放大(乘以伸縮因子)。
圖5 基于函數(shù)模型的變論域模糊PID算法仿真子系統(tǒng)
基于模糊控制的變論域控制器,表1為模糊規(guī)則的變論域控制器的輸出信息α、β。模糊控制器的原始輸入值,若進行放縮型變論域操作,即令VUO1~2為乘法使得輸入值縮小,令VUO3~5為除法使得輸出值放大,就得到模糊控制器的最終輸入、輸出值;再放大其輸出值,便能得到變論域模糊控制器的最終輸出。
由于模糊處理過程對模糊控制器進行精確的控制,在變論域控制器采用的模糊規(guī)則不大變的情況下,其伸縮因子α、β趨勢相對穩(wěn)定,難以實現(xiàn)在輸入端縮小論域而在輸出端放大論域,即縮放型變論域的操作。該仿真方法伸縮因子的確定取決于模糊規(guī)則的優(yōu)劣。
表1 變論域控制器模糊規(guī)則表(α、β規(guī)則相同)
對模糊控制的變論域控制器而言,該仿真方法實現(xiàn)起來較為簡單,其伸縮因子受控于所選擇的函數(shù)模型,可控性強,伸縮因子可通過參數(shù)調(diào)節(jié),這里默認伸縮因子的參數(shù)ε=0.001,E=3,τ=0.5。
當伸縮因子較小時可以進行放縮型變論域操作:此時設(shè)置IVUC中λ=0.1,VUO1為乘法,OVUC中λ=0.2,VUO2為除法。伸縮因子α如圖6(a)所示,不同于基于模糊控制的情形,此時它是根據(jù)e、ec的輸入實時計算的,因此有所不同。放大論域使得最終進入模糊控制器的輸入如圖6(c)所示,與圖6(b)相比,輸入值的幅值降低,平滑程度增加,抑制了誤差。
圖6 基于函數(shù)模型的放縮型變論域仿真過程中的重要變量
當伸縮因子較大時可以進行縮放型變論域操作:設(shè)置IVUC中λ=4,VUO1為除法;OVUC中λ=4,VUO2為乘法。其伸縮因子如圖7(a)所示,縮小論域使得最終進入模糊控制器的輸入如圖7(c)所示,與圖7(b)相比,可見縮小論域后的圖像幅值有所增加平滑程度降低,也就是說放大了誤差。
圖7 基于函數(shù)模型的縮放型變論域仿真過程中的重要變量
由圖8(a)、(b)可以看出,對模糊控制器的輸出而言,放縮型變論域控制效果明顯比縮放型變論域控制效果好,在圖8(c)的仿真結(jié)果中也證實了這種觀點。
圖8 基于函數(shù)模型的放縮型、縮放型變論域的模糊控制器輸出及控制效果
(6)
取J=0.066(kg.m2),B=0.5(N.m.s/rad),Nr=200,i=3.76 A,Lsr=0.056 mH,得到外框軸傳遞函數(shù)G2(s):
(7)
仿真時的框架如圖9,因方法不同而使用不同的仿真子系統(tǒng),因研究框軸不同而應(yīng)用不同的傳遞函數(shù)。
圖9 仿真方法框架圖
圖10 變論域、模糊及傳統(tǒng)算法效果比較圖
仿真時,取Kp=15.15,Ki=78.5,Kd=3.83,Ke=1,Kec=1,Ku=1/3(KΔkj,j=p,i,d),結(jié)果如圖10和表2所示,其中vufPID1是基于模糊控制的放縮型變論域方法的輸出曲線,vufPID2是基于函數(shù)模型的放縮型變論域方法輸出曲線。
從表2看出,相比于傳統(tǒng)的PID控制算法,兩種放縮型變論域方法都取得較好的控制效果,改善了曲線的震蕩幅度,加快了曲線的收斂速度,vufPID1僅在穩(wěn)態(tài)誤差上有所不及;模糊PID算法對傳統(tǒng)PID算法的控制效果的提升相對而言要小得多。
表2 算法效果曲線時域性能指數(shù)表
圖11是云臺測試過程中的角度變化信息。測試采用的步進電機能夠響應(yīng)高達30 kHZ頻率的脈沖,根據(jù)測試X軸頻率不宜超過50 k,Y軸不宜超過6 k。且在電機控制曲線決策的同時修改變速系數(shù),重復(fù)云臺的運行軌跡時,對X軸和Y軸分別進行運動測試。
圖11(a)反映的是沒有使用控制曲線的條件下,XY兩軸以1 000為控制脈沖的頻率,控制步進電機帶動云臺載物臺進行勻速運動時的角度變化情況,此時采用勻速控制策略;圖11(b)和圖11(c)分別反映的是在使用直線型、S型控制曲線的條件下,XY兩軸以1 000為啟動頻率,變速次數(shù)為5,變速系數(shù)分別為300和500時,電機帶動云臺載物臺變速時的角度變化情況。
圖11 云臺實際控制過程角度變化圖
圖11所示,在勻速運動過程中由于控制頻率不高且保持不變,角度隨時間變化趨勢接近直線,控制過程相對穩(wěn)定,系統(tǒng)振動幅度不大;且頻率相同的情況下,由于Y軸的負載比X軸大,穩(wěn)定程度不如X軸。
在直線型變速運動過程中,曲線上的驟變點較多,XY兩軸的穩(wěn)定程度相對于勻速運動而言明顯降低,速度的提升使得其運動所耗費時間有所降低,所以電機執(zhí)行加減速過程時,由于速度的變化引起角度的變化出現(xiàn)曲線特征,經(jīng)減速過程后其角度進入α鄰域,此時電機以啟動頻率勻速向ε鄰域運行。
在S型變速運動中,X軸的角度變化趨勢呈現(xiàn)S型特征,控制耗時減少,運行過程較直線型運動平穩(wěn)。而Y軸由于負載原因,運動過程中震蕩明顯,運動控制紊亂,不能完成既定的控制目標,降低控制參數(shù),使其產(chǎn)生較低的頻率時情況改善,但時間上較直線型變速控制不明顯。
為了使云臺能夠更快更準確的根據(jù)外部環(huán)境變化自動調(diào)節(jié),本文對變論域模糊自適應(yīng)PID控制算法進行了深入的研究,重點研究了在傳統(tǒng)PID控制算法的基礎(chǔ)上增加模糊控制器和變論域控制的功能、原理以及實現(xiàn)方式;以Matlab/Simulink工具進行仿真實驗,并對它的伸縮因子展開研究,最后對比了它與傳統(tǒng)PID控制算法優(yōu)劣,結(jié)果表明模糊PID算法的控制效果較傳統(tǒng)PID控制算法顯著提升。在保證動態(tài)穩(wěn)定性的前提下,Y軸的運動時間可以控制在1 s內(nèi),定位精度控制在0.7°內(nèi),X軸的運動時間可以控制在0.5 s內(nèi),定位精度控制在0.5°以內(nèi),與傳統(tǒng)算法相比較,極大的提高了平臺的響應(yīng)速度,證明本文提出的算法是有效的。從而在一定程度上滿足了云臺對高速響應(yīng)、動態(tài)穩(wěn)定、定位精度等能力的要求。