方 強(qiáng),宋福民
(深圳市大族數(shù)控科技有限公司,廣東深圳 518057)
高速高精度加工是目前最重要的研究領(lǐng)域之一,其目的在于提高機(jī)械加工生產(chǎn)率并改善加工質(zhì)量。然而,實(shí)現(xiàn)高速高精度加工也面臨著許多挑戰(zhàn)。最主要的問(wèn)題在于存在擾動(dòng)、非線(xiàn)性、模型和參數(shù)不確定性的情況下如何設(shè)計(jì)高性能的伺服控制器。當(dāng)使用有限帶寬的伺服控制器時(shí),伺服延遲也成為引起位置誤差的主要原因,并會(huì)隨著高速加工時(shí)進(jìn)給速度的提高而更加嚴(yán)重。
智能控制技術(shù)(如模糊控制、神經(jīng)網(wǎng)絡(luò)控制、遺傳算法控制等)的出現(xiàn),為彌補(bǔ)PID控制策略的不足提供了良好的解決途徑。其中PID控制與智能控制方式的結(jié)合,產(chǎn)生了許多復(fù)合式的PID控制策略。例如,模糊PID控制,專(zhuān)家PID控制,模糊+PID復(fù)合控制、神經(jīng)元網(wǎng)絡(luò)PID控制等。復(fù)合式PID控制策略可以揚(yáng)長(zhǎng)避短發(fā)揮各自?xún)?yōu)勢(shì),是智能控制的一個(gè)重要研究方向。
本文就是利用小腦模型具有不依賴(lài)于被控對(duì)象的精確數(shù)學(xué)模型、極強(qiáng)的非線(xiàn)性擬合能力、對(duì)運(yùn)行工況的適應(yīng)能力強(qiáng)的特點(diǎn),將其與PID控制相結(jié)合形成PID+CMAC控制策略,并借助Turbo PMAC的“開(kāi)放伺服”功能,在Turbo PMAC運(yùn)動(dòng)控制器上研究了PID+CMAC控制策略的實(shí)現(xiàn)方法。
人工神經(jīng)網(wǎng)絡(luò)是由許多具有并行運(yùn)算、功能簡(jiǎn)單的信息處理單元(神經(jīng)元)相互連接組成的網(wǎng)絡(luò)。雖然單個(gè)神經(jīng)元的結(jié)構(gòu)簡(jiǎn)單,功能有限,但其構(gòu)成的網(wǎng)絡(luò)系統(tǒng)所能實(shí)現(xiàn)的功能卻是極其豐富和復(fù)雜。神經(jīng)網(wǎng)絡(luò)的智能處理能力及控制系統(tǒng)所面臨的問(wèn)題是人工神經(jīng)網(wǎng)絡(luò)控制的發(fā)展動(dòng)力。人工神經(jīng)網(wǎng)絡(luò)處理非線(xiàn)性問(wèn)題是這個(gè)領(lǐng)域最有意義的事情,它主要處理傳統(tǒng)技術(shù)不能解決的復(fù)雜非線(xiàn)性、不確定、不確知系統(tǒng)的控制問(wèn)題。主要有如下優(yōu)勢(shì):
(1)可以處理難以用模型或規(guī)則描述的過(guò)程或系統(tǒng);
(2)采用并行分布式信息處理方式,具有很強(qiáng)的容錯(cuò)性;
(3)神經(jīng)網(wǎng)絡(luò)的本質(zhì)是非線(xiàn)性系統(tǒng);
(4)神經(jīng)網(wǎng)絡(luò)系統(tǒng)具有自學(xué)習(xí)功能,能不斷提高對(duì)非線(xiàn)性系統(tǒng)的逼近能力;
(5)神經(jīng)網(wǎng)絡(luò)具有很強(qiáng)的信息綜合能力,非常適合多變量系統(tǒng)。
根據(jù)神經(jīng)網(wǎng)絡(luò)在控制器中的作用不同,神經(jīng)網(wǎng)絡(luò)在控制系統(tǒng)設(shè)計(jì)中的應(yīng)用一般分為兩類(lèi):一類(lèi)是神經(jīng)控制,它是以神經(jīng)網(wǎng)絡(luò)為基礎(chǔ)而形成的獨(dú)立智能控制系統(tǒng);另一類(lèi)稱(chēng)為混合神經(jīng)網(wǎng)絡(luò)控制,它是利用神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)和優(yōu)化能力來(lái)改善其它控制方法的控制。
人工神經(jīng)網(wǎng)絡(luò)經(jīng)過(guò)多年的發(fā)展出現(xiàn)了多種形式的網(wǎng)絡(luò),常用的如BP網(wǎng)絡(luò)(誤差反向傳播網(wǎng)絡(luò))、CMAC網(wǎng)絡(luò)(小腦模型)、ELMAN 網(wǎng)絡(luò)、RBF網(wǎng)絡(luò)等。
CMAC是 J.S.Albus在 1975年提出的一種模擬小腦功能的神經(jīng)網(wǎng)絡(luò)模型。它是一種聯(lián)想網(wǎng)絡(luò),對(duì)每一輸入只有少部分神經(jīng)元與之有關(guān),它的聯(lián)想具有局部泛化能力?;舅枷胧牵簩W(xué)習(xí)的數(shù)據(jù)(知識(shí))存儲(chǔ)在交疊的存儲(chǔ)單元(記憶空間)中,其輸出為相應(yīng)激活單元數(shù)據(jù)的累加和。CMAC算法實(shí)現(xiàn)過(guò)程包含兩個(gè)階段:結(jié)果輸出階段和權(quán)值學(xué)習(xí)階段。在結(jié)果輸出階段,CMAC將所有被輸入狀態(tài)激活的存儲(chǔ)單元的權(quán)值(存儲(chǔ)數(shù)據(jù))相加,即:
其中N為存儲(chǔ)單元數(shù)目;ys為狀態(tài)s(s=1,2,……n)的實(shí)際輸出值,n為總狀態(tài)數(shù);Wj為第j個(gè)存單元的權(quán)值;Cs為第j個(gè)存儲(chǔ)單元是否被狀態(tài)s激活的指示,當(dāng)某個(gè)狀態(tài)僅有m個(gè)存儲(chǔ)單元被激活時(shí),其Cs為1,而其他存儲(chǔ)單元的Cs均為 0。
CMAC的學(xué)習(xí)算法采用簡(jiǎn)單的δ算法,收斂速度極快,且不存在局部極小問(wèn)題,這使它非常適合在線(xiàn)應(yīng)用。
CMAC網(wǎng)絡(luò)權(quán)向量的δ學(xué)習(xí)算法是:W(k+1)=W(k)+η(u-ut)/c,其中η為學(xué)習(xí)率,c為泛化參數(shù),u為PID+CMAC復(fù)合控制器的輸出,ut為CMAC控制器的輸出,系統(tǒng)以u(píng)-ut為誤差信號(hào)進(jìn)行訓(xùn)練,因而是“目標(biāo)導(dǎo)向”的。
經(jīng)過(guò)一段時(shí)間的學(xué)習(xí)后,CMAC網(wǎng)絡(luò)的輸出ut將逐漸接近u,而反饋控制器PID的輸出將逐漸減小,充分訓(xùn)練后,CMAC網(wǎng)絡(luò)將成為被控制對(duì)象的逆模型。和BP網(wǎng)絡(luò)不同的是,CMAC網(wǎng)絡(luò)是局部的逆動(dòng)態(tài)模型,而非全局的,但由于其學(xué)習(xí)速度很快,所以可以在線(xiàn)適應(yīng)被控對(duì)象的參數(shù)變化。
Turbo PMAC是美國(guó)Delta Tau公司發(fā)布的PMAC升級(jí)版本,保持了PMAC系列控制器的優(yōu)良性,并具有更高的運(yùn)算速度和控制能力。Turbo PMAC面向用戶(hù)進(jìn)一步開(kāi)放了底層特性,其特有的“開(kāi)放伺服”功能為用戶(hù)定義自己的伺服算法提供了條件。
Turbo PMAC的“開(kāi)放伺服”功能允許用戶(hù)使用高級(jí)語(yǔ)言來(lái)編寫(xiě)自定義的算法,并能運(yùn)行在高優(yōu)先級(jí)的伺服中斷上,不僅可用于電機(jī)伺服控制,也可用于其他高優(yōu)先級(jí)任務(wù),如高速I(mǎi)/O處理,反饋信號(hào)的預(yù)處理和伺服指令的后處理。而在以前是通過(guò)匯編語(yǔ)言實(shí)現(xiàn)的,需要掌握Motorola的DSP56300系列匯編指令,編程困難,可靠性低。開(kāi)放伺服算法程序采用高級(jí)語(yǔ)言編寫(xiě),規(guī)則類(lèi)似于PLC程序或運(yùn)動(dòng)程序,但在運(yùn)行機(jī)制上不同于PLC程序。如果PLC程序運(yùn)行在實(shí)時(shí)中斷上,有可能被運(yùn)動(dòng)程序搶先,若PLC作為后臺(tái)程序運(yùn)行,則無(wú)確定的運(yùn)行周期。開(kāi)放伺服算法程序運(yùn)行在伺服中斷上,能確保在每個(gè)周期運(yùn)行。此外,開(kāi)放伺服算法程序還可采用特定的訪(fǎng)問(wèn)機(jī)制訪(fǎng)問(wèn)伺服功能寄存器。
Turbo PMAC只能運(yùn)行一個(gè)開(kāi)放伺服算法,可以用于多個(gè)電機(jī)控制。如果需要在各個(gè)電機(jī)上運(yùn)行不同的伺服算法,可以在算法程序中通過(guò)明確的邏輯控制,使不同電機(jī)具有不同的伺服算法和處理方法。
自定義伺服算法的運(yùn)行不會(huì)對(duì)編碼器轉(zhuǎn)換表處理,軌跡生成,位置跟隨,時(shí)基控制,跟隨誤差極限檢查等內(nèi)建的固件程序構(gòu)成影響。
自定義伺服算法程序可使用PEW IN32 PRO程序來(lái)編輯,也可使用其它任何無(wú)格式文本編輯器進(jìn)行編輯。編輯好的程序必須使用PEW IN32 PRO程序進(jìn)行編譯,并將編譯后的機(jī)器碼下載到Turbo PMAC的用戶(hù)程序RAM中。使用SAVE指令可將程序復(fù)制到不揮發(fā)的閃存中,在上電或復(fù)位時(shí),該算法程序會(huì)自動(dòng)從Turbo PMAC中載入,使伺服算法成為T(mén)urbo PMAC的固件程序。
Turbo PMAC為嵌入用戶(hù)自定義伺服算法提供了接口,然而數(shù)控機(jī)床的位置控制是一種高速高精的實(shí)時(shí)控制,位置環(huán)的控制周期一般不太長(zhǎng),大約都在10ms以?xún)?nèi)。因此在如此短的時(shí)間內(nèi)伺服算法不可能完成復(fù)雜的神經(jīng)網(wǎng)絡(luò)控制和在線(xiàn)學(xué)習(xí),常用的方法是從伺服運(yùn)動(dòng)系統(tǒng)上采集一組樣本數(shù)據(jù)對(duì)神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練得到權(quán)矩陣參數(shù),神經(jīng)網(wǎng)絡(luò)控制時(shí)通過(guò)查表權(quán)矩陣參數(shù)進(jìn)行實(shí)時(shí)控制。
本文所研究的CMAC小腦模型控制器是局部神經(jīng)網(wǎng)絡(luò),而非全局的,由于其學(xué)習(xí)速度很快,所以很適合實(shí)時(shí)伺服控制過(guò)程。
在PID+CMAC控制策略中,CMAC控制器占據(jù)前饋環(huán)節(jié),用于改善系統(tǒng)的跟蹤性能,不影響系統(tǒng)的穩(wěn)定性和抗干擾能力;前饋環(huán)節(jié)旁路了系統(tǒng)大部分的輸入信號(hào),減小了系統(tǒng)相位滯后,極大地提高了系統(tǒng)響應(yīng)速度。所有型號(hào)的PMAC控制器缺省的伺服算法為PID+前饋控制算法,其中缺省的前饋控制算法包括速度前饋、加速度前饋算法。為了尊重用戶(hù)的使用習(xí)慣將CMAC控制器與缺省的前饋控制器并聯(lián),作為前饋算法的有益補(bǔ)充??刂瓶驁D如圖1所示。
圖1 基于Turbo PMAC的PID+CMAC算法框圖
CMAC算法的基本實(shí)現(xiàn)過(guò)程包括網(wǎng)絡(luò)權(quán)參數(shù)初始化、計(jì)算CMAC控制輸出un、將un加入到伺服控制過(guò)程中、在線(xiàn)更新網(wǎng)絡(luò)權(quán)參數(shù)(在線(xiàn)學(xué)習(xí))。
在該算法中Ixx30、Ixx31和Ixx33為基本PID增益項(xiàng),Kvff、Kaff分別為速度前饋增益和加速度前饋增益。以下是自定義PID+CMAC伺服算法程序中有關(guān)小腦模型控制部分的源程序示例:
為了PID+CMAC控制策略對(duì)改善系統(tǒng)動(dòng)態(tài)性能的有效性,在Turbo PMAC伺服運(yùn)動(dòng)系統(tǒng)上植入上述自定義伺服算法分別對(duì)系統(tǒng)的正弦響應(yīng)和定位運(yùn)動(dòng)進(jìn)行了測(cè)試。
測(cè)試步驟如下:
(1)將自定義伺服控制算法程序下載到Turbo PMAC控制器中;
(2)激活自定義伺服算法(設(shè)置Ixx59=1),關(guān)閉CMAC控制功能Qx00=0;
(3)使用PMAC Tuning軟件整定控制器參數(shù)(Ixx30、Ixx31、Ixx32、Ixx35);
(4)打開(kāi)CMAC控制功能Qx00=1;
(5)驅(qū)動(dòng)工作臺(tái)運(yùn)動(dòng),同時(shí)測(cè)量運(yùn)動(dòng)數(shù)據(jù)、繪制運(yùn)動(dòng)曲線(xiàn);
(6)根據(jù)實(shí)際控制效果調(diào)節(jié)CMAC控制器網(wǎng)絡(luò)參數(shù)學(xué)習(xí)率Qx01和動(dòng)量因子Qx02。測(cè)試效果如圖2~圖4所示。
說(shuō)明:圖中橫坐標(biāo)為時(shí)間參數(shù),縱坐標(biāo)為跟蹤誤差參數(shù)。
圖2 各種控制策略下系統(tǒng)正弦響應(yīng)誤差曲線(xiàn)
圖3 各種控制策略下系統(tǒng)定位運(yùn)動(dòng)誤差曲線(xiàn)(5mm運(yùn)動(dòng)位移)
圖4 各種控制策略下系統(tǒng)定位運(yùn)動(dòng)誤差曲線(xiàn)(5cm運(yùn)動(dòng)位移)
PID+CMAC控制策略對(duì)于改善系統(tǒng)的定位性能和跟蹤性能具有良好的效果,然而如何在實(shí)際伺服運(yùn)動(dòng)系統(tǒng)上實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)控制策略一直是工程人員研究的難點(diǎn)。本文借助Turbo PMAC控制器的“開(kāi)放伺服”功能開(kāi)發(fā)出了自定義PID+CMAC伺服算法,并通過(guò)試驗(yàn)驗(yàn)證了該算法的有效性。對(duì)PID+CMAC伺服算法的設(shè)計(jì)與應(yīng)用作如下小結(jié):
1) 利用Turbo PMAC的硬件資源嵌入自定義PID+CMAC伺服算法,對(duì)神經(jīng)網(wǎng)絡(luò)控制策略在伺服運(yùn)動(dòng)系統(tǒng)上的應(yīng)用進(jìn)行了創(chuàng)新研究;
2) 開(kāi)發(fā)出了小腦模型(CMAC)控制程序,實(shí)現(xiàn)了在線(xiàn)學(xué)習(xí)功能;
3) 網(wǎng)絡(luò)權(quán)參數(shù)學(xué)習(xí)率和動(dòng)量因子直接影響到伺服運(yùn)動(dòng)系統(tǒng)的動(dòng)態(tài)跟蹤性能,需要根據(jù)實(shí)際控制效果反復(fù)測(cè)試與調(diào)整;
4) 網(wǎng)絡(luò)權(quán)參數(shù)學(xué)習(xí)率決定了誤差信號(hào)u-un-uff的收斂速度,學(xué)習(xí)率越大學(xué)習(xí)速度越快,然而過(guò)大會(huì)導(dǎo)致起始段波動(dòng)增大;
5) 由于不同的輸入有可能激勵(lì)相同的單元,因此小腦模型(CMAC)存在學(xué)了新的忘了舊的之遺忘現(xiàn)象。
[1]朱大奇,張偉.基于平衡學(xué)習(xí)的CMAC神經(jīng)網(wǎng)路非線(xiàn)性辨識(shí)算法[J].控制與決策,2004,19(12):1425.
[2]呂英俊,李敏花,柏猛.一種交流伺服系統(tǒng)中的神經(jīng)元自適應(yīng)控制器[J].煤礦機(jī)械,2005(11):125-127.
[3]蔣銳權(quán),吳祖育,蔡建國(guó).數(shù)控機(jī)床神經(jīng)元自適應(yīng)位置控制算法[J].上海交通大學(xué)學(xué)報(bào),2001,35(7):1088-1092.
[4]李寶仁,江春華.基于神經(jīng)網(wǎng)絡(luò)PID的交流伺服系統(tǒng)位置控制[J].機(jī)床與液壓2005(1):136-137.