基于协同控制的自重构平台算法及试验验证
2021-12-06于特,王磊,b
于 特,王 磊,b
(上海交通大学 a.海洋工程国家重点实验室;b.高新船舶与深海开发装备协同创新中心,上海 200240)
无人船的发展历史长达百年,从1898年由尼古拉·特斯拉发明的无线电遥控船开始,无人船的自主化程度随着自动控制和计算机技术的发展而不断提高.近年来,人工智能技术的飞速发展使得包括无人船在内的各类无人载器具备了自主执行任务和协同作业的能力.2014年8月,美国海军在弗吉尼亚州詹姆斯河开展了无人艇“蜂群”协同作战演示[1].该无人艇集群包括5艘自主无人艇和8艘遥控无人艇,通过搭载的不同传感器,可以完成护航和敌船拦截任务,实现集群作战模式,包围和拦截“可疑舰船”.2018年,云洲智能公司在南海万山群岛海域开展了一次由56艘无人艇组成的海上编队航行[2],该集群可以通过切换队形形成航母图案或汉字.同年,该公司利用81艘“瞭望者”号无人艇实现了更大规模的集群编队演示[3].
在海上对接技术领域,美国海军早已启动了利用动力定位系统控制两船之间相对位置的理论和模型试验研究.在荷兰水池MARIN的模型试验中,利用动力定位系统的运输船和远征转运船坞(ESD)成功实现在多个波浪角度下的相对位置和艏向角的控制.在民用领域,与对接技术相关的大型海洋装备的旁靠和组块安装作业,已成为海洋工程中的研究和应用热点.Queiroz等[4-5]利用一致性协同比例积分微分(PID)控制算法,实现了两艘动力定位拖轮的协同控制,在试验中减少了相对距离和艏向的误差.此外,其利用数值仿真方法,验证了基于一致性算法的协同控制可以更好地使两艘拖轮保持相对位置.Cong等[6]利用PID控制算法控制半潜式生活平台跟随浮式生产储油轮(FPSO),数值仿真结果表明该作业方式有效.
大型海洋平台往往利用系泊的方法固定在某一区域作业,而小型无人船受其载重影响无法实现强度更大的功能.为了满足未来海上作业需求,提出一种自重构的海上自主变形平台:利用无人船之间的协同控制,包括任务规划、路径规划、轨迹跟踪和旁靠对接,实现无人船之间的自主靠泊对接,从而形成该平台.
1 旁靠控制策略
在大地坐标系中,2个子模块P和Q的旁靠系统如图1所示.模块P依靠自身控制系统定位在原地,模块Q依靠自身控制系统运动到虚线位置.考虑某个子模块的3自由度运动(纵荡、横荡和艏摇),其运动学和动力学可以用数学模型[7]描述为
图1 大地坐标系与船体坐标系Fig.1 Earth-fixed and body-fixed reference frames
(1)
(2)
(3)
式中:t为时间.即子模块在大地坐标系中的位置向量向预定的位置向量(ηd)收敛.
1.1 单模块动力定位控制方法
子模块为过驱动控制,即控制输入的维度大于被控目标的维度.所设计的子模块包括8个固定的推进器,可以实现3个自由度的运动控制.控制算法选择动力定位系统的经典控制算法,即PID控制算法.在水平面3个自由度的PID控制算法为
(4)
式中:Kp、Kd和Ki分别为比例、微分和积分系数;x和Δx分别为在船体坐标系中子模块3个自由度的位置和相对于预定目标位置的位置偏差;τ为时间微元.利用该方法得到的τinput无法直接作用于子模块上,还需要对其进行推力分配,以得到每个推进器的推力.
1.2 双模块协同控制策略
图1中的双模块旁靠情况需要2个子模块协同控制.构建双子模块的动力学模型:
(5)
式中:模块P定位在原地,为领航者;模块Q为跟随者,负责与模块P旁靠,这利用了无人船编队控制中领航-跟随的思想.但该方法使得子模块与子模块之间的“地位”不对等.本设计的核心思想之一为去中心化,使得每个子模块的任务一致,因此提出如图2所示的协同控制策略.在模块P和Q之间选取1个中间动态参考点(M),通过设计点M可以进一步设计2个子模块各自的理想定位点P′和Q′.点M、P′和Q′可分别表达为
图2 动态参考点MFig.2 Dynamic reference point M
(6)
(7)
(8)
式中:B为单个子模块的型宽.利用上述方法选取定位点,可以实现去中心化的设计.模块P和Q执行同样的目标任务,利用PID控制算法,实现双模块旁靠.
1.3 推力分配策略
本设计中的子模块为8个推进器,其布置如图3所示.
图3 推进器布置Fig.3 Thruster arrangement
对τinput进行推力分配,得到8个推进器的转速,并使其作用于子模块上.τinput由8个推进器作用产生的合力组成,表示为
τinput=B(α)T
(9)
式中:T∈R8为推进器的推力;α∈R8为推进器的角度,本设计采用固定式推进器,则
该矩阵所描述的推进器顺序为船体坐标系下X轴正向顺时针的遍历.B(α)为3×8矩阵,其第i列为
(10)
式中:αi为第i个推进器的角度;lix和liy为第i个推进器在船体坐标系中的位置.将α代入B(α)即可得到全部推进器作用矩阵,不再赘述.推力分配问题可以通过求解以下最优化问题解决.
(11)
s.t.s+B(α)T=τinput
(12)
0≤Ti≤Ti_max
(13)
0≤Ti-T0≤(ΔT)max
(14)
2 子模块软硬件设计
设计如图4所示的驳船型船体子模块,船长为 80 cm,船宽为 40 cm.其由3部分组成,从上至下依次为甲板、主船体和推进器.其中,甲板内包含对接机构;主船体内搭载岸机通信模块、控制模块、定位模块和供电设备等;推进器布置与图3所示一致.
图4 子模块硬件布置Fig.4 Hardware arrangement of a single module
2.1 对接机构
图5为对接机构的构型.每个子模块上均分布着公头和母头,母头为引导装置,公头通过控制器进行伸缩以实现模块之间的对接与分离.在对接时,公头从甲板内伸出,利用协同控制算法控制子模块运动,进而带动公头向母头靠拢;利用引导装置和子模块的自身运动,使得公头完全进入母头,采用电磁方式将公头末端与母头固连,实现对接,如图6所示.
图5 对接示意图Fig.5 Sample of docking method
图6 对接完成Fig.6 Docking completed
2.2 控制逻辑
全局的任务规划在岸上上位机中实现,上位机通过无线通信技术(Wi-Fi)和底层通信模块进行数据传输.底层控制器通过结算上位任务,得到所需执行的具体任务,具体控制(子模块对接)逻辑如下:
步骤1输入最终对接的定位点.
步骤2上位机对已有子模块进行路劲规划,给出每个循迹点和终点坐标,通过局域网发布.
步骤3子模块接收步骤2中的坐标点,进行轨迹跟踪.
步骤4当检测到2个子模块之间的相对距离不大于其设计参数时,进行对接.
步骤52个子模块通过1.2节中的控制策略进行旁靠对接.
步骤6当检测到2个子模块之间的纵荡方向误差不大于其设计参数时,伸出公头.
步骤7双模块对接完成.
步骤8剩余2个子模块重复步骤3~7.
步骤9将已经对接完成的2个双模块视为2个新子模块,重复步骤3~7.
步骤104个子模块对接完成.
3 数值仿真结果及分析
在进行试验之前,利用数值仿真对上述策略进行验证.在ROS(机器人操作系统)中建立4个子模块的运动学和动力学模型,对4个子模块首尾对接形成的浮桥进行仿真.为真实还原外界环境力的影响,选择外界干扰为
(15)
仿真结果如图7和8所示.4个子模块的初始位置距离较近,在仿真中忽略模块之间的碰撞,模块首先运动到各自定位点,然后控制艏向一致以实现对接.图9为图7最左侧模块艏摇角的时历曲线.模块的横向误差和艏摇角存在一定超调,在实际应用中可能导致模块之间的碰撞,因此需要对控制逻辑进行优化.
图7 子模块轨迹Fig.7 Trajectories of four modules
图9 子模块跟踪误差Fig.9 Tracking error of module
4 自重构平台对接试验
搭建软硬件设备,在水池条件下试验对接流程,测试4个子模块拼接为一个2×2浮体的过程,如图10所示.4个子模块(红)由初始位置出发,进行两两对接(蓝),然后再次对接形成1个平台(绿).试验中,每个子模块按照路径规划循迹至需要对接的子模块附近,然后进行位置保持,待两者艏向相同,纵向位置一致时,即开始进行向内侧的旁靠运动,借助对接机构实现对接任务.四船对接采取相同方法,只是控制参数有所不同.每组双船的旁靠对接大概需要120 s,随后大概需要60 s拼接为一个2×2的整体,试验中4个子模块的拼接过程如图11所示.在试验中发现:小模型的惯性较小不易控制,8桨的推进器也不利于实现预定推力.因此,在后续工作中可以制作缩尺比更小的模型,并安装4个全回转推进器,从而更好地实现目标对接.
图10 子模块自主对接Fig.10 Autonomous docking of four modules
图11 试验模块拼接过程Fig.11 Procedure of combination of text modules
5 结语
本设计提出一种自重构平台的设想,并进行初步的试验验证,为进一步研究做铺垫.首先从理论层面分析,明确方法和技术,然后将问题转化为2个子模块如何利用各自的动力定位能力实现旁靠对接,并对控制方法和推力分配进行设计,仿真结果表明了控制逻辑和算法的有效性.为了验证自重构平台的可行性,依托实验室条件进行模型试验,结果表明:4个子模块能够利用通信系统与岸机交互信息,执行控制指令,并逐步实现两两对接,最终拼接为一个整体平台.未来将继续开展更贴近实际的试验验证,制作缩尺比较小的模型,并对推进装置进行优化,考虑使用全回转推进器;在对接过程中适当引入风浪流外载荷干扰,进而验证算法的鲁棒性.