基于B/S 架构的航海雷达仿真系统设计与实现*

2022-09-14 08:22任鸿翔
火力与指挥控制 2022年7期
关键词:杂波多边形雷达

李 业,任鸿翔,郑 君

(1.大连海事大学航海学院,辽宁 大连 116026;2.长江引航中心江阴引航站,江苏 江阴 214400)

0 引言

航海雷达,是船舶航行时必不可少的导航设备,在船舶避碰中的地位不可替代。国际海事组织(international maritime organization,IMO)对船舶导航雷达的装备和规范使用作了具体规定。因此,对海员的雷达培训显得尤为重要。培训实践中,真实雷达价格昂贵、维护成本高,且受设备型号、航区和天气环境等条件限制。因此,价格低廉、灵活多变的雷达模拟器,被广泛运用于雷达实操训练。自20 世纪60 年代以来,世界各国先后开发出多种不同性能的雷达模拟器,如挪威Kongsberg 公司研制的功能完备的Polaris 型模拟器及国内大连海事大学研制的V.Dragon 型模拟器等。目前,已有雷达模拟器以C/S(Client/Server,客户机/服务器)架构为主,运行于局域网中PC 硬件上,系统兼容性差、维护成本高,限制了用户使用时间与空间。

浏览器/ 服务器(browser/server,B/S)架构作为WEB 兴起后的一种功能强大的网络架构模式,可以进行信息分布式处理,有效降低资源成本,提高系统性能。该模式统一了客户端,用户只需安装浏览器即可,而将应用逻辑集中在服务器和中间件上,简化了系统的开发、维护和使用,提高了数据处理性能。鉴于B/S 架构的优点和传统系统仿真依赖于真机受时间、空间和硬件成本限制较大的缺点,基于B/S 架构的系统仿真技术应运而生,且日渐成熟。

2020 年新冠肺炎疫情爆发,对航海教育冲击巨大。虽然理论课程教学可通过远程教学软件开展,但对于雷达实操培训这类实践性较强的航海类实操培训而言,迫切需要一款能进行线上实操训练的模拟软件。鉴此,本文以JRC-JMA-9100 系列雷达为仿真对象,设计了一种基于B/S 架构的航海雷达仿真系统。面向未来,教学单位和学员可通过PC、平板或手机,线上访问并使用该系统,免受时间和空间限制,大大提升教学和学习效率,真正做到“停课不停教、不停学”。

1 系统设计

1.1 系统整体结构设计

航海雷达仿真系统基于B/S 架构设计,将系统分为表示层、逻辑层和数据层。表示层用于接受用户的输入和向用户输出,为用户提供一种交互式操作界面。逻辑层是表示层和数据层之间的桥梁,提供所有的业务逻辑处理功能,整个系统中对数据库的操作都将在这一层中完成。数据层主要实现对数据的增、删、改、查,将存储在数据库中的数据提交给逻辑层,同时将逻辑层处理的数据保存到数据库。3 层结构的设计具有“高内聚,低耦合”的特点,实现系统前后端分离,前端主要负责展示与交互,后端主要负责逻辑处理和复杂数据计算。前端采用标准的浏览器形式,界面由HTML5(超文本标记语言)、CSS(层叠样式表)、JavaScript 语言实现,其中,HTML 决定仿真界面的结构和内容、CSS 决定仿真界面的表现样式、JavaScript 控制仿真界面的行为。后端运行系统为WindowsServer 2012,采用Tomcat作为WEB 应用服务器,选择MySQL 数据库作为数据存储仓库。系统总体框架如图1 所示。

图1 仿真雷达系统设计

1.2 系统功能模块设计

本文提出的航海雷达仿真系统的功能主要包括3 个部分,即雷达操作界面模拟、雷达回波模拟和符号模拟。

1)操作界面模拟。本文通过走访调研,选取了市场占有率较高的JRC-JMA-9100 型船舶导航雷达作为仿真对象。使用HTML5、CSS、JavaScript 语言实现了对真机操作界面的模拟。模拟界面使用HTML5 和CSS 中路径裁剪与分层的技术方法,将杂波、岸线回波、符号、操作界面分层叠加显示。这种模式可较好地实现回波图像和各符号的分层显示及相关功能的模拟。

