代健超,孟 婥,孫志軍,杜誠杰
(東華大學 機械工程學院, 上海)
目前繩制品的包裝方式以繩輥繞繩為主,這種包裝方式更適用于較長的繩制品,對10 m以下小徑短繩包裝用繩輥方式而言會大大增加包裝成本。自動繩纜打捆機能實現(xiàn)小徑短繩纜的自動打捆,即按照預定長度將長繩進行八字打捆并裁剪,打捆過程中橫向打捆電機和縱向打捆電機的控制精度直接影響繩捆的包裝品質,要提高打捆步進電機的精度需要高精度控制算法。李萌等[1]從自適應編碼、自適應選擇、自適應交叉、自適應變異4個方面對遺傳算法進行了自適應優(yōu)化,獲得了良好的控制效果,但每進化一代都要進行4種自適應計算,算法計算過程復雜,計算速度較慢。Yang[2]為解決柔性作業(yè)車間調度問題,設計了具有IPOX(improved precedence operation crossover)交叉和多點交叉2種交叉方式的改進遺傳算法,采用并行雙鏈編碼對操作順序和機器選擇2個問題并行求解,但缺少自適應設計,遺傳算子的交叉率PC=0.8,變異率Pm=0.05,容易引起遺傳算法的退化現(xiàn)象。徐夢穎等[3]針對移動機器人路徑規(guī)劃問題設計了一種免疫克隆自適應遺傳算法,提高了求解精度,加快了收斂時間,但容易陷入局部最優(yōu)。
針對上述問題,本文建立打捆機橫向打捆電機模型,分析并解決了經典遺傳算法盲目進化和經典自適應遺傳算法易陷入局部最優(yōu)的問題,提出具有更好收斂能力并能削弱退化現(xiàn)象的改進自適應遺傳算法,加快了算法的收斂速度,降低了算法陷入局部最優(yōu)的概率,提高了自動繩纜打捆機的打捆精度。
圖1為小徑短繩自動打捆機示意圖。由圖1可知:氣動生頭機械手由薄型氣缸、氣爪、鋸齒夾爪和電熱熔刀組成,負責將繩頭壓入繞臂的夾緊塊和剪斷繩纜;繞臂是八字打捆的核心部分,繩纜的打捆和生頭都在繞臂上完成;打捆部件由繞臂、繞臂支架和繞臂支架所在的滾珠絲杠導軌組成的裝配體,實現(xiàn)縱向打捆和橫向打捆;排線器則負責橫向打捆時引導繩纜和實現(xiàn)繩纜與生頭氣動機械手夾爪的對位;環(huán)形凹槽導軌與繞臂支架所在的滾珠絲杠導軌下邊安裝萬向球接觸,為打捆部件提供支撐力,防止打捆部件偏擺振動;電滑環(huán)在打捆部件旋轉時防止電線纏繞。

注:1-氣動生頭機械手;2-繞臂;3-繞臂電機;4-打捆部件;5-環(huán)形凹槽導軌;6-電滑環(huán);7-縱向打捆電機;8-排線器。圖1 小徑短繩自動打捆機Fig.1 Automatic strapping machine of small diameter short rope
繩輥的小徑短繩經過張力采集機構的滾輪,然后從排線器的導向孔穿過并夾緊在繞臂的夾塊上,利用縱向打捆電機驅動打捆部件轉動,繩纜被纏繞在繞臂上實現(xiàn)縱向打捆。繞臂電機驅動繞臂攜帶縱向繩捆橫向轉動,配合排線器的引導將繩纜均勻纏繞在縱向繩捆上實現(xiàn)橫向打捆。利用生頭氣動機械手完成繩纜的剪斷和生頭。打捆機橫向打捆時,排線器則引導繩纜移動,保證橫向繩捆匝與匝間均勻緊密。繞臂橫向打捆轉速范圍為0~150 r/min,繞臂的存在和打捆工藝的需求使繞臂電機運轉具有大慣量、低轉速、頻繁啟停的特點,從而導致繞臂電機失步風險上升,因此需要控制精度更高、可靠性更好的控制算法,圖2為橫向打捆原理示意圖。

