袁曉宇,黃承義,彭 艷,瞿 棟,劉東柯
(1.上海大學(xué)無人艇工程研究院,上海200444;2.國家海洋局北海海洋工程勘察研究院,山東青島266061;3.上海大學(xué)計算機工程與科學(xué)學(xué)院,上海200444)
作為一種水面無人移動平臺,近年來無人水面艇在海洋資源勘測[1]、環(huán)境監(jiān)視和偵察[2]、災(zāi)后搜索與救援[3]、近岸港口安防[4-5]以及同其他有人、無人系統(tǒng)協(xié)同作業(yè)[3,6]等方面得到了廣泛的應(yīng)用.因此,開展無人水面艇(unmanned surface vehicle,USV)的相關(guān)技術(shù)研究,進一步提高無人水面艇的智能化程度,對提升我國海洋裝備水平具有重要意義.然而,由于①環(huán)境干擾信息(風(fēng)、浪、涌)的不確定性,導(dǎo)致了控制器面臨不可預(yù)測的環(huán)境擾動;②無人水面艇具有非線性和時變性的動力學(xué)特性,并且艇體的轉(zhuǎn)艏模型與其航速高度耦合,這些都對無人水面艇模型參數(shù)的辨識以及基于模型的控制算法的設(shè)計提出了更大的挑戰(zhàn).
圍繞無人水面艇的建模問題,Fossen[7]提出了6自由度無人水面艇動力學(xué)模型,并通過操縱實驗計算了動力學(xué)因子,得到了精確的動力學(xué)模型,并通過實驗驗證了該模型的有效性.但是該動力學(xué)模型相對復(fù)雜,不利于實際工程應(yīng)用.陳霄等[8]提出了一種基于分步實艇數(shù)據(jù)處理的模型參數(shù)辨識算法,詳細設(shè)計了辨識算法的步驟和流程,并通過湖上操縱性試驗獲得模型參數(shù).該方法考慮了無人水面艇操縱模型參數(shù)辨識過程中存在的“參數(shù)相消效應(yīng)”,但沒有進一步研究風(fēng)、浪、流等外界不確定干擾下的無人水面艇模型參數(shù)估計及校正問題.利用Z形和回轉(zhuǎn)實驗獲得的數(shù)據(jù),江立軍等[9]通過遞推最小二乘法辨識出無人水面艇的數(shù)學(xué)模型,并通過仿真與實船實驗的結(jié)果對比,驗證了該模型的準確性和合理性.崔健等[10]通過不同航速和不同舵角下的一系列船模Z形操縱試驗得到了復(fù)合三體船模的操縱模型.以上學(xué)者都采用操縱實驗來獲得無人水面艇模型參數(shù)的方法,也有一些學(xué)者采用簡化版的Nomoto模型進行試驗.Nomoto操舵模型由Nomoto等[11]提出,該模型將舵角和轉(zhuǎn)艏角速度關(guān)聯(lián)起來,得到了一種簡單直接的動力學(xué)模型;Norrbin[12]將非線性因子加入到Nomoto模型中,得到了非線性的Nomoto模型,提高了無人水面艇轉(zhuǎn)艏模型的精度;Velasco等[13]推導(dǎo)出包含運動學(xué)和動力學(xué)的1階Nomoto轉(zhuǎn)艏模型,通過圓形機動實驗對模型參數(shù)進行辨識,并設(shè)計了艏向控制器來進行實驗驗證;Sonnenburg等[14]提出了速度分段辨識的方法,針對無人水面艇在低速時側(cè)滑較大的問題設(shè)計了1階滯后模型(Lag model),而在高速階段由于可以忽略側(cè)滑的影響,故采用1階Nomoto模型.為了獲得更精確的操縱模型,一些學(xué)者則采用優(yōu)化算法來獲取非線性模型.Sharma等[15]采用遺傳算法得到了基于多層感知機(multi-layer perceptron,MLP)、遞歸神經(jīng)網(wǎng)絡(luò)(recurrent neural network,RNN)[16]和徑向基網(wǎng)絡(luò)(radial basis function,RBF)的非線性模型,并通過均方誤差分析和殘差關(guān)聯(lián)分析,得出了基于遞歸神經(jīng)網(wǎng)絡(luò)的模型辨識效果優(yōu)于其他模型的結(jié)論,但是該模型在實際工程應(yīng)用中對算力要求較高.因此,在實際操作中如何兼顧精度和計算資源限制,選擇最優(yōu)的模型辨識方法依然是無人水面艇研究與應(yīng)用中亟待解決的難題.
本工作采用分級辨識思想,分別對舵角和艇體轉(zhuǎn)艏進行了模型辨識,并針對艇體轉(zhuǎn)艏模型和航速高度耦合的問題,提出了在低速、中速和高速段分別進行模型參數(shù)辨識的方法;以上海大學(xué)“精海3號”無人水面艇為對象進行了模型參數(shù)辨識實驗,并設(shè)計了基于規(guī)則表的模糊控制算法,仿真和實驗驗證了中速和高速下所辨識模型的正確性.
由于無人水面艇工作于水面,如果忽略地球曲率影響則可以近似看作平面運動,因此通常使用三自由度平面運動模型來表征無人水面艇的水面航行狀態(tài)(見圖1)[7],三自由度平面坐標為η[x,y,ψ]T∈R3,船體坐標系速度向量為v[u,v,r]R∈R3,其中x、y、ψ分別表示為船體在世界坐標系下的坐標和相對正北的艏向角;u、v、r分別為艇體右舷向、前向速度以及轉(zhuǎn)艏角速度.
在上述簡化配置空間里,北-東-地坐標系下的速度和船體坐標系下的速度轉(zhuǎn)換關(guān)系可以表示為
式中:
圖1 無人水面艇平面運動坐標系Fig.1 Plane motion coordinate system of USV
在船舶操縱過程中,艏向角ψ和艏向角速度r與舵角δ之間的關(guān)系是船舶操縱模型[17],即船舶轉(zhuǎn)艏動力學(xué)模型:
式中:T1、T2為時間常數(shù);K為比例因子.方程(2)也被稱為2階線性KT方程,該方程描述了操舵對船舶轉(zhuǎn)艏的影響.
無人水面艇操縱模型的構(gòu)建通常有2種方法:①采用數(shù)值計算的方法,通過拖曳實驗配合計算流體動力學(xué)(computational fluid dynamics,CFD)[18-19]軟件計算獲得系統(tǒng)模型,這種方法的缺點是需要大量實驗才能獲得完整的動力學(xué)因子;②基于獲得的期望模型的輸入輸出實驗數(shù)據(jù),通過系統(tǒng)辨識處理獲得系統(tǒng)模型,該方法的缺點是獲得的模型只在實驗狀態(tài)下有效,而優(yōu)點是簡單快速,可以較快獲得無人水面艇模型,加快控制算法設(shè)計速度.本工作采用第2種方法,通過對系統(tǒng)進行2級辨識得到系統(tǒng)的操縱模型.
無人水面艇運動控制系統(tǒng)的輸入為舵角值,控制輸出為艏向角速度,其控制過程包含2個階段:①舵角通過液壓執(zhí)行器控制系統(tǒng)輸出實際舵角值,此階段受航速影響較小;②艇體運動系統(tǒng)輸出艏向角速度,此階段和無人水面艇航速高度耦合,需要辨識不同速度下的轉(zhuǎn)艏模型(見圖2).
圖2 系統(tǒng)辨識方案Fig.2 System identification scheme
采用如圖2所示的辨識方案,第一級為辨識液壓轉(zhuǎn)舵系統(tǒng)模型,第二級為辨識艇體轉(zhuǎn)艏運動系統(tǒng)模型.由于艇體動力學(xué)模型參數(shù)受環(huán)境影響較大,因此在不同海況下辨識出來的模型存在較大差異.
本工作采用如式(3)所示的符合度Fit來評價模型的辨識精度[20]:
式中:y為船體實際輸出值;^y為對應(yīng)的模型輸出值;mean(y)為實際輸出值的平均值.通過此定義可以看出,模型符合度越高,Fit值越接近于100%.
本系統(tǒng)辨識以上海大學(xué)“精海3號”無人水面艇[21-22]為研究對象(見圖3),該無人水面艇是小型無人測量艇,其設(shè)計參數(shù)如表1所示.在本次辨識過程中,風(fēng)力為偏北風(fēng)1 m/s,1級海況,浪高0~30 cm.
圖3 “精海3號”無人水面艇Fig.3“Jinghai 3”unmanned surface vehicle
表1 艇體參數(shù)Table 1 Vehicle parameters
液壓轉(zhuǎn)舵系統(tǒng)辨識的輸入是舵角命令值,輸出是舵角實際值,數(shù)據(jù)采集時間為100 s,采集頻率為10 Hz.
辨識采用的輸入輸出數(shù)據(jù)如圖4所示,辨識時采用的模型分別為1、2、3階線性傳遞函數(shù)模型,其辨識結(jié)果如圖5所示.
圖4 液壓轉(zhuǎn)舵系統(tǒng)輸入輸出Fig.4 Input/output of hydraulic steering system
圖5 液壓轉(zhuǎn)舵系統(tǒng)辨識結(jié)果Fig.5 Identification results of hydraulic steering system
表2為液壓操舵辨識結(jié)果.從辨識結(jié)果可以看出,1階傳遞函數(shù)的符合度最低,為70.1%;當使用2階系統(tǒng)辨識時,符合度提高到86.89%;當使用3階系統(tǒng)辨識時,符合度相較于2階系統(tǒng)略有提高,為88.09%.考慮到系統(tǒng)階次越高復(fù)雜度就越大,故采用2階傳遞函數(shù)描述液壓轉(zhuǎn)舵系統(tǒng):
式中:δ為舵角;s為拉普拉斯變量.
表2 液壓操舵系統(tǒng)辨識結(jié)果Table 2 Identification results of hydraulic steering system
艇體運動系統(tǒng)辨識是該辨識架構(gòu)的第二級辨識,辨識的是艏向角速度對應(yīng)于實際舵角的模型.與舵角控制系統(tǒng)不同,艇體運動系統(tǒng)對環(huán)境較敏感,辨識結(jié)果受速度、海況等的影響較大.為此,本工作以速度區(qū)間進行分級,分別辨識了怠速(1~2節(jié))、中速(7~9節(jié))、高速(13~15節(jié))下的轉(zhuǎn)艏模型.
2.3.1 高速轉(zhuǎn)艏辨識
辨識的輸入是舵角實際值,輸出是轉(zhuǎn)艏角速度,數(shù)據(jù)采集時間為100 s,采集頻率10 Hz,輸入輸出情況如圖6所示.
圖6 高速轉(zhuǎn)艏系統(tǒng)辨識輸入輸出Fig.6 Input/output of high speed heading model identification system
轉(zhuǎn)艏系統(tǒng)辨識分別采用了2階傳遞函數(shù)模型、4階ARX自回歸各態(tài)歷經(jīng)(autoregressive exogenous,ARX)模型和非線性ARX模型,辨識結(jié)果如圖7所示.
圖7 高速轉(zhuǎn)艏系統(tǒng)辨識結(jié)果Fig.7 Identification results of high speed heading system
表3 高速轉(zhuǎn)艏系統(tǒng)辨識結(jié)果Table 3 Identification results of high speed heading system
從辨識結(jié)果可以看出,在高速狀態(tài)下2階傳遞函數(shù)模型符合度最高,故轉(zhuǎn)艏系統(tǒng)模型采用2階傳遞函數(shù)模型:
式中:r為艏向角速度.
2.3.2 中速和怠速轉(zhuǎn)艏模型辨識
中速、怠速辨識過程和高速一致,為了保證系統(tǒng)的一致性,本工作均采用2階傳遞函數(shù)模型,結(jié)果如表4所示.
表4 中速和怠速的辨識結(jié)果Table 4 Identification results of medium and low speed
從中速和怠速的辨識結(jié)果可以看出,在中速下獲得的模型符合度可以達到76.76%,但是在怠速下模型符合度只有26.14%,說明在怠速下舵效較差,即在怠速下無法有效控制艏向,因此在后續(xù)仿真和實驗中不對怠速進行討論.
本系統(tǒng)仿真過程如圖8所示.圖中,仿真輸入是期望艏向角,控制器采用基于規(guī)則表的模糊PD控制器,舵角模型和轉(zhuǎn)艏模型采用第2節(jié)辨識得到的模型,再通過積分器得到艏向角信息.這里,ψd為期望艏向角.
圖8 仿真框圖Fig.8 Simulation scheme
本控制器基于規(guī)則表的模糊PD控制器,控制器原理如圖9所示.輸入信息分別為艏向誤差e和誤差變化量Δe,模糊化后采用乘積推理,最后利用中心平均解模糊器進行解模糊.
圖9 模糊控制器Fig.9 Fuzzy controller
模糊化隸屬度函數(shù)為
乘積推理
采用中心平均解模糊器進行反模糊化,得到模糊控制器
式中:uij為規(guī)則表值.模糊規(guī)則表如表5所示.
表5 uij模糊規(guī)則值表Table 5 Table of uij fuzzy rule values
分別對本系統(tǒng)進行鎮(zhèn)定仿真和跟蹤仿真.其中,艏向鎮(zhèn)定仿真是仿真無人水面艇在高速/中速、零初始條件下的受迫響應(yīng),艏向跟蹤仿真是測試零初始條件下的正弦信號激勵的響應(yīng).
3.2.1 艏向鎮(zhèn)定仿真
仿真設(shè)定初始艏向角為0?;輸入期望艏向角90?;仿真時間100 s;采樣頻率10 Hz.仿真結(jié)果如圖10和11所示,定量分析結(jié)果如表6所示.
圖10 高速艏向鎮(zhèn)定仿真Fig.10 High speed heading keeping simulation
圖11 中速艏向鎮(zhèn)定仿真Fig.11 Medium speed heading keeping simulation
表6 艏向鎮(zhèn)定仿真結(jié)果Table 6 Heading keeping simulation result
通過仿真實驗可以得到:在高速下當s期望艏向為90?時,上升時間tr為10.5 s,5%標準調(diào)整時間ts為23.1 s,最大超調(diào)量Mp為7.5%,靜態(tài)偏差e∞為-2.32,控制器輸出的控制量穩(wěn)定在0?,艏向偏差穩(wěn)定在-2.32?;在中速下,系統(tǒng)的上升時間tr為11.3 s,調(diào)整時間ts為30 s,最大超調(diào)量Mp為25.4%,靜態(tài)偏差e∞為-2.3,控制量收斂到0?.
從高速和中速的艏向鎮(zhèn)定仿真可以看出,高速和中速狀態(tài)下無人水面艇均可以成功實現(xiàn)艏向鎮(zhèn)定.高速情況下上升時間、調(diào)整時間和超調(diào)量均最小;中速情況下調(diào)整時間較高速情況下增加了6.9 s,超調(diào)量達到了25.4%.上升時間和調(diào)整時間均快于中速鎮(zhèn)定,而且超調(diào)量高速狀態(tài)遠低于中速狀態(tài),靜態(tài)誤差相似.由于速度越快,無人水面艇的轉(zhuǎn)艏響應(yīng)越快,因此高速情況優(yōu)于中速情況,仿真結(jié)果符合無人水面艇的實際情況.由于靜態(tài)誤差時控制算法沒有引入積分控制,故無法消除靜態(tài)誤差,和模型無關(guān).
3.2.2 艏向跟蹤仿真
艏向跟蹤仿真是仿真系統(tǒng)在零初始條件下在正弦信號激勵下的響應(yīng)行為.本實驗仿真的正弦信號為幅值90,頻率0.02π,周期100 s;仿真時間為100 s,即進行一個周期的仿真,系統(tǒng)采樣頻率10 Hz.仿真結(jié)果如圖12和13所示,定量分析如表7所示.
圖12 高速艏向跟蹤仿真Fig.12 High speed heading tracking simulation
從艏向跟蹤仿真結(jié)果分析可以看出:在高速和中速狀態(tài)下都可以對艏向進行跟蹤.高速時,輸出艏向角能夠完全跟蹤正弦輸入信號,信號平均延遲4.7 s,峰值衰減3.8%;中速時,在一個正弦周期內(nèi),輸出艏向角能夠完全跟蹤正弦輸入信號,信號平均延遲4.3 s,峰值無衰減.這里,二者的跟蹤延遲時間平均在4.7 s和4.3 s,說明在高速和中速狀態(tài)下,該模型的跟蹤性能相差不大.
艏向控制實驗是通過實際海測來驗證控制系統(tǒng)的性能,也通過實際測量來檢驗基于規(guī)則表的模糊PD算法的控制性能.實驗海況1~2級,浪高約30 cm,偏北風(fēng)1~5 m/s.在實驗中,目標艏向為90?,實驗時間100 s,采樣頻率10 Hz,實驗結(jié)果如圖14、15所示,定量分析如表8所示.
圖13 中速艏向跟蹤仿真Fig.13 Medium speed heading tracking simulation
表7 艏向跟蹤仿真結(jié)果Table 7 Heading tracking simulation results
圖14 高速艏向控制實驗Fig.14 High speed heading control experiment
通過實驗分析可以看出,在控制開始后,艇體艏向能夠快速向目標艏向轉(zhuǎn)動,并且最終能夠在目標艏向附近震蕩,這里,震蕩是由于無人水面艇在海里運動時,會受到不確定的風(fēng)、浪、流的影響,這些外界的力作用于無人水面艇上會使其艏向偏離,通過算法控制將艏向糾正,所以實驗數(shù)據(jù)中會發(fā)現(xiàn)艏向角是不收斂的,而是在目標艏向上下震蕩,在實際運行過程中,當艏向在正負10?以內(nèi)震蕩時,船體仍然可以保持良好的直線運行.由于實驗時無法準確控制起始角度,在目標角度都是90?的情況下,高速起始角度0?,而中速起始角度52?,通過比較上升時間和調(diào)整時間可以發(fā)現(xiàn),高速的艏向控制效果優(yōu)于中速時的情況,且和仿真結(jié)果一致,說明該模型可以反映系統(tǒng)性能.但是比較絕對時間可以看到,仿真和實驗結(jié)果還是差異較大,這一方面來自于模型和實際有部分偏差,另一方面是由于實驗時的海況和風(fēng)況在辨識時有區(qū)別.
圖15 中速艏向控制實驗Fig.15 Medium speed heading control experiment
表8 艏向控制實驗結(jié)果Table 8 Heading control experiment result
本工作采用分級辨識的方法分別得到了無人水面艇操舵系統(tǒng)和轉(zhuǎn)艏系統(tǒng)的模型,且為了獲得不同速度下的轉(zhuǎn)艏模型,分別在高速、中速和怠速下進行了轉(zhuǎn)艏模型辨識,通過對比得到了2階傳遞函數(shù)模型,通過仿真和實驗分析得出該模型可以在一定程度上反映無人水面艇的真實情況.因此,分級辨識方法可以快速應(yīng)用于無人水面艇控制系統(tǒng)的設(shè)計和改進,是無人水面艇快速工程化的一個有效方法.后續(xù)工作將在此模型辨識的基礎(chǔ)上,研究模型預(yù)測算法、反步法模型控制算法的設(shè)計和改進.