2)雷达回波模拟。回波的生成与显示是仿真系统的最关键技术,主要包括岸线、杂波、目标船、雷康、尾迹等回波的生成与显示。本文从S-57 数据中提取原始岸线数据,为提高绘制效率,使用数据抽稀、集中绘制等手段处理回波数据,并使用HTML5中Canvas 画布呈现回波;使用CSS 中路径裁剪方法扇形裁剪双层透明杂波图像模拟雷达杂波的径向圆周扫描;通过对历史回波数据进行分类、记录、提取、转换等操作,实现对尾迹的模拟。最后将雷达回波、杂波与尾迹叠加显示,从而最终实现雷达回波的模拟。

3)符号模拟。符号模拟主要包括刻度符号和目标符号的模拟。雷达刻度符号主要包括刻度圈、活动/固定距标圈、电子方位线、平行索引线、船首线等,目标符号主要包括AIS 目标与跟踪目标标识。鉴于刻度符号与目标符号可交互的特点,将刻度、目标符号与回波分层显示,其中符号层至于回波层之上。符号层中使用Canvas 画布完成刻度符号的实时绘制,使用自定义控件完成目标符号的模拟。

2 相关算法

2.1 回波数据提取与简化

2.1.1 回波数据的提取

本文利用GDAL/OGR 库(一个在X/MIT 许可协议下的开源矢量和栅格空间数据转换库,其利用抽象数据模型来表达所支持的各种文件格式,以下简称为GDAL)从S-57 海图文件中提取生成雷达仿真回波数据,并将提取数据存入后端MySQL 数据库以供仿真程序使用。

GDAL 处理S-57 文件,将读取的所有要素根据其所属物标类型分配给对应的图层,图层下有要素,要素下面有字段和几何对象,要素属性从字段中获取,要素的几何形状从几何对象中获取。典型的S-57 数据图层超过100 层,但并非所有图层均是仿真回波所需的,从中选取LNDARE、LIGHT、BRIDGE、M_NSYS、M_COVR 等图层,导出其几何要素,作为原始仿真数据。原始仿真数据中存在海图边界线,而边界线是无用的雷达回波数据,会影响后续仿真回波显示,需对其进行裁剪。海上浮标制度(M_NSYS)图层含有海图边界数据,从中提取边界数据将其构成几何多边形,然后对回波数据进行筛选,只对落在多边形以内的数据进行保留,进而删除海图边界线。

本文采用射线法判断点是否在多边形内部,即从一点做一条射线,计算它跟多边形边界的交点个数,如果交点个数为奇数,那么该点在多边形内部,否则点在多边形外部。如图2 所示P为内部点,Q为外部点,n 为通过边界次数。

图2 射线法判断点在多边形内部

为了便于计算,通过求水平射线与多边形边的交点个数,判断点是否在多边形内部。当采用水平射线时,多边形某水平边不参与测试,且当测试点纵坐标比多边形某边的纵坐标都小或都大,那么它们的交点一定在边的延长线。综上所述,具体计算过程如算法1 所示。筛选好的数据依据其图层分为点数据(包括浮标、雷康数据)和非点数据(岸线、桥梁等)。点数据以“经度、纬度、浮筒类型或雷康莫尔斯码”格式存储,非点数据以“经度最大、经度最小、纬度最大、纬度最小、点1、点2….”格式存储。

2.2.2 回波数据的简化

从海图中提取的岸线数据如果不作简化直接使用,会存在严重的效率问题,回波的计算与绘制会因数据量过大而效率下降,因此,需要对原始岸线数据进行抽稀处理。本文采用道格拉斯-普克算法(ramer-douglas-peucker,RDP)简化岸线数据,算法的具体过程如下:

将一段岸线数据的首尾点虚连一条直线,求中间各点与直线的距离,并找出距离最大值,用最大值与阈值比较:若最大值小于阈值,这条折线上的中间点全部舍去;若最大值大于阈值,保留最大值对应的坐标点,并以该点为界,把折线分为两部分,对这两部分重复使用该方法。具体流程如图3所示。

图3 RDP 算法图解

