陳志梅,盧瑩斌,邵雪卷,趙志誠
(太原科技大學(xué) 電子信息工程學(xué)院,太原 030024)
在海洋上,深海起重機(jī)船體受海浪、洋流等因素的影響,會(huì)產(chǎn)生升沉、艏搖、橫搖、橫移、縱移、縱搖6個(gè)方向的復(fù)雜自由運(yùn)動(dòng)。這些復(fù)雜的自由運(yùn)動(dòng)會(huì)給深海起重機(jī)正常作業(yè)帶來極大的安全隱患。隨著船舶動(dòng)力定位系統(tǒng)的逐步發(fā)展,船體的艏搖、橫搖、橫移、縱移、縱搖均能夠得到較好的控制。因此,為了進(jìn)一步消除升沉運(yùn)動(dòng)對深海起重機(jī)帶來的不良影響,就需要對深海起重機(jī)進(jìn)行升沉補(bǔ)償。
在對于深海起重機(jī)的模型建立上,文獻(xiàn)[1]對升沉補(bǔ)償系統(tǒng)進(jìn)行了動(dòng)力學(xué)建模,并引入PID控制,采用Simulink與ADAMS對系統(tǒng)進(jìn)行了聯(lián)合仿真。文獻(xiàn)[2]對電驅(qū)動(dòng)絞車型升沉補(bǔ)償系統(tǒng)進(jìn)行了建模與仿真。
在對于深海起重機(jī)升沉補(bǔ)償系統(tǒng)的控制研究上,文獻(xiàn)[3]將模糊PID控制方法與BP網(wǎng)絡(luò)PID控制進(jìn)行了比較,表明BP網(wǎng)絡(luò)PID控制控制效果更佳。與PID控制相比,模型預(yù)測控制(Model Predictive Control-MPC)能顧及不確定性的影響并及時(shí)反饋校正,實(shí)現(xiàn)滾動(dòng)優(yōu)化。文獻(xiàn)[4]將PID控制與模型預(yù)測控制進(jìn)行對比,結(jié)果表明模型預(yù)測控制方法性能優(yōu)于PID控制方法。
由于系統(tǒng)慣性和信號(hào)傳輸?shù)纫蛩氐挠绊?升沉補(bǔ)償系統(tǒng)存在一定的時(shí)延問題。文獻(xiàn)[5-6]針對此問題進(jìn)行了研究。
對于深海起重機(jī)這種在復(fù)雜環(huán)境下工作的系統(tǒng)來說,精確的數(shù)學(xué)模型是很難建立的。與傳統(tǒng)預(yù)測方法相比,神經(jīng)網(wǎng)絡(luò)無需對被控制對象進(jìn)行精確建模,并且能很好地適應(yīng)各種復(fù)雜的環(huán)境,見文獻(xiàn)[7-10]的研究。
雖然對于深海起重機(jī)升沉補(bǔ)償?shù)难芯恳呀?jīng)取得了豐碩成果,但傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)的訓(xùn)練速度緩慢,預(yù)測精度不高。LSTM網(wǎng)絡(luò)具有時(shí)序記憶功能,具有較好的預(yù)測精度,見文獻(xiàn)[11-12]的研究。傳統(tǒng)LSTM網(wǎng)絡(luò)存在求解梯度緩慢的問題,而CNN網(wǎng)絡(luò)具有對數(shù)據(jù)進(jìn)行特征提取的功能,可以減少網(wǎng)絡(luò)中的數(shù)據(jù)量,加快網(wǎng)絡(luò)的訓(xùn)練速度。
因此,本文在LSTM網(wǎng)絡(luò)的基礎(chǔ)上,利用CNN的特征提取功能減小網(wǎng)路的訓(xùn)練壓力,設(shè)計(jì)了CNN-LSTM深度學(xué)習(xí)網(wǎng)絡(luò)預(yù)測模型。
深海起重機(jī)升沉補(bǔ)償系統(tǒng)主要由絞車,復(fù)合式液壓缸,電液比例換向閥等元件組成。文獻(xiàn)[13]設(shè)計(jì)的升沉補(bǔ)償系統(tǒng),如圖1所示:
圖1 深海起重機(jī)升沉補(bǔ)償系統(tǒng)原理圖
此升沉補(bǔ)償系統(tǒng)的原理為:纜繩的一端與絞車相連,另一端與負(fù)載相連。在圖1的復(fù)合液壓缸中,左側(cè)為被動(dòng)液壓缸,右側(cè)為主動(dòng)液壓缸,其中,主動(dòng)液壓缸可通過電液比例換向閥控制其伸縮。為了彌補(bǔ)復(fù)合液壓缸行程的不足,纜繩在動(dòng)滑輪組與靜滑輪組之間纏繞兩圈,使得液壓缸行程進(jìn)行了四倍放大。假定絞車不旋轉(zhuǎn),當(dāng)海浪運(yùn)動(dòng)引起船體上升時(shí),負(fù)載就會(huì)跟隨船體上升。此時(shí)可以通過控制主動(dòng)液壓缸減小動(dòng)滑輪組與靜滑輪組之間的距離,使得負(fù)載位置保持不變。同理,當(dāng)海浪運(yùn)動(dòng)引起船體下降時(shí),控制主動(dòng)液壓缸增大動(dòng)滑輪組與靜滑輪組之間的距離即可。
深海起重機(jī)升沉補(bǔ)償系統(tǒng)的位移關(guān)系可表示為:
(1)
對負(fù)載與復(fù)合液壓缸進(jìn)行受力分析,可得:
T-Mtg=Mt(d2y/dt2)
(2)
(3)
其中,T為纜繩的拉力,Mt為負(fù)載質(zhì)量,g為重力加速度。Pc為被動(dòng)液壓缸的油壓,A1為被動(dòng)液壓缸活塞的面積,A2為主動(dòng)缸的面積,PL為主動(dòng)液壓缸的油壓,Mb為復(fù)合液壓缸活塞桿的質(zhì)量,Bk為液壓油粘性阻尼系數(shù)。
對蓄能器進(jìn)行分析,可得:
P=P0V0/V
(4)
其中,P0為蓄能器內(nèi)部的初始壓力,V0為蓄能器內(nèi)的初始?xì)怏w體積,P為升沉補(bǔ)償系統(tǒng)工作時(shí)氣體的壓力,V為升沉補(bǔ)償系統(tǒng)工作時(shí)氣體的體積。
此外,體積變化量ΔV=ybA1,可得:
V=V0+ybA1
(5)
因?yàn)閂相對于V0變化很小。因此,在式(4)中,將P視為因變量,V視為自變量,在V0處對V進(jìn)行泰勒展開,可得:
P=2P0-(P0/V0)V
(6)
在初始狀態(tài)下,系統(tǒng)處于受力平衡狀態(tài),蓄能器的氣體壓力與復(fù)合液壓缸活塞桿重力跟纜繩拉力的的四倍之和相等,纜繩拉力與負(fù)載重力相等,可得:
P0A1=4Mtg+Mbg
(7)
此外,為了增強(qiáng)升沉補(bǔ)償系統(tǒng)的阻尼作用,需要在油路中串入a個(gè)節(jié)流閥,可得:
(8)
(9)
其中,q為節(jié)流閥的流量特性,d為節(jié)流閥閥孔直徑,l為閥孔的長度,μ為油液粘性系數(shù),ΔP為節(jié)流閥兩端液壓差,P為蓄能器內(nèi)部氣體壓力,Pc指的是被動(dòng)液壓缸內(nèi)部油壓,hc=128aμl/(πd4).
主動(dòng)液壓缸流量連續(xù)方程為:
QL=A2(dyb/dt)+[Vt/(4βe)]dPL/dt
(10)
其中,QL為主動(dòng)缸的負(fù)載流量,Vt為主動(dòng)缸的內(nèi)部體積,βe為有效體積彈性模量。
將電液比例換向閥簡化為一個(gè)比例環(huán)節(jié),得:
(11)
其中,Ps為供油油壓,I為電液比例換向閥控制輸入。
聯(lián)立式(1)-式(11),得其深海起重機(jī)升沉補(bǔ)償系統(tǒng)動(dòng)力學(xué)模型為:
y(s)=
I(s)+
ys(s)
(12)
其中,I(s)部分表示電液比例換向閥輸入電流對負(fù)載位移產(chǎn)生的影響??芍?可以通過控制電液比例換向閥輸入電流,進(jìn)而控制負(fù)載的位移,實(shí)現(xiàn)升沉補(bǔ)償;ys(s)部分表示船體升沉運(yùn)動(dòng)對負(fù)載位移產(chǎn)生的影響,為系統(tǒng)的干擾。
1.2.1 海浪的數(shù)值模擬
為了對海浪進(jìn)行數(shù)值模擬,將海浪視為具有不同初相位與頻率的余弦波的疊加,可得:
(13)
其中,ξ為海浪某固定位置x相對于靜止水面的海浪高度;ai為各個(gè)余弦波的振幅;ωi為各個(gè)余弦波的角速度;εi為各個(gè)余弦波的初相。
海浪譜S(ω)是隨機(jī)海浪能量密度相對于組成波頻率的分布函數(shù),海浪頻譜與余弦波振幅ai的關(guān)系為:
(14)
本文采用PM譜作為海浪譜,其譜函數(shù)為:
(15)
其中,H1/3代表有義波高。
1.2.2 船體升沉運(yùn)動(dòng)
一般情況下,船體升沉運(yùn)動(dòng)由海浪引起,船體升沉運(yùn)動(dòng)與海浪具有相同的頻率。通常情況下,將船體升沉運(yùn)動(dòng)看作海浪乘以一定的比例系數(shù),可得:
ys(t)=μyh(t)
(16)
其中,yh(t)為海浪相對于靜止水面的海浪高度。ys(t)為船體的升沉位移。μ為船體升沉運(yùn)動(dòng)與海浪的比例系數(shù)。
由深海起重機(jī)動(dòng)力學(xué)模型可知,升沉補(bǔ)償系統(tǒng)的控制輸入為電液比例換向閥的輸入電流I(在本節(jié)用u表示);輸出為負(fù)載位移y.由CNN-LSTM(Convolutional Neural Network-Long-Short Term Memory)深度學(xué)習(xí)網(wǎng)絡(luò)建立深海起重機(jī)升沉補(bǔ)償系統(tǒng)預(yù)測模型:
yn(k+1)=g[y(k),…,y(k-n+1),
u(k),…,u(k-m+1)]
(17)
其中,n為預(yù)測模型輸出量階數(shù),m為預(yù)測模型輸入量階數(shù),yn為網(wǎng)絡(luò)預(yù)測值,u(k)、y(k)分別為系統(tǒng)k時(shí)刻的輸入輸出數(shù)據(jù)。
本文對建立好的深海起重機(jī)升沉補(bǔ)償系統(tǒng)模型進(jìn)行仿真,得到20 000組系統(tǒng)的輸入輸出數(shù)據(jù)。并將數(shù)據(jù)按照9:1的比例劃分為訓(xùn)練集與測試集。將本文建立的CNN-LSTM深度學(xué)習(xí)網(wǎng)絡(luò)預(yù)測模型與RBF網(wǎng)絡(luò)預(yù)測模型的預(yù)測結(jié)果進(jìn)行對比,預(yù)測誤差如表1所示:
表1 起重機(jī)負(fù)載位移預(yù)測誤差對比
由表可知,相比于RBF神經(jīng)網(wǎng)絡(luò),本文建立的CNN-LSTM深度學(xué)習(xí)網(wǎng)絡(luò)預(yù)測精度更高。
為了對系統(tǒng)輸出進(jìn)行P步預(yù)測,需要利用CNN-LSTM深度學(xué)習(xí)網(wǎng)絡(luò)對系統(tǒng)輸出進(jìn)行遞推預(yù)測,遞推公式可以表示為:
(18)
其中,y(k)為k時(shí)刻負(fù)載位移,yn(k+1)為深度學(xué)習(xí)網(wǎng)絡(luò)預(yù)測的k+1時(shí)刻負(fù)載位移。其中,由于y(k+1)~y(k+P-1)在k時(shí)刻未知,可用CNN-LSTM深度學(xué)習(xí)網(wǎng)絡(luò)對負(fù)載位移的預(yù)測值yn(k+1)~yn(k+P-1)代替。
2.2.1 滑模面建立
定義系統(tǒng)誤差:
e(k)=yr(k)-y(k)
(19)
其中,y(k)為k時(shí)刻負(fù)載的實(shí)際位移,yr(k)為k時(shí)刻負(fù)載的期望位移。
定義滑模面為:
s(k)=Ce(k)
(20)
其中,C為適維矩陣。
2.2.2 滑模面參考軌跡
由預(yù)測控制理論可知,滑模面s(k)需要跟隨一條滑模參考軌跡sr(k).為了保證良好的控制性能,本文采用冪次趨近律[14]設(shè)計(jì)滑模參考軌跡。冪次函數(shù)可表示為:
(21)
其中,0<α<1,0<δ<1.
滑模面參考軌跡為:
(22)
為了減小起重機(jī)負(fù)載位移預(yù)測誤差,本文在預(yù)測k+1時(shí)刻系統(tǒng)輸出位移時(shí),通過引入k時(shí)刻的負(fù)載實(shí)際位移與預(yù)測位移誤差,對k+1時(shí)刻的系統(tǒng)輸出位移預(yù)測值進(jìn)行修正。可得:
yp(k+1)=yn(k+1)+hie(k)
(23)
其中,yp為修正后系統(tǒng)預(yù)測位移,hi為誤差修正系數(shù)。
2.4.1 性能指標(biāo)
定義:
Sp(k+1)=[sp(k+1),sp(k+2),…,sp(k+P)]T
Sr(k+1)=[sr(k+1),sr(k+2),…,sr(k+P)]T
Yr(k+1)=[yr(k+1),yr(k+2),…,yr(k+P)]T
Yn(k+1)=[yn(k+1),yn(k+2),…,yn(k+P)]T
U(k)=[u(k),u(k+1),…,u(k+P-1)]T
Q=diag[Q1,Q2,…,QP]
其中,P為預(yù)測步長,Sp(k+1)為滑模面預(yù)測值向量,Sr(k+1)為滑模面參考值向量,Yr(k+1)為負(fù)載的期望位移向量,Yn(k+1)為負(fù)載位移的預(yù)測值向量,U(k)為k時(shí)刻系統(tǒng)的控制律,Q為跟蹤誤差加權(quán)系數(shù)矩陣。
為了保證系統(tǒng)控制系統(tǒng)具有良好控制性能,本文設(shè)計(jì)如下性能指標(biāo):
J=[Sp(k+1)-Sr(k+1)]T
Q[Sp(k+1)-Sr(k+1)]
(24)
2.4.2 粒子群算法(PSO)滾動(dòng)優(yōu)化
PSO算法,就是根據(jù)粒子搜尋規(guī)則,在規(guī)定范圍內(nèi)搜尋使得適應(yīng)度函數(shù)的適應(yīng)度最佳的粒子位置。本文取性能指標(biāo)J作為PSO算法的適應(yīng)度函數(shù)。控制律U(k)作為粒子群中粒子的位置。設(shè)預(yù)測步長為P,則U(k)為P維列向量,取粒子搜尋的空間維數(shù)D=P.
根據(jù)PSO算法進(jìn)行滾動(dòng)優(yōu)化,獲得系統(tǒng)最優(yōu)控制律U(k).則控制器在k時(shí)刻的控制律輸出為:
u(k)=[1,0,…,0]U(k)
(25)
選取預(yù)測步長P=6,控制步長N=3.因此,本文CNN-LSTM深度學(xué)習(xí)網(wǎng)路輸入維度為9,CNN-LSTM深度學(xué)習(xí)網(wǎng)路輸出維度為1.滑模面系數(shù)矩陣取C=[200,20,1,1,1,1],跟蹤誤差加權(quán)系數(shù)矩陣取Q=4·I,誤差校正系數(shù)hi取1.在四級海況下,負(fù)載為2T,取參考位移yr為單位階躍信號(hào),將本文控制方法與PID控制、傳統(tǒng)模型預(yù)測控制進(jìn)行比較,結(jié)果如圖2所示:
圖2 階躍信號(hào)跟蹤
圖3 4級海浪下船體位移與負(fù)載實(shí)際位移
圖4 5級海浪下船體位移與負(fù)載實(shí)際位移
圖5 6級海浪下船體位移與負(fù)載實(shí)際位移
三種控制方法控制結(jié)果可總結(jié)為表2:
表2 階躍跟蹤性能比較
由表2可知,本文的控制方法與PID控制、模型預(yù)測控制相比,性能更為優(yōu)越,能更好地跟蹤參考位移。
取負(fù)載為4T,參考位移yr為始終為0時(shí),得系統(tǒng)在不同海浪下的船體升沉位移與加入控制器后的負(fù)載實(shí)際位移,并將其與傳統(tǒng)模型預(yù)測控制相比較,可得:
由表3可知,與傳統(tǒng)模型預(yù)測控制相比,本文設(shè)計(jì)的滑模預(yù)測控制方法在不同海況下的補(bǔ)償精度更高,精度可達(dá)97%以上。
表3 升沉補(bǔ)償精度表
本文設(shè)計(jì)的基于CNN-LSTM深度學(xué)習(xí)網(wǎng)絡(luò)的滑模預(yù)測控制方法。采用CNN-LSTM深度學(xué)習(xí)網(wǎng)絡(luò)作為預(yù)測模型;將滑??刂婆c模型預(yù)測控制相結(jié)合,根據(jù)參考位移與實(shí)際位移的誤差建立了滑模面,并設(shè)計(jì)了滑模面參考軌跡;最后采用了粒子群算法對性能指標(biāo)進(jìn)行尋優(yōu)。最終通過分析仿真結(jié)果,可以得出以下結(jié)論:
(1)與RBF神經(jīng)網(wǎng)絡(luò)相比,本文所采用的CNN-LSTM深度學(xué)習(xí)網(wǎng)絡(luò)的預(yù)測精度更高。
(2)與PID控制,傳統(tǒng)模型預(yù)測控制相比,本文的滑模預(yù)測控制方法超調(diào)量更小,調(diào)整時(shí)間更短。
(3)與傳統(tǒng)模型預(yù)測控制相比,本文的滑模預(yù)測控制方法在同一海況下補(bǔ)償精度更高,在不同海況下的魯棒性更強(qiáng)。