自主水下航行器 (AUV) | 近实时仿真与控制助力实现水下机动航行

描述

同空中航行器一样,自主水下航行器(AUV) 更适用于对大型载人航行器来说太危险或根本无法尝试的许多应用领域。例如,北极探索、水下建桥与管道检查,以及水产养殖自动化,这些应用通常需要 AUV 行驶一段距离才能到达目标位置。航行器一旦到达目标位置,可能就需要执行敏捷操纵(即水下机动航行),以采集图像、视频和其他重要数据。

受诸多因素的影响,开发这些 AUV 的控制算法错综复杂。其中,最严峻的挑战是无线电信号在水中会发生衰减,这使得 AUV 在深海远程作业时无法可靠地接收 GPS 或通迅信号。由于缺乏这种通信,AUV的自主作业能力就显得愈加重要。

瑞典皇家理工学院的团队研究了控制策略,通过最大限度地降低能耗,使AUV 完成时间更长、更复杂的任务成为了可能。借助 MATLAB 和 Simulink,使用基于模型的设计,对开发的控制算法进行了仿真、优化与实现。这种方法可以先通过仿真快速开发和评估算法,然后在机动航行的 AUV SAM(图 1)上,对这些算法进行现场测试,从而加快研究步伐。

水下航行器

图 1. SAMAUV(上图)和三维表示(下图)。SAM是由瑞典皇家理工学院的海洋机器人中心设计的。

AUV 设计中的工程权衡

采用就地悬停设计的 AUV,通常搭载多个推进器,这使得 AUV 体积庞大,因而无法轻松完成远距离航行。另一方面,虽然细长型 AUV 的航程更远,但受限于形状,再加之缺乏多个推进器,这些 AUV 在到达目标位置后,更难悬停或使摄像头和其他传感器朝向感兴趣的目标。

SAM 是小型经济型海洋机器人的缩写,它是由瑞典皇家理工学院的海洋机器人中心(SMaRC) 基于对航程与操纵性之间的这种权衡考量而开发的。SAM长 1.4 米,重约 15 公斤,只需一名操作人员即可轻松驾驭。其造价相对较低,这使得用若干个AUV 进行多航行器作业成为了可能。为了保持 SAM 小巧轻便,瑞典皇家理工学院为它配备了相对较小的电池组和数量有限的传感器。

SAM 的单个推进器内配有两个反向旋转的螺旋桨。它还带有额外的配平子系统,用于改变其浮力和重心位置。因此,尽管SAM 具有敏捷性,但仍动力不足。为此,它需要使用该团队开发的高级控制系统来执行精准的操纵,并充分利用体载传感器。另外,在开发这些控制系统的同时,还需要在其仿真速度与保真度之间进行工程权衡。虽然计算流体动力学有助于实现高度精确的流体流动仿真,但是,完成仅运行一个控制算法测试所需的计算就需要长达数天的时间。相比之下,在 Simulink 中创建的航行器运动仿真近乎实时运行,并且可以十分准确地用于对定性行为建模,从而能够在 AUV 上测试控制方法之前,先在仿真中快速验证和优化这些方法。

AUV 建模

AUV 建模是一项复杂的任务,因为流体动力学特性随流动条件而变化。例如,受紊流的影响,在大迎角下产生的力与小迎角下产生的力大相径庭。为了解释这种复杂性,团队创建了各个AUV 组件的流体动力学模型,然后使用空气动力学建模中常用的方法(即组件组合法),将这些模型组合在了一起。

对于外部组件(或湿组件),如 AUV 的壳体和喷嘴,团队使用了现有的最佳数据,对流体动力学特性进行了建模。这些数据以查找表的形式包含在了 Simulink模型中。它们来自于各种数据源。例如,对于小迎角,团队使用了 CFD 仿真中的数据。而对于大迎角,则使用了基于 USAF 稳定性与操纵性DATCOM 公式的MATLAB 脚本。最后,对于 AUV 的旋翼,使用了 XFOIL 软件包中的数据,该软件包用于执行翼型空气动力学计算。会根据水的密度和粘度对其进行调整。

