对於较大型的载人载具风险过高或根本无法尝试的应用,例如北极地带探索、水下建桥与管线检测及水产养殖自动化,自主水下载具(autonomous underwater vehicles;AUV)是适合机动操纵的工具。本文叙述瑞典皇家理工学院(KTH)的团队研究采取控制策略,如何让AUV以最低的能源消耗自主运行完成时间更长、复杂度更高的任务。
自主水下载具(AUV)如同空中的飞行器,在许多对於较大型的载人载具风险过高或根本无法尝试的应用会是比较适合的选择。这类应用包括北极地带探索、水下建桥与管线检测、以及水产养殖自动化,通常会需要AUV行驶一定的距离来抵达目标位置。一旦到达目标位置,载具可能还会需要执行敏捷的机动操纵,或是水下机动运行(hydrobatics),来捕捉图片、影片、和其他重要的资料。
有几项因素让这类AUV控制演算法的开发变得复杂。在这些最关键的挑战之中,无线电讯号在水中的衰减使得AUV在深海远距运行时无法可靠地接收GPS或通讯讯号。由於缺乏通讯,更显现AUV自主运行能力的重要性。
在瑞典皇家理工学院(KTH Royal Institute of Technology;KTH)的团队研究控制策略,让AUV能够以最低的能源消耗完成时间更长、复杂度更高的任务。我们使用MATLAB和Simulink提供以模型为基础的设计流程(Model-Based Design),模拟、优化和实现我们开发的控制演算法。经由这种方法可以先透过模拟快速地开发及评估演算法,然後在机动运行的AUV SAM(图1)上面进行演算法的现场测试并且提高研究的速度。
![图1 : SAM AUV(上)和其3D图示(下)。SAM是由瑞典皇家理工学院的海洋机器人中心所设计。](/art/2023/08/252043553100/p1S.JPG)
图1 : SAM AUV(上)和其3D图示(下)。SAM是由瑞典皇家理工学院的海洋机器人中心所设计。 |
|
AUV设计的工程权衡
当被设计来就地悬停(hover)的AUV通常会搭载多个推进器,使得AUV体积庞大,也因此无法轻易负担长距离的航行。另一方面,虽然细长型的AUV可以航行更远,但受限它们的形状且推进器装载数量不足,使这些AUV到达目标位置时更难悬停,或者让摄影机和其他感测器朝向有意观测的物体。
SAM为「小型经济型海洋机器人(Small and Affordable Maritime robot)」的简称,在瑞典皇家理工学院的瑞典海洋机器人中心(Swedish Maritime Robotics Centre;SMaRC)开发,它考量到距离和操纵性之间的权衡。SAM长1.4公尺,重量大约15公斤,只要一位操作人员就可以轻松驾驭,而且价格相对低廉,因此为包含数台AUV的多载具操作带来可能性。
为了让SAM维持体积小、重量轻,我们为它装配较小的电池组及有限数量的感测器。SAM的单一推进器里面装配了两组反向旋转的螺旋桨以及额外的微调子系统(trim subsystems),透过装配来改变其浮力和重心位置,因此SAM虽然敏捷,致动力却不足。它需要我们团队开发的先进控制系统来执行精确的操纵,以及有效利用载具上的感测器,而这些控制系统的开发也伴随着模拟速度和逼真度之间的工程权衡。
计算流体动态虽然有助於高度精确的流体流动模拟,仅仅是执行我们其中一个控制器演算法的测试,却需要花费好几天的计算才能够完成。相较起来,在Simulink的载具动作模拟可以近??即时地执行,而且对於定性行为建模提供充足的精确度,让我们能够在真正到AUV上进行测试之前,以模拟快速地验证及优化控制概念。
建立AUV模型
AUV的建模是一项复杂的任务,因为流体动力学会随着流动条件而改变。举例来说,当水流猛烈时,位於高角度的冲击力道和低角度冲击力道大不相同。为了考量这类复杂性,我们个别建立AUV元件的流体动力模型,并且采取经常使用在空气动力学建模的技巧元件组合法(component build-up method)将这些模型组合在一起。
对於外部元件(或湿元件),像是AUV的外壳和喷嘴,我们使用现有的最隹资料来建立流体动力特性模型。我们以查找表的形式将这些资料包含於Simulink模型之中,其中有许多种资料来源。举例来说,对於低角度的冲击,使用从CFD模拟的资料。对於高角度,则使用以USAF稳定性和控制DATCOM公式为基础的MATLAB脚本。最後,对於AUV的旋翼,则使用来自XFOIL的资料,那是一个计算了螺旋桨的空气动力学的软体封包,我们依水的密度和黏性来将其进行调整。
我们的Simulink模型也包含内部元件,像是可变浮力系统(variable buoyancy system;VBS)、用於横向重心(transverse center of gravity;TCG)修整的旋转配重、以及可以前後移动用於纵向重心(longitudinal center of gravity;LCG)修整的质量。在Simscape里面建立这些子系统的质量和致动器模型,Simscape可以更轻松地将各种元件组装到更大的受控体模型架构(图2)。
![图2 : 模拟架构,包含Simulink受控体内的元件和致动器的子模型。](/art/2023/08/252043553100/p2S.JPG)
图2 : 模拟架构,包含Simulink受控体内的元件和致动器的子模型。 |
|
控制器建模与模拟
当我们有了准确反映AUV动态和行为的受控体模型,就可以开始在Simulink使用Control System Toolbox来进行控制器的建模和模拟。
早期的控制系统包含一组比例积分微分(proportional-integral-derivate;PID)控制器,从加速规、罗盘、深度计和其他载具上的感测器取得输入资料,每一个控制器都关连到单一自由度。最近,我们开始评估模型预测控制(model predictive control;MPC)方法,包含线性、线性时变和非线性MPC,以及线性二次调节器(linear-quadratic regulator;LQR)的设计。
我们连结控制器模型与受控体模型对特定的液压操纵进行封闭??圈模拟,这些动作的复杂程度各不相同,从简单地保持特定位置到执行水平和垂直平面的紧密循环操纵(图3)。这些控制器使用范围,使用的控制器范围从简单的脚本序列到以优化为基础的技术,例如LQR和MPC等。
模拟一向是开发和实现有效控制策略的工具。例如,在一种情况下,我们希??AUV执行一个倒立摆动的操纵,其中牵涉到载具向後俯冲、保持垂直方向,然後向上移动直到其前端露出水面。如果我们仅限於使用AUV本身来进行试验,要为此操纵找到有效的控制策略将极其困难。然而透过模拟,我们就可以快速尝试各种MPC设计和PID控制器组合,并且在MATLAB产生模拟结果的详细图表(图4)来查看了解哪一种方法表现最隹。
程式码生成与验证
在透过模拟找出一个看来有效的控制策略以後,我们按照两条途径之一准备在AUV上进行测试。在某些情况下,我们只需根据Simulink控制器模型撰写控制程式码。或者我们使用Simulink Coder直接从模型产生C程式码,并且使用ROS Toolbox将程式码作为独立的机器人作业系统(Robot Operating System;ROS)节点部署到AUV上。
当我们在AUV上测试控制器时(通常会是在贮水池或海上进行现场测试的期间),我们会将载具的性能表现和行为与模拟结果进行比较。我们一致发现,从定性角度来看,AUV在现场测试中的行为在质量上与模拟行为相似(图5)。
![图5 : AUV现场测试时序图(左)与对应的模拟图(右)。](/art/2023/08/252043553100/p5S.JPG)
图5 : AUV现场测试时序图(左)与对应的模拟图(右)。 |
|
当前和未来研究
在执行水下机动运行操纵时,AUV处於一个需要精确控制的操作模式。而AUV的第二种操作模式(适用於在开放水域长距离行驶)优先考虑路径跟随和能耗最小化,而不是精确定位。考虑到这两种操作模式,我们目前正在研究更先进的策略,以便在不同的控制器之间进行适应性切换。
我们的团队还使用建模和模拟来评估AUV本身的潜在增强功能。举例来说,我们的一位同事在AUV受控体模型的前端加了一个夹具。虽然我们还没有夹具的实际硬体,但她使用模拟来协助设计LQR控制器,该控制器可以对使用夹具时的脉冲负载和可能遇到的其他干扰做出良好回应。我们还在探索使用安装在 AUV 侧面的类似夹具,让载具能够锁定一个或更多个相同的 AUV,并且开始作为一个多主体系统运作。
(本文由??思科技提供;作者Ivan Stenius为瑞典皇家理工学院工程力学系??教授暨瑞典海事机器人中心(SMaRC)首席研究员,Sriharsha Bhat为瑞典皇家理工学院博士生)