发明内容
本申请实施例提供了一种无人船控制方法、无人船控制装置及无人船,可以实现高海况下对无人船的自适应控制,进而保证了无人船在高海况下的平稳行驶。
第一方面,本申请实施例提供了一种无人船控制方法,包括:
在启动控制任务后的第t个控制时刻,获取所述无人船的历史行驶数据,其中,所述历史行驶数据包括预设时间段内所述无人船的行驶数据,所述预设时间段为从启动所述控制任务的时刻到启动所述控制任务后的第t个控制时刻之间的时间段,所述t为大于1的正整数;
根据所述历史行驶数据确定所述无人船所在航行区域内海浪的波浪数据;
根据所述波浪数据对所述无人船进行控制。
在第一方面的一种可能的实现方式中,在获取所述无人船的历史行驶数据之前,所述方法包括:
监测所述无人船的升沉幅值;
若所述升沉幅值超过第一预设数值范围,则启动所述控制任务,并开始记录所述无人船的行驶数据。
在第一方面的一种可能的实现方式中,所述历史行驶数据包括横摇幅值数据集、纵摇幅值数据集和升沉幅值数据集;
所述波浪数据包括波浪传播方向、波浪周期和所述波浪周期内的浪高;
所述根据所述历史行驶数据确定所述无人船所在航行区域内海浪的波浪数据,包括:
根据所述横摇幅值数据集和所述纵摇幅值数据集确定所述波浪传播方向;
根据所述升沉幅值数据集确定所述波浪周期和所述波浪周期内的浪高。
在第一方面的一种可能的实现方式中,所述根据所述横摇幅值数据集和所述纵摇幅值数据集确定所述波浪传播方向,包括:
根据所述横摇幅值数据集计算横摇幅值变化率,根据所述纵摇幅值数据集计算纵摇幅值变化率;
根据所述横摇幅值变化率和所述纵摇幅值变化率,确定所述波浪传播方向与所述无人船的航向之间的夹角;
获取所述无人船的航向,并根据所述无人船的航向和所述夹角确定所述波浪传播方向。
在第一方面的一种可能的实现方式中,所述根据所述升沉幅值数据集确定所述波浪周期和所述波浪周期内的浪高,包括:
根据所述升沉幅值数据集计算升沉振幅,并将大于预设值的升沉振幅记为目标振幅;
确定所述目标振幅对应的升沉峰值,并根据在时间上任意相邻的两个所述升沉峰值之间的时间间隔确定所述波浪周期;
根据所述波浪周期对应的所述目标振幅确定所述波浪周期内的浪高。
在第一方面的一种可能的实现方式中,所述根据所述波浪数据对所述无人船进行控制,包括:
获取所述无人船的横摇幅值;
若所述横摇幅值超过第二预设数值范围,则调整所述无人船的舵角,以使所述无人船的航向与所述波浪传播方向之间的夹角减少至第三预设数值范围内。
在第一方面的一种可能的实现方式中,所述根据所述波浪数据对所述无人船进行控制,包括:
根据所述波浪周期和所述波浪周期内的浪高,预测所述第t个控制时刻的浪高;
若所述第t个控制时刻的浪高大于预设浪高,则调整所述无人船的舵角,以使所述无人船的纵摇幅值减少至第四预设数值范围内。
第二方面,本申请实施例提供了一种无人船控制装置,包括:
获取单元,用于在启动控制任务后的第t个控制时刻,获取所述无人船的历史行驶数据,其中,所述历史行驶数据包括预设时间段内所述无人船的行驶数据,所述预设时间段为从启动所述控制任务的时刻到启动所述控制任务后的第t个控制时刻之间的时间段,所述t为大于1的正整数;
计算单元,用于根据所述历史行驶数据确定所述无人船所在航行区域内海浪的波浪数据;
控制单元,用于根据所述波浪数据对所述无人船进行控制。
第三方面,本申请实施例提供了一种无人船,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如上述第一方面中任一项所述的无人船控制方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如上述第一方面中任一项所述的无人船控制方法。
第五方面,本申请实施例提供了一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行上述第一方面中任一项所述的无人船控制方法。
可以理解的是,上述第二方面至第五方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
本申请实施例与现有技术相比存在的有益效果是:
本申请实施例中获取无人船的历史行驶数据,根据历史行驶数据确定无人船所在航行区域内海浪的波浪数据;由于波浪数据可以反映出海浪的特性,而海浪的特性又是高海况的一个重要体现,因此,掌握了波浪数据,即相当于掌握了高海况下海浪对无人船的扰动规律,根据波浪数据(即根据海浪对无人船的扰动规律)对无人船进行控制,可以保证高海况下对无人船进行精准的自适应控制,进而能够保证无人船的平稳行驶。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
应当理解,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
如在本申请说明书和所附权利要求书中所使用的那样,术语“若”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。
另外,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。
参见图1,是本申请一实施例提供的无人船控制系统的示意图。如图1所示,无人船控制系统包括无人船11和控制器12。无人船11可以包括船体111、用于控制无人船航向的船舵112和用于为无人船提供动力的推进装置113。控制器12分别与船舵112和推进装置113连接,用于对船舵和推进装置进行控制。无人船11还可以包括导航装置、定位装置、角度传感器(如陀螺仪等)以及加速度器等传感设备。控制器可以内置于无人船中,也可以是外置的。当控制器外置于无人船时,无人船可以通过自身的通讯装置与控制器进行通信。
在一个应用场景中,控制器通过无人船的传感设备监测海况,当监测到高海况(指复杂海况,如大风、大浪等情况)时,启动控制任务。在启动控制任务后的每个控制时刻,控制器通过本申请实施例提供的无人船控制方法对无人船进行控制(如控制船舵的方向、控制推进装置的动力输出等),保证无人船在高海况下的平稳行驶。
需要说明的是,在本申请实施例中,启动控制任务后的每两个相邻的控制时刻可以为相邻的两个自然时刻,例如,第一个控制时刻为启动控制任务后的第1s,第二个控制时刻为启动控制任务后的第2s。当然,每两个相邻的控制时刻之间也可以间隔多个自然时刻,例如:第一个控制时刻为启动控制任务后的第1s,第二个控制时刻为启动控制任务后的第10s,即第一个控制时刻和第二个控制时刻之间间隔9个自然时刻。
在启动控制任务后的任意一个控制时刻,控制器执行的无人船控制方法可以参见如下实施例。
参见图2,是本申请一实施例提供的无人船控制方法的流程示意图,作为示例而非限定,所述方法可以包括以下步骤:
S201,在启动控制任务后的第t个控制时刻,获取所述无人船的历史行驶数据。
其中,t为大于1的正整数。需要说明的是,可以将启动控制任务的时刻记为第一个控制时刻,也可以将启动控制任务的时刻之后的第N个自然时刻记为第一个控制时刻,N为正整数。
历史行驶数据包括预设时间段内无人船的行驶数据,预设时间段为从启动控制任务的时刻到启动控制任务后的第t个控制时刻之间的时间段。例如,假设t=5,启动控制任务的时刻为10:00:00,并将启动控制任务的时刻后的第2个自然时刻记为第一个控制时刻,每两个相邻的控制时刻之间间隔2个自然时刻(一个自然时刻对应1s),预设时间段为10:00:00~10:00:10,相应的,历史行驶数据为10:00:00~10:00:10这个时间段内无人船的行驶数据。
可选的,历史行驶数据包括横摇幅值数据集、纵摇幅值数据集和升沉幅值数据集。其中,横摇幅值数据集中可以包括多个横摇幅值,纵摇幅值数据集中可以包括多个纵摇幅值,升沉幅值数据集中可以包括多个升沉幅值。
示例性的,如果每两个相邻的控制时刻为相邻的两个自然时刻,那么历史行驶数据可以包括预设时间段内每个控制时刻的横摇幅值、纵摇幅值和升沉幅值。例如,当t=3时,历史行驶数据中包括第一个控制时刻的横摇幅值、纵摇幅值和升沉幅值,以及第二个控制时刻的横摇幅值、纵摇幅值和升沉幅值。
如果每两个相邻的控制时刻之间间隔N个自然时刻(N为正整数),那么历史行驶数据可以包括预设时间段内每个自然时刻的横摇幅值、纵摇幅值和升沉幅值。例如,假设N=2,一个自然时刻为1s,当t=2时,预设时间段为10:00:00~10:00:04,相应的,历史行驶数据中包括10:00:00、10:00:01、10:00:02、10:00:03和10:00:04这五个自然时刻各自对应的横摇幅值、纵摇幅值和升沉幅值。
如果每两个相邻的控制时刻之间间隔N个自然时刻(N为正整数),那么历史行驶数据也可以包括预设时间段内每两个相邻的控制时刻的时间间隔对应的平均横摇幅值、平均纵摇幅值和平均升沉幅值。例如,假设N=2,一个自然时刻为1s,当t=2时,预设时间段为10:00:00~10:00:04,其中包括1个控制时刻(10:00:02),相应的,历史行驶数据中包括10:00:00~10:00:02这个时间段对应的横摇幅值的平均值(10:00:00、10:00:01和10:00:02这三个自然时刻各自对应的横摇幅值求和后除以3)、纵摇幅值的平均值(10:00:00、10:00:01和10:00:02这三个自然时刻各自对应的纵摇幅值求和后除以3)和升沉幅值的平均值(10:00:00、10:00:01和10:00:02这三个自然时刻各自对应的升沉幅值求和后除以3),以及10:00:02~10:00:04这个时间段对应的横摇幅值的平均值、纵摇幅值的平均值和升沉幅值的平均值。
上述只是历史行驶数据的统计方法的示例,也可以用其他统计方法统计历史行驶数据,此处不做具体限定。统计历史行驶数据时所用的采样时间间隔越小,历史行驶数据中包含的数据越多,数据可靠性越强,根据历史行驶数据确定出的波浪数据越精确。
参见图3,是本申请实施例提供的无人船的运动状态的示意图。如图3所示,无人船的运动状态可以分解为横摇(roll)、纵摇(pitch)和艏摇(yaw)三种三维角度变化,以及升沉(heave)、横荡(sway)和纵荡(surge)三种三维空间变化。图3中x轴为船头与船尾的中轴线所在的直线,y轴为与x轴垂直的直线。
在无人船行驶过程中,横摇、纵摇和升沉对船舶的航行安全性、功能性影响较大,原因如下:当单侧横摇幅值达到或超过最小横倾角时船舶即发生倾覆;纵摇幅值过大可能导致船舶飞车(指船舶推进装置脱离自由水面发生空转),进而导致船体失速、失去操控性;船舶从浪尖上飞出、再次入水时,船体在惯性作用下大幅度下沉,甲板容易上水,进而影响船上传感设备的稳定性和安全性。
由于无人船的行驶状态和海浪的形态息息相关,因此,根据无人船的行驶数据可以确定海浪的波浪数据。具体方法如下所述。
S202,根据所述历史行驶数据确定所述无人船所在航行区域内海浪的波浪数据。
海洋表面海水受风的作用和气压变化等影响,促使它离开原来的平衡位置,而发生向上、向下、向前和向后方向运动,就形成了海上的波浪。波浪是一种有规律的周期性的水面起伏运动,理想状况下可将其视为规则波分析,其运动特征可通过波长、波高、周期进行表征。通常波长越大,其波高越高、周期越长、浪向越稳定。
可以根据历史行驶数据确定出海浪的波长、波高和周期等波浪数据,根据波浪数据即可掌握海浪的形态,进而可以根据海浪的形态控制无人车行驶。
S203,根据所述波浪数据对所述无人船进行控制。
船舶属于欠驱动运动系统,只有舵角和推力可以控制。因此,对无人船进行控制通常是指控制船舵的方向和控制推进装置的动力输出。
无人船行驶过程中容易发生的安全问题主要有倾覆和飞车。船舶在外力作用下产生横向倾斜(即横倾)的角度,叫横倾角。船舶在各种使用情况下对横倾角的大小都有一定的限制,即横倾角限制范围。当船舶的横摇幅值超过横倾角限制范围时,容易发生倾覆。飞车是指船舶推进装置脱离自由水面发生空转,船舶失去推力,这种情况下,船舶也容易失去操控,发生失速。
为了防止无人船发生倾覆,可选的,根据所述波浪数据对所述无人船进行控制的一种实现方式为:
获取所述无人船的横摇幅值;若所述横摇幅值超过第二预设数值范围,则调整所述无人船的舵角,以使所述无人船的航向与所述波浪传播方向之间的夹角减少至第三预设数值范围内;若所述横摇幅值未超过第二预设数值范围,则继续监测无人船的横摇幅值,并使无人船保持当前的航向和航速。
这里的无人船的横摇幅值,可以指在启动控制任务后的第t个控制时刻的无人船的横摇幅值,也可以指启动控制任务后的第t-1个控制时刻到第t个控制时刻之间无人船的横摇幅值的平均值。
第二预设数值范围通常设置为无人船的横倾角限制范围。第三预设数值范围的设置原则可以是,当夹角减少至第三预设数值范围内时,无人船的横摇幅值在横倾角限制范围内。
无人船与波浪传播方向之间的夹角较大时,无人船的横摇幅值较大。反之,无人船与波浪传播方向之间的夹角较小时,无人船的横摇幅值较小。当横摇幅值超过横倾角限制范围时,说明无人船与波浪传播方向之间的夹角较大,这种情况下无人船容易发生倾覆。此时,应调整无人船的航向,以减小无人船的航向与波浪传播方向之间的夹角。
为了防止无人船发生飞车现象,可选的,根据所述波浪数据对所述无人船进行控制的另一种实现方式为:
根据所述波浪周期和所述波浪周期内的浪高,预测所述第t个控制时刻的浪高;若所述第t个控制时刻的浪高大于预设浪高,则调整所述无人船的舵角,以使所述无人船的纵摇幅值减少至第四预设数值范围内;若所述第t个控制时刻的浪高小于或等于预设浪高,则降低无人船的推进装置的动力输出,以使无人船平稳地通过海浪。
浪高越高,无人船越容易发生飞车现象。可以根据无人船的性能、以及历史的行驶状态预先设置预设浪高。设置预设浪高的原则可以是,当浪高小于预设浪高时,能够保证无人船平稳地通过海浪。
设置第四预设数值范围的原则是,当无人船的纵摇幅值减少至第四预设数值范围内时,无人船不会发生飞车现象。
需要说明的是,上述两种实现方式可以同时执行,也可以根据实际需要择一执行。
本申请实施例中获取无人船的历史行驶数据,根据历史行驶数据确定无人船所在航行区域内海浪的波浪数据;由于波浪数据可以反映出海浪的特性,而海浪的特性又是高海况的一个重要体现,因此,掌握了波浪数据,即相当于掌握了高海况海浪对无人船的扰动规律,根据波浪数据(即根据海浪对无人船的扰动规律)对无人船进行控制,可以保证高海况下对无人船进行精准的自适应控制,进而能够保证无人船的平稳行驶。
在一个实施例中,参见图4,是本申请一实施例提供的波浪数据的确定方法的流程示意图。
本申请实施例中的波浪数据可以包括波浪传播方向、波浪周期和波浪周期内的浪高。
如图4所示,步骤S202中根据所述历史行驶数据确定所述无人船所在航行区域内海浪的波浪数据,可以包括以下步骤:
S401,根据所述横摇幅值数据集和所述纵摇幅值数据集确定所述波浪传播方向。
当船舶的航向与波浪传播方向相对一致或相反时,船舶的横摇幅值的变化率通常小于纵摇幅值的变化率。当船舶的航向与波浪传播方向接近垂直时,船舶的横摇幅值的变化率通常大于纵摇幅值的变化率。
根据上述规律,可选的,确定波浪传播方向的一种实现方式为:
1)根据所述横摇幅值数据集计算横摇幅值变化率,根据所述纵摇幅值数据集计算纵摇幅值变化率。
计算横摇幅值变化率的一种方式可以是,计算横摇幅值数据集对应的绝对幅值变化率。具体的,将横摇幅值数据集中的最大横摇幅值减去最小横摇幅值,得到最大幅值差,然后将最大幅值差除以横摇幅值数据集对应的时间段,得到绝对幅值变化率。
计算横摇幅值变化率的另一种方式可以是,计算横摇幅值数据集对应的平均幅值变化率。具体的,计算横摇幅值数据集中在时间上相邻的每两个横摇幅值之间的幅值差,然后计算各个幅值差的平均值,得到平均幅值变化率。
当然,还可以通过其他方式计算横摇幅值变化率,在此不做限定。
计算纵摇幅值变化率的方式可以参见上述计算横摇幅值变化率的方式,在此不再赘述。需要说明的是,纵摇幅值变化率和横摇幅值变化率的计算方式需要保持一致,例如,计算横摇幅值数据集对应的绝对幅值变化率,那么也需要计算纵摇幅值数据集对应的绝对幅值变化率。这样,才能保证两者的可比较性。
2)根据所述横摇幅值变化率和所述纵摇幅值变化率,确定所述波浪传播方向与所述无人船的航向之间的夹角。
参见图5,是本申请实施例提供的波浪传播方向与无人船的航向之间的夹角的示意图。如图5所示,夹角可以分为四种情况。
情况一、如图5中(a)所示,无人船的航向与波浪传播方向之间的夹角为0°或180°。这种情况下,横摇幅值变化率近似为0,纵摇幅值变化率为某个范围内的数值。
情况二、如图5中(b)所示,无人船的航向与波浪传播方向之间的夹角小于45°、或大于135°。这种情况下,横摇幅值变化率小于纵摇幅值变化率。
情况三、如图5中(c)所示,无人船的航向与波浪传播方向之间的夹角大于45°、且小于135°。这种情况下,横摇幅值变化率大于纵摇幅值变化率。
情况四、如图5中(d)所示,无人船的航向与波浪传播方向之间的夹角为90°。这种情况下,横摇幅值变化率为某个范围内的数值,纵摇幅值变化率近似为0。
3)获取所述无人船的航向,并根据所述无人船的航向和所述夹角确定所述波浪传播方向。
根据上述四种情况,即可根据无人船的航向和夹角确定波浪传播方向。这里的波浪传播方向可以是某个方向范围,也可以是确定的某个值。
S402,根据所述升沉幅值数据集确定所述波浪周期和所述波浪周期内的浪高。
海浪的波浪周期可能是不同的,而且每个波浪周期内的浪高也可能是不同的。统计波浪周期以及各个波浪周期内的浪高可以掌握海浪的波动规律。
可选的,确定波浪周期和波浪周期内的浪高的一种实现方式为:
1)根据所述升沉幅值数据集计算升沉振幅,并将大于预设值的升沉振幅记为目标振幅。
船舶在相对平静的海面上行驶时,升沉幅值也会在一定范围内变化。当升沉幅值的变化超过一定范围时,说明海面有海浪。因此,只需根据大于预设值的升沉振幅来确定海浪的波动规律即可。
海浪通常由大浪和小浪混合组群的出现,而一般的小浪不会对船舶的行驶造成危险,通常只有大浪才会危及船舶的行驶安全。因此,通常只需要监测大浪的波动规律即可。本申请实施例中预先设定预设值,相当于筛选大浪和小浪的情况,换言之,当升沉振幅大于预设值时,说明船舶遇到了大浪。
根据升沉幅值数据集计算升沉振幅的一种方式可以为,根据升沉幅值数据集绘制升沉幅值的变化曲线,根据变化曲线中的波形确定升沉振幅。
示例性的,参见图6,是本申请实施例提供的升沉幅值的变化曲线的示意图。如图6所示,变化曲线中共有4个波形(t1~t2之间为第一个波形,t2~t3之间为第二个波形,t3~t4之间为第三个波形,t4~t5之间为第四个波形),第1个波形对应的升沉振幅为5,第2个波形对应的升沉振幅为12,第3个波形对应的升沉振幅,7,和第4个波形对应的升沉振幅为10。假设预设值为8,那么第2个波形和第4个波形对应的升沉振幅为目标振幅。
2)确定所述目标振幅对应的升沉峰值,并根据在时间上任意相邻的两个所述升沉峰值之间的时间间隔确定所述波浪周期。
如图6中的示例所示,确定波浪周期的一种方式为,第2个波形中的升沉峰值对应的时刻为A,第4个波形中的升沉峰值对应的时刻为B,第2个波形中的升沉峰值和第4个波形中的升沉峰值为时间上相邻的两个升沉峰值,将A和B之间的时间间隔确定为波浪周期。
当然,确定波浪周期的另一种方式,也可以根据幅值为0的升沉幅值确定波浪周期。例如,计算A时刻之前升沉幅值为0的时刻t2,与B时刻之前升沉幅值为0的时刻t4之间的时间间隔为波浪周期。
3)根据所述波浪周期对应的所述目标振幅确定所述波浪周期内的浪高。
如图6中的示例所示,当以A到B之间的时间间隔为波浪周期时,目标振幅为10和12。可以将后边时刻对应的目标振幅记为浪高,也可以将前边时刻对应的目标振幅记为浪高,还可以取两个目标振幅的最大值记为浪高,也可以取两个目标振幅的平均值记为浪高。
当以t2到t4之间的时间间隔为波浪周期时,目标振幅为12,将该目标振幅记为浪高。
需要说明的是,图6仅为升沉幅值的变化曲线的一个示例,图6对应的示例仅为波浪周期和浪高的计算方法的一个示例,当然,还可以利用其他方法计算波浪周期和浪高,在此不做具体限定。
本申请实施例中,利用无人船的历史行驶数据确定海浪的波浪数据,能够较准确地掌握海浪的波动特性;由于海浪的波动特性是海况的一个重要指标,因此,通过上述方法,能够较准确地掌握海况,为无人船的自适应控制提供了可靠的数据依据。
参见图7,是本申请又一实施例提供的无人船控制方法的流程示意图。如图7所示,无人船控制方法可以包括以下步骤:
S701,监测所述无人船的升沉幅值。
S702,若所述升沉幅值超过第一预设数值范围,则启动所述控制任务,并开始记录所述无人船的行驶数据。
船舶在相对平静的海面上行驶时,升沉幅值也会在一定范围内变化。当升沉幅值的变化超过一定范围时,说明海面有海浪。因此,可以根据升沉幅值来判断船舶是否遇到了海浪、以及遇到的海浪的大小。当船舶遇到较大海浪时,启动控制任务。通过预先设定第一预设数值范围,可以控制启动控制任务的条件。
示例性的,在实际应用中,当监测到的升沉幅值未超过第一预设数值范围时,以第一控制频率对无人船进行控制;当监测到的升沉幅值超过第一预设数值范围时,以第二控制频率对无人船进行控制。第一控制频率低于第二控制频率。换言之,当无人船遇到相对较大的海浪时,以较高控制频率控制无人船;当无人船遇到相对较小的海浪时,以较低控制频率控制无人船。这样,可以避免控制器始终保持高负荷的运行状态,有效减少控制器的负荷,节约控制成本。
S703,在启动控制任务后的第t个控制时刻,获取所述无人船的历史行驶数据。
S704,根据所述历史行驶数据确定所述无人船所在航行区域内海浪的波浪数据。
S705,根据所述波浪数据对所述无人船进行控制。
上述步骤S703~S705与图2实施例所述的步骤S201~S203相同,具体可参见图2实施例中描述,在此不再赘述。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
对应于上文实施例所述的方法,图8是本申请一实施例提供的无人船控制装置的结构框图,为了便于说明,仅示出了与本申请实施例相关的部分。
参照图8,该装置包括:
获取单元81,用于在启动控制任务后的第t个控制时刻,获取所述无人船的历史行驶数据,其中,所述历史行驶数据包括预设时间段内所述无人船的行驶数据,所述预设时间段为从启动所述控制任务的时刻到启动所述控制任务后的第t个控制时刻之间的时间段,所述t为大于1的正整数。
计算单元82,用于根据所述历史行驶数据确定所述无人船所在航行区域内海浪的波浪数据。
控制单元83,用于根据所述波浪数据对所述无人船进行控制。
可选的,装置8还包括:
监测单元,用于在获取所述无人船的历史行驶数据之前,监测所述无人船的升沉幅值。
记录单元,用于若所述升沉幅值超过第一预设数值范围,则启动所述控制任务,并开始记录所述无人船的行驶数据。
可选的,所述历史行驶数据包括横摇幅值数据集、纵摇幅值数据集和升沉幅值数据集;所述波浪数据包括波浪传播方向、波浪周期和所述波浪周期内的浪高。
可选的,计算单元82包括:
波浪方向计算模块,用于根据所述横摇幅值数据集和所述纵摇幅值数据集确定所述波浪传播方向。
波浪周期计算模块,用于根据所述升沉幅值数据集确定所述波浪周期和所述波浪周期内的浪高。
可选的,波浪方向计算模块还用于:
根据所述横摇幅值数据集计算横摇幅值变化率,根据所述纵摇幅值数据集计算纵摇幅值变化率;
根据所述横摇幅值变化率和所述纵摇幅值变化率,确定所述波浪传播方向与所述无人船的航向之间的夹角;
获取所述无人船的航向,并根据所述无人船的航向和所述夹角确定所述波浪传播方向。
可选的,波浪周期计算模块还用于:
根据所述升沉幅值数据集计算升沉振幅,并将大于预设值的升沉振幅记为目标振幅;
确定所述目标振幅对应的升沉峰值,并根据在时间上任意相邻的两个所述升沉峰值之间的时间间隔确定所述波浪周期;
根据所述波浪周期对应的所述目标振幅确定所述波浪周期内的浪高。
可选的,控制单元83包括:
获取模块,用于获取所述无人船的横摇幅值。
第一调整模块,用于若所述横摇幅值超过第二预设数值范围,则调整所述无人船的舵角,以使所述无人船的航向与所述波浪传播方向之间的夹角减少至第三预设数值范围内。
可选的,控制单元83还包括:
预测模块,用于根据所述波浪周期和所述波浪周期内的浪高,预测所述第t个控制时刻的浪高。
第二调整模块,用于若所述第t个控制时刻的浪高大于预设浪高,则调整所述无人船的舵角,以使所述无人船的纵摇幅值减少至第四预设数值范围内。
需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
另外,图8所示的装置可以是内置于现有的终端设备内的软件单元、硬件单元、或软硬结合的单元,也可以作为独立的挂件集成到所述终端设备中,还可以作为独立的终端设备存在。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
图9是本申请一实施例提供的无人船的结构示意图。如图9所示,该实施例的无人船9包括:至少一个处理器90(图9中仅示出一个)处理器、存储器91以及存储在所述存储器91中并可在所述至少一个处理器90上运行的计算机程序92,所述处理器90执行所述计算机程序92时实现上述任意各个无人船控制方法实施例中的步骤。
所述无人船可包括,但不仅限于,处理器、存储器。本领域技术人员可以理解,图9仅仅是无人船9的举例,并不构成对无人船9的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如还可以包括输入输出设备、网络接入设备等。
所称处理器90可以是中央处理单元(Central Processing Unit,CPU),该处理器90还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器91在一些实施例中可以是所述无人船9的内部存储单元,例如无人船9的硬盘或内存。所述存储器91在另一些实施例中也可以是所述无人船9的外部存储设备,例如所述无人船9上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器91还可以既包括所述无人船9的内部存储单元也包括外部存储设备。所述存储器91用于存储操作系统、应用程序、引导装载程序(BootLoader)、数据以及其他程序等,例如所述计算机程序的程序代码等。所述存储器91还可以用于暂时地存储已经输出或者将要输出的数据。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现可实现上述各个方法实施例中的步骤。
本申请实施例提供了一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行时实现可实现上述各个方法实施例中的步骤。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质至少可以包括:能够将计算机程序代码携带到装置/无人船的任何实体或装置、记录介质、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random AccessMemory)、电载波信号、电信信号以及软件分发介质。例如U盘、移动硬盘、磁碟或者光盘等。在某些司法管辖区,根据立法和专利实践,计算机可读介质不可以是电载波信号和电信信号。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置/无人船和方法,可以通过其它的方式实现。例如,以上所描述的装置/无人船实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。