牟宗亮,徐 雷,陳建華,鐘俊柏
(四川大學(xué)機(jī)械工程學(xué)院,成都 610065)
PID控制以其結(jié)構(gòu)簡單、易于實(shí)現(xiàn)等特性在控制系統(tǒng)中得到了廣泛的應(yīng)用[1]。經(jīng)典的PID控制具有簡單、成本低的優(yōu)點(diǎn),但難以快速準(zhǔn)確地針對(duì)非線性和不確定的系統(tǒng)做出反應(yīng),起動(dòng)特性弱[2-4]。目前,針對(duì)PID控制算法有進(jìn)化算法尋找神經(jīng)網(wǎng)絡(luò)的最優(yōu)初始連接權(quán)參數(shù)集以改善修正過程,也有利用模糊控制和模糊自整定策略的PID控制方法[5-7]。近些年來,國內(nèi)外針對(duì)PID控制的參數(shù)選取和優(yōu)化做了相應(yīng)研究。李建偉等[8]提出了采用改進(jìn)RBF神經(jīng)網(wǎng)絡(luò)進(jìn)而優(yōu)化PID控制。QIANG等[9]將神經(jīng)網(wǎng)絡(luò)動(dòng)態(tài)修正策略應(yīng)用于隨機(jī)運(yùn)動(dòng)軌跡的控制過程。DAUD、ELSISI等[2,10]則通過使用多項(xiàng)式變異形成修正程序以優(yōu)化PID控制參數(shù)并測試自適應(yīng)PID控制。上述方案主要集中采用動(dòng)態(tài)修正的策略,通過數(shù)學(xué)方法和神經(jīng)網(wǎng)絡(luò)等方法控制PID系統(tǒng),相較于傳統(tǒng)的PID控制方案在信號(hào)的最終穩(wěn)定性上有很大提高,但是由于前期參數(shù)的選取沒有足夠的數(shù)據(jù)進(jìn)行修正和測試,存在受被控系統(tǒng)影響大和動(dòng)態(tài)修正過程中前期控制參數(shù)不良的情況。
針對(duì)上述問題,本文提出一種基于誤差集中策略的神經(jīng)網(wǎng)絡(luò)PID改進(jìn)算法。采用更加可靠的PID參數(shù)選取方案,剔除不良參數(shù)的影響,提出了一種誤差集中反饋的創(chuàng)新訓(xùn)練模式。與上述方案相比,保證了控制過程中的每個(gè)控制參數(shù)都具有很好的控制性能。此外針對(duì)異常波動(dòng)量進(jìn)行的辨識(shí)和修正,極大地強(qiáng)化了針對(duì)復(fù)雜控制曲線的適應(yīng)能力,面對(duì)復(fù)雜系統(tǒng)也能夠快速、準(zhǔn)確地進(jìn)行修正控制。
以BP神經(jīng)網(wǎng)絡(luò)為例,其主體結(jié)構(gòu)由輸入層、隱含層及輸出層組成。將神經(jīng)網(wǎng)絡(luò)與PID控制相結(jié)合,則輸出層體現(xiàn)為PID控制中的KP、KI和KD三個(gè)控制參數(shù)。而用于修正神經(jīng)網(wǎng)絡(luò)的反饋值則有PID控制器的控制結(jié)果提供。以傳統(tǒng)思路為例,其控制的修正過程如圖1所示。
圖1 傳統(tǒng)修正過程
在該思路中,神經(jīng)網(wǎng)絡(luò)的輸出層直接輸出PID控制所需要的3個(gè)參數(shù),即KP、KI、KD,參數(shù)在導(dǎo)入PID控制器后用于下一步的計(jì)算,現(xiàn)采用增量式PID,則當(dāng)前計(jì)算點(diǎn)輸出為:
yout(k)=yout(k-1)+Δu(k)
(1)
Δu(k)=KP[e(k)-e(k-1)]+KIe(k)+
KD[e(k)-2e(k-1)+e(k-2)]
(2)
在已有輸出值的前提下,將誤差反饋到神經(jīng)網(wǎng)絡(luò)的輸入層,再次訓(xùn)練并修正神經(jīng)網(wǎng)路的權(quán)值和閾值,之后生成新的PID參數(shù),再次用于下一步的計(jì)算,即實(shí)現(xiàn)了參數(shù)的動(dòng)態(tài)修正。
但是該方法存在兩點(diǎn)問題:
(1)由于其訓(xùn)練集是由反饋的參數(shù)提供,故前幾個(gè)控制步所使用的PID控制參數(shù)是在很少的訓(xùn)練集修正后得出的,所以其前段的控制結(jié)果并不理想。
(2)在整體上是利用神經(jīng)網(wǎng)絡(luò)修正出符合傳遞函數(shù)性質(zhì)的權(quán)值和閾值,但是在局部上卻以前一步的誤差值修正后一步的控制參數(shù)。
基于以上分析,本文采用采用誤差集中的思想改進(jìn)上述的神經(jīng)網(wǎng)絡(luò)—PID算法。具體結(jié)構(gòu)如圖2所示。
圖2 改進(jìn)后修正過程
本方法的基本思想是取代傳統(tǒng)的反饋單個(gè)計(jì)算步誤差的方案,在完整運(yùn)行PID控制的前提下,取全部計(jì)算步的誤差和代表該系統(tǒng)的整體特征進(jìn)行反饋。在神經(jīng)網(wǎng)絡(luò)計(jì)算的內(nèi)部算法上進(jìn)行改進(jìn)優(yōu)化,使其能夠針對(duì)誤差和形式的反饋量進(jìn)行有效訓(xùn)練,并強(qiáng)化其修正性能。
現(xiàn)將傳遞函數(shù)離散化后的方程形式表示如下:
(3)
式中:n與z分別代表分子分母部分的系數(shù)。根據(jù)以下?lián)Q算關(guān)系:
z-nY(z)=y(k-n)
(4)
將式(3)交叉相乘并將式(4)帶入變形后最終得到傳遞函數(shù)的差分形式如下:
y(k)=-d2y1-d3y2-d4y3+n1u0+n2u1+n3u2+n4u3
(5)
式中:u0、u1、u2、u3分別表示第k次、k-1次、k-2次、k-3次輸入信號(hào)值,y同理。
設(shè)定神經(jīng)網(wǎng)絡(luò)輸入值為:
xi=[rin,yout,error,1]
(6)
式中:rin為期望值,yout為實(shí)際值,error為誤差量,參與神經(jīng)網(wǎng)絡(luò)的正向傳播獲取PID控制參數(shù)K。將控制參數(shù)K帶入式(1)和式(2)得到信號(hào)量,經(jīng)式(5)得到實(shí)際值yout。取計(jì)算步數(shù)為m進(jìn)行后續(xù)計(jì)算,將全部計(jì)算步誤差進(jìn)行集中。有:
(7)
式中:eh為誤差和,考慮到控制的實(shí)際曲線并不總是在理想曲線之下,故取絕對(duì)值。在不考慮控制時(shí)間的前提下,m為無窮大量,誤差集中量為無窮大量。事實(shí)上,該策略的神經(jīng)網(wǎng)絡(luò)修正后實(shí)現(xiàn)的是誤差和的縮小,即使選取的是局部的誤差和,其也符合修正曲線的目的。故定義限制量mm及MM。有:
m∈[mm,MM]
(8)
式中:mm的選取不宜過小,與誤差收斂速度相關(guān),MM的選取與系統(tǒng)要求的最大控制時(shí)長相關(guān)。
在反向修正過程中,聯(lián)接權(quán)值的改變量應(yīng)為:
(9)
式中:α在該系統(tǒng)中定義為KP、KI、KD的系數(shù)矩陣,在誤差集中策略中選取中段計(jì)算過程的系數(shù)能夠達(dá)到較好的修正結(jié)果。K為影響修正速度的系數(shù),變動(dòng)后對(duì)修正速度有影響。取輸出層激活函數(shù)ω2為:
(10)
隱藏層的修正同理,取隱藏層修正函數(shù)ω1為:
(11)
在獲得權(quán)值改變量后對(duì)原權(quán)值進(jìn)行修正,之后完成一次神經(jīng)網(wǎng)絡(luò)的訓(xùn)練。相較于傳統(tǒng)的訓(xùn)練策略,該方案的神經(jīng)網(wǎng)絡(luò)訓(xùn)練次數(shù)不再受限于PID控制器的計(jì)算步數(shù)。其訓(xùn)練集來源既體現(xiàn)傳遞函數(shù)性質(zhì),又剔除了前期訓(xùn)練的不良樣本。
在完成修正后,根據(jù)被控對(duì)象不同可能會(huì)有信號(hào)跟蹤曲線呈現(xiàn)出很強(qiáng)的波動(dòng)特性的現(xiàn)象,本文通過對(duì)這些異常信號(hào)辨識(shí)后進(jìn)行局部修正,使信號(hào)整體穩(wěn)定。
具體方法為通過式(1)的計(jì)算過程中,直接讀取其實(shí)際值yout(k),則應(yīng)有:
yout-rin≤ε
(12)
式中:yout為實(shí)際值,rin為理想值,ε根據(jù)系統(tǒng)允許的波動(dòng)量選取,其值為正。在波動(dòng)量超過ε時(shí),則重新進(jìn)行訓(xùn)練過程。在重新訓(xùn)練之前,需要剔除因波動(dòng)造成的不良修正量。故進(jìn)行修正如下:
(13)
式中:i為達(dá)到預(yù)期波動(dòng)量前的修正次數(shù)。在達(dá)到可接受的波動(dòng)量后,再重新計(jì)算全部計(jì)算步的實(shí)際值yout,重新進(jìn)行誤差集中及修正。
以某液壓系統(tǒng)為對(duì)象對(duì)該算法進(jìn)行驗(yàn)證,首先建立該液壓系統(tǒng)傳遞函數(shù)如下:
(14)
式中:s為復(fù)變量,傳遞函數(shù)G(s)為s的有理分式,只取決于系統(tǒng)的結(jié)構(gòu)和參數(shù)。取訓(xùn)練前參數(shù)與訓(xùn)練后參數(shù)分別測試控制效果,其結(jié)果如圖3所示。
圖3 訓(xùn)練前后信號(hào)跟蹤效果對(duì)比
由圖3可以看出,針對(duì)該傳遞函數(shù)本文算法有較好的修正效果,修正后得到的信號(hào)跟蹤曲線在響應(yīng)的快速性和穩(wěn)定性上均有很大的改善。
為了驗(yàn)證上述算法的實(shí)際控制結(jié)果,本文以液壓系統(tǒng)模型代替?zhèn)鬟f函數(shù),避免了簡單的傳遞函數(shù)過于理想化的情況,使仿真結(jié)果更加接近于實(shí)際情況,基于MATLAB-Simulink-AMEsim構(gòu)建了一個(gè)聯(lián)合仿真平臺(tái)。
聯(lián)合仿真平臺(tái)的邏輯如圖4所示??刂菩盘?hào)傳輸由MATLAB計(jì)算PID的控制參數(shù)并輸入到Simulink,由Simulink計(jì)算最終控制信號(hào)輸出至AMEsim建立的液壓系統(tǒng)模型當(dāng)中,最終執(zhí)行機(jī)構(gòu)實(shí)現(xiàn)位移。
圖4 聯(lián)合仿真平臺(tái)邏輯圖
反饋信號(hào)傳輸由Simulink將計(jì)算過程中的控制量及部分中間過程量反饋至MATLAB,AMEsim將液壓系統(tǒng)模型的實(shí)際控制結(jié)果同步反饋至MATLAB,MATLAB進(jìn)行計(jì)算并修正控制參數(shù)。
首先在AMEsim建立了一個(gè)液壓系統(tǒng)模型如圖5所示。
圖5 液壓系統(tǒng)模型
取負(fù)載塊質(zhì)量為100 kg,無初始速度及初始加速度,液壓缸中引入摩擦以及內(nèi)泄漏等不可控量,針對(duì)電磁換向閥也引入了合適的振動(dòng)頻率,保證模型的可靠性。模型的參數(shù)轉(zhuǎn)換模塊中導(dǎo)入訓(xùn)練計(jì)算過程,可將結(jié)果轉(zhuǎn)化為控制信號(hào)直接作用于電磁換向閥,用于直接控制流量。位移傳感器實(shí)時(shí)反饋液壓推桿位移量,同樣通過參數(shù)轉(zhuǎn)換模塊反饋至Simulink。Simulink完成PID控制的計(jì)算過程,Simulink系統(tǒng)模型如圖6所示。
其中圖6左邊的部分接收經(jīng)MATLAB修正計(jì)算得到的PID控制參數(shù)并通過式(1)、式(2)進(jìn)行計(jì)算,其計(jì)算結(jié)果為最終控制信號(hào)。同時(shí)將計(jì)算過程中部分中間過程量反饋至MATLAB用于修正計(jì)算。圖6右邊的部分建立與AMEsim的聯(lián)接,將最終控制信號(hào)傳輸?shù)紸MEsim中的液壓系統(tǒng)模型中控制電磁換向閥,同時(shí)接收來自于液壓系統(tǒng)模型中執(zhí)行機(jī)構(gòu)的當(dāng)前實(shí)際位移量,并同樣將數(shù)據(jù)傳輸至MATLAB用于修正計(jì)算。
圖6 Simulink系統(tǒng)模型
使用該液壓系統(tǒng)模型將傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)調(diào)參修正算法與本文所述的改進(jìn)算法進(jìn)行仿真對(duì)比?,F(xiàn)分別設(shè)定0.9、1.5、1.3以及2.0的預(yù)期值,采用兩種算法進(jìn)行仿真實(shí)驗(yàn),其結(jié)果如圖7所示。各種算法在仿真情況下的實(shí)際位移值見圖中標(biāo)注。
圖7 仿真實(shí)驗(yàn)結(jié)果
根據(jù)仿真結(jié)果,本文所述改進(jìn)算法相較于傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)動(dòng)態(tài)修正算法在響應(yīng)的快速性和最終響應(yīng)的準(zhǔn)確性上均有所提高。尤其在預(yù)期值小于當(dāng)前值的負(fù)值誤差修正階段,改進(jìn)算法依然能夠快速地響應(yīng)到設(shè)定值。
針對(duì)PID控制器參數(shù)選擇的不確定性問題,本文設(shè)計(jì)了一種針對(duì)神經(jīng)網(wǎng)絡(luò)的修正策略,采用控制過程中的誤差集中方式,設(shè)計(jì)了局部閾值方案,最終得出以下結(jié)論:
(1)該策略利用全控制過程的數(shù)據(jù)進(jìn)行計(jì)算,有效地提高了控制信號(hào)前期的響應(yīng)速度,降低了信號(hào)的超調(diào)量,在極短響應(yīng)時(shí)間內(nèi)快速地應(yīng)對(duì)隨機(jī)誤差量,使系統(tǒng)快速趨向穩(wěn)定;設(shè)計(jì)大波動(dòng)控制參數(shù)的局部調(diào)節(jié)方案,極大地提高了算法對(duì)復(fù)雜系統(tǒng)的調(diào)節(jié)能力。
(2)經(jīng)MATLAB-Simulink-AMEsim聯(lián)合仿真與傳統(tǒng)動(dòng)態(tài)修正算法進(jìn)行對(duì)比,結(jié)果表明,該算法控制的響應(yīng)速度和最終穩(wěn)定性均有提高,針對(duì)變化信號(hào)的響應(yīng)準(zhǔn)確率也有所增加。