朱鹏祥,李培正,马赛男,骆曹飞,马 勇
(1.武汉理工大学航运学院,武汉 430063;2.内河航运技术湖北省重点实验室,武汉 430063;3.浙江嘉蓝海洋电子有限公司,舟山 316000)
山东青岛附近海域再次遭受了浒苔侵袭,目前当地已经组织人员打捞了24 万吨,今年已经是连续第15年遭受浒苔灾害。通常的解决措施是人工乘坐船舶在海里打捞浒苔再转运到海岸,但这种方法效率很低,而且打捞成本较高[1]。若浒苔不加处理,大量的浒苔相互堆积,会导致水体发臭,危害当地生态环境。
美国、以色列等国较早地开展了无人船艇技术研究的国家,推动了无人船艇技术的快速发展[2-4]。当前,越来越多的国家和地区投入到无人船艇的研制工作中。考虑到无人船艇具有机动灵活、操纵性好和自主航行等优点[5],拟由一根浮绳连接两艘欠驱动无人船艇,形成双无人船艇系统,将浒苔拖至海岸。此类具有物理连接的双无人船艇系统可承担清理海上溢油和水面垃圾、清除核生化污染、建设浮船坞,以及救助落水人员与失事船只等任务[6-8]。双无人船艇系统相对于单艘无人船艇,其容错性能、协同导助航水平和搭载能力等优势明显[9],可承担更为复杂的任务。
在多无人船艇协同系统的研究方面,国内学者的研究主要侧重在船艇体性能设计与多船艇协同导航算法方面,较少关注协同运动控制及行为决策等方面的研究[10]。文献[11]开展了多无人船艇协同编队控制的基础理论研究。文献[12]研究了多个动态领航船的欠驱动无人船艇的包含控制问题,提出了静态和动态领导者的包含控制算法,设计了跟踪控制器。文献[13]开展了多无人船艇编队算法和避障策略的工作。文献[14]设计了一种适用于特定响应的多无人船艇导航、制导和控制框架。文献[15]总结了多机器人定位的协同算法和技术、多机路径规划及冲突避免方法和并行多任务的分配方法。
在存在连接体的无人船艇相关协同控制研究方面,文献[16]以带有浮绳连接的两艘无人船艇为研究对象,基于零空间协同的行为控制策略考虑了浮绳力矩对船艇的干扰,完成了溢油回收任务。文献[17]开展了连接水下电缆的多无人船艇动力学建模与运动仿真工作。文献[18]模拟了一个多无人船艇的数字海洋环境,设计了一种行为驱动的人工免疫模糊分类器。
本文重点关注欠驱动双无人船艇系统的协同控制策略,考虑系统的作业约束及运动学约束,借鉴现有的多水面无人船艇或多机器人编队控制策略[11-15],体现欠驱动特性,以设计出基于距离的协同运动控制策略,进而解决双无人船艇系统协同作业清扫浒苔问题。
如图1所示,在浒苔清扫任务中,可通过两艘水面无人船艇与浮绳联结形成双无人船艇系统,由系统协同作业清扫浒苔,并将其拖运海岸。
图1 双无人船艇系统清理水面浒苔示意图Fig.1 Schematic diagram of cleaning water surface Enteromorpha by double unmanned boat system
由浮动柔性绳联结的双无人船艇系统结构如图1所示,为了浒苔被有效捕获,需考虑如下约束条件,以实现协调运动。
(1)作为编队,必须控制系统的核心位置即两船艇的重心,实时获取编队的位置。
(2)假设一艘无人船艇向左,另一艘船艇向右,通过控制编队的角度和前进方向,来确保系统以正确的方向接近浒苔。
(3)两无人船艇之间的距离必须小于绳索的长度,同时必须保持一定的距离,避免相互碰撞。
(4)系统应协调运动,左船艇需要谨慎向右转向、右船艇需要谨慎向左转向,避免撞向后方的浮绳。
船舶位姿可参考造船与轮机工程学会(SNAME)推荐的符号体系,如表1所示。
表1 船舶位姿符号体系Table 1 Ship pose symbol system
考虑到浒苔清扫作业为水平面运动,故无人船艇采用三自由度运动模型,仅计及纵荡、横荡与艏摇运动,即。通常,无人船艇无侧向推进器,如图2所示,能够输入控制变量的为纵向推进力Fu与回转力矩Tr[16]。
图2 无人船艇三自由度运动模型[16]Fig.2 Three degree of freedom motion model of unmanned boat[16]
式(1)给出无人船艇三自由度数学模型:
用于清扫浒苔任务的双无人船艇系统受力分析图如图3所示。两艘无人船艇的中点为系统的重心O,以重心O为协同策略中的虚拟导航点。式(5)为其位置方程:
图3 无人船艇清扫浒苔Fig.3 Unmanned boat cleaning Enteromorpha prolifera
式中,PL和PR分别为左右无人船艇的位置,PLx,PLy,PRx,PRy分别为左无人船艇横坐标、左无人船艇纵坐标、右无人船艇横坐标和右无人船艇纵坐标。
控制两艘无人船艇距离的目的是避免无人船艇距离太近发生碰撞或防止无人船艇距离过远将浮绳拽断,因此,必须控制两艘无人船艇间距在合适的阈值内。如图3所示,该函数的表示式为:
式中,(a,b)为两艘无人船艇间距的阈值,在后续模式切换中,引入状态缓冲值c,用来提高系统的稳定性。
为了针对实际情况对无人船艇航行过程进行模拟,本文利用无人船上的水流流速流向传感器探测无人船航行位置,实时记录水流的流速和流向,并根据水流的流向绘制出图4所示包含水流信息的栅格地图[19]。每个栅格内都有一个代表水面上水流方向的箭头,可以看出相邻两个栅格间水流方向虽然有一定差异,但是差异较小。图4中间有两个栅格水流方向与周围差异很大(无人船艇必经过这两个栅格),这是为了测试系统能够满足特殊水流的情况。
图4 水流栅格地图Fig.4 Flow grid map
计算无人船艇艏向角,如图3所示,β为无人船艇前进方向与水平方向的夹角,而无人船艇前进方向应是作用于无人船艇的合力方向,合力包括水流阻力、浮绳拉力和无人船艇动力。取此时的水流方向垂直向上,以PL 无人船艇为例,因此,艏向角的函数被定义为:
式中,Fm、Fw、Fr和Fall分别为无人船艇的动力、水流对无人船艇的阻力、浮绳的拉力和无人船艇受到的合力,w为水流角度,m为无人船艇动力角度,r为浮绳拉力角度,α为无人船艇动力和水流的合力,β为三个力的合力,即一艘无人船艇的艏向角。所有的角度都是以X轴正方向开始逆时针到力方向的夹角。
在运动过程中,无人船艇的航向角与目标点的夹角可能非常大。通常,无人船艇的艏向角β不能瞬间变大。因此,需要考虑无人船艇转向率,让β逐渐趋于目标点。
图5 表示浮绳拖曳力对单无人船艇航行的影响,其中Ψ为浮绳拖曳力Fr与随体坐标系X轴形成的夹角,在大地坐标系下,可由无人船艇的艏向角推出。Fx、Fy为Fr分别分解到随体坐标系X轴、Y轴上的力,设定Tm为无人船艇本身能够提供的最大回转力矩。Fx可以被无人船艇推进器产生的推力抵消掉,但会影响到无人船艇的航行速度;而Fy在船艉产生的回转力矩会随着Ψ的增大而增大,若产生的Fy超过Tm的值,则即使无人船艇提供最大的回转力矩,无法平衡拖曳力Fr,所以产生了横向分离效应。削弱横向分离效应的影响,不仅需要无人船艇自身提供的回转力要足够大,还要实时控制艏向角,避免无人船艇船艉与浮绳力的夹角过大。
忽略柔性浮绳在运动中的拉伸形变,当浮缆在水中处于张紧状态时,可将浮缆形状近似成悬链,悬链的形状通常可以类比成在空气中一段链状物只受重力影响的情况。根据文献[20]所述,水流中的阻力使浮缆发生形态变化,与悬链挂在空气中因为重力产生形态变化的情况相似。无人船艇在恒定流速的水流中稳定航行,假设柔性浮缆与水流速度方向成恒定角度,浮缆的形状可以近似表示为一段悬链,悬链曲线在坐标系中可以表示为:
此曲线表示了等高悬链方程的一般形式,其中,a为常数,是曲线顶点到横坐标轴的距离。如图6所示,水流速度w的方向为Y轴正方向,设定此坐标轴的原点为两艘无人船艇的队形中心,故水流速度与无人船艇队形中心的运动速度方向相反。
图6 浮绳的形状曲线Fig.6 Shape curve of floating rope
在无人船艇运动过程中,两船艇间的距离不断变化。因此,浮绳也应是不断变化的,为了模拟该场景,需要根据无人船艇的位置反解出a的数值,即求出不断变化的具体函数。由于此反解过程涉及超越函数,因此采用泰勒展开式逼近解析解,最后求解一元多次方程得到a,求解过程如下:
基于两船艇距离的协同控制策略分为编队模式和跟踪模式。编队模式:在无人船艇航行中,当船艇间距在合适阈值内时,每艘无人船艇向目标点航行,当船艇间距不在合适阈值内,抑制距目标点近的无人船艇动力,组成捕获目标的编队;跟踪模式:在无人船艇航行中,虚拟导航点(两船艇重心)实时跟踪目标点,两船艇保持与导航点相同的艏向角。其中,两种模式都遵循相同的间距控制策略。
参考式(6),间距控制策略是当两船艇间距小于a时,无人船艇动力Fm向左侧调整30°,导致分力拉开两船艇间距。同理,另一艘无人船艇向右侧调整30°。此时,引入状态缓冲值c,两船艇间距合适的阈值调整为(a+c,b),即两船艇间距大于a+c时,无人船艇恢复原先的艏向角。当两船艇间距大于b时,处理方式与上述描述相反。由于两艘无人船艇拥有同一个目标(编队模式)或者相同的艏向角(跟踪模式),故间距不易扩大,只有在特殊水流干扰和浒苔阻力过大时,才可能扩大间距。
编队模式切换到跟踪模式的条件:当两船艇与目标点的距离相等且两船艇间距离保持在合适阈值内时,系统由编队模式进入跟踪模式,表示为式(6)和下式:
跟踪模式切换到编队模式的条件:当两船艇与目标点的距离之差大于固定值且两船艇间距离不在合适阈值内时,系统由跟踪模式进入编队模式。
通过以上特殊名词的解释,并基于距离的协同控制策略,浒苔清扫任务可以描述为以下3 个步骤:
(1)根据浒苔分布于海边的特征,可以通过手持式GPS 测量仪测得浒苔泛滥处的位置;
(2)根据双无人船艇、浒苔和海岸浒苔回收处的位置以及双无人船艇完成任务时的位姿约束条件,规划无人船艇的航迹。在水流的影响下,浒苔的位置不断变化,故无人船艇的航迹也应不断变化,浒苔变化的位置可以通过放置在浒苔中的GPS 发射器获得;
(3)对所述的航迹进行路径跟踪,由于两船艇距浒苔的距离不相等,为了更方便捕获浒苔,控制策略首先切换到编队模式,调整双无人船艇编队,等满足条件时,进入跟踪模式,提高系统稳定性,之后两种模式不断切换,直到两船艇包裹住浒苔,并拖动浒苔驶向海岸浒苔回收处,完成浒苔清扫任务。其中,间距控制策略作用于整个过程。
文献[16]分析了柔性连接式双无人船艇完成溢油围捕任务过程中两艘无人船艇的具体行为:轨迹跟踪、保持队形、溢油围捕、速度动态调整等行为,并设定行为的优先级;使用零空间策略(Null-Space-Base,NSB)按照行为的优先级进行行为融合,计算出两艘无人船艇的实时期望航向。与文献[16]相比,本文提出的控制策略无须将行为排序,且依据无人船艇的结果反馈控制艏向角。其优势体现在,不同模式切换间的状态缓冲和跟踪模式下不改变无人船艇动力方向,使得系统稳定性明显提高。
本文仿真基于Python 的pyglet 模块模拟实现,仿真中设定无人船艇动力70 PS、空载浮绳拉力5 kN、满载浮绳拉力30 kN、无人船艇最大转向角30°、浮绳深度150 m、船艇间距离下限80 m、船艇间距离上限100 m、状态缓冲值10 m等,双无人船艇系统基于两船艇距离的协同控制策略完成浒苔清扫任务的大致过程如图7所示。
图7(a)表明任务开始,两船艇进入编队模式,调整双无人船艇位置;图7(b)表明完成编队模式进入跟踪模式,两船艇的艏向角同虚拟导航点相同,图中可以发现两船并没有指向同一方向,是由于水流的干扰导致间距变化,从而间距控制策略发挥作用,拉开两船艇间距;图7(c)表明两船艇已包围浒苔;图7(d)表明两船艇拖动浒苔进入编队模式,并且浮绳的拉力逐渐增加,直到30 kN为止;图7(e)表明浮绳在最大负载下两船艇由编队模式再次进入跟踪模式;图7(f)表明两船艇拖动浒苔到达海岸浒苔回收处,完成本次浒苔清扫任务。
图7 系统执行浒苔清扫任务(a~f 顺次执行)Fig.7 System performs Enteromorpha cleaning task(a-f in sequence)
图8 为通过浮绳连接两艘水面无人船艇构成双无人船艇协同,由协同系统清扫浒苔并将其拖运至海岸的航迹曲线。从图8 和图7 可以得出,本文提出的控制策略能够完成浒苔清扫任务。图9 为文献[16]中无人船艇的行驶轨迹曲线,对比图8 可以看出,在本文控制策略下执行跟踪模式的轨迹相比于文献[16]中的轨迹更加平滑,几乎未发生转向。因此,本文的控制策略能够提高系统的稳定性。
图8 无人船艇围捕浒苔轨迹Fig.8 Tracking of Enteromorpha prolifera encircled by unmanned boats
图9 无人船艇的行驶轨迹[16]Fig.9 Trajectory of unmanned boat[16]
图10 为误差曲线图,由于水流的影响,规划路径不断变化。蓝色折线为任务开始时的规划路径,绿色折线为浒苔被拖动后的规划路径,折点为浒苔位置。双无人船艇从任务开始到拖动浒苔的时间里,浒苔在水流的影响下,从蓝色折点流到绿色折点。由图10 可知,在双无人船艇拖动浒苔之前,导航点(两船艇重心)一直在两条规划路径内,符合期望轨迹;在无人船艇拖动浒苔后,由于无人船艇有限的转向角和惯性作用,无人船艇转向轨迹为弧形,而规划路径没有考虑这些。从图7 和图8 可知,该协同系统能够完成浒苔清扫任务。
两艘无人船艇横向距离随时间的变化关系如图11所示。任务开始时,两船艇处于编队模式且拥有同一个目标。因此,其距离不断拉近,当两者距离等于80 m 时,调整左船艇艏向角向左侧偏移30°,使无人船艇动力分出一个垂直于另一艘无人船艇的分力,拉开两船艇距离。同理,调整右船艇艏向角向右侧偏移30°。此时,引入状态缓冲值为10 m,扩大船间阈值,让两船艇继续拉开船间距离,直到90 m 为止。由于同一个目标,两船艇距离会再次等于80 m,之后继续拉开,此过程往返进行,直到任务结束。在图11 中,大约220 s 处(设置了与无人船艇运动相垂直的急速水流),船艇间横向距离达到了95 m,之后又回到90 m 以内,此处是为了测试系统稳定性。由图可知,该系统仍然可以正常运行。因此,该控制策略拥有一定的抗干扰能力。
图11 双无人船艇间横向距离Fig.11 Lateral distance between two unmanned boats
两艘无人船艇纵向距离随时间的变化关系如图12所示。纵向距离是目标点距两船艇之间距离的差值,此图可反应出两船艇的编队是否适合围捕浒苔。例如,船艇间纵向距离约等于0 m 时,说明两船艇距目标点的距离近似相等,即两船艇的垂直平分线近似穿过目标点,也就是两船艇的艏向角和船艇间距离能够围捕目标。在图12 中,大约300s 处,双无人船艇开始拖动浒苔(图7(c)),此时目标点由浒苔转为岸边的浒苔回收处,两船艇间的纵向距离突然增大。此时,控制策略中的编队模式开始调整双无人船艇编队,使之逐渐形成拖动浒苔的编队。
图12 双无人船艇间纵向距离Fig.12 Longitudinal distance between two unmanned boats
图13 表示两艘无人船艇艏向角随时间变化的曲线,其中以正上方为0°,顺时针增加角度。由于水流的影响和横轴时间跨度小导致图中双无人船艇艏向角一直在明显地变化,在400 s 处右船艇的艏向角变化巨大,是因为浮绳拉力太大,又处于编队模式中,从而右船艇不断调整艏向角,但从图13 的150~300 s 处可以看出,本文控制策略中跟踪模式的优势,提高系统的稳定性。相比于图14所示的无人船艇艏向角实时变化曲线[16],本文的控制策略仍有可取之处。
图13 无人船艇艏向角Fig.13 Heading angle of unmanned boat
图14 无人船艇艏向角Fig.14 Heading angle of unmanned boat
以左船艇为例,作用于无人船艇力的变化如图15所示。由于图中无人船艇动力Fm、水流阻力Fw和浮绳拉力Fr不是线性关系,因此合力Fall并不是上述3 个力线性叠加的结果。但是通过此图可以看出,无人船艇动力的大小保持不变,水流的阻力变化较小,浮绳拉力随着浒苔的变化而变化,合力开始时受水流影响逐渐增加,直到双无人船艇拖动浒苔时,浒苔阻力的不断提高,导致合力逐渐下降。通过图15,合力大小的变化可大致反应出无人船艇速度的变换,由快转慢。
图15 作用于无人船艇力的变化Fig.15 Change of force acting on unmanned boat
两艘无人船艇速率随时间的变化如图16所示。在双无人船艇开始任务和拖动浒苔时,右船艇距目标点的距离一直小于左船艇距目标点的距离,为形成捕获浒苔的编队,控制策略切换到编队模式,抑制右船艇的速率,即把右船艇原有的动力70 PS 降为23.3 PS;在其他过程中,控制策略切到跟踪模式,导致双无人船艇的速度近乎相等。在图16 中还可发现,在300 s 之前(浮绳空载阶段)的平均速度大于600 s 之后(浮绳完全拖动浒苔)的速度,可见浒苔阻力对双无人船艇系统的影响。
图16 双无人船艇速率的变化Fig.16 Change of speed of double unmanned boat
通过分析双无人船艇协同系统执行浒苔清扫任务的步骤,设计出基于距离的混合协同控制策略,解决了系统需要执行多个行为情况下的决策问题,得到融合控制后输出的艏向角及航速,搭建了双无人船艇协同系统的仿真试验平台。经验证,提出的控制策略保障了双无人船艇系统有效协同围捕浒苔。
本文结合协同行为控制提出了基于距离的混合控制策略,实际作业中需要准确预测浒苔位置、精确浮绳拉力随浒苔数量的变化而变化以及复杂水流等作业环境扰动,上述工作将是今后进一步研究的方向。