Simulink 模型还包括内部组件,如可变浮力系统(VBS)、用于横向重心(TCG) 配平的旋转配重,以及可以前后移动用于纵向重心(LCG) 配平的质点。在 Simscape 中则对这些子系统的质点和作动器进行了建模,以便于轻松地将各种组件组合到更大的被控对象模型框架中(图2)。

水下航行器

图 2. 仿真框架,包括Simulink 被控对象模型中组件和作动器的子模型。

控制器的建模与仿真

一旦有了准确反映 AUV 的动态特性和行为的被控对象模型,就可以开始在 Simulink 中使用 Control System Toolbox 进行控制器建模和仿真。

早期的控制系统包含一组比例积分微分(PID) 控制器。通过从加速度计、罗盘、深度计和其他体载传感器获取输入,每个控制器都与单个自由度相关联。最近,该团队已经开始评估模型预测控制(MPC) 方法,包括线性、线性时变和非线性 MPC 方法,以及线性二次调节器(LQR) 设计。

通过将控制器模型与被控对象模型连接起来,针对特定的水下机动航行运行了闭环仿真。这些航行活动的复杂程度各异,简单到保持特定位置,复杂到沿水平面和垂直面执行紧凑的循环操纵(图3)。控制器使用了各种方法,从简单的脚本化序列到基于优化的方法,如 LQR 和 MPC。

水下航行器

图 3. 在仿真中执行的紧凑循环操纵。

仿真一直是开发和实现有效控制策略的利器。例如,在一种情况下,该团队希望 AUV 执行倒立摆操纵,其中涉及到航行器向后俯冲,保持垂直方向,然后向上移动,直到其前端露出水面。如果仅限于使用 AUV 本身进行试验,则为这种操纵找到一种有效的控制策略将极其困难。所幸的是,通过仿真,能够快速尝试各种 MPC 设计和 PID 控制器组合,并在 MATLAB 中生成详细的仿真结果图(图4),以了解哪种方法最为有效。

水下航行器

图 4. 紧凑的循环操纵过程中的角度图和速度图。

代码的生成和验证

通过仿真确定了可能有效的控制策略后,该团队沿两条路径之一准备在 AUV 上进行测试。在某些情况下,只需根据 Simulink 控制器模型编写控制代码。或者,使用 Simulink Coder 直接从模型生成C 代码,并使用 ROS Toolbox 将其作为独立的机器人操作系统(ROS) 节点部署在 AUV 上。

当在 AUV 上测试控制器时,通常是在贮水池或海中进行现场测试期间,团队将航行器的性能和行为与仿真结果进行了比较。大家一致认为,从定性的角度而言,AUV 在现场测试中的行为与仿真行为很相似(图5)。

水下航行器

图 5. 现场测试中的AUV 的时间序列图像(左)和仿真中的对应图像(右)。

当前和将来的研究

在执行水下机动航行时,AUV 处于需要精准控制的作业模式。AUV 的第二种作业模式适用于在开放水域中远距离航行。该模式优先考虑的是路径跟随和最小能耗,而不是精准定向。基于这两种作业模式,该团队当前正在研究更高级的策略,以便在不同控制器之间进行自适应切换。

该团队小组还将利用建模和仿真来评估可能对 AUV 本身所作的改进。例如,有位同事在 AUV 被控对象模型的前端增设了一个抓手。尽管还没有抓手的物理硬件,但该同事借助仿真设计了一个 LQR 控制器,该控制器可对使用抓手时可能遇到的冲激载荷和其他扰动作出正确的响应。该团队也将探索类似抓手的应用。该抓手装在 AUV 的侧面,使航行器能够锁定到一个或多个相同的 AUV,并开始作为一个多智能体系统运行。  

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分