閆 鋒,張延風(fēng),韋 悠,楊 靜
(西安現(xiàn)代控制技術(shù)研究所,西安 710065)
電機(jī)控制普遍采用PID控制,PID參數(shù)由人工整定,由于負(fù)載特性以及其他非線性因素影響,很難獲得滿意的控制效果。通過機(jī)器學(xué)習(xí)訓(xùn)練神經(jīng)網(wǎng)絡(luò),使神經(jīng)網(wǎng)絡(luò)模型獲得一定的自適應(yīng)能力,采用梯度下降反向傳播算法獲得電機(jī)最優(yōu)控制參數(shù),進(jìn)而克服被控對象的不確定性以及隨機(jī)擾動的影響。
電機(jī)控制系統(tǒng)基本原理如圖1所示,一般為三環(huán)控制,即電流環(huán)、速度環(huán)和位置環(huán)。電流環(huán)可提高系統(tǒng)的快速性,及時抑制力矩擾動及電流波動,使系統(tǒng)有足夠大的加速轉(zhuǎn)矩,并且保障系統(tǒng)安全運(yùn)行。速度環(huán)主要增強(qiáng)系統(tǒng)抗負(fù)載擾動的能力,抑制速度波動。位置環(huán)主要保證系統(tǒng)靜態(tài)精度和動態(tài)跟蹤的性能,直接關(guān)系到系統(tǒng)的穩(wěn)定和高性能運(yùn)行。位置環(huán)內(nèi)部輸出是速度環(huán)的設(shè)定,位置控制模式下系統(tǒng)進(jìn)行了三環(huán)運(yùn)算,此時系統(tǒng)運(yùn)算量最大,動態(tài)響應(yīng)速度最慢。
圖1 電機(jī)控制系統(tǒng)基本原理框圖
電機(jī)控制用到經(jīng)典的PID算法,基于位置控制的PID算法為[1]:
(1)
圖2 PID算法的神經(jīng)元表示
3個連接參數(shù)分別為ω1、ω2、ω3,偏移參數(shù)為b。
神經(jīng)元的輸出為:
(2)
令激活函數(shù)y2=f(x)=x,b=0,則上式神經(jīng)元輸出即為PID算法輸出。
圖2是由一個神經(jīng)元構(gòu)成的神經(jīng)網(wǎng)絡(luò),使用該神經(jīng)元可以建立復(fù)雜神經(jīng)網(wǎng)絡(luò),如圖3所示。該神經(jīng)網(wǎng)絡(luò)包括10個節(jié)點(diǎn)組成的輸入層、3個神經(jīng)元組成的中間層、1個神經(jīng)元組成的輸出層。
輸入層10個節(jié)點(diǎn)分別為Δθ0、Δθ1、…、Δθ9,其中Δθ0代表當(dāng)前時刻的位置誤差,Δθ1代表第1次前采樣時刻的位置誤差,Δθ9代表第9次前采樣時刻的位置誤差;中間層由u1、u2、u3三個神經(jīng)元組成,輸出層由u4組成,每個神經(jīng)元均與前一層全連接,激活函數(shù)均為y=f(x)=x,偏移參數(shù)b均為0。ωij表示神經(jīng)元i與前一層節(jié)點(diǎn)j連接參數(shù)。
中間神經(jīng)元u1與前一層的連接參數(shù)為ω10、ω11、…、ω19,當(dāng)ω10=1,其余的ω11~ω19均為0,神經(jīng)元u1可近似為比例神經(jīng)元,連接參數(shù)ω41便是比例參數(shù)P;中間神經(jīng)元u2與前一層的連接參數(shù)為ω20、ω21、…、ω29,當(dāng)ω20~ω29均為1,神經(jīng)元u2可近似為積分神經(jīng)元,連接參數(shù)ω42便是積分參數(shù)I;中間神經(jīng)元u3與前一層的連接參數(shù)為ω30、ω31、…、ω39,當(dāng)ω30=1,ω31=-1,ω32~ω39均為0,神經(jīng)元u3可近似為微分神經(jīng)元,連接參數(shù)ω43便是微分參數(shù)D。
圖3所示的神經(jīng)元網(wǎng)絡(luò)包括PID算法,對該神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,如果PID算法為最優(yōu),則該神經(jīng)網(wǎng)絡(luò)收斂到PID算法;如果PID算法不是最優(yōu),那么該神經(jīng)網(wǎng)絡(luò)將收斂至另一個最優(yōu)算法。圖3神經(jīng)網(wǎng)絡(luò)中間層神經(jīng)元的激活函數(shù)均為線性函數(shù),可以證明,中間層均是線性神經(jīng)元的全連接神經(jīng)網(wǎng)絡(luò),等價于去掉該中間層的全連接神經(jīng)網(wǎng)絡(luò)。于是圖3的神經(jīng)網(wǎng)絡(luò)等價于圖4所示的神經(jīng)元網(wǎng)絡(luò)。
圖3 PID算法的復(fù)雜神經(jīng)網(wǎng)絡(luò)
圖4 無中間層的全連接神經(jīng)網(wǎng)絡(luò)
圖4所示的神經(jīng)網(wǎng)絡(luò)與圖3所示的神經(jīng)網(wǎng)絡(luò)等價,神經(jīng)元u1的激活函數(shù)為y=f(x)=x,b仍為0,神經(jīng)元u1與輸入層的連接參數(shù)為ω0、ω1、…、ω9。
神經(jīng)元u1的輸出為:
y=ω0×Δθ0+ω1×Δθ1+ω2×Δθ2+
ω3×Δθ3+…+ω9×Δθ9
(3)
該神經(jīng)網(wǎng)絡(luò)根據(jù)最近10次的位置誤差輸出信號控制電機(jī)運(yùn)動。
以已建立的基于神經(jīng)網(wǎng)絡(luò)的電機(jī)控制系統(tǒng)為對象,為得到該網(wǎng)絡(luò)的連接參數(shù),使該神經(jīng)網(wǎng)絡(luò)收斂到最優(yōu),可通過機(jī)器學(xué)習(xí)對神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練[2-6]。
機(jī)器學(xué)習(xí)主要分為3個步驟:1)建模:尋找一系列函數(shù)來實現(xiàn)預(yù)期的功能,這里采用的是圖4所示的神經(jīng)網(wǎng)絡(luò)。2)評估:通過建立一個損失函數(shù),找出合理的評價標(biāo)準(zhǔn)評估函數(shù)的好壞。3)優(yōu)化:快速找到性能最佳的函數(shù),文中采用梯度下降的反向傳播算法尋找最佳函數(shù)。
通過機(jī)器學(xué)習(xí)得到最佳參數(shù),需要大量數(shù)據(jù),在電機(jī)控制領(lǐng)域,可以通過電機(jī)驅(qū)動傳動機(jī)構(gòu)產(chǎn)生有規(guī)律的動作,采集位置傳感器的數(shù)值,得到所需的數(shù)據(jù)。
伺服控制系統(tǒng)框圖如圖5所示,θ為位置控制指令值,θ′為位置傳感器的返回值,Δθ=θ′-θ。設(shè)控制指令值θ為正弦波,周期為T,幅值為A,假設(shè)每一秒100組數(shù)據(jù),每一秒鐘可以得到100組的Δθ,θ′,θ。
圖5 伺服控制系統(tǒng)框圖
第一組輸入數(shù)據(jù)為:Δθ0、0、0、…、0,第二組輸入數(shù)據(jù)為:Δθ1、Δθ0、0、…、0,第三組輸入數(shù)據(jù)為:Δθ2、Δθ1、Δθ0、…、0,第10組輸入數(shù)據(jù)為:Δθ9、Δθ8、Δθ7、…、Δθ0,第100組輸入數(shù)據(jù)為:Δθ99、Δθ98、Δθ97、…、Δθ90。
第一組對應(yīng)的誤差為:δ0=Δθ0,第二組對應(yīng)的誤差為:δ1=Δθ0+Δθ1,第三組對應(yīng)的誤差為:δ2=Δθ0+Δθ1+Δθ2,第10組對應(yīng)的誤差為:δ9=Δθ0+Δθ1+Δθ2+…+Δθ9,第100組對應(yīng)的誤差為:δ99=Δθ90+Δθ91+Δθ92+…+Δθ99。
把批處理BATCH量設(shè)為100,那么每100組數(shù)據(jù)就可以更新一次參數(shù),即每一秒鐘更新迭代一次。把上述輸入數(shù)據(jù)及對應(yīng)的誤差用矩陣來表示:
輸入矩陣為10×100的矩陣:
(4)
誤差矩陣為1×100的矩陣:[δ0δ1δ2…δ9…δ99]T
(5)
評價函數(shù)采用均方根誤差函數(shù):
(6)
對于該控制系統(tǒng),最優(yōu)參數(shù)即是使E最小的參數(shù),可以采用經(jīng)典的梯度下降反向傳播算法不斷迭代參數(shù),直到找到最優(yōu)參數(shù)(ω0、ω1、…、ω9)。
通過不斷改變正弦波的周期T、幅值A(chǔ),就可以讓模型適合于各種動態(tài)過程,各種慢速、快速運(yùn)動狀態(tài)。
對某直流伺服控制系統(tǒng)進(jìn)行建模,系統(tǒng)構(gòu)成如圖4所示,使用Simulink對模型進(jìn)行離散化,并使用以上算法進(jìn)行仿真試驗[7]。輸入幅值為5°階躍信號,獲得伺服系統(tǒng)的階躍特性曲線分別如圖6和圖7所示,可以看出,神經(jīng)網(wǎng)絡(luò)PID能夠有效抑制超調(diào),縮短調(diào)整時間,讓系統(tǒng)更快到達(dá)穩(wěn)態(tài)。
圖6 傳統(tǒng)PID的階躍響應(yīng)曲線
圖7 神經(jīng)網(wǎng)絡(luò)PID的階躍響應(yīng)曲線
再輸入頻率60 rad/s,幅值為5°的正弦信號,獲得伺服系統(tǒng)的響應(yīng)曲線(見圖8),可以看出,使用神經(jīng)網(wǎng)絡(luò)PID能夠使系統(tǒng)獲得更高的相頻寬,提高了系統(tǒng)的響應(yīng)速度。
圖8 系統(tǒng)在正弦輸入信號下的響應(yīng)曲線
為了驗證電機(jī)神經(jīng)網(wǎng)絡(luò)控制算法的效果,依托實驗室已有項目搭建了基于TMS320F28335DSP的電機(jī)控制平臺,其結(jié)構(gòu)組成示意圖如圖9所示,分別使用傳統(tǒng)PID控制策略和基于神經(jīng)網(wǎng)絡(luò)PID控制策略進(jìn)行了階躍響應(yīng)實驗。由上位機(jī)發(fā)送位置指令給該控制平臺,控制平臺同時接收位置傳感器發(fā)送的當(dāng)前位置信息,送入DSP控制器組裝件,經(jīng)過算法運(yùn)算處理后,信號送到速度環(huán),驅(qū)動電機(jī)運(yùn)動。
通過測試可以看出,采用傳統(tǒng)PID控制下的對5°角偏差階躍輸入信號,達(dá)到穩(wěn)態(tài)值95%范圍內(nèi),調(diào)節(jié)時間小于50 ms,超調(diào)量等于5%,輸出超調(diào)較大,調(diào)整時間較長。神經(jīng)網(wǎng)絡(luò)PID控制下的對5°角偏差階躍輸入信號,達(dá)到穩(wěn)態(tài)值95%范圍內(nèi),調(diào)節(jié)時間小于35 ms,超調(diào)量為零,說明基于神經(jīng)網(wǎng)絡(luò)PID的電機(jī)控制策略可以明顯提高伺服系統(tǒng)的動態(tài)特性和靜態(tài)特性。
圖9 電機(jī)控制平臺結(jié)構(gòu)組成示意圖
在傳統(tǒng)PID算法的基礎(chǔ)上,提出了一種電機(jī)神經(jīng)網(wǎng)絡(luò)控制算法,該算法通過機(jī)器學(xué)習(xí)訓(xùn)練神經(jīng)網(wǎng)絡(luò),使神經(jīng)網(wǎng)絡(luò)模型獲得一定的自適應(yīng)能力,采用梯度下降反向傳播算法獲得電機(jī)最優(yōu)控制參數(shù)。仿真和實驗結(jié)果表明:神經(jīng)網(wǎng)絡(luò)PID控制策略能夠有效抑制超調(diào),縮短調(diào)整時間,提高系統(tǒng)響應(yīng)速度,能克服被控對象的不確定性以及隨機(jī)擾動的影響,控制效果得到明顯提升。