算法中阈值的取值十分重要:阈值过大,大量点被剔除,易造成形状失真;阈值过小,只有少量点被简化,抽稀不明显。然而所有数据共用一个阈值或者人工给每一段数据单独设定一个阈值都是不合适的。为此本文提出使用岸线距离均值作为阈值,改进原有算法,具体流程为:将每段岸线原始数据的第1 个、第3 个点虚连一条直线,求第2 个点与直线的距离,存入数组。然后,第2 个、第4 个点虚连一条直线,求第3 个点与直线的距离,存入数组。以此类推,分别求取每段数据中相关点与虚连直线的距离,并存入数组。最后,求取数组的平均值,即岸线距离均值作为阈值。

2.2 回波生成

2.2.1 岸线回波的模拟

雷达仿真图象包括岸线回波、运动目标回波、固定物标回波、假回波、杂波、盲区、SART、雷康、尾迹等的模拟。除杂波外,本文采用圆周扫描方式生成回波数据,并存储回波数据,最后使用HTML5 的Canvas 画布集中绘制回波,具体步骤如下所示。

首先采用圆周扫描方式,求出某一角度扫描线与目标线段的交点,由交点向目标内侧沿扫描线方向延伸,延伸线段的长度随机,从而得到相应回波数据。扫描线与目标线段求交算法原理如图4 所示。

图4 扫描线与岸线求交算法

设l 为岸线数据中任一线段,r 为某一时刻的径向扫描线段。将扫描线段与岸线线段的端点分别看成4 个向量r、r、l、l,根据向量运算可知

线段l、r 参数方程为

其中,参数t、u 取值[0,1]。

两条线段相交具有如下关系:

将上式两边同时叉乘r,得到

由于r×r=0,可得

解出参数

同理,解出参数

当0≤t≤1,且0≤u≤1 时,两线段有交点,交点l坐标为l+tl。

当扫描线间隔为0.1°,扫描一周将产生3 600条扫描线,为提高绘制效率和方便后续回波处理,通过扫描求交产生的回波,并不立即进行绘制,每10 条扫描线为一个集合M 进行存储。重绘扫描区域后,使用Canvas 绘制回波集合M。

2.2.2 杂波的模拟

雷达杂波一般回波较小且成点状,分布随机。很难使用扫描线求交算法进行模拟,如果缺乏扫描过程直接生成杂波,逼真度将大为降低。为此本文使用层叠样式表CSS 中clip-path 属性扇形裁剪双层透明杂波图像来模拟雷达杂波的径向圆周扫描。

先依据各杂波特性分别采用瑞利分布、韦伯分布、正态分布、均匀分布等模型建立杂波分布模型,依据模型产生杂波粒子。然后通过Canvas 创建一空白透明位图,将每个杂波粒子对应于位图上相应像素点并设置颜色,从而形成杂波图像。最后,依据杂波裁剪原则进行裁剪,具体过程为:将杂波图像分为a、b 两层,初始状态a 生成回波。然后构建以本船位置为中心,扫描线长度为半径,0°为起始角度、扫描线角度为终止角度的扇形Fa 和以扫描线角度为起始角度、360°为终止角度的扇形Fb。以Fa和Fb 为裁剪图形分别对a 和b 层图像进行路径裁剪。随着扫描线角度的不断变化,裁剪不断进行,从而实现杂波径向圆周扫描的效果。当扫描线角度达到360°时,b 层回波生成,然后a 与b 互换裁剪图形,重复以上步骤。具体流程如图5 所示。

图5 杂波的生成与显示流程图

2.2.3 尾迹的模拟

尾迹是船舶雷达回波图像的重要组成部分,在船舶运动态势判断和船舶避碰中发挥着重要作用。因此,尾迹的模拟一直是雷达仿真中的重点,同时也是难点。本文通过对雷达历史回波数据进行分类、记录、提取、转换等操作,较好地实现对尾迹的模拟。具体模拟流程如下所示。

Step 1 将圆周扫描(扫描周期3 s)所得回波数据按照静止回波(包括岸线、固定物标、雷康等)、运动回波(包括运动目标回波、假回波)分类,每周期一次分别存入记录集S、T 中,并每周期一次记录本船坐标于集合O 中。最大记录数1 200 次,如超过最大长度,按照“先入先出”原则移除最先存入部分;

Step 2 根据设置的尾迹时间长度确定待显示尾迹记录数N。根据雷达运动模式和尾迹显示模式,确定是否需要显示静止回波尾迹,从记录集S(如需要)和T 中由后向前依次读取N 个记录,记录集中记录数不足N 时全部读取;

