閆 鋒,張延風,韋 悠,楊 靜
(西安現代控制技術研究所,西安 710065)
電機控制普遍采用PID控制,PID參數由人工整定,由于負載特性以及其他非線性因素影響,很難獲得滿意的控制效果。通過機器學習訓練神經網絡,使神經網絡模型獲得一定的自適應能力,采用梯度下降反向傳播算法獲得電機最優控制參數,進而克服被控對象的不確定性以及隨機擾動的影響。
電機控制系統基本原理如圖1所示,一般為三環控制,即電流環、速度環和位置環。電流環可提高系統的快速性,及時抑制力矩擾動及電流波動,使系統有足夠大的加速轉矩,并且保障系統安全運行。速度環主要增強系統抗負載擾動的能力,抑制速度波動。位置環主要保證系統靜態精度和動態跟蹤的性能,直接關系到系統的穩定和高性能運行。位置環內部輸出是速度環的設定,位置控制模式下系統進行了三環運算,此時系統運算量最大,動態響應速度最慢。

圖1 電機控制系統基本原理框圖
電機控制用到經典的PID算法,基于位置控制的PID算法為[1]:
(1)


圖2 PID算法的神經元表示
3個連接參數分別為ω1、ω2、ω3,偏移參數為b。
神經元的輸出為:
(2)
令激活函數y2=f(x)=x,b=0,則上式神經元輸出即為PID算法輸出。
圖2是由一個神經元構成的神經網絡,使用該神經元可以建立復雜神經網絡,如圖3所示。該神經網絡包括10個節點組成的輸入層、3個神經元組成的中間層、1個神經元組成的輸出層。
輸入層10個節點分別為Δθ0、Δθ1、…、Δθ9,其中Δθ0代表當前時刻的位置誤差,Δθ1代表第1次前采樣時刻的位置誤差,Δθ9代表第9次前采樣時刻的位置誤差;中間層由u1、u2、u3三個神經元組成,輸出層由u4組成,每個神經元均與前一層全連接,激活函數均為y=f(x)=x,偏移參數b均為0。ωij表示神經元i與前一層節點j連接參數。
中間神經元u1與前一層的連接參數為ω10、ω11、…、ω19,當ω10=1,其余的ω11~ω19均為0,神經元u1可近似為比例神經元,連接參數ω41便是比例參數P;中間神經元u2與前一層的連接參數為ω20、ω21、…、ω29,當ω20~ω29均為1,神經元u2可近似為積分神經元,連接參數ω42便是積分參數I;中間神經元u3與前一層的連接參數為ω30、ω31、…、ω39,當ω30=1,ω31=-1,ω32~ω39均為0,神經元u3可近似為微分神經元,連接參數ω43便是微分參數D。
圖3所示的神經元網絡包括PID算法,對該神經網絡進行訓練,如果PID算法為最優,則該神經網絡收斂到PID算法;如果PID算法不是最優,那么該神經網絡將收斂至另一個最優算法。圖3神經網絡中間層神經元的激活函數均為線性函數,可以證明,中間層均是線性神經元的全連接神經網絡,等價于去掉該中間層的全連接神經網絡。于是圖3的神經網絡等價于圖4所示的神經元網絡。

圖3 PID算法的復雜神經網絡

圖4 無中間層的全連接神經網絡
圖4所示的神經網絡與圖3所示的神經網絡等價,神經元u1的激活函數為y=f(x)=x,b仍為0,神經元u1與輸入層的連接參數為ω0、ω1、…、ω9。
神經元u1的輸出為:
y=ω0×Δθ0+ω1×Δθ1+ω2×Δθ2+
ω3×Δθ3+…+ω9×Δθ9
(3)
該神經網絡根據最近10次的位置誤差輸出信號控制電機運動。
以已建立的基于神經網絡的電機控制系統為對象,為得到該網絡的連接參數,使該神經網絡收斂到最優,可通過機器學習對神經網絡進行訓練[2-6]。
機器學習主要分為3個步驟:1)建模:尋找一系列函數來實現預期的功能,這里采用的是圖4所示的神經網絡。2)評估:通過建立一個損失函數,找出合理的評價標準評估函數的好壞。3)優化:快速找到性能最佳的函數,文中采用梯度下降的反向傳播算法尋找最佳函數。
通過機器學習得到最佳參數,需要大量數據,在電機控制領域,可以通過電機驅動傳動機構產生有規律的動作,采集位置傳感器的數值,得到所需的數據。
伺服控制系統框圖如圖5所示,θ為位置控制指令值,θ′為位置傳感器的返回值,Δθ=θ′-θ。設控制指令值θ為正弦波,周期為T,幅值為A,假設每一秒100組數據,每一秒鐘可以得到100組的Δθ,θ′,θ。