注:1-繞臂;2-繩捆;3-繩纜;4-排線器。圖2 橫向打捆原理示意圖Fig.2 Schematic diagram of horizontal bundling
步進電機是廣泛應用于高精度開環(huán)控制系統(tǒng)和低速開環(huán)控制系統(tǒng)的數(shù)字控制電機[4],隨著對步進電機精度要求的提高,近幾年針對步進電機的閉環(huán)控制的研究進展迅速。步進電機低頻工況下輸出轉矩較大、控制簡單、成本低,很適合用作小徑短繩自動打捆機繞臂電機。
步進電機相線圈繞組反電動勢[5]為
UA=ωkmsin(Zrθ)
(1)
UB=ωkmcos(Zrθ)
(2)
式中:UA、UB分別為步進電機A相和B相的線圈繞組反電動勢;ω為轉子角速度;Zr為轉子齒數(shù);km為步進電機反電勢系數(shù);θ為轉子機械轉角。
由式(1)和式(2)計算得到相電流方程:
(3)
(4)
式中:L為A、B相線圈繞組的自感;VA和VB分別為電機A、B相線圈繞組電壓;iA和iB分別為電機A、B相線圈繞組電流;R為電機A、B相線圈繞組電阻。
步進電機A、B相線圈繞組的電磁轉矩分量方程TA、TB分別為
TA=iAkmsin(Zrθ)
(5)
TB=iBkmcos(Zrθ)
(6)
步進電機瞬態(tài)電磁轉矩由兩相轉矩求和得到,根據(jù)式(5)和式(6)計算得到得步進電機的瞬態(tài)電磁轉矩:
Te=iAkmsin(Zrθ)+iBkmcos(Zrθ)
(7)
由運動學方程得電機電磁轉矩與負載之間關系為
(8)
式中:J為電機轉子和繞臂的總轉動慣量;B為速度比例系數(shù);TL為負載轉矩。
將式(7)代入式(8)計算得運動方程為
(9)
為簡化模型,采用單相勵磁,繞臂無外部負載,在任何一時刻單相勵磁的步進電機只有一相勵磁,電機運動方程為
(10)
增量運動方程為
(11)
式中:δθ=θ0-θi為步進電機在i時間段內轉角的增量,δθ很小,對其線性化處理[6]后得
(12)
對式(12)進行拉氏變換[7],并代入初始值0得
(13)
所用繞臂電機型號為富興HSTM 57-1.8-S-76-4-2.8,電機參數(shù)如表1所示。

表1 HSTM 57-1.8-S-76-4-2.8電機參數(shù)
由式(13)得傳遞函數(shù)為
(14)
遺傳算法是Holland[8]在Mendel的遺傳學和Darwin進化論基礎上提出的并行隨機搜索優(yōu)化算法。該算法將待優(yōu)化參數(shù)編碼成群體中的個體,按照適應度函數(shù)評判每個個體的適應度并以此獲得本代種群的適應值排名,根據(jù)Darwin進化論中“適者生存”的原則進化,每次進化中按照Mendel遺傳學中“選擇、交叉、變異”的原理進行個體間的繁殖進化,經過不斷重復進化,適應值高的“優(yōu)良基因”被保留下來,適應值低的“基因”被淘汰。由于繞臂電機運轉具有大慣量、低轉速、頻繁啟停的特點,繞臂電機失步風險增大,步進電機常用的閉環(huán)控制方法難以保證控制精度,為此采用遺傳算法對PID調參以控制繞臂步進電機。
交叉率的選擇對遺傳算法的求解結果影響很大[9]。經典遺傳算法設計之初未考慮到算法有收斂速度慢、局部最優(yōu)解和求解精度低的問題,未對遺傳算法交叉率深入研究,交叉率為0.80~0.95的常數(shù)。
經典自適應遺傳算法以個體適應值為個體分配交叉率[7],其交叉率函數(shù)為
(15)
式中:Pc為個體交叉率;fmax為種群最大適應值;fp為種群平均適應值;f為兩交叉?zhèn)€體較大適應值。
經典遺傳算法使用的交叉率是恒定值,對不同個體采用統(tǒng)一的遺傳策略,導致進化過程中出現(xiàn)的優(yōu)秀基因在后續(xù)的進化中可能出現(xiàn)退化現(xiàn)象,且求解精度低、收斂速度慢。自適應遺傳算法解決了經典遺傳算法優(yōu)良基因退化的問題。采用自適應交叉率根據(jù)個體適應度排名進行自適應遺傳操作時:適應度高的優(yōu)良基因個體交叉率較低,有較大概率不經交叉直接遺傳到下一代;適應度低的個體交叉率較高,劣等基因有較大概率發(fā)生變化后遺傳到下一代。但經典自適應遺傳算法進化前期,群體中的優(yōu)良個體通常為局部最優(yōu)解,這使局部最優(yōu)基因大量遺傳到后代,增加了尋找全局最優(yōu)解的難度,且容易陷入局部最優(yōu)。

(16)
式中:KP為比例系數(shù);KI為積分系數(shù);KD為微分系數(shù)。
圖3為遺傳算法PID參數(shù)整定流程圖。

