張肖江,周春桂,王志軍,王小東,侯一方,張卓毅
(中北大學(xué)機(jī)電工程學(xué)院,山西 太原 030051)
在現(xiàn)代海戰(zhàn)領(lǐng)域的研究中,水下自主航行器受到了越來越多的關(guān)注。舵機(jī)作為水下航行器的重要組成部分,直接影響了航行器的總體控制性能[1]。目前選用低損耗、大扭矩的永磁同步電機(jī)已經(jīng)成為水下舵機(jī)選型的趨勢(shì)。但由于永磁同步電機(jī)是高階非線性系統(tǒng),控制效果受到電機(jī)參數(shù)、海浪等因素的干擾較大。應(yīng)用較為廣泛的傳統(tǒng)PID雖然簡(jiǎn)單易于實(shí)現(xiàn),但面對(duì)復(fù)雜非線性時(shí)變系統(tǒng)時(shí),不具有重新整定參數(shù)的能力。為了解決傳統(tǒng)PID動(dòng)態(tài)響應(yīng)特性差的問題,文獻(xiàn)[2]提出了變論域模糊PID控制器,相較于傳統(tǒng)PID,提高了控制精度,但模糊控制需要一定的專家經(jīng)驗(yàn),并未驗(yàn)證其抗干擾性。文獻(xiàn)[3]采用滑膜控制,提高了控制精度,有一定的抗干擾性,但是滑??刂圃诜€(wěn)定后會(huì)造成抖震。BP(誤差反傳)神經(jīng)網(wǎng)絡(luò)對(duì)復(fù)雜非線性系統(tǒng)具有很強(qiáng)的自適應(yīng)、自學(xué)習(xí)的能力。文獻(xiàn)[4]提出了將BP神經(jīng)網(wǎng)絡(luò)和PID控制器結(jié)合的方法,實(shí)現(xiàn)了對(duì)永磁同步電機(jī)的調(diào)速;但是由于標(biāo)準(zhǔn)BP神經(jīng)網(wǎng)絡(luò)在修正權(quán)值時(shí)是按負(fù)梯度方式修正的,容易使學(xué)習(xí)過程陷入局部震蕩、收斂速度慢的情況。
本文針對(duì)基于PID控制的電機(jī)調(diào)速舵機(jī)系統(tǒng)無法自學(xué)習(xí)、自適應(yīng)的局限性,將PID控制器與BP神經(jīng)網(wǎng)絡(luò)算法相結(jié)合,引入動(dòng)量項(xiàng),減少震蕩,設(shè)計(jì)了基于BP神經(jīng)網(wǎng)絡(luò)PID控制器,并建立了不同控制輸入信號(hào)下偏航通道和舵機(jī)的整體仿真。
水下航行器偏航通道的控制系統(tǒng)如圖1所示,主要由偏航通道控制器、舵回路、舵片、航行器以及反饋裝置等組成,其中舵回路由舵回路控制器、電機(jī)、反饋裝置和減速器組成。當(dāng)舵機(jī)控制器接收到控制輸入和舵機(jī)位置的偏差信號(hào)后,驅(qū)動(dòng)電機(jī)轉(zhuǎn)動(dòng),隨后經(jīng)減速器減速后由反饋裝置傳回比較器構(gòu)成舵回路閉環(huán)。對(duì)于偏航通道控制系統(tǒng),由控制輸入與實(shí)際的偏航角產(chǎn)生的偏差信號(hào)經(jīng)過偏航通道的控制器生成響應(yīng)的控制信號(hào)加到舵機(jī)上,舵機(jī)推動(dòng)舵片轉(zhuǎn)動(dòng),從而操縱航行器運(yùn)動(dòng),使航行器達(dá)到并保持在新的航向設(shè)定上[5]。
圖1 水下航行器控制系統(tǒng)框圖Fig.1 Block diagram of an underwater vehicle control system
電機(jī)作為航行器舵機(jī)動(dòng)力系統(tǒng)的主要組成部分,控制效果的好壞直接決定著航行器的運(yùn)動(dòng)姿態(tài)好壞。永磁同步電機(jī)因其結(jié)構(gòu)簡(jiǎn)單、體積小、效率高逐漸成為伺服電機(jī)系統(tǒng)的發(fā)展趨勢(shì)[6]。
圖2 永磁同步電機(jī)控制系統(tǒng)框圖Fig.2 Block diagram of a permanent magnet synchronous motor control system
本文設(shè)計(jì)的控制器是基于BP神經(jīng)網(wǎng)絡(luò)PID的控制算法。傳統(tǒng)PID控制是對(duì)被控對(duì)象進(jìn)行閉環(huán)控制,比例、積分、微分三個(gè)環(huán)節(jié)環(huán)環(huán)相扣,互相制約,但不具備參數(shù)自學(xué)習(xí)的能力;而BP神經(jīng)網(wǎng)絡(luò)可以對(duì)函數(shù)進(jìn)行映射,有很強(qiáng)的自學(xué)習(xí)和自適應(yīng)能力。兩者相結(jié)合,可以使KP,KI,KD三個(gè)參數(shù)的各種非線性組合得到最優(yōu)解,取代人的經(jīng)驗(yàn)調(diào)參,實(shí)現(xiàn)對(duì)復(fù)雜系統(tǒng)的實(shí)時(shí)控制。BP神經(jīng)網(wǎng)絡(luò)PID控制結(jié)構(gòu)器框圖如圖3所示。圖3中的神經(jīng)網(wǎng)絡(luò)控制器由增量式PID控制器和神經(jīng)網(wǎng)絡(luò)兩部分組成。
經(jīng)典增量式PID控制算法公式為
u(k)=u(k-1)+KP[e(k)-e(k-1)]+
KIe(k)+KD[e(k)-2e(k-1)+e(k-2)],
(1)
式(1)中,KP為比例系數(shù),KI為積分系數(shù),KD微分系數(shù),e(k)為第k次采集的誤差值,e(k-1)為k-1時(shí)刻采集的誤差值,e(k-2)為k-2時(shí)刻采集的誤差值。
圖3 BP神經(jīng)網(wǎng)絡(luò)PID控制結(jié)構(gòu)Fig.3 BP neural network PID control structure
根據(jù)原理的描述,BP神經(jīng)網(wǎng)絡(luò)PID算法如下[10]:
1) 初始化:確定各層的神經(jīng)元節(jié)點(diǎn)個(gè)數(shù)以及各層級(jí)之間的權(quán)值,并賦予(-1,1)之間的隨機(jī)值。有時(shí)為了訓(xùn)練的效率可以對(duì)原始數(shù)據(jù)樣本機(jī)型規(guī)范化處理。
2) 前向網(wǎng)絡(luò)計(jì)算:BP神經(jīng)網(wǎng)絡(luò)的輸入輸出為
隱含層的輸入為
(3)
隱含層的輸出為
f(x)為雙曲正切函數(shù),即
輸出層的輸入為
(6)
輸出層的輸出為
由增量式PID(式(1))可得控制器輸出u(k)。
3) 采取輸出誤差二次方為性能指標(biāo)函數(shù)
若誤差小于等于事先設(shè)定的值,則算法結(jié)束;否則誤差反向傳遞,按照梯度下降法,逐層修改權(quán)值。
4) 采用梯度下降算法使得網(wǎng)絡(luò)權(quán)值系數(shù)按照學(xué)習(xí)率η修正,使搜索快速收斂至全局極小,由此可得到權(quán)值更新計(jì)算公式為
g′(x)=g(x)[1-g(x)]。
(15)
隱含層連接權(quán)值更新為
f′(x)=1-f2(x)。
(18)
5) 令k=k+1,將權(quán)值返回至第2)步重新開始計(jì)算,若性能指標(biāo)函數(shù)E(k)滿足設(shè)定值,則結(jié)束學(xué)習(xí);反之,繼續(xù)學(xué)習(xí)。
標(biāo)準(zhǔn)的BP神經(jīng)網(wǎng)絡(luò)采用梯度下降法作為主要手段權(quán)重沿著梯度下降的反方向修正,如果得不到期望輸出,則將誤差信號(hào)返回,據(jù)此對(duì)各項(xiàng)參數(shù)進(jìn)行修改;如此反復(fù)交替,直到到達(dá)收斂為止。但在修正權(quán)值ω(k)時(shí)只是按負(fù)梯度方式修正,未考慮之前學(xué)習(xí)到的經(jīng)驗(yàn),常常會(huì)使系統(tǒng)陷入局部最小,引起局部震蕩,收斂緩慢,為此引入動(dòng)量項(xiàng),如式(19)所示:
ω(k+1)=ω(k)+αω(k-1)+ηδo,
(19)
式(19)中,ω(k)為權(quán)值,α為動(dòng)量系數(shù),η為學(xué)習(xí)率。
BP神經(jīng)網(wǎng)絡(luò)PID控制器模型,如圖4所示。BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計(jì)及算法選擇對(duì)于網(wǎng)絡(luò)性能有著重要影響,以給定轉(zhuǎn)子角速度r(k)、實(shí)際轉(zhuǎn)子角速度y(k)、轉(zhuǎn)子角速度偏差e(k)及其延時(shí)信號(hào)作為網(wǎng)絡(luò)輸入,u(k),KP,KI,KD,更新權(quán)值作為網(wǎng)絡(luò)輸出。設(shè)定隱含層節(jié)點(diǎn)數(shù)為8,網(wǎng)絡(luò)學(xué)習(xí)率η=0.01,動(dòng)量系數(shù)α=0.3,以性能指標(biāo)E(k)作為評(píng)價(jià)指標(biāo)[11]。
圖4 BP神經(jīng)網(wǎng)絡(luò)PID控制器Fig.4 BP neural network PID control structure
基于圖3的矢量控制系統(tǒng)和1.2節(jié)中的BP神經(jīng)網(wǎng)絡(luò)PID算法控制,在Matlab/Simulink中建立永磁同步電機(jī)模型,如圖5所示。電機(jī)參數(shù)如表1所示。
表1 電機(jī)工作參數(shù)Tab.1 Motor operating parameters
圖5 永磁同步電機(jī)調(diào)速系統(tǒng)仿真模型Fig.5 Simulation model of permanent magnet synchronous motor speed regulation system
當(dāng)控制轉(zhuǎn)速為500 r/min,并在0.2 s時(shí)加入一個(gè)幅值為5,作用時(shí)間為0.1 s的脈沖干擾信號(hào)來模擬負(fù)載的變換。轉(zhuǎn)速響應(yīng)曲線如圖6,結(jié)果對(duì)比如表2所示。
圖6 轉(zhuǎn)速響應(yīng)曲線Fig.6 Response curve of velocity
表2 加入脈沖干擾后結(jié)果對(duì)比Tab.2 Control performance indicators after pulse interference
由圖6和表2結(jié)果可知,BP神經(jīng)網(wǎng)絡(luò)PID控制器達(dá)到穩(wěn)態(tài)的時(shí)間要比傳統(tǒng)PID快61%左右,兩種控制方法都無明顯超調(diào)。但在0.2 s后加入脈沖干擾后,BP-PID在0.7 ms后穩(wěn)定在497 r/min左右,而傳統(tǒng)PID需要14 ms后才可以到達(dá)穩(wěn)態(tài)值470 r/min。在卸負(fù)載后,BP神經(jīng)網(wǎng)絡(luò)PID相較于傳統(tǒng)PID控制調(diào)節(jié)時(shí)間快了90%左右。
為驗(yàn)證基于BP神經(jīng)網(wǎng)絡(luò)的永磁同步電機(jī)調(diào)速系統(tǒng)的正確性,建立舵機(jī)回路模型,如圖7所示。
圖7 舵機(jī)控制系統(tǒng)Fig.7 Steering gear control system
當(dāng)加入8°的舵角指令,分別對(duì)比傳統(tǒng)PID與BP-PID的控制性能,得出8°信號(hào)下舵機(jī)角度曲線及結(jié)果對(duì)比,如圖8和表3所示。
圖8 8°信號(hào)下舵機(jī)角度曲線Fig.8 The curve of servo angle under 8°signal
由圖8和表3可知,兩種控制方法都有較好的動(dòng)態(tài)響應(yīng)能力,但BP神經(jīng)網(wǎng)絡(luò)PID控制器達(dá)到穩(wěn)態(tài)的時(shí)間要比傳統(tǒng)PID控制快65%左右。
表3 控制輸入為8°時(shí)舵機(jī)角度結(jié)果對(duì)比Tab.3 Comparison of servo angle resultswhen the control input is 8°
為進(jìn)一步驗(yàn)證基于BP神經(jīng)網(wǎng)絡(luò)PID電機(jī)調(diào)速系統(tǒng)的優(yōu)越性,對(duì)某型水下航行器做偏航通道仿真模擬,如圖9所示。
其中偏航通道的傳遞函數(shù)為
偏航運(yùn)動(dòng)由尾部的垂直舵盤控制,使用指數(shù)函數(shù),經(jīng)過拉氏變換后可得[12]
輸入分別給定一個(gè)8°的航向角和正弦信號(hào),進(jìn)行仿真分析,得出8°信號(hào)下航向角曲線和結(jié)果對(duì)比,如圖10和表4所示。
圖9 水下航行器偏航通道控制系統(tǒng)Fig.9 Yaw channel control system for underwater vehicles
圖10 8°信號(hào)下航向角曲線Fig.10 The curve of heading angle under 8°signal
表4 控制輸入為8°時(shí)航向角結(jié)果對(duì)比Tab.4 Comparison of heading angle resultswhen the control input is 8°
由仿真結(jié)果可知,在8°航向角的輸入下,BP神經(jīng)網(wǎng)絡(luò)PID控制器比傳統(tǒng)PID的超調(diào)量少了2%,調(diào)節(jié)時(shí)間快了1 s左右。
為了驗(yàn)證系統(tǒng)跟隨性,輸入幅值為1的正弦信號(hào),進(jìn)行仿真分析,結(jié)果如圖11和表5所示。
由圖11和表5可知,在正弦信號(hào)作為輸入信號(hào)的情況下,BP-PID控制的上升時(shí)間比傳統(tǒng)PID的快40 ms,相位誤差比傳統(tǒng)PID少46%左右。
圖11 正弦信號(hào)下航向角曲線Fig.11 The curve of heading angle under sinusoidal signal
表5 控制輸入為正弦信號(hào)結(jié)果對(duì)比Tab.5 A control input of sinusoidal signal result comparison
針對(duì)傳統(tǒng)PID控制器會(huì)造成水下航行器舵機(jī)控制精度不高的問題,提出基于BP神經(jīng)網(wǎng)絡(luò)PID控制器的電機(jī)調(diào)速系統(tǒng),并在算法中引入動(dòng)量項(xiàng),減少了曲線局部震蕩,加速收斂。與傳統(tǒng)PID控制器相比,BP神經(jīng)網(wǎng)絡(luò)PID控制器減少了曲線局部震蕩,加速收斂,具有更好的動(dòng)態(tài)響應(yīng)能力和抗干擾能力。仿真結(jié)果表明,相較于傳統(tǒng)PID控制,永磁同步電機(jī)在BP神經(jīng)網(wǎng)絡(luò)PID的控制下,水下航行器舵機(jī)系統(tǒng)能達(dá)到更好的動(dòng)靜態(tài)性能,對(duì)電機(jī)調(diào)速系統(tǒng)和水下航行器舵機(jī)控制有一定的參考價(jià)值。