張鵬, 何金保, 諸葛霞
(寧波工程學院 電信學院,寧波 315211)
目前,隨著科技的不斷發展,運動控制技術已成為先進制造技術的關鍵技術,制造業采用機器換人的方式來實現工廠的運作,包括汽車的制造、食品的包裝等無不采用自動化設備來完成機械的精準運動[1-4]。由于伺服系統具有精度高的特點,在運動控制系統中應用越來越廣泛[5-6]。
本文懸掛運動控制系統以單片機為主要控制芯片,通過控制施加給電機驅動器的脈沖信號頻率從而使電機按所指示的要求正轉與反轉已達到控制懸掛在吊繩上的物塊精準移動的目的。本系統采用了數學上的微分思想,將復雜的畫圓與畫直線的過程分為簡單且容易編程的走直線的方法,完成了一系列的定點、畫直線、畫圓的功能。通過一系列的程序調試以及器件的安裝,最終在紙上得出了期望的圖形。
1.1 系統結構
本系統結構如圖1所示。主要包括5個模塊:控制器模塊、紅外尋跡模塊、電機驅動模塊、鍵盤模塊、顯示模塊。控制器模塊采用89C52單片機,電機驅動模塊采用L297芯片,本系統用到2個電機,鍵盤模塊采用陣列式鍵盤,顯示模塊采用液晶12864,紅外尋跡模塊是用來檢測運動軌跡,是系統關鍵模塊,檢測精度直接關系到軌跡的準確性。

圖1 系統組成結構圖
本系統紅外尋跡模塊采用反射式紅外探測器對坐標紙上的黑色線進行檢測,原理上是根據黑色能夠吸收大部分的可見光而白色會反射大部分的可見光。為了能夠使紅外探測器能夠充分地完成尋跡功能,如圖2所示。


圖2 紅外尋跡檢測原理
在圓紙板的圓周上等間距地安裝了8個紅外發射接收對管,使它們圍成一個半徑為2 cm的圓周。我們使用的紅外發射接受對管長約8 mm,所給黑線寬約2 cm,所以以這樣圓周的方式安裝傳感器必定會有某個傳感器檢測到黑線。那么就控制單片機,讓小圓紙板沿著能檢測到黑色的那個紅外探測器的方向去走。
把移動的方向分為以下的八種:其中1、3、5、7為四個主方向,哪個紅外探測器檢測到黑色信號時即往相應標號的方向前進。舉例:當1和3兩個方向的紅外探測器同時檢測到黑色信號,那么就往2號方向前進,直到信號消失為止。往各個方向的移動過程和上述微元思想一致,這里就不累贅了。
1.2 運動控制算法
1.2.1 點到點運動算法
物塊的移動依賴于電機帶動所懸掛的吊繩的移動。在我們的方案中,是將物塊的坐標變化相應轉化為吊繩長度的變化。假設初始的坐標值為(x1,y1),所要移動到的點是(x2,y2),因為初始點是一開始手動已經定好了的,所以假設物塊從初始點(x1,y1)到最終點(x2,y2)這一過程中,左電機移動的距離為a,右電機移動的距離為b,那么由上圖3所示,在初始情況下根據勾股定理可得式(1)。
(1)
在移動到新位置(x2,y2)時,滿足方程,如式(2)。
(2)
故得出的式(3)。
(3)
得出來的a與b的值即為電機所需轉動相應的距離(轉動的距離有單片機發出的脈沖信號決定)。由于a,b存在正負兩種可能值,因而電機轉動時也是相應的正轉與反轉,如圖3所示。

圖3 點到點運動示意圖
1.2.2 直線運動算法
從起始點(x1,y1)到終點(x2,y2)的物塊定點移動中,假設每給一個脈沖,電機補給的線距為:m(該值可通過驅動上的細分調節),那么選取t1=5*m(由于每給一個脈沖轉動線距過小,因而稍稍加大細分長度)為每個水平細分的長度,t2=5*m*k為每個豎直細分的長度,如圖4所示。

圖4 直線運動算法示意圖
t2中k的表達式為式(4)。
(4)
那么水平方向需要的計數次數為式(5)。
(5)
豎直方向需要計數次數為式(6)。
(6)
由圖4,直線的方程為式(7)。
(1)
整理后得式(8)。
Tm=(x-x1)y-[(y2-y1)(x-x1)+y1(x2-x1)]
(2)
此時的每個細分長度電機所需轉動的線距a,b可表示為(正負值對應相應的正反轉):
直線運動過程為:首先,物體由起始位置,向左平移一個單位(長度為5m),得到一個新坐標(x1+5m,y1)。將該坐標值返回到單片機中帶入直線方程(8)中的x與y,若Tm<0,則說明物塊偏離在直線下方,開始進行+y方向上的數值位移5*m*k。若檢測到Tm≥0時,則說明物塊就在直線上或偏離在直線的下方,那么繼續使物塊水平移動,循環上述操作。直到Cntx與Cnty計數結束,完成畫直線過程。
直線走向有如下的4種情況,如圖5所示。利用1.2.1中定點的方法,根據每一種走向確定x與y的移動。


