徐涢基 肖城鋼 李婷 龔明 陳芳



摘? 要: 針對傳統滾球控制系統控制精度不高、控制速度較慢的特點,設計了一款運行速度快、定位精度高、機械結構穩定的滾球控制系統。該系統由STM32控制器、OV7670攝像頭模塊、6221MG數字舵機、觸摸屏模塊、電源模塊及亞克力板等組成。攝像頭采集小球實時位置信息,采用內環速度PID及外環位置PD算法組成的串級PID算法,系統將當前小球位置信息與設定位置相比較,計算出理想PWM占空比,驅動舵機控制平板擺動,使小球按指定方式運動。經測定,該系統控制效果良好。與單環PID控制系統相比,具有控制精度較高,控制時間更短的優勢,且具有較強的抗干擾性和魯棒性。
關鍵詞: 滾球控制系統; 串級PID算法設計; 占空比計算; 平板擺動控制; 系統控制效果; 運動數據分析
中圖分類號: TN876?34; TH89; TP214? ? ? ? ? ? ? ? 文獻標識碼: 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? 引? 言
滾球控制系統是一個基于視覺控制的典型二維非線性控制系統[1?2]。本系統在傳統滾球控制系統的機械基礎上進行改進。給舵機活動關節加上軸承,采用3D打印舵機固定架、串級PID(Proportion Integral Derivative)算法,相比于單環PID[2],其響應快、精度高。外環控制小球的位置,使小球快速到達目的坐標;內環控制小球的速度,在小球到達目標點附近時使小球的速度迅速降為0。
本設計設置兩個任務:
任務一:控制小球從任一區域出發,快速到達另一任意區域并穩定停下;
任務二:控制小球以平板中心為圓心做圓周運動。
1? 機械結構及工作原理
滾球控制系統模型如圖1所示。
本系統的平板選用400 mm×400 mm×4 mm的白色亞克力板,如圖1所示,平板上圓形區域1~區域9分別對應于主控板觸摸屏上區域1~區域9。通過觸摸屏選擇任務后,攝像頭檢測小球圖像信息送到MCU(Micro Control Unit)處理后得到小球的位置坐標與速度,利用串級PID算法計算出實際值與理想值的偏差量,輸出理想的PWM(Pulse Width Modulation)給舵機,控制舵機帶動平板擺動,使小球完成指定運動。
2? 硬件結構及關鍵部件
滾球控制系統的硬件結構如圖2所示。
3? 算法及軟件設計
3.1? 串級PID算法[2?9]
串級PID控制結構示意圖[3]如圖3所示。
PID的一般形式為[3]:
[u(t)=KP?err(t)+1TI?0terr(t)dt+TD?derr(t)dt+u(0)? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(1)]
式中:err([t])是實際值與設定值的偏差;[u(0)]是偏差為0時系統的輸出;[KP]是比例常數;[TI]是積分時間常數;[TD]是微分時間常數。由于實際的控制系統是離散化模型,故需將連續系統離散化。假設采樣間隔為[T],輸入量為in([t]),輸出量為out([t]),則在第[k]時刻:
偏差為:
[err(t)=in(t)-out(t)] (2)
積分環節為:
[0terr(t)dt≈Δt?err(k)+err(k+1)+err(k+2)+…+err(k+n)=T?k=0nerr(k)] (3)
微分環節為:
[d[err(t)]dt≈err(k)-err(k-1)Δt=err(k)-err(k-1)T] (4)
由式(2)~式(4)可得PID的離散表達式:
[u(k)=KP?err(k)+TTI?k=0nerr(k)+TDT?err(k)-err(k-1)] (5)
則PID的離散表達式可寫為:
[u(k)=KP?err(k)+KI?k=0nerr(k)+KD?err(k)-err(k-1)] (6)
式中:[KI=KP?TTI];[KD=KP?TDT]。
由式(6)可看出,系統的輸出與最近的兩次偏差有關,此PID為位置型離散化PID。系統采用串級位置型離散化PID,外環控制小球位置、內環控制小球速度。其中,位置環的輸出與時間之比作為速度環的反饋量。
[Vactual=KP?err(k)+KI?k=0nerr(k)+KD?err(k)-err(k-1)Δt] (7)
式中:[err(k)]是當前位置誤差;[err(k-1)]為小球上一次位置誤差;[Δt]為攝像頭檢測小球兩次實際坐標點的時間差;[Vactual]為小球實際速度。
3.2? 主程序設計
系統主程序流程如圖4所示。
系統初始化的主要內容:處理器輸入輸出口、OV7670、顯示屏、觸摸屏、舵機以及定時器中斷2。
3.3? 串級PID算法設計[3?4]
為了簡化處理的復雜度,將小球的[x]坐標與[y]坐標分開處理。下面以[y]坐標為例,給出串級PID在程序中的表現形式。
[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]軸方向的位置設定值、位置實際值、位置誤差;[Si],[Sd],[Se-1],[So]分別為小球[y]軸方向的位置總誤差(積分量)、位置誤差變化率(微分量)、上一次位置誤差、位置輸出值;[Psp],[Psi],[Psd]分別為[y]軸方向的位置比例、積分、微分常數;[Vs],[Vy],[Ve]分別為[y]軸方向的速度設定值、實際值、誤差值,其中,[Vy=SoΔt];[Vi],[Vd],[Ve-1],[Vo]分別為[y]軸方向的速度誤差積分值、速度偏差值、上一次速度誤差值、速度輸出值;[Pvp],[Pvi],[Pvd]分別為[y]軸方向的速度比例、積分、微分常數;146.5為亞克力板水平時舵機PWM對應的速度初始調整值。
3.4? 定位子程序設計
小球定位任務:控制小球從區域1出發,在30 s之內到達區域9,使小球按最近的路線運動,快速到達區域9,并穩定停下。定位子程序流程如圖5所示。
3.5? 圓周運動程序設計
小球圓周運動任務[2?3]:控制小球以區域5為圓心做圓周運動,要求小球以固定半徑穩定畫圓,且保持小球不掉下。
圓周運動流程如圖6所示。
[t=t0tp] (16)
[α=2πt] (17)
[x=x0+r?sin α] (18)
[y=y0+r?cos α] (19)
式中:[t0]為計算小球目標坐標的時間間隔;[tp]為小球滾動周期;[t]為小球滾動周期的歸一化值;[α]為[2π]的歸一化值;[r]為小球運動半徑;([x0,y0])為小球圓心坐標。
4? 數據分析[9]
為研究方便,統一小球實際坐標點與小球像素坐標點。小球在400 mm×400 mm×4 mm平板上的物理坐標與小球像素坐標點(顯示屏的顯示區域大小為240×240個像素點)按如下關系進行轉換:
[物理坐標=(400240)×像素坐標] (20)
將繪制的實際曲線與理想曲線進行對比,分析系統的控制效果。
4.1? 小球定點數據分析[9]
設定小球的出發點為區域1,其像素坐標點為(56,56),目標點為區域9,其像素坐標點為(195,195),由式(20)可得區域1、區域9的物理坐標點分別為(93.33,93.33),(325,325)。
分別取小球橫坐標、縱坐標在同一圖中繪制曲線,如圖7所示。經分析可得:小球在[A]到[B]段處于區域1、[B]到[C]段處于運動狀態、在[C]點時到達區域9、[C]點到[D]點小球處于區域9、小球從區域1到區域9的時間遠小于15 s,且小球在[x]軸坐標與[y]軸坐標的重合度高,說明小球的運動接近直線(見圖7中[BC]段)。經計算可得:小球停在區域1和區域9時與設定值的最大誤差點分別為(90,93.33),(323.33,321.67)。
故小球在區域1的相對誤差為:
[93.33-9093.33×100%=3.57%]
在區域9的相對誤差為:
[325-321.67325×100%=1.02%]
綜上分析可知,小球從區域1的出發在30 s內到達區域9,運動軌跡接近直線且誤差在允許范圍內。
4.2? 小球圓周運動數據分析[9]
在小球定點任務中,設定圓周運動的圓心為區域5,其像素坐標點為(127,125)。故根據式(20)可得區域5的物理坐標點為(211.7,208.3)。根據小球一系列坐標繪制曲線,如圖8所示。
經計算知,小球做圓周運動的最大誤差在點[d](279.4,181.2),故對應的實際物理半徑為:
[279.4-211.72+181.2-208.32=72.98 mm]
小球理想圓周運動半徑此處設置為76 mm,故相對誤差為:
[76-72.9876×100%=3.974%]
相對誤差小于5%,滿足設計要求。
5? 結? 論
串級PID相比典型的PID算法控制更精準、穩定,系統內環為速度環,外環為位置環,實現了控制平板上小球的定點功能,實現控制小球在平板上做圓周運動功能,定點準確,畫圓誤差較小,最大相對誤差小于等于3.974%,控制效果良好。系統在測試過程中存在著受光干擾的情況,由于平板邊緣與背景環境存在像素突變的情況,在平板邊緣也存在干擾像素的影響,數據處理時需要對二值化圖像進行去除邊緣干擾處理。本文的研究理論與方法在模式識別、人工智能、機器人路徑規劃等方面有一定的應用價值。
參考文獻
[1] 吳立軍,梁偉,李清波,等.基于STM32F103單片機的板球控制系統設計[J].西安文理學院學報,2018,21(3):48?52.
[2] 郝偉,張宏立.板球系統的反演自適應動態滑模控制[J].電子技術應用,2018,44(7):139?140.
[3] 徐涢基,方平,李娜,等.神經元PID在風力擺控制系統中的應用[J].自動化儀表,2018,39(5):49?51.
[4] 馬婭婕,彭攀來,劉國慶,等.基于梯度下降法和雙環PID的四旋翼飛行器的研究與設計[J].現代電子技術,2017,40(18):11?14.
[5] 荊學東,潘翔.基于四元數的四軸飛行器姿態控制[J].現代電子技術,2018,41(16):116?119.
[6] 馬小雨.模糊PID復合控制算法的有效改進[J].現代電子技術,2016,39(4):153?155.
[7] 喻學濤.機械手臂轉角自動控制器設計與改進[J].現代電子技術,2017,40(18):107?109.
[8] 周曉華,張銀,王荔芳,等.無刷直流電機調速系統模糊神經元PID控制[J].現代電子技術,2017,40(23):140?143.
[9] 管雪梅,張盧軍,樊粉霄.預測模糊PI控制的反激變換器設計與仿真[J].現代電子技術,2019,42(2):9?13.