徐涢基 肖城鋼 李婷 龔明 陳芳
摘? 要: 針對傳統(tǒng)滾球控制系統(tǒng)控制精度不高、控制速度較慢的特點,設(shè)計了一款運行速度快、定位精度高、機械結(jié)構(gòu)穩(wěn)定的滾球控制系統(tǒng)。該系統(tǒng)由STM32控制器、OV7670攝像頭模塊、6221MG數(shù)字舵機、觸摸屏模塊、電源模塊及亞克力板等組成。攝像頭采集小球?qū)崟r位置信息,采用內(nèi)環(huán)速度PID及外環(huán)位置PD算法組成的串級PID算法,系統(tǒng)將當(dāng)前小球位置信息與設(shè)定位置相比較,計算出理想PWM占空比,驅(qū)動舵機控制平板擺動,使小球按指定方式運動。經(jīng)測定,該系統(tǒng)控制效果良好。與單環(huán)PID控制系統(tǒng)相比,具有控制精度較高,控制時間更短的優(yōu)勢,且具有較強的抗干擾性和魯棒性。
關(guān)鍵詞: 滾球控制系統(tǒng); 串級PID算法設(shè)計; 占空比計算; 平板擺動控制; 系統(tǒng)控制效果; 運動數(shù)據(jù)分析
中圖分類號: TN876?34; TH89; TP214? ? ? ? ? ? ? ? 文獻(xiàn)標(biāo)識碼: A? ? ? ? ? ? ? ?文章編號: 1004?373X(2020)09?0122?04
Application of cascade PID algorithm in ball rolling control system
XU Yunji, XIAO Chenggang, LI Ting, GONG Ming, CHEN Fang
(Institute of Technology, East China Jiaotong University, Nanchang 330100, China)
Abstract: Since the traditional ball rolling control system is of low control precision and slow control speed, a ball rolling control system with fast operation speed, high positioning precision and stable mechanical structure is designed. The system is composed of the controller STM32, the camera module OV7670, the digital servo 6221MG, the touch screen module, the power module and the acrylic board. In the system, the camera is used to collect the real?time position information of the ball, the current position information of the ball is compared with the set position information for the calculation of the ideal duty ratio of PWM (pulse width modulation) by taking the cascade PID (proportion integral derivative) algorithm consisting of the inner loop speed PID algorithm and the outer loop position PD algorithm, and the servo is driven to control the swing of plate, so that the ball moves in a specified way. The test results show that the control effect of the system is good. In comparison with the single?loop PID control system, the system is of higher control precision, shorter control time and powerful anti?interference performance and robustness.
Keywords: ball rolling control system; cascade PID algorithm design; duty ratio calculation; plate swing control; system control effect; motion data analysis
0? 引? 言
滾球控制系統(tǒng)是一個基于視覺控制的典型二維非線性控制系統(tǒng)[1?2]。本系統(tǒng)在傳統(tǒng)滾球控制系統(tǒng)的機械基礎(chǔ)上進(jìn)行改進(jìn)。給舵機活動關(guān)節(jié)加上軸承,采用3D打印舵機固定架、串級PID(Proportion Integral Derivative)算法,相比于單環(huán)PID[2],其響應(yīng)快、精度高。外環(huán)控制小球的位置,使小球快速到達(dá)目的坐標(biāo);內(nèi)環(huán)控制小球的速度,在小球到達(dá)目標(biāo)點附近時使小球的速度迅速降為0。
本設(shè)計設(shè)置兩個任務(wù):
任務(wù)一:控制小球從任一區(qū)域出發(fā),快速到達(dá)另一任意區(qū)域并穩(wěn)定停下;
任務(wù)二:控制小球以平板中心為圓心做圓周運動。
1? 機械結(jié)構(gòu)及工作原理
滾球控制系統(tǒng)模型如圖1所示。
本系統(tǒng)的平板選用400 mm×400 mm×4 mm的白色亞克力板,如圖1所示,平板上圓形區(qū)域1~區(qū)域9分別對應(yīng)于主控板觸摸屏上區(qū)域1~區(qū)域9。通過觸摸屏選擇任務(wù)后,攝像頭檢測小球圖像信息送到MCU(Micro Control Unit)處理后得到小球的位置坐標(biāo)與速度,利用串級PID算法計算出實際值與理想值的偏差量,輸出理想的PWM(Pulse Width Modulation)給舵機,控制舵機帶動平板擺動,使小球完成指定運動。
2? 硬件結(jié)構(gòu)及關(guān)鍵部件
滾球控制系統(tǒng)的硬件結(jié)構(gòu)如圖2所示。
3? 算法及軟件設(shè)計
3.1? 串級PID算法[2?9]
串級PID控制結(jié)構(gòu)示意圖[3]如圖3所示。
PID的一般形式為[3]:
[u(t)=KP?err(t)+1TI?0terr(t)dt+TD?derr(t)dt+u(0)? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(1)]
式中:err([t])是實際值與設(shè)定值的偏差;[u(0)]是偏差為0時系統(tǒng)的輸出;[KP]是比例常數(shù);[TI]是積分時間常數(shù);[TD]是微分時間常數(shù)。由于實際的控制系統(tǒng)是離散化模型,故需將連續(xù)系統(tǒng)離散化。假設(shè)采樣間隔為[T],輸入量為in([t]),輸出量為out([t]),則在第[k]時刻:
偏差為:
[err(t)=in(t)-out(t)] (2)
積分環(huán)節(jié)為:
[0terr(t)dt≈Δt?err(k)+err(k+1)+err(k+2)+…+err(k+n)=T?k=0nerr(k)] (3)
微分環(huán)節(jié)為:
[d[err(t)]dt≈err(k)-err(k-1)Δt=err(k)-err(k-1)T] (4)
由式(2)~式(4)可得PID的離散表達(dá)式:
[u(k)=KP?err(k)+TTI?k=0nerr(k)+TDT?err(k)-err(k-1)] (5)
則PID的離散表達(dá)式可寫為:
[u(k)=KP?err(k)+KI?k=0nerr(k)+KD?err(k)-err(k-1)] (6)
式中:[KI=KP?TTI];[KD=KP?TDT]。
由式(6)可看出,系統(tǒng)的輸出與最近的兩次偏差有關(guān),此PID為位置型離散化PID。系統(tǒng)采用串級位置型離散化PID,外環(huán)控制小球位置、內(nèi)環(huán)控制小球速度。其中,位置環(huán)的輸出與時間之比作為速度環(huán)的反饋量。
[Vactual=KP?err(k)+KI?k=0nerr(k)+KD?err(k)-err(k-1)Δt] (7)
式中:[err(k)]是當(dāng)前位置誤差;[err(k-1)]為小球上一次位置誤差;[Δt]為攝像頭檢測小球兩次實際坐標(biāo)點的時間差;[Vactual]為小球?qū)嶋H速度。
3.2? 主程序設(shè)計
系統(tǒng)主程序流程如圖4所示。
系統(tǒng)初始化的主要內(nèi)容:處理器輸入輸出口、OV7670、顯示屏、觸摸屏、舵機以及定時器中斷2。
3.3? 串級PID算法設(shè)計[3?4]
為了簡化處理的復(fù)雜度,將小球的[x]坐標(biāo)與[y]坐標(biāo)分開處理。下面以[y]坐標(biāo)為例,給出串級PID在程序中的表現(xiàn)形式。
[Se=Ss-Sy] (8)
[Si=e=0Se] (9)
[Sd=Se-Se-1] (10)
[So=Psp×Se+Psi×Si+Psd×Sd] (11)
[Ve=Vs-Vy] (12)
[Vi=e=0Ve] (13)
[Vd=Ve-Ve-1] (14)
[Vo=Pvp×Ve+Pvi×Vi+Pvd×Vd+146.5] (15)
式中:[Ss],[Sy],[Se]分別為小球[y]軸方向的位置設(shè)定值、位置實際值、位置誤差;[Si],[Sd],[Se-1],[So]分別為小球[y]軸方向的位置總誤差(積分量)、位置誤差變化率(微分量)、上一次位置誤差、位置輸出值;[Psp],[Psi],[Psd]分別為[y]軸方向的位置比例、積分、微分常數(shù);[Vs],[Vy],[Ve]分別為[y]軸方向的速度設(shè)定值、實際值、誤差值,其中,[Vy=SoΔt];[Vi],[Vd],[Ve-1],[Vo]分別為[y]軸方向的速度誤差積分值、速度偏差值、上一次速度誤差值、速度輸出值;[Pvp],[Pvi],[Pvd]分別為[y]軸方向的速度比例、積分、微分常數(shù);146.5為亞克力板水平時舵機PWM對應(yīng)的速度初始調(diào)整值。
3.4? 定位子程序設(shè)計
小球定位任務(wù):控制小球從區(qū)域1出發(fā),在30 s之內(nèi)到達(dá)區(qū)域9,使小球按最近的路線運動,快速到達(dá)區(qū)域9,并穩(wěn)定停下。定位子程序流程如圖5所示。
3.5? 圓周運動程序設(shè)計
小球圓周運動任務(wù)[2?3]:控制小球以區(qū)域5為圓心做圓周運動,要求小球以固定半徑穩(wěn)定畫圓,且保持小球不掉下。
圓周運動流程如圖6所示。
[t=t0tp] (16)
[α=2πt] (17)
[x=x0+r?sin α] (18)
[y=y0+r?cos α] (19)
式中:[t0]為計算小球目標(biāo)坐標(biāo)的時間間隔;[tp]為小球滾動周期;[t]為小球滾動周期的歸一化值;[α]為[2π]的歸一化值;[r]為小球運動半徑;([x0,y0])為小球圓心坐標(biāo)。
4? 數(shù)據(jù)分析[9]
為研究方便,統(tǒng)一小球?qū)嶋H坐標(biāo)點與小球像素坐標(biāo)點。小球在400 mm×400 mm×4 mm平板上的物理坐標(biāo)與小球像素坐標(biāo)點(顯示屏的顯示區(qū)域大小為240×240個像素點)按如下關(guān)系進(jìn)行轉(zhuǎn)換:
[物理坐標(biāo)=(400240)×像素坐標(biāo)] (20)
將繪制的實際曲線與理想曲線進(jìn)行對比,分析系統(tǒng)的控制效果。
4.1? 小球定點數(shù)據(jù)分析[9]
設(shè)定小球的出發(fā)點為區(qū)域1,其像素坐標(biāo)點為(56,56),目標(biāo)點為區(qū)域9,其像素坐標(biāo)點為(195,195),由式(20)可得區(qū)域1、區(qū)域9的物理坐標(biāo)點分別為(93.33,93.33),(325,325)。
分別取小球橫坐標(biāo)、縱坐標(biāo)在同一圖中繪制曲線,如圖7所示。經(jīng)分析可得:小球在[A]到[B]段處于區(qū)域1、[B]到[C]段處于運動狀態(tài)、在[C]點時到達(dá)區(qū)域9、[C]點到[D]點小球處于區(qū)域9、小球從區(qū)域1到區(qū)域9的時間遠(yuǎn)小于15 s,且小球在[x]軸坐標(biāo)與[y]軸坐標(biāo)的重合度高,說明小球的運動接近直線(見圖7中[BC]段)。經(jīng)計算可得:小球停在區(qū)域1和區(qū)域9時與設(shè)定值的最大誤差點分別為(90,93.33),(323.33,321.67)。
故小球在區(qū)域1的相對誤差為:
[93.33-9093.33×100%=3.57%]
在區(qū)域9的相對誤差為:
[325-321.67325×100%=1.02%]
綜上分析可知,小球從區(qū)域1的出發(fā)在30 s內(nèi)到達(dá)區(qū)域9,運動軌跡接近直線且誤差在允許范圍內(nèi)。
4.2? 小球圓周運動數(shù)據(jù)分析[9]
在小球定點任務(wù)中,設(shè)定圓周運動的圓心為區(qū)域5,其像素坐標(biāo)點為(127,125)。故根據(jù)式(20)可得區(qū)域5的物理坐標(biāo)點為(211.7,208.3)。根據(jù)小球一系列坐標(biāo)繪制曲線,如圖8所示。
經(jīng)計算知,小球做圓周運動的最大誤差在點[d](279.4,181.2),故對應(yīng)的實際物理半徑為:
[279.4-211.72+181.2-208.32=72.98 mm]
小球理想圓周運動半徑此處設(shè)置為76 mm,故相對誤差為:
[76-72.9876×100%=3.974%]
相對誤差小于5%,滿足設(shè)計要求。
5? 結(jié)? 論
串級PID相比典型的PID算法控制更精準(zhǔn)、穩(wěn)定,系統(tǒng)內(nèi)環(huán)為速度環(huán),外環(huán)為位置環(huán),實現(xiàn)了控制平板上小球的定點功能,實現(xiàn)控制小球在平板上做圓周運動功能,定點準(zhǔn)確,畫圓誤差較小,最大相對誤差小于等于3.974%,控制效果良好。系統(tǒng)在測試過程中存在著受光干擾的情況,由于平板邊緣與背景環(huán)境存在像素突變的情況,在平板邊緣也存在干擾像素的影響,數(shù)據(jù)處理時需要對二值化圖像進(jìn)行去除邊緣干擾處理。本文的研究理論與方法在模式識別、人工智能、機器人路徑規(guī)劃等方面有一定的應(yīng)用價值。
參考文獻(xiàn)
[1] 吳立軍,梁偉,李清波,等.基于STM32F103單片機的板球控制系統(tǒng)設(shè)計[J].西安文理學(xué)院學(xué)報,2018,21(3):48?52.
[2] 郝偉,張宏立.板球系統(tǒng)的反演自適應(yīng)動態(tài)滑??刂芠J].電子技術(shù)應(yīng)用,2018,44(7):139?140.
[3] 徐涢基,方平,李娜,等.神經(jīng)元PID在風(fēng)力擺控制系統(tǒng)中的應(yīng)用[J].自動化儀表,2018,39(5):49?51.
[4] 馬婭婕,彭攀來,劉國慶,等.基于梯度下降法和雙環(huán)PID的四旋翼飛行器的研究與設(shè)計[J].現(xiàn)代電子技術(shù),2017,40(18):11?14.
[5] 荊學(xué)東,潘翔.基于四元數(shù)的四軸飛行器姿態(tài)控制[J].現(xiàn)代電子技術(shù),2018,41(16):116?119.
[6] 馬小雨.模糊PID復(fù)合控制算法的有效改進(jìn)[J].現(xiàn)代電子技術(shù),2016,39(4):153?155.
[7] 喻學(xué)濤.機械手臂轉(zhuǎn)角自動控制器設(shè)計與改進(jìn)[J].現(xiàn)代電子技術(shù),2017,40(18):107?109.
[8] 周曉華,張銀,王荔芳,等.無刷直流電機調(diào)速系統(tǒng)模糊神經(jīng)元PID控制[J].現(xiàn)代電子技術(shù),2017,40(23):140?143.
[9] 管雪梅,張盧軍,樊粉霄.預(yù)測模糊PI控制的反激變換器設(shè)計與仿真[J].現(xiàn)代電子技術(shù),2019,42(2):9?13.