張 松,王茂森,戴勁松
(南京理工大學 機械工程學院, 南京 210094)
文獻[1]指出,鏈式自動炮作為外能源火炮,射擊時需要自動機與供輸彈系統的驅動電機同步工作。在電機速度同步控制領域,多種策略已被提出:主從控制將上級電機的實時轉速作為下級電機的參考轉速,但當下級電機受到擾動時,這種轉速變動不能傳遞至上級;文獻[2]提到,虛擬總軸控制源于機械總軸的思想,以力矩反饋的方式,通過虛擬總軸控制器給定每個單元的參考量,動態特性一般;根據文獻[3],交叉耦合控制中,每單元都獲得自身速度和單元間速度差兩個反饋信號,以滿足單元內部的抗擾動和單元間的抗失步兩方面要求,尤其適用于兩臺電機的耦合控制。在交叉耦合控制中,耦合控制器的設計是提高耦合性能的關鍵,文獻[4]使用了PID控制器作為耦合控制器,PID控制器利用誤差反饋消除誤差,帶來固有的、相對于擾動的滯后性,并且易由于初始控制力度不當產生振蕩、超調等問題。韓京清等人[5、6]針對PID的固有缺陷提出一種改進方案,即基于擴張狀態觀測器的自抗擾控制(ADRC),但其擁有更好抗擾性能的同時,也有參數過多、不易整定的問題。本文利用BP神經網絡的自學習特性設計了一種將ADRC用于交叉耦合控制且具備參數自整定能力的兩電機控制方案。
圖1為某型鏈式自動炮結構示意圖。為了滿足多彈種供彈的需求,彈箱中彈鏈獨立于自動機電機運行。為了規避復雜離合裝置可靠性問題,方案單獨設置了一彈箱電機。射擊時,自動機電機和彈箱電機同時運轉,將彈箱中彈藥通過彈箱與導引交接口、扭轉導引、導引與自動機交接口源源不斷送入自動機中。這種工作方式對兩電機的速度同步性提出了較高的要求,如果彈箱電機轉速高于自動機電機,將導致彈藥在扭轉導引內擠壓、阻塞而引發安全問題,反之則會導致彈藥供不上,從而導致射擊密集度下降[7]。為了實現這種同步,必須引入兩電機之間的耦合控制。火炮射擊過程伴隨著劇烈振動沖擊,尤其是在輪式載具上,這種沖擊對供輸彈過程的影響顯著,反映在此兩電機驅動的供輸彈系統中,電機的負載轉矩承受較大擾動。

圖1 某型鏈式自動炮結構示意圖
目前兩電機驅動的供輸彈系統常采用同一給定控制或主從控制,即各驅動單元接收同一參考轉速,每單元內部閉環控制,彼此之間互不影響。這種方式控制簡單,在各單元負載相差不大且負載擾動較小時具有較好效果,但當各單元負載差差異較大且都受到擾動沖擊時,同步性不好,出現不能消除的靜差。為了解決該問題,作者對兩電機采用交叉耦合控制,并使用自抗擾控制器作為交叉耦合控制器,應用BP神經網絡對自抗擾控制器的參數進行實時調整,使兩電機的速度同步性和抗沖擊擾動性有所提高。
交叉耦合控制原理如圖2所示,這種控制策略基于對兩種誤差的觀測:跟隨誤差和同步誤差[8]。以電機1為例,其控制量的生成方式可表示為式(1):
(1)
式中:ω(t)是t時刻參考轉速,ω1(t)、ω2(t)分別是電機1和2在t時刻的實際轉速,K1是電機1的補償系數,G(t)是電機1的控制器、F(t)是交叉耦合控制器。對跟隨誤差的補償使電機自身具備抗擾動性能,對同步誤差的補償又使兩電機具有跟隨同步特性,兩者相結合可達到較好的綜合性能。

圖2 交叉耦合控制原理
交叉耦合控制的實際耦合效果很大程度上取決于其耦合控制器的設計,現有應用中常采用PID控制器作為交叉耦合控制器。PID控制原理簡單,易于實施,但PID交叉耦合控制器至少存在兩個缺陷:一是控制效果依賴于PID參數的合理整定,且當負載變化、系統參數攝動時PID控制效果也會受到影響;二是PID控制被動地基于誤差反饋來消除誤差,滯后于擾動的影響,并可能因初始控制力度過大引發震蕩、超調。因此考慮另一種可用的控制器——自抗擾控制器(ADRC),其基本結構如圖3所示。

圖3 自抗擾控制器基本結構
自抗擾控制器的核心在于將系統中的不確定部分(包括自身參數攝動和外部擾動)視為總擾動,使用擴張狀態觀測器實時對總擾動進行估計并加以消除,從而將實際應用里存在內外擾和非線性的系統還原為標準的“積分串聯型”系統,這樣就大大降低了控制系統設計的難度[5]。一個典型的非線性自抗擾控制器結構如圖4所示[6]。跟蹤微分器(TD)對輸入參考信號安排過渡,“柔化”其變化,來減小控制超調;非線性狀態誤差反饋控制律(NLSEF)用來非線性組合誤差及誤差的微分,產生控制量;擴張狀態觀測器(ESO)將影響控制對象輸出的擾動擴張成新的狀態變量,在不依賴生成擾動模型和不直接測量的條件下對擾動進行觀測和估計。[9]與PID控制相比,自抗擾控制解決了快速和超調的矛盾,靜差消除無滯后,具備一定預測性。綜上,本文提出使用自抗擾控制器的交叉耦合控制方案,來改善供輸彈系統中兩電機的速度同步性。