圖3 遺傳算法PID參數(shù)整定流程圖Fig.3 Genetic algorithm PID parameter tuning flow chart
由圖3可知,遺傳算法PID參數(shù)整定分為5步:
1)確定KP、KI、KD參數(shù)范圍。算法在此范圍內尋優(yōu),參數(shù)范圍的選取決定了尋優(yōu)速度和尋優(yōu)精度。
2)選取初始種群。初始種群在參數(shù)范圍隨機產生,每個個體都是一個潛在解,個體基因以浮點數(shù)形式編碼,編碼長度決定了尋優(yōu)對象個數(shù)[11]。本文對KP、KI、KD等參數(shù)尋優(yōu),故編碼長度為3。圖4為PID參數(shù)編碼示意圖,圖中3個浮點數(shù)分別代表參數(shù)KP、KI、KD。

圖4 PID參數(shù)編碼示意圖Fig.4 PID parameter coding diagram
3)確定適配函數(shù)并計算適應值。判斷是否到達規(guī)定進化代數(shù),若沒到達進化代數(shù)則進行遺傳操作,若到達進化代數(shù)則解碼輸出。
4)遺傳操作。根據(jù)個體適應值用適應度比例法選擇被復制到交叉?zhèn)}的個體,高適應值個體在交叉?zhèn)}中有多個副本,低適應值個體在交叉?zhèn)}中沒有副本或者副本較少,根據(jù)交叉率和變異率對交叉?zhèn)}中個體基因進行交叉變異。
5)解碼輸出結果。由于本文使用浮點形式直接對KP、KI、KD編碼,解碼過程直接使用染色體即可。
遺傳操作主要包括復制、交叉和變異,個體裝入交叉?zhèn)}操作為復制操作,復制操作根據(jù)個體適應值用適應度比例法決定個體被復制到交叉?zhèn)}個數(shù)。交叉操作是對復制操作選入交叉?zhèn)}的個體進行的相鄰兩個體間的基因段交換,本文選擇單點交叉,交叉點隨機選擇。交叉后的種群根據(jù)個體變異率隨機對基因上某一點變異,經過變異后得出的種群就是下一代種群。

(17)
式中:J為目標函數(shù)值;e(t)為誤差;u(t)為輸入量;tu為上升時間。
目標函數(shù)值反映了個體適應值水平,目標函數(shù)值越小,個體適應值越大,即個體越優(yōu)秀。
經典遺傳算法中交叉率和變異率是恒定不變的常數(shù),不可避免地把優(yōu)良基因按照與劣等基因一樣的概率交叉和變異,這會導致優(yōu)良基因退化。為避免盲目交叉和變異,減小優(yōu)良基因在交叉和變異中變?yōu)榱拥然蚨鴮е峦嘶母怕?在遺傳進化中要讓適應值高的優(yōu)良基因有較高概率直接遺傳到下一代,對適應值低的劣等個體有較高概率發(fā)生基因變化后再遺傳到下一代,由此可總結出對遺傳算法的3個優(yōu)化原則:
1)高適應值排名個體被復制到交叉?zhèn)}的個數(shù)較多,低適應值個體被復制到交叉?zhèn)}的個數(shù)較少或不被復制。
2)高適應值排名個體產生下一代時基因發(fā)生變化的概率降低,優(yōu)良基因的退化率降低,劣等個體產生后代時基因發(fā)生變化的概率高,這讓劣等基因有足夠機會變化。基因發(fā)生變化的方式是交叉和變異,因此需要根據(jù)個體的適應值給不同個體分配不同的交叉率和變異率。
3)在進化代數(shù)較低的情況下,種群中高適應值個體有較大可能是局部最優(yōu)解,這種情況下適應值排名較高的個體也應該具有較高的交叉率和變異率以沖出局部最優(yōu),但隨著進化代數(shù)增加,種群平均適應度不斷增大,種群中較高適應值的個體越來越接近全局最優(yōu)解,此時降低高適應值排名的交叉率和變異率以保留真正的優(yōu)秀基因。
黃金分割比是普遍存在于自然界的數(shù)學現(xiàn)象[12],本文用黃金分割比劃分種群中的優(yōu)良個體和劣等個體,以種群中適應值排名38.2%為臨界點,適應值排名在臨界點之前的為優(yōu)良個體,適應值排名在臨界點之后的為劣等個體,無論進化代數(shù)是多少,種群中后61.8%個體總為劣等個體。個體自適應交叉率和自適應變異率用以0.618為底的指數(shù)函數(shù)規(guī)律表征,劣等個體的個體交叉率和變異率用較大的常數(shù)加快劣等基因的變化,優(yōu)良基因根據(jù)進化代數(shù)和適應值排名計算交叉率和變異率。應用黃金分割比構造改進遺傳算法自適應交叉率和自適應變異率的函數(shù),分別如式(18)和(19)所示。
(18)
(19)
式中:f為個體適應值;fb=fmin+0.618×(fmax-fmin)為黃金分割點適應值;fmax為種群最大適應值;fmin為種群最小適應值;G為當前種群進化代數(shù)。
圖5為改進自適應遺傳算法交叉率示意圖。由圖5可知:從個體適應值排名來看,適應值排名低于黃金分割點(f≤fb)的劣等個體擁有較高交叉率促進個體進化,增加劣等基因進化為優(yōu)良基因的概率,個體適應值排名高于黃金分割點(f>fb)的優(yōu)良個體隨適應值排名的升高逐步降低交叉率;從進化代數(shù)來看,進化代數(shù)很低時,群體中高適應值排名個體很可能是局部最優(yōu)解,因此低進化代數(shù)群體中高適應值排名個體有較高交叉率,當進化代數(shù)較高時,種群的整體適應值水平升高,此時種群中高適應值排名個體離全局最優(yōu)解越來越近,高適應值排名個體的交叉率逐漸降低以抑制退化。上文中的“個體”在本研究中為PID參數(shù)組(KP、KI、KD),“高適應值排名個體”指使步進電機具有更好控制效果的PID參數(shù)組。

