联系我们   Contact
联系我们

西安融成科技有限公司

地址:西安市高新区唐延南路逸翠园i都会 4号楼1单元0725室

电话/传真:029-89589113

技术支持:support@rochern.com

产品销售:sales@rochern.com

搜索   Search
你的位置:首页 / 技术服务 / 技术文档 / 正文

SE ECDIS探索 -- DR推算

2013-12-9 18:59:33      点击:

 

1 概述

ECDIS在整个运行过程中主要依赖传感器的数据维持系统数据的更新,但是在某些情况下,例如传感器突然异常或者中断;又或者在模拟或者演示某种航行情况,判断航路状况或者运行轨迹;又或者需要比较GPS的位置信息。在这些情况下我们则需要另外的一些方法来拟推系统的状态数据进行系统数据更新,这种方式在在Ecdis系统中叫做DR推算。DR推算的方式可以有很多种,根据需要可以自行设计推算方式方法,因为各个系统中接入的传感器以及各个传感器的功能都不一定完全相同,可信度也会随之变化。本文主要针对一般性的推算方式进行阐述,以一种普遍的推算方式演示推算。

2 DR

       本文介绍的这种常见DR推算方式是依据陀螺仪(GYRO)、计程仪(LOG)或者人工设置的数据进行的。推算主要为了计算出当前的位置信息,这里说的传感器中断主要指的是GPS数据中断,因此航行中系统丢失了位置来源,一旦丢失了位置,系统很多功能都无法实现,例如危险报警、航行指示等。

2.1 推算原理

DR推算需要根据上一位置、当前时间差、当前的对地航向和对地航速计算当前位置。

DR推算过程:DR总是通过上一状态,依据航向、航速以及相对时间差计算出当前位置与上一位置的相对方位距离,进而推算出确切位置。上一状态数据来源:

位置数据:

 

时间数据:

航向数据:

 

速度数据:

DR推算示意图:

 

 

2.2 实现过程

    代码实现如上的DR推算过程并不复杂。开发需要依赖传感器的数据作为DR推算的起始数据。传感器数据的接收和解析参考《SE ECDIS探索--多传感器》一章。除了传感器数据,另外提供五个函数,分别:

    1、GetStartLocation获取起始位置信息,起始状态为GPS的位置信息或者手动设置的信息,按照优先级获取。在每次DR开始的时候调用该函数获取起始位置,DR开始的条件:GPS传感器由正常状态切换为异常状态,或者是手动开启。

    2、GetStartTime 获取手动设置的时间或者Ecdis系统的时间或者操作系统的时间作为DR的起始时间用于计算时间差,此处注意获取的是时间也要按照优先级判断该获取哪一个时间,计算时间差的准确性主要源于起始时间。

    3、GetStartDir 获取起始的航向信息,这个信息按照上图的优先级获取。航向信息一般情况下载DR中是不会变化的,除非DR重启;

    4、GetStartSpeed 获取起始的航速信息,这个信息也是按照上图的优先级获取,与航向信息相同,DR推算中不会变化,除非DR重启;

    5、DoDR DR推算,根据起始的数据信息开始,一旦开始以后就会依照推算规则由上一状态数据推算下一状态信息,两个状态的时间差越短推算的精度也就越高。

3 注意事项

    1、以上的推算过程为一般推算过程,很多时候DR在推算的过程中需要这样或者那样的数据变化修改推算的位置结果。推算过程中需要考虑一些异常情况,例如两个状态的时间差过大、修正数据的更新以及推算速度或者航向异常的纠正。

    2、在获取起始的对地航向和对地航速时可能会很麻烦,根据优先级逐个排查,出现合适的数据时结束。很多时候没有直接的对地航向或者航速,有的只是对水航向,对水航速以及水流的航向和航速。这个时候为了尽可能准确的获取数据,通常会进行一次向量的叠加,向量叠加时需要进行地理叠加计算,不能简单的进行几何叠加。由于向量一般不大,可以采用地理横向线的方式叠加。