圖5 直線運動4種情況
1.2.3 圓弧運動算法
畫圓的過程依舊按照上述畫直線那樣的微元方法,將整個圓的曲線以無窮小的折線段來予以表示。當我們取得的折線段的長度越小時,所畫出的圓更為精確。如圖6所示。

圖6 圓弧示意圖
假設所畫圓的圓心坐標為(x0,y0),半徑長度為r,那么該圓的方程為:
(x-x0)2-(y-y0)2=r2
畫圓時,假設畫筆的實時坐標為:(pointx,pointy),那么可取判別式:
Tm=(pointx-x)2+(pointy-y)2
如若Tm≤r2,則認為畫筆的當前位置是在圓內;而如若Tm≥r2,則認為畫筆的當前位置是在圓外。
根據微元的思想,畫筆橫向運動與豎向運動的距離之和即為圖6中該圓的外接正方形的周長,為8r。假設每給一個脈沖,電機補給的線距為:m(該值可通過驅動上的細分調節)。那么選取t1=2*m(由于每給一個脈沖轉動線距過小,因而稍稍加大細分長度)為每個水平細分的長度,t2=2*m為每個豎直細分的長度。
為了逼近所畫的圓,每次移動一個細分長度時都應該立即檢測該點是否已經偏離所需要畫的那個標準圓。如圖7所示。

圖7 圓弧運動算法
將圖中區域分為如下①②③④4個部分:
分別討論上述4種情況,如表1所示。表1中movex代表水平移動一個細分長度,movey代表豎直移動一個細分長度。正號代表正向移動,負號代表負向移動。且每一次移動時,計數次數加1。

表1 圓弧算法四種情況
易知,總的計數次數為:
那么當實際計數次數Cntp≤Cnt時,畫圓過程繼續,當實際計數次數Cntp≤Cnt時,畫圓過程完成。
1.2.5 模糊PID算法的精確控制
通過如上的算法,可以完成定點、走直線、畫圓的功能。然而為了進一步地提高作圖時的精確性,在實際中還引入模糊PID控制算法。當在畫圓或者畫直線的時候,畫筆的實際位置與真實曲線偏差較大時才引入輸出控制作用,使得電機的轉速適當地增加到我們給定的速度值以使畫筆能夠更快地向理想的曲線靠攏。模糊PID可以根據運動控制中各獨立運動軸所產生的輪廓誤差大小及變化量實現PID控制參數實時優化,滿足誤差值以及誤差變化率對PID三參數自整定在不同時刻的要求。將輪廓誤差大小及變化量劃分為負大、負小、零、正小、正大,建立Kp、Ki、Kd三者的參數值的大小模糊規則。通過模糊PID控制作用的引入,可以大大增加所作曲線的精度。
直線和圓弧運動的PID和模糊PID控制效果比較,如表2和表3。
從實驗的結果上來看,盡管存在微小的偏差,實驗值與理論值也做到了基本吻合。且采用了模糊PID控制時所獲得的曲線的精度更高。
本文根據計劃目標,完成了懸掛物的找點、畫直線、畫圓任務。在畫直線與畫圓的過程中,通過細分的方法用折線段近似地建構出了所要的圖形,并且采用模糊PID算法,所畫的圖形與實際的圖形誤差較小,達到預期目標。

表2 直線運動的PID和模糊PID控制效果比較

表3 圓弧運動的PID和模糊PID控制效果比較
[1] 黨智乾. 基于單片機的懸掛運動控制系統的設計與實現[J]. 計算機與數字工程, 2016, 45(07):1365-1370.
[2] 武林. 三維懸掛物體運動控制系統[J]. 浙江師范大學學報(自然科學版), 2007, 30(2):171-175.
[3] 呂弘, 趙佳. 懸掛運動控制系統的設計[J]. 伺服控制, 2014(4):49-51.
[4] 李小松, 馬利業. 懸掛運動控制系統[J]. 兵器裝備工程學報, 2010, 31(7):89-92.
[5] 江韋, 鄒俊忠, 張見,等. 伺服運動控制輪廓誤差補償技術研究[J]. 制造技術與機床, 2016(4):73-78.
[6] 葉敦范, 劉金全, 歐陽才. 一種懸掛運動控制系統的近似插補算法研究[J]. 機械與電子, 2009(3):31-33.
[7] 張雨. 懸掛運動控制系統中誤差補償算法研究[D]. 吉林:吉林大學, 2012.