圖4 非線性自抗擾控制器結構
自抗擾控制待整定參數多達12個,這甚至比PID參數系統更加復雜。自抗擾控制控制量的生成依賴于擴張狀態觀測器(ESO)對總擾動的觀測和估計,這使得ESO的3個參數β01、β02和β03的整定尤為重要。實際上,ADRC和PID有著類似的缺陷,即一套固定的參數面臨對象系統大范圍、快速變化時控制效果不盡如人意。文獻[10]提出了一種使用BP神經網絡優化應用于非線性對象的PID控制器的方法,其思想是使用誤差error(t)、系統輸出yout(t)、給定輸入rint(t)作為網絡輸入、PID控制器的三個參數KP、KI和KD作為網絡輸出,實現BP神經網絡對PID參數實時調節。受到其啟發,本文提出一種對ESO進行基于神經網絡的自適應參數調整方法,并將其應用在交叉耦合控制中。
使用誤差e1及其微分e2、系統輸出y和1作為網絡輸入,ESO的三個參數β01、β02和β03作為網絡輸出,建立包含1個5節點隱含層的神經網絡,其結構如圖5。

圖5 BP神經網絡結構
網絡輸入層的輸入為
(2)
網絡隱含層的輸入、輸出為
(3)
(4)

(5)
網絡輸出層的輸入輸出為
(6)
(7)
輸出層輸出節點分別對應了ESO的3個參數β01、β02和β03,由于參數不能為負值,因此輸出層神經元的活化函數取非負的Sigmoid函數
(8)
取性能指標為
(9)
按梯度下降法修正網絡的權系數,即按E(k)對加權系數的負梯度方向搜索調整,并附加一使搜索快速收斂全局極小慣性項
(10)
式中,η為學習速率,α為慣性系數。
(11)

(12)
由于?y(k)/?u(k)未知,所以近似用符號函數sgn(?y(k)/?u(k))替代,由此帶來的計算不精確的影響用調整η的方法補償。
上述分析得網絡輸出層的學習算法為
l=1,2,3
(13)
同理可得隱含層學習算法
l=1,2,3
(14)
式中
(15)
自適應ADRC算法歸結如下:

2) 采樣得到rin(k)和yout(k),計算此時刻誤差error(k)=rin(k)-yout(k);
3) 計算網絡各神經元層輸入、輸出,輸出層輸出即為ESO參數β01、β02和β03;
4) 獲取輸出值u(k);
使用Matlab/Simulink建立仿真模型,首先搭建起兩套基于FOC控制策略的PMSM驅動單元,每個單元都具有轉速反饋PID控制器[11]。將兩套驅動單元看作一個整體,ADRC控制器的控制對象為電機轉速差,參考值為0(即目標為無同步誤差),控制輸出疊加在原有的轉速反饋上;BP神經網絡模塊和ADRC控制器中的TD、NLSEF、ESO模塊均使用S函數編寫。
ADRC控制器的誤差e1及其微分e2、電機的轉速差作為神經網絡輸入,神經網絡的輸出作為ESO的三個實時調整的參數β01、β02和β03。建立好的仿真模型如圖6所示,其中兩PID控制器的參數為KP=1.1,KI=0.8,KD=0;模型所用電機為Simulink庫中的“Permanent Magnet Synchronous Machine”,參數調整為4號預設參數(6 N·m,300 Vdc,4 500 r/min)。

圖6 基于神經網絡自適應ADRC的交叉耦合控制模型
給定電機參考轉速為1500 r/min,仿真過程0 s到0.3 s給予兩電機5 N·m的相同負載,兩電機同步良好,電機間同步誤差為零;0.3 s時刻,給予電機1從5 N·m到5.5 N·m的階躍沖擊載荷,0.5 s時刻再給予電機2從5 N·m到4.5 N·m的階躍沖擊載荷。圖7為兩電機各自的速度曲線,圖8為使用BP-ADRC交叉耦合控制器的兩電機同步誤差曲線,圖9為使用同一給定控制時的兩電機同步誤差曲線。從圖中可看出,0.3 s起收負載轉矩擾動影響兩電機出現同步誤差,但與圖9的同一給定控制策略下的同步誤差相比始終能控制在較小范圍,轉速誤差基本限制在40 r/min以內,兩電機轉速同步誤差約為2.6%,考慮到一次射擊持續時間僅為數秒,此誤差在可接受范圍內。

圖7 參考轉速1 500 r/min時受負載擾動的兩電機速度曲線(BP-ADRC交叉耦合)

圖8 負載擾下的兩電機同步誤差曲線(BP-ADRC交叉耦合)

圖9 負載擾下的兩電機同步誤差曲線(同一給定)
1) 設計了應用于自動炮供輸彈電機的、基于神經網絡自適應ADRC的交叉耦合控制方案,在面臨沖擊載荷時,能穩定電機自身速度,有效提高兩電機驅動的同步性,滿足該型鏈式自動炮供輸彈系統雙電機驅動的速度同步性要求。
2) 該方案效費比較高,不需對現有驅動單元做太大改動,低成本實現現有裝備的快速升級,可廣泛應用于各種面臨沖擊載荷而要保持速度同步的兩電機驅動系統。