王晉鑫 張政
(中船航??萍加邢挢?zé)任公司 北京 100071)
狹窄水域通常指船舶受到水域和水深限制、可航水域較為狹窄,致使船舶操縱受到一定限制的區(qū)域。諸如江河、運(yùn)河、狹窄的海峽、島礁區(qū)、某些分道通航限制水域等。在狹窄水域中,船舶避碰具有以下特點(diǎn)。
(1)空間有限:狹窄水域下船舶的航行空間非常有限,沒(méi)有條件在較遠(yuǎn)的距離采取避碰動(dòng)作,因此需要采取更加謹(jǐn)慎的避碰措施,以避免發(fā)生碰撞事故。(2)船舶密度大:在狹窄水域中,相比于開(kāi)闊水域,船舶之間可能會(huì)非常接近,進(jìn)一步增加了避碰的難度。(3)需要更精準(zhǔn)的操縱:在狹窄水域中,需要對(duì)船舶實(shí)現(xiàn)更精準(zhǔn)地控制,以便能夠精確避讓其他船舶或障礙物。
基于以上特點(diǎn),本文提出一種基于人工勢(shì)場(chǎng)法和模型預(yù)測(cè)控制的船舶智能變速避碰算法。該方法通過(guò)對(duì)周?chē)h(huán)境建模建立人工勢(shì)場(chǎng),結(jié)合模型預(yù)測(cè)控制,根據(jù)《國(guó)際海上避碰規(guī)則》對(duì)船舶避碰規(guī)則和變速的相關(guān)要求,預(yù)測(cè)迭代一定時(shí)間內(nèi)的避碰情況,給出可行的速度值和建議航向。圖1為該算法整體框架圖。
圖1 算法整體框架圖
近年來(lái),國(guó)內(nèi)外學(xué)者在船舶避碰領(lǐng)域通過(guò)對(duì)不同算法的研究,產(chǎn)生了眾多成果。KUWATA 等人[1]采用速度障礙法并融合海事規(guī)則,實(shí)現(xiàn)了無(wú)人艇的自主避障。1986年,KHATIB O[2]首次提出人工勢(shì)場(chǎng)法(Artificial Potential Field,APF),并應(yīng)用于路徑規(guī)劃中。APF方法原理較為簡(jiǎn)單,易于實(shí)現(xiàn),具有計(jì)算速度快的特點(diǎn),在船舶避碰領(lǐng)域有很強(qiáng)的適用性。
在船舶避碰中應(yīng)用人工勢(shì)場(chǎng)法有以下步驟。
1.1.1 構(gòu)建引力場(chǎng)
引力場(chǎng)的作用是可以使船舶沿著最短路徑向目標(biāo)點(diǎn)移動(dòng)。引力大小與距離成反比,即船舶離目標(biāo)點(diǎn)越遠(yuǎn),引力越大;引力常數(shù)則控制了引力的大小。
式(1)中,F(xiàn)att為目標(biāo)點(diǎn)對(duì)本船引力,Katt為引力系數(shù),dog為本船與目標(biāo)點(diǎn)的距離,Pog為單位矢量,方向?yàn)楸敬赶蚰繕?biāo)點(diǎn)。
1.1.2 構(gòu)建斥力場(chǎng)
式(2)中,Krep為斥力系數(shù),d為船舶當(dāng)前位置與障礙物的距離,Robs為障礙物的半徑,d→為船舶當(dāng)前位置與障礙物中心的向量。斥力場(chǎng)的作用是使船舶遠(yuǎn)離障礙物,當(dāng)船舶與障礙物的距離小于障礙物半徑時(shí),斥力會(huì)增大,直到船舶與障礙物的距離等于障礙物半徑時(shí)達(dá)到最大值。斥力場(chǎng)的大小與船舶與障礙物的距離成反比,與障礙物半徑成正比,即船舶離障礙物越近,斥力越大。
1.1.3 計(jì)算合力,得出建議航向
在避碰過(guò)程中,如果存在多個(gè)障礙物,則可以將它們的斥力場(chǎng)疊加,最終的虛擬勢(shì)場(chǎng)是引力場(chǎng)和斥力場(chǎng)的疊加,船舶會(huì)根據(jù)虛擬勢(shì)場(chǎng)的大小和方向做出相應(yīng)的決策,從而避免與障礙物碰撞。
斥力場(chǎng)合力的大小和方向?qū)⑴c引力場(chǎng)合力的大小和方向相互作用,最終形成虛擬勢(shì)場(chǎng),從而實(shí)現(xiàn)船舶的避碰。通過(guò)合力計(jì)算,便可以得到當(dāng)前狀態(tài)下的建議航向。
1.2.1 算法概述
模型預(yù)測(cè)控制(Model Predictive Control,MPC)是一種先進(jìn)的控制方法,它將預(yù)測(cè)模型與最優(yōu)化算法相結(jié)合,通過(guò)預(yù)測(cè)系統(tǒng)的未來(lái)行為來(lái)計(jì)算出最優(yōu)控制動(dòng)作,從而實(shí)現(xiàn)對(duì)系統(tǒng)的控制。在應(yīng)用于船舶避碰時(shí),通過(guò)輸入當(dāng)前船舶狀態(tài)和建議航向以及場(chǎng)景中障礙物、其他船只等環(huán)境參數(shù),模擬預(yù)測(cè)未來(lái)一段時(shí)間內(nèi)的船舶運(yùn)動(dòng)狀態(tài)和周?chē)h(huán)境變化[3]。
1.2.2 模型選取
描述艦船操縱性的運(yùn)動(dòng)模型主要分為以Abkowitz為代表的整體型結(jié)構(gòu)模型、日本拖拽水池委員會(huì)提出的分離型結(jié)構(gòu)模型和20 世紀(jì)50 年代末野本謙作提出的響應(yīng)性模型。響應(yīng)性船舶運(yùn)動(dòng)模型相比于分離型模型或整體型模型,可通過(guò)實(shí)船試驗(yàn)直接獲得,簡(jiǎn)潔且有良好的易用性,實(shí)現(xiàn)尺度效應(yīng)自動(dòng)消除,廣泛應(yīng)用在船舶操縱性研究領(lǐng)域[4]。本文選取的是整體性模型。
1.2.3 評(píng)價(jià)函數(shù)選取
評(píng)價(jià)函數(shù)用于在有限時(shí)域內(nèi)考察當(dāng)前指令下預(yù)測(cè)結(jié)果,從而評(píng)價(jià)指令的可行性,從而實(shí)現(xiàn)優(yōu)化[5]。評(píng)價(jià)函數(shù)需要綜合考慮多個(gè)方面的影響,本文使用的評(píng)價(jià)函數(shù)考察目標(biāo)與本船的TCPA、CPA、與建議航向的偏差和速度變化差值4個(gè)方面。
(1)TCPA評(píng)價(jià)函數(shù)。
式(4)中:TCPAi為第i個(gè)目標(biāo)的TCPA;doi為第i個(gè)目標(biāo)與本船的絕對(duì)距離。當(dāng)TCPA 為負(fù)值或者大于閾值時(shí),不計(jì)入評(píng)價(jià)指數(shù)中。
(2)CPA評(píng)價(jià)函數(shù)。
式(5)中,CPAi為第i個(gè)目標(biāo)的CPA,doi為第i個(gè)目標(biāo)與本船的絕對(duì)距離。當(dāng)CPA 為負(fù)值或者大于閾值時(shí),不計(jì)入評(píng)價(jià)指數(shù)中。
(3)與建議航向偏差評(píng)價(jià)函數(shù)。
式(6)中:K1和K2為方向偏差指標(biāo)常量;COSadv為人工勢(shì)場(chǎng)法傳入的建議航向;COSpre為預(yù)測(cè)推演得到的航向。與建議航向偏差越小,評(píng)價(jià)結(jié)果越高。
(4)與建議航速偏差評(píng)價(jià)函數(shù)。
式(7)中:K3和K4為速度變化指標(biāo)常量;Vcur為本船當(dāng)前的航速;Vpre為預(yù)測(cè)推演得到的航速。為保證船舶的穩(wěn)定行駛,速度改變值越小,評(píng)價(jià)結(jié)果越高。
最終的評(píng)價(jià)函數(shù)為
式(8)中:μTCPA、μCPA、μCdiff和μVdiff分別為T(mén)CPA、CPA、航向偏差和速度變化的評(píng)價(jià)權(quán)重系數(shù),各種權(quán)重系數(shù)的和為1。通過(guò)對(duì)不同方面的評(píng)價(jià)結(jié)果賦予不同的權(quán)重系數(shù),可以在不同情況下生成更合理的評(píng)價(jià)。
模型接收本船信息、他船信息和周?chē)h(huán)境信息,通過(guò)人工勢(shì)場(chǎng)法計(jì)算得到的建議航向初步判斷舵角指令,之后通過(guò)模型推演預(yù)測(cè),計(jì)算得到單次算法執(zhí)行時(shí)間內(nèi)的本船狀態(tài)和周?chē)h(huán)境變化,并計(jì)算評(píng)價(jià)指標(biāo),優(yōu)先迭代舵角指令。設(shè)置評(píng)價(jià)指標(biāo)的閾值,當(dāng)小范圍內(nèi)迭代結(jié)果滿(mǎn)足閾值,則選擇評(píng)價(jià)指標(biāo)最好的參數(shù)進(jìn)行輸出。當(dāng)所有舵角指令無(wú)法達(dá)到評(píng)價(jià)閾值,則迭代推進(jìn)指令,直到滿(mǎn)足閾值并輸出[6-7]。算法整體流程框架詳見(jiàn)圖2。
圖2 算法流程結(jié)構(gòu)圖
本文使用Simulink 對(duì)IEC62065 標(biāo)準(zhǔn)中的給出的一種船型進(jìn)行模擬預(yù)測(cè)仿真[8]。模型參數(shù)如表1所示。
表1 船舶模型參數(shù)表
本船初始狀態(tài)見(jiàn)表2的本船信息表。
表2 本船信息表
他船初始狀態(tài)見(jiàn)表3的他船信息表。
表3 他船信息表
如圖3 顯示,此片狹窄水域中,包含4 艘處于運(yùn)動(dòng)狀態(tài)的他船,目標(biāo)點(diǎn)位于本船90°位置。本船開(kāi)始運(yùn)動(dòng)后,1 號(hào)他船從右舷駛來(lái),本船按照國(guó)際規(guī)則,執(zhí)行右舷避讓操作。在圖4中,本船通過(guò)右轉(zhuǎn)成功避讓1號(hào)船,并繼續(xù)駛向目標(biāo)點(diǎn),之后檢測(cè)到2號(hào)和3號(hào)船,調(diào)整航速航向避開(kāi)上述船只。其次,本船接收4號(hào)船信息:4號(hào)船從本船左舷駛來(lái),按照避碰規(guī)則4號(hào)船應(yīng)做右舷避讓?zhuān)敬蛔霰茏?。?dāng)兩船到本船設(shè)定的緊急避碰范圍內(nèi)如圖5所示,本船辨識(shí)到5號(hào)船并未按照避碰規(guī)則進(jìn)行避讓?zhuān)x擇減速讓4號(hào)船先行通過(guò),之后安全到達(dá)目標(biāo)點(diǎn)位置如圖6所示。
圖3 仿真初始狀態(tài)
圖4 右舷避讓
圖6 仿真結(jié)束
本文首先根據(jù)狹窄水域內(nèi)船舶空間有限、船只密度大,需要精準(zhǔn)操縱的特點(diǎn),提出一種基于人工勢(shì)場(chǎng)法和模型預(yù)測(cè)控制的船舶智能變速避碰算法,并介紹該算法的主要流程和細(xì)節(jié):通過(guò)人工勢(shì)場(chǎng)法計(jì)算出建議航向,并通過(guò)模型預(yù)測(cè)控制對(duì)參數(shù)進(jìn)行迭代,給出合理、安全的操縱建議。最后,通過(guò)仿真模擬,證明本方法的可行性和有效性。