
基于AIS和GIS的海上風電場船舶監控系統軟件設計
沈思曦;陳元林;安博文;盧學佳
【摘 要】海上船舶進入海上風電場海域后,連接海上風電站的海底電纜可能因過往
船只拋錨、鉤錨而損壞.為此設計一種基于船舶自動識別系統(AIS)和地理信息系統
(GIS)的海上風電場船舶監控系統,將目標船舶顯示在GIS地圖上,對其進行實時監控.
描述系統實現中的若干關鍵技術,包括AIS編解碼與自動發送短消息、警戒區判斷
算法、GIS可視化、地理信息數據庫、多客戶端與消息發布訂閱機制等;并對監測
軟件進行壓力測試,結果表明系統能夠有效顯示、處理船舶信息.
【期刊名稱】《現代計算機(專業版)》
【年(卷),期】2018(000)020
【總頁數】6頁(P91-95,100)
【關鍵詞】AIS;GIS;發布訂閱;MapWinGIS;PostGIS
【作 者】沈思曦;陳元林;安博文;盧學佳
【作者單位】上海海事大學信息工程學院,上海 201306;上海海事大學信息工程學
院,上海 201306;上海海事大學信息工程學院,上海 201306;國網衡水供電公司,衡水
053000
【正文語種】中 文
0 引言
海上風電系統由陸上集控中心、海上升壓站和海上風機組成。陸上集控中心與海上
升壓站之間、海上升壓站與各個風機之間分別用用220kv和35kv的海纜進行串
接。風電場工作人員需要對所有鋪設海纜的海域進行船舶監控,保護海纜不受錨害。
文獻[1]提出了一種單機版的海上船舶監控系統,其能夠對海域內傳播進行有效監
控。文獻[2]在文獻[1]的基礎上提出了基于C/S結構的多客戶端監控系統的想法,
但其只有想法沒有具體的實施方案。文獻[3]將文獻[2]中的想法成功實現,且系統
能夠穩定運行,但文獻[1-3]的系統均只支持單個AIS設備進行數據采集,使得系
統穩定性得不到保障,且其告警系統不夠完善,均只能系統報警而不能向目標船舶
發送告警信息。這些不足點在文獻[4]中被提及,作者提出了一系列方案來完善系
統,但最終只有部分功能完成模擬測試,且系統整體設計沒有完成。本系統完成了
文獻[1-4]中的設計,并對其中部分功能進行補充和優化。
本系統采用的技術主要包括AIS解碼編碼技術、MapWinGIS地圖開發技術、
PostGIS地理信息空間數據庫管理技術、基于分布式數據庫(MySQL)的數據發
布訂閱技術、基于分布式數據庫(MySQL)的配置信息管理技術和多線程技術。
1 需求分析
(1)支持多個AIS設備同時接入
單個AIS設備監測海域的范圍有限,且穩定性較差。因此要求系統支持多個設備
同時接入和動態可配置。
(2)GIS電子海圖形式的表示層
以電子海圖的形式顯示觀測海域、警戒區和海上船舶,使用戶更直觀地了解海上船
舶的航行情況。
(3)多客戶端設計
工程上需要在海上升壓站、陸上集控中心等地點查看監控系統信息,所以系統需滿
足多客戶端同時在線訪問。
(4)船舶告警功能
系統需要有自動告警功能(系統界面彈出告警框并產生警報),并向滯航船舶自動
發送告警信息和向目標船舶手動發送短消息的功能。
(5)歷史信息查詢功能
系統應包含船舶歷史信息和歷史航跡繪制的功能,方便用戶對歷史船舶進行數據查
詢和事故追責。
本系統要求的系統指標如表1所示。
表1 技術指標?
2 系統設計
2.1 硬件框架
硬件設備主要包含AIS設備、服務器和客戶端,其連接框架如圖1所示。
圖1 硬件框架
2.2 軟件結構
本系統軟件結構如圖2所示,包含以下功能模塊:AIS數據采集模塊、AIS數據編
解碼模塊、AIS可視化模塊、預警與報警模塊、AIS數據發送模塊、報表管理模塊、
歷史數據查詢模塊和用戶管理模塊。
3 關鍵技術分析
3.1 AIS信息采集/編解碼模塊
系統中的AIS設備包括A類設備、B類設備和基站。系統通過RS-232串口/RJ-
45網口接收AIS信息并進行解碼。AIS消息的接收和解碼流程如圖3所示。
數據進入串口緩沖區后,服務器對緩沖區數據進行提取解析,解碼信息通過安全隊
列送至服務器處理模塊進行處理;當有消息發送給目標船舶時,服務器處理模塊將
短消息通過安全隊列發送給數據編碼線程進行編碼,再通過串口將編碼數據進行發
送。
圖2 軟件結構
圖3 數據采集/編解碼流程
數據采集模塊會根據系統連接AIS設備的數量設置線程數,每個AIS設備設一個
獨立線程,并通過相應的串口將數據發送至服務器,在服務器收發控制層中進行與
處理。
系統的信息處理主要包括AIS解碼、AIS編碼、基于UDP協議的數據發送。
(1)AIS解碼
本系統嚴格按照ITU-1371[4]標準的規定進行AIS解碼,對于包含多條AIVDM的
信息(如5號報文),系統將對其語句信號和連續消息標識進行識別,將同一組
的多條消息進行自動整合再進行解碼。
(2)AIS編碼
本系統對AIS設備進行二次開發,使得其可以接受上位機的短消息發送指令,具
備向海域船舶自動發送短消息功能。本文自主設計了一套AIS編碼技術,用于短
消息指令編碼和傳輸,其格式為:
$XNMSG,短信 ID,九位碼,短信類型,語句內容*校驗碼
短消息ID:使用三位數字代表所發消息ID
短消息類型:如表2所示。
表2 短消息類型?
校驗碼:取$和*之間的字符串異或校驗,為兩位16進制數。
(3)基于UDP協議的數據收發
系統對客戶端與服務器端之間數據傳輸的實時性要求很高,考慮到UDP協議的無
連接、高速率、占用資源少等一系列優點,系統采用UDP協議而不是TCP協議進
行數據發送,但是UDP存在丟包的問題,不能保證傳輸數據的正確性,為此,系
統在發送端的UDP數據尾部加上校驗碼進行傳輸數據校驗。
3.2 多線程技術
系統中的線程主要分為服務器主線程、數據采集/處理線程、UDP數據發送線程和
UDP數據接收線程。各線程之間相互獨立,互不影響。
服務器主線程主要負責控制用戶界面的控件、加載INI配置文件和開設其它線程的
工作。
數據采集/處理線程的數量與串口數(AIS設備數)一致。系統會根據如表3所示
的INI配置文件,設置AIS設備的數目并自動分配串口數據處理線程,每個串口數
據處理線程分配兩個線程安全隊列,分別用于數據發送和數據接收。
表3 雙機雙客戶端系統INI配置文件?
系統各線程間采用線程安全隊列進行數據傳輸,如圖4所示,在程序中設置一個
輪詢,服務器端發送數據時,各個串口數據處理線程的數據發送安全隊列將依次向
UDP數據發送線程發送數據,不斷循環。避免使用線程鎖時,線程數量過多導致
的數據傳輸效率低下和死鎖的情況。服務器接受數據時,UDP數據接收線程將依
次向各個串口數據處理線程的數據接受安全隊列發送消息,無需等待,提高了系統
的運行速度。
圖4 多線程間數據傳輸流程
3.3 GIS可視化
(1)MapWinGIS
MapWinGIS是一個功能強大的開源GIS平臺,是為小中型GIS應用開發的免費
開源的組件及桌面的集合。本系統使用MapWinGIS實現GIS可視化。GIS可視
化由如圖5所示的四個圖層繪制而成,分別為:海圖圖層、海纜圖層、觀測警戒
圖層和AIS船舶圖層。不同的圖層全部設置在同一坐標系(WGS1984坐標系)
下,使得不同圖層的各個位置在同一個坐標系下疊加并對應起來。
圖5 系統海圖圖層
①海圖圖層
海圖圖層主要功能是為整個系統提供海纜所在海域的地理信息,并將相關海域以地
圖的方式繪制出來。
傳統地圖文件往往只使用一份地圖文件來表示整個地圖,這樣會導致若地圖文件太
小則分辨率低;若地圖文件過大系統運行速度降低。
本系統將多張不同文件格式、不同分辨率的文件疊加在一起,組成一份新的地圖文
件,既解決了地圖分辨率的問題,又提高了系統的運行速率。
海圖圖層是整個系統表示層的基礎,海纜圖層、觀測警戒圖層和AIS圖層均繪制
在該圖層上面。
②海纜圖層
海纜圖層是覆蓋在海圖圖層上的第一張圖層,在該圖層中要顯示海纜的起點、所經
過的坐標和終點,繪制出海纜的形狀。
③觀測警戒圖層
觀測警戒圖層包括觀測區和警區域。警戒區在觀測區內部,其區域形狀均為封閉的
不規則多邊形。
繪制警戒區時,先確定警戒區所有頂點的經緯度坐標,將它們固定在繪制層上,再
將這些頂點依次連接起來。觀測區的設置與警戒區相同,此處不再贅述。
④AIS船舶圖層的繪制
AIS圖層按照坐標信息將船舶顯示到繪制層上,根據船舶的坐標和實際航向進行貼
圖,將船舶的形狀繪制在坐標上。該圖層上的AIS船舶信息會根據數據庫的刷新
進行實時更新。
用戶瀏覽GIS表示層時,可以使用GIS地圖的所有功能,包括對地圖的放大、縮
小、平移,對一些關鍵位置的標記、測距,通過坐標定位等功能,還能單擊目標船
船舶警戒區為閉合區域,將其抽象為具有N個頂點(Xi,Yi)(i=0…N-1)的多
邊形。
設一船舶所在點為(Xp,Yp),向右作一條平行于X軸的射線,通過該射線與該
多邊形的交點數量(記作C)判斷(Xp,Yp)是否在閉合區域內。判斷方法如下:
若(Xp,Yp)在多邊形的邊線或頂點上,則船舶在警戒區域;若不在,定義C%2
為交點數量C對2取余數,進而利用余數的奇偶性進行判斷:
如圖6所示,第一條射線與多邊形交點為2,點在警戒區外;第二條射線與多邊形
交點為4,點在警戒區外;第三條射線與多邊形交點為3,點在警戒區內。
圖6 船舶位置模擬圖
3.4 多客戶端設計
(1)PostGIS地理信息數據庫
PostGIS是一種支持分布式網絡訪問的對象-關系型開源空間信息數據庫。本系統
選用PostGIS地理信息數據庫來存儲電子海圖地理數據信息和警戒區空間數據信
息。
由于系統采用多客戶端設計,客戶端只能通過網絡交互的方法對服務器端進行數據
訪問,無法對服務器端本地文件進行訪問。普通地圖文件以shape格式進行本地
存儲,客戶端無法對其進行有效讀取。選用PostGIS地理信息數據庫可以有效解
決這一問題,對電子海圖地理數據信息進行存儲,使得服務器和客戶端都能夠訪問
當前的地理信息數據,進行信息讀取。
系統設置兩級權限,分別為普通員工和管理員。只有管理員擁有權限對電子海圖數
據信息和警戒區位置、大小信息進行修改。
(2)基于分布式數據庫(MySQL)的數據發布訂閱機制
本系統所有的船舶數據經解碼后將統一存放到在服務器端的MySQL數據庫的數據
表中。服務器端數據處理流程如圖7所示,功能包括船舶數據更新和船舶冗余數
據刪除。
①船舶數據更新
為優化系統設計,減輕數據表的訪問負擔,數據庫中采用數據表與日志表相結合的
方式來處理數據。數據庫船舶數據周期性進行刷新,每5秒刷新一次,刷新完成
后,數據庫將刷新時的時間信息存入日志表中,客戶端不斷訪問日志表。日志表更
新后,客戶端訪問數據表,將船舶數據和PostGIS中的地理數據銜接客戶端,在
電子海圖上顯示出各個船舶當前的位置并將其符號化。
②船舶冗余數據刪除
船舶數據必須具有一定的時效性,在線程中,系統會啟動定時器,定時遍歷船舶信
息,將獲取到的船舶信息的時間與服務器時間進行對比,刪除數據庫中不具有時效
性的船舶進行船舶歷史航跡繪制。
系統客戶端進行歷史航跡繪制時,會從MySQL數據庫中調用船舶歷史信息,在電
子海圖上進行模擬航跡顯示[5-6]。
圖7 數據流處理流程圖
4 系統測試
系統通過測試軟件進行數據源模擬實驗。從現場采集到的AIS報文數據中提取樣
本,將其作為數據源進行壓力測試。設置模擬數據源船舶數量、警戒區同時報警船
舶數量樣本均為系統指標的1.5倍,計算解析出的船舶數量與樣本數量的比值,判
斷其是否達到系統指標。
經過多次測試,實驗結果如表4所示,各項數據均達到系統技術指標要求。
表4 實驗結果?
5 結語
運用上述思路設計的海上風電場船舶監控系統軟件,成功彌補了海上風電場周邊海
域自動監控領域的行業空白。將模塊化設計和多線程技術運用于該軟件設計,不但
提高了系統的擴展性,而且提高了系統的執行效率。該軟件已成功應用于江蘇龍源
蔣家沙海上風電項目,能夠很好地滿足監控要求。
參考文獻:
【相關文獻】
[1]劉信文.基于電子海圖的分布式AIS船舶實時動態監控系統[D].大連海事大學,2012.
[2]魏武財.基于AIS的船舶實時監控系統的研究與實現[D].廈門大學,2008.
[3]李亮.基于GPS/AIS/VHF的船舶實時動態監控系統[D].武漢理工大學,2007.
[4]劉瑜.基于AIS的船舶動態監控及其應用[D].大連海事大學,2008.
[5]ITU-R M.1371-5,在VHF水上移動頻段內使用時分多址的自動識別系統的技術特性,2014-2.
[6]莫紅飛,張勇.AIS數據解碼分析.計算機光盤軟件與應用,2012(6):60-61.
[7]徐鐵,蔡奉君,胡勤友,楊春.基于卡爾曼濾波算法船舶AIS軌跡估計研究[J].現代電子技
術,2014,37(05):97-100+104.
[8]魏照坤.基于AIS的船舶軌跡聚類與應用[D].大連海事大學,2015.
[9]WANG Xiao-ye,ZHANG tion of Multipath Signal Loss for AIS Signals
Transmitted on the Sea Surface[J].Ocean Engineering,2017.
[10]王芹.AIS船舶網絡監測系統應用軟件設計與實現[D].電子科技大學,2010.
[11]林滄.船舶自動化系統網絡監測數據獲取子系統的設計與實現[D].哈爾濱工業大學,2014.
[12]童笑.基于AIS的電子海圖導航系統設計與實現[D].武漢理工大學,2012.

本文發布于:2023-11-25 11:07:07,感謝您對本站的認可!
本文鏈接:http://www.newhan.cn/zhishi/a/1700881628234929.html
版權聲明:本站內容均來自互聯網,僅供演示用,請勿用于商業和其他非法用途。如果侵犯了您的權益請與我們聯系,我們將在24小時內刪除。
本文word下載地址:基于AIS和GIS的海上風電場船舶監控系統軟件設計.doc
本文 PDF 下載地址:基于AIS和GIS的海上風電場船舶監控系統軟件設計.pdf
| 留言與評論(共有 0 條評論) |