本站小编为你精心准备了水声设备试验航势复盘软件设计及实现参考范文,愿这些范文能点燃您思维的火花,激发您的写作灵感。欢迎深入阅读并收藏。
摘要:根据水声设备试验对航路态势复盘需求,设计出软件的总体结构和主要功能,利用WPF技术,结合C#语言和MySQL数据库管理系统,开发了基于WPF技术的水声设备试验态势复盘软件,并详细介绍了一些关键问题的解决方法和实现过程。通过使用该软件,能够提高数据处理的效率,便于试验人员评估分析试验结果。
关键词:水声设备;WPF;MySQL;数据库
1引言
水声设备试验需要动用多种不同类型的船只,试验结束后,往往需要对各船只试验期间的态势进行复盘,以便于试验人员准确地对试验结果进行评估和评价。水声设备试验态势复盘软件主要对试验期间各船只定位数据进行处理,以图形化的显示界面,准确、便捷地再现试验态势和关键事件,提高数据处理和数据管理的自动化程度,提高试验数据处理的效率。WPF技术是一个应用于Windows的图形显示系统,是针对.NET而设计的一个Windows应用程序开发平台,它采用“数据驱动”的程序开发模式,具有丰富的绘图模型和文本模型,能够为给用户提供更具视觉效果的体验[1]。本文介绍了基于WPF技术的水声设备试验态势复盘软件的基本原理和结构组成,给出了设计方法和实现过程,并对一些关键问题进行了阐述。
2总体方案
2.1主要功能水声设备试验态势数据主要包括试验船只的经纬度信息、水声设备发现和丢失目标等关键事件数据,根据试验数据种类和态势再现需求,软件应具备以下几个功能:1)具备数据预处理功能。一是采取数据修正或摒弃错误数据等措施对手动或自动采集定位数据进行误差修正;二是能够去除重复的定位数据;三是能够进行多种格式数据转换,如经纬度坐标转换高斯坐标,非标格式的时间、航速等数据转为标准格式的数据。2)态势再现功能。具备在模拟地图上再现试验态势,显示各船只的位置信息、角度信息和速度信息;能够在模拟地图上进行试验区域标注,加载自定义图标、图形;能够加快或减慢运行速度,并能够实现轨迹、图标、图形的缩放,拖拽等操作。3)关键事件处理功能。一是具备关键事件结果初步判断功能,将人工记录的目标信息和根据定位数据计算的真值信息进行比对,给出判断结果;二是能够将处理后的关键事件信息按照时间顺序在界面上显示出来。4)具备数据处理功能。能够计算目标的方位、距离变化率,显示距离-时间、方位-时间和舷角-时间变化图;能够根据定位数据进行距离、精度计算。5)具备数据管理功能。将处理后的数据按照规定的格式存储在数据库中,实现数据产品加工、数据存储和数据分发的管理。水声设备试验航路态势复盘软件主要功能如图1所示。
2.2软件总体框架根据功能需求,软件部分主要分为数据预处理模块、运行控制模块、数据处理模块、态势再现模块、显示模块和数据管理模块六部分,态势复盘软件总体框架如图2所示。数据预处理模块主要包括坐标转换、去除重复、野值剔除、数据插值、数据平滑、格式转换等子模块,完成采集数据的预处理工作;运行控制模块主要包括启动、暂停、结束、前进、后退子模块以及拖拽、滑动、放大、缩小、刷新轨迹和运行速度控制子模块,用于实现试验态势运行控制;态势再现模块主要包括运行控制参数和定位数据输入模块,图形位置计算、图形大小计算模块和绘图模块,用于实现显示图形位置计算、图形大小计算和图形界面绘制和重载;数据处理模块主要包括连接管理、两点距离计算、态势变化计算和精度计算模块,用于完成各平台之间连接关系管理、距离、相对态势和精度计算;显示模块主要包括关键事件显示、图标显示、图形显示和态势信息显示子模块,用于实现关键信息,各图标、图形和态势信息的显示;数据管理模块主要包括数据截取、数据存储和数据导出子模块,能够按照时间对定位数据进行截取,并按要求输出标准格式数据,能够完成态势数据的存储和分发的管理。
2.3软件设计思路应用程序设计一般包括数据模型、业务逻辑、用户界面和界面逻辑4层功能性代码[2]。数据模型是现实世界中事物和逻辑的抽象,业务逻辑是数据之间的关系与交互,用户界面由控件构成,用于把数据显示给用户并接收用户的输入,界面逻辑是控件与控制之间的关系与交互。在保持代码可维护的前提下,如何让数据能够顺畅、灵活的到达界面并灵活显示,同时方便的接收用户的操作历来的都是软件开发的核心问题。常用的设计模式主要包括MVC(Model-View-Controler)模式、MVP(Mod⁃el-View-Presenter)模式等[3],上述模式采用“事件驱动模式”,容易使界面逻辑和业务逻辑纠缠在一起,造成代码复杂难懂,隐藏的缺陷难以排除,也不便于后续软件的扩展。WPF技术的最大特点就是实现“数据驱动模式”[4],人机交互界面采用XAML语言完成设计,业务逻辑层使用C#进行开发,这样使数据占主动地位,弱化了控件和控件事件,实现界面和后台逻辑的剥离,大大简化了程序设计难度和维护的成本,因此,本系统采用WPF技术进行设计和开发。MySQL数据库是一个中小型的关系型数据库,被广泛应用于因特网上的中小型网站,它具有速度快、体积小、总体成本底、开放源代码,成为很多网站或应用程序为降低开发成本而选择此数据库的最主要原因[5]。综合考虑软件设计周期、成本、难度等因素,后台数据库采用MySQL数据库管理系统。
3关键问题解决方法
3.1经纬度坐标转高斯坐标考虑部分试验船只的位置数据为经纬度数格式,需要转换为高斯坐标后再参与数据处理计算,软件设置了大地坐标转换高斯坐标子程序。地心大地坐标系的定义是[6]:地球椭球的中心与地球质心相合,椭球的短轴与地球自转轴相合,大地纬度为过地面点的椭球法线与椭球赤道面的夹角,大地经度L为过地面点的椭球子午面与格林尼治平大地子午面之间的夹角,大地高H为地面点沿椭球法线至椭球面的距离。于是,任一地面点在地球坐标系中的坐标,可表示为(XYZ)或(BLH),B为维度。采用高斯-克略格投影平面坐标x,y计算公式如下[7]:由上式计算的x,y值存在负值,为了便于测量作业,规定以中央经线和赤道的交叉点为原点坐标,x值在北半球为正,南半球为负,y值在中央经线以东为正,中央经线以西为负,由于我国均位于 北半球,x值皆为正值,为了避免y值出现负号,规定各投影带的坐标纵轴均西移500km,为了表明点的带号,又规定在其前面冠以带号,这种坐标称为“通用坐标”[8]。
3.2数据野点剔除和平滑方法数据预处理算法主要包括野值剔除、数据插值和数据平滑。含有粗大误差的数据称为异常数据,它会对测量结果产生明显的歪曲,一旦发现含有粗大误差的数据,应将其从测量序列中剔除[9]。试验平台船只的高斯坐标为(X)mYm、试验目标船只的高斯坐标为(X)wYw。令变量XM、YM、XW、YM为V,时间变量为U,则Vi按式(8)计算:Vi=a+b*Ui+ε(8)式中ε为随机误差。a与b的估值按式(9)和式(10)计算:重复上述过程,直至没有奇异点为止。再利用a+b*Ui计算出中间点的坐标值v0作为平滑后中间点的坐标值,其余点的平滑依此类推。起始和结尾的7个点的平滑坐标值分别利用起始与结尾15个点求得的a、b,再由公式a+b*Ui计算得出。自动采集设备测量的各平台船只轨迹数据中存在跳点,需要进行平滑处理。数据平滑都是在基于实际的数据之上,根据平滑过程中实际统计数据的改变情况,平滑算法可以分为两大类[10]:一类是修改所有实际统计数据的参数平滑算法;另一类是修改部分实际统计数据的参数平滑算法。修改所有实际统计数据的参数平滑算法主要有加法平滑,Good-Turing估计、折扣参数平滑、线性平滑、基于扣留估计的参数平滑,对轨迹数据平滑一般采用线性平滑算法。
3.3绘图系统的设计与实现绘图系统主要用于完成试验船只轨迹的绘制。要绘制轨迹就需要建立相应的坐标系统,有两种方法可以实现上述目标,一是使用开发平台集成的坐标系统;二是使用自定义的坐标系统。基于微软。NET3.5框架下的图表控件,可以支持各种各样的图形显示,如点状图、饼图、柱状图、曲线图、面积图、排列图等,同时也支持3D样式的图表显示[11]。使用该控件绘制轨迹的基本思路如下,先通过坐标转换模块将定位数据由大地坐标转换为高斯坐标,然后使用图表控件LineCharts工具绘制并显示出来,显示效果如图3(a)所示,其轨迹本质是由一系列点连接而成。图表控件自带坐标系统,使用该控件相应函数即可完成对轨迹的绘制、刷新、移动、拖拽等操作,这样可以大大简化程序复杂度,使软件具有良好的可维护性,缺点是运行开销大,当需要绘制的轨迹点数量增大时,绘图的速度会减慢。第二种方法是通过WPF2D绘图功能,在自定义的坐标系统上绘制试验船只轨迹,显示效果如图3b所示。WPF2D绘图功能可以创建丰富多彩的可视化元素,如点、直线、曲线、矩形、椭圆等[12]。使用WPF绘图功能绘制轨迹的基本思路为先通过坐标转换模块将定位数据格式有大地坐标转换为高斯坐标,然后绘制可视化元素来表示船只的轨迹。为减小绘制可视化元素造成的内存开销,可以使用Line元素绘制轨迹图。Line属于轻量级的可视化元素,当数据量较大时,使用Line能够显著降绘制大量形状造成的开销。Line表示连接一个点和另一个点的直线,起点和终点有4个属性设置:X1、Y1、X2、Y2,绘制一条从点(0,0)伸展到点(10,100)的直线XAML代码为<LineStroke=“Blue”X1=“0”Y1=“0”X2=“100”Y2=“100”/Line>方法二需要自定义坐标系统,虽然增加了代码复杂度,但在数据量不多的情况下,基本能够满足软件的设计需求,因此本软件的绘图系统采用方法二进行来实现。
3.4图形位置和大小计算为了增加软件的直观性,软件态势复盘显示界面要能够以图形或图标的方式显示船只、海区的经纬度、固定物体等标识信息,并且用户进行拖拽、滑动、放大、缩小等鼠标动作时,各种图形和图标也随之进行移动、放大和缩小,因此需要对各种标识的位置和大小进行计算。软件设计了图形位置和大小计算模块,其计算过程如图4所示,用户使用鼠标产生MouseMove、MouseButtonDown、MouseWheel等事件,软件在鼠标事件中获取鼠标位置和滑动量等参数,通过坐标系统将移动位置和滑动量参数转换为屏蔽像素的参数,最后调用UpDate子程序更新图形的位置和大小到态势复盘界面上。
3.5数据处理模块数据处理模块主要包括两点距离、态势变化计算和精度计算子程序,用于完成试验船和配合船间距离、态势和精度数据的计算,便于试验人员分析试验结果,图5为态势变化界面效果图。态势变化计算主要是计算船只间距离、方位和舷角随时间的变化情况,距离计算过程如下:首先将定位数据由大地坐标转换为高斯坐标,再根据式(14)计算配合船只距离。式中D0为试验船与配合船的水平距离,(x1y1)为试验船的高斯坐标,(x2y2)为配合船的高斯坐标。135目标的方位由式(15)和式(16)得出,其中:γ为收敛角,L0为中央子午线所在的经度,L1为t时刻目标所在的经度,B1为t时刻目标所在的纬度。由试验船的航向和配合船的方位可进一步计算出配合船的舷角:精度计算主要包括测向精度、测距精度计算,常用的计算方法由二阶原点矩和二阶中心矩。测向精度的计算方法如式(17)、(18)、(19),测距精度参照测向精度,式中β'i为方位或舷角的真值,βi为声纳测量值,---Dβ为系统误差,σ¶为二阶中心矩,σβ为二阶原点矩。由于声速传播速度慢,外置定位设备测量的是t时刻的试验船和目标的位置数据,水声设备测量的是t-Dt时刻的配合船的位置,因此在进行精度计算时需按照式(20)要进行声传播延时修正。Dt为声传播延时,C为所测量的声速数据,由此可以求出(t-Dt)时刻的配合船只的高斯坐标。
4结语
本文提出的水声设备试验态势复盘软件是在Windows操作系统平台上进行开发的,实现过程中使用了WPF、C#以及MySQL等技术。通过历次的水声设备试验验证,该系统具有良好的人机交互性和稳定性,能够满足实际的工程需求,能够显著提高试验人员数据处理的效率,便于试验人员评估分析试验结果。
参考文献
[1]李成刚,冯静,凌玲.基于WPF的交互式绘图系统的开发[J].电子技术应用,2011,30(6):54-56.
[2]王小科,吕双.C#从入门到精通[M].北京:清华大学出版社,2010:545-547.
[3]王建平.MVC/MVP集成模式网络课堂虚拟实验室的设计与研究[D].长沙:湖南大学,2008:23-26.
[4]刘铁猛.深入浅出WPF[M].北京:中国水利水电出版社,2010:8-10.
[5]王珊,陈红.数据库系统原理教程[M].北京:清华大学出版社,1998:27-32.
[6]李延兴,张静华,张俊青,等.一种由地心直角坐标到大地坐标的直接转换[J].大地测量与地球动力学,2007,27(2):37-47.
[7]孔祥元,郭际明,刘宗泉.大地测量学基础[M].武汉:武汉大学出版社,2010:30-41.
[8]张海军,李仁杰,傅学庆.地理信息原理与实践[M].北京:科学出版社,2009:195-198.
[9]吴石林,张玘.误差分析与数据处理[M].北京:清华大学出版社,2010:45-48.
[10]邱轶兵.试验设计与数据处理[M].北京:中国科学技术大学出版社,2008年:31-33.
[11]索利斯.C#图解教程[M].北京:人民邮电出版社,2013:135-137.
[12]MatthewMacDonald,王德才.WPF编程宝典-C#2010版[M].北京:清华大学出版社,2010:324-328.
作者:曹占启 梁民赞 崔滋刚 单位:91388部队