圖5 伺服控制系統框圖
第一組輸入數據為:Δθ0、0、0、…、0,第二組輸入數據為:Δθ1、Δθ0、0、…、0,第三組輸入數據為:Δθ2、Δθ1、Δθ0、…、0,第10組輸入數據為:Δθ9、Δθ8、Δθ7、…、Δθ0,第100組輸入數據為:Δθ99、Δθ98、Δθ97、…、Δθ90。
第一組對應的誤差為:δ0=Δθ0,第二組對應的誤差為:δ1=Δθ0+Δθ1,第三組對應的誤差為:δ2=Δθ0+Δθ1+Δθ2,第10組對應的誤差為:δ9=Δθ0+Δθ1+Δθ2+…+Δθ9,第100組對應的誤差為:δ99=Δθ90+Δθ91+Δθ92+…+Δθ99。
把批處理BATCH量設為100,那么每100組數據就可以更新一次參數,即每一秒鐘更新迭代一次。把上述輸入數據及對應的誤差用矩陣來表示:
輸入矩陣為10×100的矩陣:
(4)
誤差矩陣為1×100的矩陣:[δ0δ1δ2…δ9…δ99]T
(5)
評價函數采用均方根誤差函數:
(6)
對于該控制系統,最優參數即是使E最小的參數,可以采用經典的梯度下降反向傳播算法不斷迭代參數,直到找到最優參數(ω0、ω1、…、ω9)。
通過不斷改變正弦波的周期T、幅值A,就可以讓模型適合于各種動態過程,各種慢速、快速運動狀態。
對某直流伺服控制系統進行建模,系統構成如圖4所示,使用Simulink對模型進行離散化,并使用以上算法進行仿真試驗[7]。輸入幅值為5°階躍信號,獲得伺服系統的階躍特性曲線分別如圖6和圖7所示,可以看出,神經網絡PID能夠有效抑制超調,縮短調整時間,讓系統更快到達穩態。

圖6 傳統PID的階躍響應曲線

圖7 神經網絡PID的階躍響應曲線
再輸入頻率60 rad/s,幅值為5°的正弦信號,獲得伺服系統的響應曲線(見圖8),可以看出,使用神經網絡PID能夠使系統獲得更高的相頻寬,提高了系統的響應速度。

圖8 系統在正弦輸入信號下的響應曲線
為了驗證電機神經網絡控制算法的效果,依托實驗室已有項目搭建了基于TMS320F28335DSP的電機控制平臺,其結構組成示意圖如圖9所示,分別使用傳統PID控制策略和基于神經網絡PID控制策略進行了階躍響應實驗。由上位機發送位置指令給該控制平臺,控制平臺同時接收位置傳感器發送的當前位置信息,送入DSP控制器組裝件,經過算法運算處理后,信號送到速度環,驅動電機運動。
通過測試可以看出,采用傳統PID控制下的對5°角偏差階躍輸入信號,達到穩態值95%范圍內,調節時間小于50 ms,超調量等于5%,輸出超調較大,調整時間較長。神經網絡PID控制下的對5°角偏差階躍輸入信號,達到穩態值95%范圍內,調節時間小于35 ms,超調量為零,說明基于神經網絡PID的電機控制策略可以明顯提高伺服系統的動態特性和靜態特性。

圖9 電機控制平臺結構組成示意圖
在傳統PID算法的基礎上,提出了一種電機神經網絡控制算法,該算法通過機器學習訓練神經網絡,使神經網絡模型獲得一定的自適應能力,采用梯度下降反向傳播算法獲得電機最優控制參數。仿真和實驗結果表明:神經網絡PID控制策略能夠有效抑制超調,縮短調整時間,提高系統響應速度,能克服被控對象的不確定性以及隨機擾動的影響,控制效果得到明顯提升。