內(nèi)容提要:為從AIS中獲取相關(guān)船舶的航行信息,利用接口設(shè)施獲取AIS信息并詳細(xì)分析該信息,掌握船舶航行數(shù)據(jù)的出處。編寫軟件將得到對應(yīng)船舶的航行數(shù)據(jù)轉(zhuǎn)變成船舶航行的平面仿真圖,借助該仿真圖可以進(jìn)行隨意設(shè)定數(shù)量不定且各種航行動態(tài)的船舶,以便于教師講解航海課程,學(xué)生也容易領(lǐng)會其中知識要點。
關(guān)鍵詞:AIS信息 明碼 暗碼 避碰仿真
0引言
上世紀(jì)船舶主要依靠雷達(dá)探測目標(biāo)進(jìn)行導(dǎo)航,并通過VHF交流協(xié)商避碰。在VTS控制的水域,船舶信息是依賴VHF通信才能登記到VTS信息管理數(shù)據(jù)庫中。AIS(自動識別系統(tǒng))不但利于加強(qiáng)船舶間避免碰撞,而且同時還能增強(qiáng)ARPA雷達(dá)、船舶交通管理系統(tǒng)、船舶報告的功能,并且能在電子海圖上顯示船舶可視化的航向、航線、船名等信息,大大改善了海事通信的功能。配備了AIS的船舶在一定范圍內(nèi)可以自動與其它船舶或者VTS控制中心分享其他船舶的動、靜態(tài)等信息。
1 AIS信息
AIS船臺比較常用的信息主要有三類:船舶動態(tài)信息、船舶靜態(tài)信息和航行相關(guān)信息。船舶的動態(tài)信息中包括:航行狀態(tài)、轉(zhuǎn)向率、對地速度、位置精度、經(jīng)度、緯度、對地航向、船首向等。船舶的靜態(tài)信息和航行相關(guān)信息包括:海上移動船舶標(biāo)識號(MMSI)、呼號、船名、船貨類型、天線位置、估計到達(dá)時間(ETA)、目的地、吃水深度等等。如果能從AIS中獲取以上的信息,就能夠在平面上顯示出船舶的動態(tài)情況,在船舶避碰等培訓(xùn)過程中就會顯得比較直觀。
AIS接收機(jī)內(nèi)部分布了多個COM口,傳輸速率有4.8和38.4kbps。PC機(jī)和AIS通過轉(zhuǎn)換設(shè)備(例如MAX232)將其轉(zhuǎn)換為RS232標(biāo)準(zhǔn)數(shù)據(jù),再對接收數(shù)據(jù)進(jìn)行分析就能轉(zhuǎn)換為導(dǎo)航信息。
2 AIS信息分析
AIS在海上是利用VHF來發(fā)送信息,它發(fā)射的信息類型主要有:!AIVDO,!AIVDM,!AIABK,!AIACA,$AITXT,$AIALR,$AISSD,$AIVSD等等。由于AIS系統(tǒng)與各種傳感器互相連接,如:GPS、速度傳感器、角度傳感器等,各種傳感器傳送給AIS的數(shù)據(jù)就提供了各艘船舶的實時信息。AIS串口輸出的信息非常多,限于篇幅僅分析利于仿真設(shè)計的語句,如:
GPZDA,020803.00,13,04,2004*6F
$GPGGA,020803.00,3852.0270,N,12131.2178,E,1,07,1.2,50.3,M,4.4,M,,*62
!AIVDM2,1,3,A,569FoE02<C:@
998"OOOP4U9D000000000000001A7PH5:55=0:QOC2@C,0*16
!AIVDM2,2,3,A,P00000000000000,2*47
AIS碼文分為兩種形式,一種以“$”開始的語句,能直接從消息中讀出包含的信息,稱為“明碼”(Parametric Sentences),主要是傳感器的信息;另一種是以“!”開始的語句,需要通過字符轉(zhuǎn)換和格式定義才能明白其中信息,稱之為“暗碼”(Encapsulation Sentences),包含了船舶航行的重要信息。
2.1明碼語句(Parametric Sentences)
明碼語句是按照NMEA-0183協(xié)議進(jìn)行編寫的,所有字符均為ASCII文本字符。語句都以“$”開頭,緊接著是“會話ID”和“語句ID”,其后才是數(shù)據(jù)體。數(shù)據(jù)字段用逗號分隔,空字段保留逗號,語句末尾是校驗數(shù)據(jù)和兩個十六進(jìn)制數(shù)據(jù)組成,以回車換行結(jié)束語句,具體格式如表1所示。每行語句最多包含82個字符,如果語句長度超出82個字符的話,就要利用暗碼進(jìn)行傳輸。
表1明碼語句格式
標(biāo)志 |
會話與語句ID |
數(shù)據(jù)體 |
填充位數(shù) |
校驗碼 |
明碼主要是傳感器信息,可以方便地提取當(dāng)前的UTC時間和船舶位置。明碼中最有規(guī)律的是GPZDA序列碼,它每秒發(fā)送一次UTC時間,接收到GPZDA字符串就能夠掌握信息發(fā)送時間,獲取UTC時間。
例如分析以下語句:$GPGGA,020621,3041.7285,N,10401.8686,E,1,02,99.99,522.7,M,-32.0,M,,*63<CR><LF>。其中$為明碼的標(biāo)志,GP表示發(fā)信息者為GPS,GGA表示本句發(fā)送的是GPS修正數(shù)據(jù);020621表示UTC時間02時06分21秒,3041.7285表示緯度為30度41.7285分,N表示北緯;10401.8686表示經(jīng)度為104度1.8686分,E表示東經(jīng);1表示GPS狀況,02表示使用2顆衛(wèi)星,99.99為HDOP值;522.7為海拔高度,M代表海拔高度單位為米;-32.0代表Geoidal Separation,后面的M代表該區(qū)域單位是米。部分語句域可以為空,如*號前有兩個逗號表明DGPS沒有數(shù)據(jù);*號后的63為校驗碼,<CR><LF>表示語句結(jié)束。能與AIS相關(guān)的傳感器設(shè)備很多,如:AI:船舶自動識別系統(tǒng);LC:LORAN-C;EP:EPIRB;GP:GPS;GN:GNSS;EI:電子海圖(ECDIS);VR:航海數(shù)據(jù)記錄儀。明碼語句的內(nèi)涵是很豐富的,從明碼語句分析中可以很方便地獲取船舶航行中不同UTC時刻所對應(yīng)的經(jīng)緯度。
2.2暗碼語句(Encapsulation Sentences)
暗碼語句的開頭標(biāo)志是“!”,不但能夠傳送格式不確定的信息,而且還能將較長的信息內(nèi)容分段傳送,數(shù)據(jù)的傳送以“語句”方式進(jìn)行,格式如表2所示。
表2暗碼語句的格式
標(biāo)志 |
會話ID |
語句數(shù) |
語句 序號 |
標(biāo)識號 |
頻道 |
封裝消 息碼文 |
填充 位數(shù) |
校驗碼 |
例如接收如下暗碼消息:!AIVDM,2,1,3,A,569F0E02<C;@998000P4U9D000000000000001
A7PH5:55=0;O0C2@C0*16<CR><LF>。其中!表示暗碼標(biāo)志,五位字符的會話ID:“AIVDM”,說明是通過VHF數(shù)據(jù)鏈路進(jìn)行接收的AIS信息(AIS VHF Data link Message)。當(dāng)把一條長消息分成多條語句進(jìn)行傳輸時,第三項為語句數(shù)表示由多少條語句組成,此處該項為2,說明該消息共由兩條VDM語句組成。第四項是語句序號,表示該語句在序列中的位置;第五項為消息標(biāo)識號。第七項是按ITU-RM.1371定義的封裝消息,如果消息是由多條語句組成,那么在解碼時需要將各條消息提取合并成完整的消息碼文,才能進(jìn)行解碼。第八項是填充位數(shù),最后才是校驗碼和結(jié)束符。
接收暗碼信息之后首先要識別會話ID,因為不同的ID對應(yīng)于不同的解碼格式,其中最重要的是將封裝消息轉(zhuǎn)化ASCII碼信息。
2.3封裝信息
以與船舶航行密切相關(guān)的封裝消息進(jìn)行分析,例如暗碼語句:!AIVDM,1,1,A,1P000Oh1IT1svTP2r:43grwb0Eq4,0*01<CR><LF>。它封裝的消息是“1P000Oh1IT1svTP2r:43grwb0Eq4”,將每位轉(zhuǎn)換為6位二進(jìn)制數(shù)得出如表3的結(jié)果。從暗碼語句的封裝信息分析發(fā)現(xiàn),暗碼包含船舶的識別碼、航向狀態(tài)、航行速度、精確的經(jīng)緯度和UTC時間等等,如果按照時間順序連續(xù)地接收以上信息,就可以推斷出船舶在海上的航行軌跡。
表3封裝消息
信息 |
6位二進(jìn)制數(shù) |
占字符位置和信息的意義 | |||||
1 |
0 |
0 |
0 |
0 |
0 |
1 |
1-6位:信息標(biāo)識符,000001為信息l |
P |
1 |
0 |
0 |
0 |
0 |
0 |
7-8位:重發(fā)指示符:2為信息重發(fā)兩次 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
9-38位:船舶的海上移動識別MMSI號碼 |
0 |
0 |
0 |
0 |
0 |
0 |
0 | |
0 |
0 |
0 |
0 |
0 |
0 | ||
0 |
0 |
1 |
1 |
1 |
1 |
1 | |
h |
1 |
1 |
0 |
0 |
0 |
0 |
39-42位:航行狀態(tài);0在航、1錨泊、3受限 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
43-50位:轉(zhuǎn)向率;00000101 R0T=(5/4.733)2=+1.1度,分鐘 |
I |
0 |
1 |
1 |
0 |
0 |
1 | |
T |
1 |
0 |
0 |
1 |
0 |
0 |
51-60位:對地航速,1001100100表示為612/10=-61.2節(jié) |
1 |
0 |
0 _ |
0 |
0 |
0 |
1 |
61位:為船位精度,0為低精度 |
s |
1 |
1 j |
1 _ l一。 |
0 |
1 隧i |
1 |
62-89位:經(jīng)度/10000,該值為正表示是東經(jīng),16250000/10000=1625分=27度5分 |
v |
1 |
1 |
1 |
1 |
1 |
0 | |
T |
1 |
0 |
0 |
1 |
0 |
0 | |
p |
1 |
0 |
0 |
0 |
0 |
0 | |
2 |
0 |
0 |
0 |
0 |
1 |
90-116位:表示緯度,10000,3050000/10000=305分=5度5分,該值為正表示是北緯 | |
r |
1 |
1 |
1 |
0 |
1 |
0 | |
: |
0 |
0 |
1 |
0 |
1 |
0 | |
4 |
0 |
0 |
0 |
1 |
0 |
0 | |
3 |
0 |
0 |
0 |
0 |
1 |
1 |
117-128位:表示對地航向/10。為95.9度; |
g |
1 |
0 |
1 |
1 |
1 |
1 |
129-137位:船艏向+35l度 |
r |
1 |
1 |
1 |
0 |
1 |
0 |
138-143位:報告UTC時間(秒)110101=53秒 |
w |
1 |
1 |
1 |
1 |
1 |
1 | |
b |
1 |
0 |
1 |
0 |
1 |
0 |
144-147位:地區(qū)管理,0表示:無區(qū)域應(yīng)用 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
149位:RAM狀態(tài),0表示未使用 |
E |
0 |
1 |
0 |
1 |
0 |
1 |
150-155位:S0TDMA通信狀態(tài),0:UTC直接同步。156-168位:1E04=7684;除本臺外接收了7684臺AIS。 |
q |
1 |
1 |
1 |
0 |
0 |
0 | |
4 |
0 |
0 |
0 |
1 |
0 |
0 |
3船舶仿真
分析了AIS傳送的信息就可以發(fā)現(xiàn)它提供的內(nèi)容包含了船舶的動態(tài)和靜態(tài)信息,基本上包含了船舶航行的所有狀態(tài),因此完全可以利用這些數(shù)據(jù)來開發(fā)船舶避碰的航行仿真。
3.1仿真硬件
在開發(fā)船舶航行仿真之前,首先要將AIS的信息傳送到計算機(jī)中,然后才能對其進(jìn)行分析。AIS與計算機(jī)之間的連接如圖1所示。仿真開始之前首先要將PC機(jī)與AIS接收機(jī)的串口連接起來,然后利用單片機(jī)將AIS的串口的數(shù)據(jù)讀出,并將明碼與暗碼數(shù)據(jù)都傳送到PC機(jī)中,PC機(jī)利用軟件處理接收到的信息。
圖1AIS與計算機(jī)數(shù)據(jù)連接
3.2仿真軟件
船舶AIS仿真程序?qū)⒔邮盏降拿鞔a和暗碼都轉(zhuǎn)變成船舶的IM0號、MMSI碼、船名、船舶經(jīng)緯度、時間、對地航速、航向信息、吃水深度、ETA等信息,并將所接收到的船舶數(shù)據(jù)一一對應(yīng)地自動存入PC機(jī)的船舶數(shù)據(jù)庫。本船與人工增加船舶的航行數(shù)據(jù)都是利用增加船舶對話框,按照如表4所述設(shè)定航行信息。增加的新船舶信息需要把整個航程進(jìn)行分段,并為每一個小航行區(qū)間設(shè)定各種狀態(tài),經(jīng)過匯總所有時間段的全部航行數(shù)據(jù),整個航程的每部分航行狀態(tài)就都能表達(dá)清楚;PC機(jī)中的數(shù)據(jù)庫就能包含所有船舶在海上的航行動態(tài)情況,然后根據(jù)每一船舶的航速和航向就可以判斷出與其他船舶之間是否存在碰撞危險。
表4MMSI信息數(shù)據(jù)
起始UTC |
終此UTC |
船位 |
船速 |
航向 |
吃水 |
轉(zhuǎn)向率 |
經(jīng)緯度 |
… |
由于船舶航行動態(tài)情況發(fā)生變化時,AIS發(fā)送信息的頻率也會隨之發(fā)生變化,仿真程序需要采用對應(yīng)的頻率去接收數(shù)據(jù)并存儲在數(shù)據(jù)庫中,并計算出與所有船舶之間的碰撞參數(shù)。因此每一船舶都要設(shè)定自己唯一的航行數(shù)據(jù)表,這樣才不至于互相混淆,也便于程序計算所有船舶之間的碰撞參數(shù)。數(shù)據(jù)庫要求按照時間與速度變化頻率不斷地改變船舶位置,時間的間隔根據(jù)AIS發(fā)送數(shù)據(jù)頻率來設(shè)定(如表5),這樣依據(jù)數(shù)據(jù)庫中任意不同時間對應(yīng)的船舶位置信息就可以在PC機(jī)中顯示所有船舶的航行狀態(tài)。
表5AIS船位報告頻率
船型 |
報告頻率 |
錨泊船 |
1次/3分鐘 |
0-14節(jié)航速的航船 |
1次/12秒 |
航速為0-14節(jié)并且在改變航向的航船 |
1次/4秒 |
14-23節(jié)航速的航船 |
1次/6秒 |
航速為14-23節(jié)并且在改變航向的航船 |
1次/2秒 |
超過23節(jié)航速的航船 |
1次/3秒 |
航速超過23節(jié)并且在改變航向的航船 |
1次/2秒 |
3.3航行仿真
首先要把一臺正在工作的AIS接收機(jī)的串口與PC機(jī)的串口連接,然后才能啟動仿真軟件。仿真軟件運行的第一步應(yīng)該根據(jù)所接收的部分船舶運動狀態(tài)再適當(dāng)?shù)卦黾釉O(shè)置船舶;除了按照AIS所接收到的船舶之外還應(yīng)該設(shè)置本船和另外增加一定數(shù)量的船舶來模擬多船相遇的場景,每一艘船舶都要按照3.2節(jié)所述增加恰當(dāng)?shù)暮叫袛?shù)據(jù)并設(shè)定最小CPA。
仿真程序運行過程中,如果我船航行的相對航向線與其他船舶的最小CPA圓相交時,判斷為緊急狀態(tài),程序立即暫停并為這兩船跳出更改航向或航速的對話框;如果輸入數(shù)據(jù)后他們的CPA大于設(shè)定的Mini CPA,且不會和其他船舶構(gòu)成碰撞危險,則說明這次避碰成功。假如輸入的新航向或新航速不滿足要求,則繼續(xù)跳出更改數(shù)據(jù)的對話框,直到完全讓清為止。如果航行過程發(fā)生如圖2所示的多船與本船存在碰撞危險時,按先急后緩原則,陸續(xù)跳出需要更改航向、航速的對話框。只要我船航行矢量與其他船舶的Mini CPA相交,或者其他船的航行矢量線與我船的Mini CPA相交,程序都會暫停,直到相互讓清后程序才會繼續(xù)進(jìn)行。因為整個過程都與數(shù)據(jù)庫關(guān)聯(lián)著,所以該仿真程序還具有回放功能,如果選擇了我船的某一UTC時間開始運行就進(jìn)入了回放進(jìn)程,程序運行到出現(xiàn)碰撞危險局面為止,此時仍然需要更改船舶航向、航速,軟件才能繼續(xù)運行。
圖2仿真船舶碰撞態(tài)勢
4結(jié)語
仿真是為了讓培訓(xùn)學(xué)員從視覺上感觸當(dāng)船舶在海上航行過程中存在碰撞危險時,結(jié)合避碰規(guī)則所應(yīng)該采取的適當(dāng)行動,這樣才便于學(xué)員理解避碰規(guī)則的各條規(guī)則。該軟件可以很方便地講解部分航海課程,如:船舶操縱、信號、船舶避碰和關(guān)于AIS的課程等。此軟件不足之處是尚未開發(fā)網(wǎng)絡(luò)版仿真軟件,無法讓所有學(xué)員親手操作,只能供教師教學(xué)演示。
作者:福建交通職業(yè)技術(shù)學(xué)院 江衍煊 張詩永 陳福金 陳宏 來源:航海技術(shù)