圖5 改進自適應遺傳算法交叉率曲線Fig.5 Improved adaptive genetic algorithm crossover rate curve
本算法采用種群數(shù)量為30個,進化代數(shù)為600代,采用浮點數(shù)編碼,目標速度為150 r/min,根據(jù)常規(guī)Z-N整定法[13]確定PID控制器的KP為15~30,KI為15~30,KD為0~1,圖6為改進自適應遺傳PID算法和經典遺傳算法目標函數(shù)值曲線,BestJ為每代種群中最優(yōu)個體目標函數(shù)值,BestJ越低,適應值越高,控制效果越好。

圖6 目標函數(shù)值曲線Fig.6 Objective function value curve
由圖6可知:改進自適應遺傳PID在進化300代時便收斂到全局最優(yōu)解,經典遺傳PID在收斂到600代時仍未收斂到最優(yōu)解。改進自適應遺傳PID相比經典遺傳PID算法,收斂速度加快了50%,且求解精度更高。
圖7為用改進自適應遺傳PID算法和經典遺傳PID算法以150 r/min為目標值的仿真結果。由圖7可知,改進自適應遺傳PID在0.15 s附近到達目標值,經典遺傳PID在0.175 s附近到達目標值,且改進自適應遺傳PID到達目標值后超調量更小。

圖7 算法仿真結果Fig.7 Algorithm simulation results
繞臂電機驅動繞臂進行橫向打捆,牽引繩纜進入繩捆,在橫向打捆時對繞臂電機分別使用改進自適應遺傳PID算法和經典遺傳PID算法進行控制,并將控制器捕捉到的繞臂轉速上傳到PC端,用VOFA+軟件呈現(xiàn),可以根據(jù)軟件輸出的速度圖得出算法控制效果。
本文用STM32 F103ZET6型作為步進電機控制器,用TB6600型驅動芯片作為步進電機驅動器,以150 r/min為目標速度,對繞臂電機分別用改進自適應遺傳PID和經典遺傳PID控制。圖8為編碼器采集回傳的繞臂電機速度圖。由于TB6600驅動芯片的驅動精度、抑制振動和減少發(fā)熱等方面的性能較差,芯片在運行階段有微小的速度波動。

圖8 速度曲線圖Fig.8 Speed curve verification chart
改進算法和經典算法的控制效果對比如表2所示。由表2可知,改進自適應遺傳PID算法控制下的打捆機繞臂速度相比經典遺傳PID穩(wěn)態(tài)誤差降低了30%,響應時間提高了9%,在啟動階段速度波動更小,對價格低廉、控制簡單的步進電機的性能有了一定提升。

表2 控制效果比較Table 2 Comparison of control effect
1)在遺傳算法中引入進化代數(shù)和適應值排名對遺傳操作的指導作用,避免了經典遺傳算法進化中優(yōu)良基因的退化問題和經典自適應遺傳算法容易陷入局部最優(yōu)的問題,使用改進自適應遺傳算法PID降低了打捆機繞臂步進電機的穩(wěn)態(tài)誤差、提高了響應時間、減小了振動,使打捆精度、打捆效率和繩捆均勻度明顯提高。
2)基于MATLAB軟件的仿真結果表明:改進自適應遺傳PID相比經典遺傳PID有更快的收斂速度、更高的求解精度。
3)試驗驗證結果表明:改進自適應遺傳PID相比經典遺傳PID降低了穩(wěn)態(tài)誤差、加快了響應速度、削弱了電機運行的振動和噪聲。