本发明属于船舶智能控制技术领域,尤其涉及一种用于船舶智能控制的航迹制导方法及系统。
背景技术:
船舶上安装自动舵用于进行船舶的航向控制,其能把船舶控制在事先设定好的航向上持续航行,由于受各种条件的制约,无法实现船舶的航迹控制。随着计算机技术的发展和gps全球卫星定位系统等先进导航设备在船舶上的安装,使船舶航迹控制成为可能。
目前,在船舶上布局的航迹智能控制策略主要包括航迹自动保持和航迹自动跟踪两个功能。所谓航迹自动保持是指因海上干扰引起船舶偏离计划航线时,具有自动返回原航线的能力;所谓航迹自动跟踪是:当船舶接近转向点时能自动根据预先设定的转向半径自动转到新航向,或船舶因避让偏离计划航线后,船舶具有自动返回原航线的能力。航迹智能控制的实现,可以使船舶自动地沿着预定航线航行,这对于船舶的航行安全,省时节能等具有十分重要的意义。
由于外在条件因素的存在,船舶在航行过程中,经常出现船舶自动避让或其他因素造成的船舶发生较大偏航的情形,当出现避让等导致的偏航情形时,需要对船舶进行回位调整控制,使船舶返回原先设定的应走航线进行航行,目前,确定船舶当前应属的航迹段存在多种计算算法实现,但是,航迹段的每一种计算算法的计算过程复杂,并且结合实际外界干扰因素的情形较少,仅仅存在理论上的实现,导致整个航迹制导控制偏差较大,给船舶航行带来不便。
技术实现要素:
本发明的目的在于提供一种用于船舶智能控制的航迹制导方法,旨在解决现有技术中航迹段的每一种计算算法的计算过程复杂,并且结合实际外界干扰因素的情形较少,仅仅存在理论上的实现,导致整个航迹制导控制偏差较大,给船舶航行带来不便的问题。
本发明是这样实现的,一种用于船舶智能控制的航迹制导方法,所述方法包括下述步骤:
获取船舶当前的实际船位位置,并计算所述船舶的实际船位位置与所述船舶应走航线上各个转向点之间的直线距离;
遍历计算得到的若干个所述船舶的实际行位信息与所述船舶应走航线上各个转向点之间的直线距离,查找获得数值最小的直线距离所对应的转向点,即为第m转向点;
从预先计算生成的航迹段切换区域库中查找数值最小的直线距离所对应的第m转向点的航迹段切换区域;
判断所述船舶当前的实际船位位置是否在所述航迹段切换区域内;
当判定所述船舶当前的实际船位位置在所述航迹段切换区域内时,则以第m-1转向点和第m+1转向点为基础,获取所述船舶当前的航迹段;
当判定所述船舶当前的实际船位位置在所述航迹段切换区域内时,则以所述第m转向点和所述船舶当前的实际船位位置为基础,获取所述船舶当前的航迹段。
作为一种改进的方案,所述方法还包括下述步骤:
根据船舶航行出发地和目的地信息,预先规划船舶应走航线,所述船舶应走航线上设有若干个转向点,若干个转向点按照坐标位置以及航行的经历顺序进行排序;
根据船舶自身的性能指标参数以及水域信息,计算每一个所述转向点所对应的航迹段切换区域;
将计算得到的若干个航迹段切换区域按照转向点的排序进行入库,形成航迹段切换区域库;
其中,所述应走航线由若干个所述转向点所在的航迹段切换区域和每两个转向点之间的航迹段组成。
作为一种改进的方案,所述当判定所述船舶当前的实际船位位置在所述航迹段切换区域内时,则以第m-1转向点和第m+1转向点为基础,获取所述船舶当前的航迹段的步骤具体包括下述步骤:
在预先设置的若干个转向点中,找出所述第m转向点的前一转向点和后一转向点,分别记为第m-1转向点和第m+1转向点;
计算所述第m转向点和所述船舶当前的实际船位位置之间的连线与所述第m转向点与所述第m-1转向点之间的连线的夹角α1;
计算所述第m转向点和所述船舶当前的实际船位位置之间的连线与所述第m转向点与所述第m+1转向点之间的连线的夹角α2;
判断夹角α1是否大于夹角α2;
当判定夹角α1大于夹角α2时,则判定所述第m转向点与所述第m+1转向之间的线路为当前船舶的航迹段;
当判定夹角α1小于等于夹角α2时,则判定所述第m转向点与所述第m-1转向之间的线路为当前船舶的航迹段。
作为一种改进的方案,所述当判定所述船舶当前的实际船位位置在所述航迹段切换区域内时,则以所述第m转向点和所述船舶当前的实际船位位置为基础,获取所述船舶当前的航迹段的步骤具体包括下述步骤:
计算船舶当前的实际船位位置和第m-1转向点之间的连线与第m-1转向点和所述第m转向点之间的连线的所形成的夹角θ1;
船舶当前的实际船位位置与第m转向点之间连线和第m-1转向点与第m转向点之间连线所形成的夹角θ2;
判断所述夹角θ1和夹角θ2是否均小于90度;
若判定所述夹角θ1和夹角θ2均小于90度,则判定所述第m转向点与第m-1转向点之间线路为当前船舶的航迹段;
若判定所述θ1和夹角θ2不能同时满足小于90度,则进行迭代算法,并且在迭代结束后,判断迭代后的当前转向点是否为最后一个转向点;
若是判定迭代后的当前转向点为应走航线的最后一个转向点,则判定所述最后一个转向点与其上一个转向点组成的航迹段为当前所属航迹段;
若判定迭代后的当前转向点不是最后一个转向点,则返回执行类似所述计算船舶当前的实际船位位置和第m-1转向点之间的连线与第m-1转向点和所述第m转向点之间的连线的所形成的夹角θ1与船舶当前的实际船位位置与第m转向点之间连线和第m-1转向点与第m转向点之间连线所形成的夹角θ2的步骤,并循环执行直至确认当前船舶的航迹段。
作为一种改进的方案,所述查找获得数值最小的直线距离所对应的转向点,即为第m转向点的步骤之后,所述计算查找获取到的数值最小的直线距离所对应的第m转向点的航迹段切换区域的步骤之前还包括下述步骤:
判断查找获取到的所述第m转向点是否为第一转向点或最后一个转向点;
当判定查找获取到的所述第m转向点为第一转向点或最后一个转向点,则判断所述第m转向点是否第一转向点;
若所述第m转向点为第一转向点,则判定第一个转向点与第二个转向点之间的连线为所述船舶当前的航迹段;
若所述第m转向点为最后一个转向点时,则判定所述最后一个转向点与其上一个转向点之间的连线为船舶当前的航迹段。
本发明的另一目的在于提供一种用于船舶智能控制的航迹制导系统,所述系统包括:
实际船位位置获取模块,用于获取船舶当前的实际船位位置;
直线距离计算模块,用于计算所述船舶的实际船位位置与所述船舶应走航线上各个转向点之间的直线距离;
最小距离转向点查找模块,用于遍历计算得到的若干个所述船舶的实际行位信息与所述船舶应走航线上各个转向点之间的直线距离,查找获得数值最小的直线距离所对应的转向点,即为第m转向点;
航迹段切换区域查找模块,用于从预先计算生成的航迹段切换区域库中查找数值最小的直线距离所对应的第m转向点的航迹段切换区域;
航迹段切换区域判断模块,用于判断所述船舶当前的实际船位位置是否在所述航迹段切换区域内;
第一航迹段获取模块,用于当判定所述船舶当前的实际船位位置在所述航迹段切换区域内时,则以第m-1转向点和第m+1转向点为基础,获取所述船舶当前的航迹段;
第二航迹段获取模块,用于当判定所述船舶当前的实际船位位置在所述航迹段切换区域内时,则以所述第m转向点和所述船舶当前的实际船位位置为基础,获取所述船舶当前的航迹段。
作为一种改进的方案,所述系统还包括:
应走航线规划模块,用于根据船舶航行出发地和目的地信息,预先规划船舶应走航线,所述船舶应走航线上设有若干个转向点,若干个转向点按照坐标位置以及航行的经历顺序进行排序;
航迹段切换区域计算模块,用于根据船舶自身的性能指标参数以及水域信息,计算每一个所述转向点所对应的航迹段切换区域;
入库模块,用于将计算得到的若干个航迹段切换区域按照转向点的排序进行入库,形成航迹段切换区域库;
其中,所述应走航线由若干个所述转向点所在的航迹段切换区域和每两个转向点之间的航迹段组成。
作为一种改进的方案,所述第一航迹段获取模块具体包括:
转向点查找模块,用于在预先设置的若干个转向点中,找出所述第m转向点的前一转向点和后一转向点,分别记为第m-1转向点和第m+1转向点;
第一夹角计算模块,用于计算所述第m转向点和所述船舶当前的实际船位位置之间的连线与所述第m转向点与所述第m-1转向点之间的连线的夹角α1;
第二夹角计算模块,用于计算所述第m转向点和所述船舶当前的实际船位位置之间的连线与所述第m转向点与所述第m+1转向点之间的连线的夹角α2;
第一夹角角度判断模块,用于判断夹角α1是否大于夹角α2;
第一航迹段判定模块,用于当判定夹角α1大于夹角α2时,则判定所述第m转向点与所述第m+1转向之间的线路为当前船舶的航迹段;
第二航迹段判定模块,用于当判定夹角α1小于等于夹角α2时,则判定所述第m转向点与所述第m-1转向之间的线路为当前船舶的航迹段。
作为一种改进的方案,所述第二航迹段获取模块具体包括下述步骤:
第三夹角计算模块,用于计算船舶当前的实际船位位置和第m-1转向点之间的连线与第m-1转向点和所述第m转向点之间的连线的所形成的夹角θ1;
第四夹角计算模块,用于船舶当前的实际船位位置与第m转向点之间连线和第m-1转向点与第m转向点之间连线所形成的夹角θ2;
第二夹角角度判断模块,用于判断所述夹角θ1和夹角θ2是否均小于90度;
第三航迹段判定模块,用于若判定所述夹角θ1和夹角θ2均小于90度,则判定所述第m转向点与第m-1转向点之间线路为当前船舶的航迹段;
迭代控制模块,用于若判定所述θ1和夹角θ2不能同时满足小于90度,则进行迭代算法;
最后转向点判断模块,用于在迭代结束后,判断迭代后的当前转向点是否为最后一个转向点;
第四航迹段判定模块,用于若是判定迭代后的当前转向点为应走航线的最后一个转向点,则判定所述最后一个转向点与其上一个转向点组成的航迹段为当前所属航迹段;
返回执行模块,用于若判定迭代后的当前转向点不是最后一个转向点,则返回执行类似所述计算船舶当前的实际船位位置和第m-1转向点之间的连线与第m-1转向点和所述第m转向点之间的连线的所形成的夹角θ1与船舶当前的实际船位位置与第m转向点之间连线和第m-1转向点与第m转向点之间连线所形成的夹角θ2的步骤;
循环控制模块,用于循环执行直至确认当前船舶的航迹段。
作为一种改进的方案,所述系统还包括:
转向点综合判断模块,用于判断查找获取到的所述第m转向点是否为第一转向点或最后一个转向点;
第一转向点判断模块,用于当判定查找获取到的所述第m转向点为第一转向点或最后一个转向点,则判断所述第m转向点是否第一转向点;
第五航迹段判定模块,用于若所述第m转向点为第一转向点,则判定第一个转向点与第二个转向点之间的连线为所述船舶当前的航迹段;
第六航迹段判定模块,用于若所述第m转向点为最后一个转向点时,则判定所述最后一个转向点与其上一个转向点之间的连线为船舶当前的航迹段。
在本发明实施例中,获取船舶当前的实际船位位置,并计算船舶的实际船位位置与船舶应走航线上各个转向点之间的直线距离;遍历若干个直线距离,查找获得数值最小的直线距离所对应的转向点;从第m转向点的航迹段切换区域;判断船舶当前的实际船位位置是否在航迹段切换区域内;是则以第m-1转向点和第m+1转向点为基础,获取船舶当前的航迹段;否则则以第m转向点和所述船舶当前的实际船位位置为基础,获取船舶当前的航迹段,从而实现对航迹段准确确定,计算方法实现简单,减小航迹制导带来的偏差,使船舶航行更加顺利平稳。
附图说明
图1是本发明提供的用于船舶智能控制的航迹制导方法的实现流程图;
图2是本发明提供的航迹段切换区域的示意图;
图3是本发明提供的当判定所述船舶当前的实际船位位置在所述航迹段切换区域内时,则以第m-1转向点和第m+1转向点为基础,获取所述船舶当前的航迹段的实现流程图;
图4是本发明实施例一提供的夹角计算示意图;
图5是本发明提供的当判定所述船舶当前的实际船位位置在所述航迹段切换区域内时,则以所述第m转向点和所述船舶当前的实际船位位置为基础,获取所述船舶当前的航迹段的实现流程图;
图6是本发明实施例二提供的夹角计算示意图;
图7是本发明提供的首尾转向点判断实现流程图;
图8是本发明提供的用于船舶智能控制的航迹制导系统的结构框图;
图9是本发明提供的第一航迹段获取模块的结构框图;
图10是本发明提供的第二航迹段获取模块的结构框图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
图1示出了本发明提供的用于船舶智能控制的航迹制导方法的实现流程图,其具体包括下述步骤:
在步骤s101中,获取船舶当前的实际船位位置,并计算所述船舶的实际船位位置与所述船舶应走航线上各个转向点之间的直线距离。
其中,该船舶当前的实际船位位置的获取可以通过设置的船舶上的gps定位系统获取,该gps定位系统可以实时的获取船舶的经纬度信息,然后将获取到的船舶当前的实际船位位置同步到船舶的航迹控制器的坐标系中,下述有详细说明,在此不再赘述。
在该步骤中,对直线距离的计算下述有说明,在此不再赘述。
在步骤s102中,遍历计算得到的若干个所述船舶的实际行位信息与所述船舶应走航线上各个转向点之间的直线距离,查找获得数值最小的直线距离所对应的转向点,即为第m转向点。
在步骤s103中,从预先计算生成的航迹段切换区域库中查找数值最小的直线距离所对应的第m转向点的航迹段切换区域。
在步骤s104中,判断所述船舶当前的实际船位位置是否在所述航迹段切换区域内,是则执行步骤s105,否则执行步骤s106。
在步骤s105中,当判定所述船舶当前的实际船位位置在所述航迹段切换区域内时,则以第m-1转向点和第m+1转向点为基础,获取所述船舶当前的航迹段。
在步骤s106中,当判定所述船舶当前的实际船位位置在所述航迹段切换区域内时,则以所述第m转向点和所述船舶当前的实际船位位置为基础,获取所述船舶当前的航迹段。
其中,在执行上述步骤s101之前,还需要执行下述步骤:
根据船舶航行出发地和目的地信息,预先规划船舶应走航线,所述船舶应走航线上设有若干个转向点,若干个转向点按照坐标位置以及航行的经历顺序进行排序,其中,该应走航线为按照航行规定作出的规划,例如根据海域的要求以及具体船舶的自身要求等,该应走航线不可能全为直线段,其也设有若干个转向点,具体设置多少转向点以及相邻转向点之间的距离等信息也需要根据的实际的需求进行设置,该若干个转向点可以根据应走航线的航行顺序进行记录保存,在记录保存该转向点的同时,保存每一个转向点的经纬度信息,一遍后进行直线距离计算等;
根据船舶自身的性能指标参数以及水域信息,计算每一个所述转向点所对应的航迹段切换区域,其中,如图2所示:
假设计算第m转向点的该航迹段切换区域,在该第m转向点,船舶可能存在转向的可能,在转向的同时,可能由于船舶自身的转向性能指标参数以及水域的风、浪的影响,存在一定的转向误差,因此形成该航迹段切换区域,在图2中,该第m转向点的坐标为(xm,ym),以坐标(xm,ym)为中心,以一定的距离r为半径做画出的圆形区域,定义为该航迹段切换区域,图2中用a标记,该r可以根据实际的选取,在此不再赘述;
将计算得到的若干个航迹段切换区域按照转向点的排序进行入库,形成航迹段切换区域库,其中,该航迹段切换区域入库的记录形式为坐标加半径r的方式,当然也可以采用其他方式,在此不再赘述;
其中,所述应走航线由若干个所述转向点所在的航迹段切换区域和每两个转向点之间的航迹段组成;
在该实施例中,包括上述转向点和该航迹段切换区域库在内的数据均可存储在一个数据库中,以便数据调用、查看和更新。
在本发明实施例中,如图3所示,当判定所述船舶当前的实际船位位置在所述航迹段切换区域内时,则以第m-1转向点和第m+1转向点为基础,获取所述船舶当前的航迹段的步骤具体包括下述步骤:
在步骤s301中,在预先设置的若干个转向点中,找出所述第m转向点的前一转向点和后一转向点,分别记为第m-1转向点和第m+1转向点。
在该步骤中,假设已经知道第m转向点,那么根据第m转向点的位置信息,从上述数据库中查找该第m转向点的前一转向点和后一转向点,即第m-1转向点和第m+1转向点。
在步骤s302中,计算所述第m转向点和所述船舶当前的实际船位位置之间的连线与所述第m转向点与所述第m-1转向点之间的连线的夹角α1。
结合图4所示,分别计算转向点与该船舶当前的实际船位位置之间的夹角,当然可以将各个转向点以及船舶当前的实际船位位置同步到同一个坐标系内,在该坐标系内进行各种距离的计算以及夹角的计算,通过数学的方式实现各种计算算法。
在步骤s303中,计算所述第m转向点和所述船舶当前的实际船位位置之间的连线与所述第m转向点与所述第m+1转向点之间的连线的夹角α2。
在步骤s304中,判断夹角α1是否大于夹角α2,是则执行步骤s305.否则执行步骤s306。
在步骤s305中,当判定夹角α1大于夹角α2时,则判定所述第m转向点与所述第m+1转向之间的线路为当前船舶的航迹段。
在步骤s306中,当判定夹角α1小于等于夹角α2时,则判定所述第m转向点与所述第m-1转向之间的线路为当前船舶的航迹段。
在该实施例中,通过上述夹角α1和夹角α2比对判断,实现两种不同航迹段策略的确定,判断依据清晰,计算算法简单,便于实现。
在本发明实施例中,如图5所示,当判定所述船舶当前的实际船位位置在所述航迹段切换区域内时,则以所述第m转向点和所述船舶当前的实际船位位置为基础,获取所述船舶当前的航迹段的步骤具体包括下述步骤:
在步骤s401中,计算船舶当前的实际船位位置和第m-1转向点之间的连线与第m-1转向点和所述第m转向点之间的连线的所形成的夹角θ1。
在步骤s402中,计算船舶当前的实际船位位置与第m转向点之间连线和第m-1转向点与第m转向点之间连线所形成的夹角θ2。
在该步骤中,如图6所示,该夹角θ1和夹角θ2的计算便于对航迹段的获取,图4和图6中用b表达船舶当前的实际船位位置。
在步骤s403中,判断所述夹角θ1和夹角θ2是否均小于90度,是则执行步骤s404,否则执行步骤s405。
在步骤s404中,若判定所述夹角θ1和夹角θ2均小于90度,则判定所述第m转向点与第m-1转向点之间线路为当前船舶的航迹段。
在步骤s405中,若判定所述θ1和夹角θ2不能同时满足小于90度,则进行迭代算法;
在步骤s406中,在迭代结束后,判断迭代后的当前转向点是否为最后一个转向点,是则执行步骤s407,否则执行步骤s408。
在步骤s407中,若是判定迭代后的当前转向点为应走航线的最后一个转向点,则判定所述最后一个转向点与其上一个转向点组成的航迹段为当前所属航迹段。
在步骤s408中,若判定迭代后的当前转向点不是最后一个转向点,则返回执行类似所述计算船舶当前的实际船位位置和第m-1转向点之间的连线与第m-1转向点和所述第m转向点之间的连线的所形成的夹角θ1与船舶当前的实际船位位置与第m转向点之间连线和第m-1转向点与第m转向点之间连线所形成的夹角θ2的步骤,并循环控制执行直至确认当前船舶的航迹段;
其中,当返回执行上述步骤s401和步骤s402时,是依据的转向点是不同的,只是执行方案是相同的,在上述步骤s401和步骤s402中,参考的当前转向点为第m转向点,而在该步骤s408中参考的则迭代后的新的当前转向点,在此不再赘述。
在本发明实施例中,如图7所示,所述查找获得数值最小的直线距离所对应的转向点,即为第m转向点的步骤之后,所述计算查找获取到的数值最小的直线距离所对应的第m转向点的航迹段切换区域的步骤之前还包括下述步骤:
在步骤s501中,判断查找获取到的所述第m转向点是否为第一转向点或最后一个转向点,是则执行步骤s502,否则执行所述步骤s505;
在步骤s502中,当判定查找获取到的所述第m转向点为第一转向点或最后一个转向点,则判断所述第m转向点是否第一转向点,是则执行步骤s503,否则执行步骤s504;
在步骤s503中,若所述第m转向点为第一转向点,则判定第一个转向点与第二个转向点之间的连线为所述船舶当前的航迹段;
在步骤s504中,若所述第m转向点为最后一个转向点时,则判定所述最后一个转向点与其上一个转向点之间的连线为船舶当前的航迹段;
在步骤s505中,计算查找获取到的数值最小的直线距离所对应的第m转向点的航迹段切换区域。
在该实施例中,当第m转向点为第一转向点或最后一个转向点时,则直接判断航迹段即可。
在本发明实施例中,该用于船舶智能控制的航迹制导方法作为一个算法模块存储在航迹控制器中,在船舶航行过程中,通过调用该船舶智能控制的航迹制导方法,根据预先设定应走航线,选择适当的转向点作为当前应走的转向点,从判断船舶缩所属的航迹段。
在本发明实施例中,上述给出了一种具体的航迹段的实现算法,当然也可以采用其他算法实现,在此不再赘述。
图8是本发明提供的用于船舶智能控制的航迹制导系统的结构框图,为了便于说明,图中仅给出了与本发明实施例相关的部分。
用于船舶智能控制的航迹制导系统包括:
实际船位位置获取模块11,用于获取船舶当前的实际船位位置;
直线距离计算模块12,用于计算所述船舶的实际船位位置与所述船舶应走航线上各个转向点之间的直线距离;
最小距离转向点查找模块13,用于遍历计算得到的若干个所述船舶的实际行位信息与所述船舶应走航线上各个转向点之间的直线距离,查找获得数值最小的直线距离所对应的转向点,即为第m转向点;
航迹段切换区域查找模块14,用于从预先计算生成的航迹段切换区域库中查找数值最小的直线距离所对应的第m转向点的航迹段切换区域;
航迹段切换区域判断模块15,用于判断所述船舶当前的实际船位位置是否在所述航迹段切换区域内;
第一航迹段获取模块16,用于当判定所述船舶当前的实际船位位置在所述航迹段切换区域内时,则以第m-1转向点和第m+1转向点为基础,获取所述船舶当前的航迹段;
第二航迹段获取模块17,用于当判定所述船舶当前的实际船位位置在所述航迹段切换区域内时,则以所述第m转向点和所述船舶当前的实际船位位置为基础,获取所述船舶当前的航迹段。
在该实施例中,应走航线规划模块18,用于根据船舶航行出发地和目的地信息,预先规划船舶应走航线,所述船舶应走航线上设有若干个转向点,若干个转向点按照坐标位置以及航行的经历顺序进行排序;
航迹段切换区域计算模块19,用于根据船舶自身的性能指标参数以及水域信息,计算每一个所述转向点所对应的航迹段切换区域;
入库模块20,用于将计算得到的若干个航迹段切换区域按照转向点的排序进行入库,形成航迹段切换区域库;
其中,所述应走航线由若干个所述转向点所在的航迹段切换区域和每两个转向点之间的航迹段组成。
其中,如图9所示,第一航迹段获取模块16具体包括:
转向点查找模块21,用于在预先设置的若干个转向点中,找出所述第m转向点的前一转向点和后一转向点,分别记为第m-1转向点和第m+1转向点;
第一夹角计算模块22,用于计算所述第m转向点和所述船舶当前的实际船位位置之间的连线与所述第m转向点与所述第m-1转向点之间的连线的夹角α1;
第二夹角计算模块23,用于计算所述第m转向点和所述船舶当前的实际船位位置之间的连线与所述第m转向点与所述第m+1转向点之间的连线的夹角α2;
第一夹角角度判断模块24,用于判断夹角α1是否大于夹角α2;
第一航迹段判定模块25,用于当判定夹角α1大于夹角α2时,则判定所述第m转向点与所述第m+1转向之间的线路为当前船舶的航迹段;
第二航迹段判定模块26,用于当判定夹角α1小于等于夹角α2时,则判定所述第m转向点与所述第m-1转向之间的线路为当前船舶的航迹段。
如图10所示,第二航迹段获取模块17具体包括下述步骤:
第三夹角计算模块27,用于计算船舶当前的实际船位位置和第m-1转向点之间的连线与第m-1转向点和所述第m转向点之间的连线的所形成的夹角θ1;
第四夹角计算模块28,用于船舶当前的实际船位位置与第m转向点之间连线和第m-1转向点与第m转向点之间连线所形成的夹角θ2;
第二夹角角度判断模块29,用于判断所述夹角θ1和夹角θ2是否均小于90度;
第三航迹段判定模块30,用于若判定所述夹角θ1和夹角θ2均小于90度,则判定所述第m转向点与第m-1转向点之间线路为当前船舶的航迹段;
迭代控制模块31,用于若判定所述θ1和夹角θ2不能同时满足小于90度,则进行迭代算法;
最后转向点判断模块32,用于在迭代结束后,判断迭代后的当前转向点是否为最后一个转向点;
第四航迹段判定模块33,用于若是判定迭代后的当前转向点为应走航线的最后一个转向点,则判定所述最后一个转向点与其上一个转向点组成的航迹段为当前所属航迹段;
返回执行模块34,用于若判定迭代后的当前转向点不是最后一个转向点,则返回执行类似所述计算船舶当前的实际船位位置和第m-1转向点之间的连线与第m-1转向点和所述第m转向点之间的连线的所形成的夹角θ1与船舶当前的实际船位位置与第m转向点之间连线和第m-1转向点与第m转向点之间连线所形成的夹角θ2的步骤;
循环控制模块35,用于循环执行直至确认当前船舶的航迹段。
结合图8所示,转向点综合判断模块36,用于判断查找获取到的所述第m转向点是否为第一转向点或最后一个转向点;
第一转向点判断模块37,用于当判定查找获取到的所述第m转向点为第一转向点或最后一个转向点,则判断所述第m转向点是否第一转向点;
第五航迹段判定模块38,用于若所述第m转向点为第一转向点,则判定第一个转向点与第二个转向点之间的连线为所述船舶当前的航迹段;
第六航迹段判定模块39,用于若所述第m转向点为最后一个转向点时,则判定所述最后一个转向点与其上一个转向点之间的连线为船舶当前的航迹段。
其中上述各个模块的功能如上述方法实施例所记载,在此不再赘述。
在本发明实施例中,获取船舶当前的实际船位位置,并计算船舶的实际船位位置与船舶应走航线上各个转向点之间的直线距离;遍历若干个直线距离,查找获得数值最小的直线距离所对应的转向点;从第m转向点的航迹段切换区域;判断船舶当前的实际船位位置是否在航迹段切换区域内;是则以第m-1转向点和第m+1转向点为基础,获取船舶当前的航迹段;否则则以第m转向点和所述船舶当前的实际船位位置为基础,获取船舶当前的航迹段,从而实现对航迹段准确确定,计算方法实现简单,减小航迹制导带来的偏差,使船舶航行更加顺利平稳。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。