Step 3 判断尾迹模式是否为真运动模式,是则步骤2 所获取尾迹数据直接绘制,否则根据尾迹数据的索引查找O 中本船当时位置,计算本船当前位置与当时位置位移差,将步骤2 所获取尾迹数据与位移差相加进行坐标转换,绘制转换后尾迹数据;

Step 4 重复以上步骤,实现尾迹更新绘制。

3 系统实现

参照IMO 关于雷达模拟器的性能标准和JRC-JMA-9100 系列雷达的特性,设计并完成了基于B/S 架构的仿真雷达的开发。系统实现前后端分离,前端界面由HTML5、CSS、JavaScript 语言实现,后端由WEB 应用服务器(Tomcat)、MySQL 数据库组成。值得一提的是,由于系统前端基于HTML5+JS+CSS 开发,已实现跨iOS、Android 平台的移动应用开发。下页图6(a)为雷达设备真机界面,图6(b)为本文所实现的浏览器下的仿真雷达界面。

图6 JRC-JMA-9100 型雷达真机与仿真

雷达仿真系统所实现主要功能包括回波图像(岸线回波、运动目标回波、固定物标回波、杂波、假回波、雷康、尾迹等)显示、刻度与航行信息显示、目标跟踪与AIS 目标报告、偏心显示、量程切换、显示模式、运动模式、颜色模式切换等。

本文实现了不同海区的雷达回波图像仿真,以上海宝山水域为例。如图7(c)所示,通过与图7(a)电子海图图像、图7(b)真实雷达回波图像比对可知,本文的回波提取与生成算法可较好地模拟岸线与固定物标雷达回波;图8(d)为本文模拟雨雪杂波图像,通过与图8(a)雨雪杂波真机图像比对可知,本文所采取的扇形裁剪杂波图像方法可以较好地模拟雷达杂波径向圆周扫描;图8(e)为本文模拟假回波与尾迹图像,通过与图8(b)真机图像比对可知,本文模拟的假回波与尾迹具有一定逼真度;图8(f)为本文模拟雷康回波,图8(c)为雷康真机回波图像,比对结果表明仿真效果较好;图9 为本文对雷达刻度、航行、目标等信息的模拟。

图7 岸线回波的仿真

图8 雷康、假回波、尾迹、杂波的仿真

图9 刻度、航行、目标信息模拟

4 结论

针对传统雷达模拟器使用受时间与空间限制、不能开展线上实操培训等问题,设计并实现了一种基于B/S 架构的航海雷达仿真系统。仿真系统采用基于B/S 的3 层结构设计;提出了一种从S-57 海图中提取、抽稀和生成雷达仿真数据的方法;运用圆周扫描求交与杂波图像扇形裁剪的方法模拟雷达回波;通过对历史回波数据操作处理,实现对雷达尾迹的模拟。

通过与真实雷达回波图像比较,本文提出的方法可准确提取雷达回波仿真数据,所模拟回波与尾迹具有相当逼真度。实现了包括回波图像显示、刻度与航行信息显示、目标跟踪与AIS 目标报告、偏心显示、量程切换、显示模式、运动模式、颜色模式切换等功能。线上测试(测试环境:云服务器机型配置为2 核4 GB、操作系统为WindowsServer 2012、公网带宽5 Mb/s,应用服务器为Tomcat 8.5,数据库为MySQL 8.0)结果表明系统功能完备,运行稳定可靠,最大可支持40 人同时在线使用(系统无明显卡顿,满足仿真雷达显示、响应的实时性要求)。综上,本文所设计的雷达仿真系统基本满足STCW 公约A-I/12 节“用于培训的模拟器的一般性能标准”和“附加性能标准”中关于雷达模拟的要求,可用于航海雷达的在线教学与培训。未来要进一步完善雷达仿真系统的功能,提高程序的响应速度和安全稳定性。

猜你喜欢
杂波多边形雷达
浅谈雷达导引系统
基于模糊逻辑的双偏振天气雷达地物杂波识别算法
机载双基地雷达空时二维杂波建模与特性分析
一种杂波实时仿真方法*
隐形飞机哪里躲
多边形内外角问题的巧解
班上的“小雷达”
主被动复合末制导雷达仿真系统中的海杂波仿真研究
蒙住雷达的眼睛
有关多边形边数问题的思考方法