楊貽俊,侯 明
(北京信息科技大學 自動化學院,北京100192)
圓筒式直線電機進行高精度直線運動時,由于導軌等因素的影響,在運動的過程中,會受到非線性摩擦力的干擾,這種干擾具有局部性、高頻、較大幅值,對系統(tǒng)的局部性能有著較為嚴重的影響,因其位置產(chǎn)生的隨機性,使得整個行程范圍的跟蹤精度都降低。對于這種現(xiàn)象,采用相應的摩擦模型,通過參數(shù)辨識的方法對摩擦模型的相關參數(shù)進行辨識,對系統(tǒng)中的非線性摩擦力進行補償,減小系統(tǒng)中的非線性摩擦力對系統(tǒng)做高精度運動時所產(chǎn)生的影響,改善局部跟蹤精度。
當前主要的摩擦模型有以下幾種,包括庫倫摩擦與粘滯摩擦模型、Stribeck模型、Dahl模型、Lugre模型等。其中,Lugre摩擦模型是典型的伺服系統(tǒng)摩擦模型,能夠精確地描述系統(tǒng)運動過程中產(chǎn)生的摩擦力特性。由于Lugre摩擦模型的參數(shù)辨識涉及到靜態(tài)參數(shù)辨識與動態(tài)參數(shù)辨識兩部分[1],是靜定性與運動性的和諧統(tǒng)一,采用改進的遺傳算法進行辨識,兼顧靜態(tài)特征和動態(tài)因素,可以有效的提高辨識的精度,防止在辨識的過程中陷入局部最優(yōu)而不是全局最優(yōu)等問題[2-3]。
本文首先對Lugre摩擦模型進行了描述與介紹,然后介紹了改進交叉算子遺傳算法的實現(xiàn)方法以及對靜態(tài)參數(shù)的辨識步驟。方法驗證流程為:先基于dSPACE硬件在回路系統(tǒng)與圓筒直線電機進行恒定速度實驗,采集相關的位置、驅動力數(shù)據(jù);根據(jù)基本物理公式計算速度、摩擦力的數(shù)據(jù)值;采用基本和改進交叉算子遺傳算法對摩擦模型進行辨識;基于辨識的摩擦模型設計前饋補償控制器,實現(xiàn)對系統(tǒng)中存在的非線性摩擦力補償。
Canudas de Wit 等學者在1995年提出了Lugre模型[4],其具體表現(xiàn)在兩個物體的接觸面在微觀下通過彈性剛毛接觸,當它們發(fā)生相互切向力產(chǎn)生相對位移時,接觸面的剛毛會發(fā)生彈性形變,在這個過程中產(chǎn)生了摩擦力,如圖1所示。
圖1 Lugre摩擦模型物體接觸面接觸圖
伺服系統(tǒng)的摩擦力可用微分方程表示為
(1)
式中,M代表負載的質(zhì)量;x代表負載質(zhì)量的位移;F代表電機的驅動力;Ff代表摩擦力。
摩擦力Ff可由下面的數(shù)學公式?jīng)Q定[5-6]:
(2)
g(v)=Fc+(Fs-Fc)e-(v/vs)2
(3)
(4)
式中,z為剛毛的平均形變程度;v為接觸面之間的相對速度;vs為Stribeck速度;Fc為庫倫摩擦力;Fs為最大靜摩擦力;σ0為剛度系數(shù)σ1為阻尼系數(shù);σ2為黏滯系數(shù);Ff為摩擦力。其中,F(xiàn)c,F(xiàn)s,vs,σ2屬于靜態(tài)參數(shù),σ0,σ1屬于動態(tài)參數(shù)。
(5)
式中,sgn函數(shù)為符號函數(shù),將式(5)與式(3)代入式(4),即為系統(tǒng)處于穩(wěn)態(tài)時的摩擦力:
Ff=(Fc+(Fs-Fc)e-(v/vs)2)sgn(v)+σ2v
(6)
(7)
式中,n為變量的維數(shù),α代表的是[0,1]之間符合均勻分布的隨機數(shù),β代表的是[-1,0]之間符合均勻分布的隨機數(shù)。
圖2 產(chǎn)生交叉方向示意圖
對于Lugre摩擦模型,根據(jù)式(6)以及上文所述,需要辨識的參數(shù)包括靜態(tài)參數(shù)Fc,F(xiàn)s,vs,σ2以及動態(tài)參數(shù)σ0,σ1。首先對于靜態(tài)參數(shù)的辨識,根據(jù)改進交叉算子遺傳算法的設計,其具體執(zhí)行的步驟包括以下幾步:①首先設置待辨識參數(shù),設定進化代數(shù),設置進化代數(shù)計數(shù)器t=0,設定待辨識參數(shù)的搜索空間;②進行隨機產(chǎn)生初始化種群P;③計算個體的適應度F(xi),i=1,2,…,M;④判斷是否達到進化代數(shù),如果達到進化代數(shù),算法此時終止,否則繼續(xù)進行;⑤進行選擇操作,產(chǎn)生新的種群P(t);⑥分別以概率p1,p2進行交叉操作與變異操作,在進行交叉操作的過程中,使用改進交叉算子進行操作的過程,保存最優(yōu)的個體;⑦此時計數(shù)器t+1→t,轉向步驟②,繼續(xù)進行,直到到達進化代數(shù)為止。
由式(1)可知,當系統(tǒng)處于穩(wěn)態(tài)的時候,即有,驅動力F與摩擦力Ff相等,此時可以基于dSPACE系統(tǒng)設計速度控制實驗[12-14],在計算機中將系統(tǒng)驅動模式設置在力模式下,在Simulink中搭建速度控制算法模塊,載入到dSPACE系統(tǒng)中進行伺服系統(tǒng)的恒速控制實驗。圖3為dSPACE控制系統(tǒng)框圖,其中包括計算機、BOB電機、驅動器、編碼器、光柵尺、電源等,控制器采用的是dSPACE1104實時系統(tǒng),驅動器采用的是metronix servo drives,電機采用的是BOB圓筒直線電機。
圖3 dSPACE控制系統(tǒng)框圖
圖4為所設計的速度控制算法Simulink模塊,將此算法模塊載入到dSPACE系統(tǒng)中,使用ControlDesk設計用戶操作界面軟件,設置在不同的速度下的定速運動。圖5為實驗系統(tǒng)實物圖,基于此實驗,可以采集在不同速度v下驅動力F的值,獲得初始數(shù)據(jù)。
圖4 速度控制算法
圖5 實驗系統(tǒng)實物圖
通過以下仿真對比實驗,驗證本文中改進交叉算子對于摩擦模型參數(shù)辨識的精度以及準確度的提升與收斂性的改進[15]。
設定種群規(guī)模M=200,最大的遺傳代數(shù)為G=30000。將要辨識的參數(shù)的搜索空間設定為Fc∈[0,50],F(xiàn)s∈[0,50],σ2∈[0,10],Vs∈[0,10],對于靜態(tài)摩擦力模型根據(jù)式(6)在算法中實現(xiàn),同時在算法中的目標函數(shù)值可以由上文實驗測得的實際摩擦力的力F與改進交叉算子遺傳算法得到的靜摩擦力FGA進行對比得到:
e=F-FGA
(8)
(9)
式(8)為辨識誤差,式(9)為所取得目標函數(shù)。由此可以選擇個體適應度函數(shù)為
(10)
在Matlab下分別進行了改進交叉算子遺傳算法與遺傳算法的仿真實驗,根據(jù)上述相關的參數(shù)設定以及適應度函數(shù)值的確定,得到最終的辨識后的Stribeck曲線以及目標函數(shù)值變化曲線對比和最終的辨識結果。
圖6為普通遺傳算法辨識的Stribeck曲線與改進交叉算子遺傳算法辨識的Stribeck曲線對比,圖7為普通遺傳算法與改進交叉算子遺傳算法的最大目標函數(shù)值變化曲線對比,可以看出,普通遺傳算法相對于改進交叉算子遺傳算法在進行Lugre摩擦模型參數(shù)辨識的時候,目標函數(shù)值在收斂的過程中會出現(xiàn)收斂速度較慢,收斂效果差且在收斂過程中曲線發(fā)生階梯狀陡峭曲線的問題,并且由最終的收斂結果可以得到,普通遺傳算法的最終最大目標函數(shù)值為Best_J=0.0127,而改進交叉算子遺傳算法的最終最大目標函數(shù)值為Best_J=0.0033,由此可見,改進交叉算子遺傳算法的參數(shù)辨識效果更好,最終辨識結果為vs≈4.4198(m·s-1),F(xiàn)c=0.4220(N),F(xiàn)s=16.3771(N),σ2≈0.0282(N·s·m-1)。
圖6 普通遺傳算法與改進交叉算子遺傳算法辨識后的Stribeck曲線對比
圖7 普通遺傳算法與改進交叉算子遺傳算法最大目標函數(shù)值變化曲線對比
由上述辨識結果得到Lugre摩擦模型的相關參數(shù)后,設計相應的補償控制實驗來對摩擦力進行補償控制,以對比實際效果??刂平Y構仍在dSPACE系統(tǒng)中實現(xiàn)。
首先設計相應的Lugre摩擦補償模型,將電機實際反饋的速度量作為模型的輸入,將模型的輸出加在驅動力上作為補償,將此Simulink模塊加載到dSPACE中,在用戶界面上給定一定的速度量,實現(xiàn)對電機運動的實時控制,觀察此時的實際控制效果。
將補償后的實際速度量與未補償?shù)膶嶋H速度量進行對比,如圖8所示,經(jīng)過對采集的數(shù)據(jù)進行整理后得到,補償后的實際速度量比未補償?shù)膶嶋H速度量有了明顯的提高,與給定的速度量相比,差距更小,實際控制效果更加的明顯。
圖8 補償前后的實際速度量對比
文中提出一種改進交叉算子的遺傳算法,并應用于對Lugre摩擦模型進行辨識的流程。通過與普通遺傳算法的辨識結果相對比,采用改進交叉算子遺傳算法的辨識收斂速度更快,搜索能力更強,辨識結果精度更高。離線實驗證明了,改進算法的有效性。改進的方法主要增加了遺傳因子的數(shù)量,通過兩個遺傳因子獲得更多的信息,優(yōu)化了搜索方向,使搜索加快,精度更高。如果將數(shù)據(jù)采集-辨識-補償控制在線完成,可以獲得性能更好的自適應補償系統(tǒng)。