​✅作者简介热爱科研的Matlab仿真开发者擅长毕业设计辅导、数学建模、数据处理、程序设计科研仿真。完整代码获取 定制创新 论文复现点击Matlab科研工作室 关注我领取海量matlab电子书和数学建模资料个人信条做科研博学之、审问之、慎思之、明辨之、笃行之是为博学慎思明辨笃行。 内容介绍一、引言在海洋探索与开发领域无人水下潜航器AUV发挥着日益重要的作用。多 AUV 编队作业能够提高任务执行效率拓展作业范围。然而在水下复杂环境中AUV 往往难以获取自身的绝对位置信息这给编队控制带来了巨大挑战。基于刚性图的模型预测控制MPC方法为解决这一难题提供了有效途径它仅依赖 AUV 之间的相对信息实现绝对位置未知情况下的高效编队控制。二、刚性图理论基础一刚性图概念刚性图是一种用于描述 AUV 之间相对位置关系的数学模型。在刚性图中AUV 被视为节点节点之间的边表示 AUV 之间的相对位置约束。通过精心设计刚性图的结构可以确定编队的期望形状和相对位置关系。例如对于一个三角形编队可以构建一个刚性图使得三个节点代表三个 AUV之间的距离和角度保持固定从而维持编队的稳定性。二刚性图特性稳定性刚性图能够确保在一定条件下即使部分 AUV 受到外界干扰编队的整体形状和相对位置关系仍能保持稳定。这是因为刚性图通过边的约束将各个 AUV 的运动相互关联一个 AUV 的位置变化会通过边的约束传递给其他 AUV促使它们做出相应调整以维持编队的整体结构。灵活性刚性图的结构可以根据任务需求进行灵活设计。不同的任务场景可能需要不同的编队形状如直线编队适用于水下管道检测圆形编队适用于区域搜索。通过调整刚性图中节点的连接方式和边的约束条件可以快速构建满足不同任务需求的编队模型。三、模型预测控制MPC原理一MPC 基本思想模型预测控制基于系统的预测模型通过在每个控制周期内求解一个有限时域的优化问题来确定当前时刻的最优控制输入。MPC 能够考虑系统的动态特性和约束条件提前预测系统未来的行为并据此调整控制策略。具体来说MPC 首先利用系统的预测模型预测未来一段时间内系统的状态然后根据预测状态和期望状态构建目标函数通过求解优化问题得到使目标函数最小化的控制输入序列。在实际应用中通常只将控制输入序列的第一个值应用于系统然后在下一个控制周期重复上述过程重新计算最优控制输入。二MPC 在 AUV 编队控制中的优势处理约束能力水下环境对 AUV 的运动存在诸多约束如速度限制、转向角度限制等。MPC 能够自然地将这些约束纳入优化问题中确保 AUV 在满足约束条件的前提下实现编队控制。例如在求解优化问题时可以将 AUV 的速度和转向角度限制作为约束条件使得计算出的控制输入始终在允许的范围内避免 AUV 因超出物理限制而发生故障。应对动态变化水下环境复杂多变AUV 可能会受到水流、波浪等干扰导致其运动状态发生动态变化。MPC 的滚动优化机制使其能够实时根据 AUV 的当前状态和环境变化调整控制策略保证编队的稳定性和任务的顺利执行。例如当 AUV 受到水流冲击偏离编队位置时MPC 能够迅速预测其未来状态并计算出合适的控制输入引导 AUV 回到期望的编队位置。四、基于刚性图的 MPC 编队控制实现一系统建模AUV 动力学建模建立 AUV 的动力学模型描述其在水下的运动特性。该模型通常包括 AUV 的质量、惯性矩阵、水动力系数等参数以及受到的推力、阻力和环境干扰力等。例如在三维空间中AUV 的运动方程可以表示为刚性图模型构建根据 AUV 之间期望的相对位置关系构建刚性图。在刚性图中每个 AUV 作为一个节点节点之间的边表示 AUV 之间的相对位置约束。通过定义边的长度和方向确定编队的形状和结构。例如对于一个三角形编队可以设定三个 AUV 之间的相对距离和角度关系以此构建刚性图模型。二预测与优化预测模型建立基于 AUV 动力学模型和刚性图模型建立预测模型。该模型能够预测在当前控制输入下未来一段时间内 AUV 的状态变化以及与期望编队队形的偏差。例如通过对 AUV 动力学方程进行离散化处理结合刚性图的相对位置约束预测 AUV 在未来几个时间步的位置、速度和姿态。优化问题求解在每个控制周期将预测模型作为约束条件构建一个优化问题。目标函数通常是使 AUV 的实际状态尽可能接近期望编队状态同时考虑控制输入的平滑性和系统约束。例如目标函数可以定义为⛳️ 运行结果 部分代码function [ P ] RefGen(M,N,t0,dt,coef,traj)m coef(1);Iz coef(2);X_udot coef(3);N_rdot coef(5);Xu coef(6);Nr coef(8);Du coef(9);Dr coef(11);Mudot m - X_udot;Mrdot Iz - N_rdot;P zeros(M,N);for j1:1:N % Generate reference upto N steps aheadxR traj.Xr(t0);xRdot traj.Xrdot(t0);xRddot traj.Xrddot(t0);yR traj.Yr(t0);yRdot traj.Yrdot(t0);yRddot traj.Yrddot(t0);psiR traj.PSIr(t0);psiRdot traj.PSIrdot(t0);psiRddot traj.PSIrddot(t0);uR sqrt(xRdot^2yRdot^2);vR 0;rR psiRdot;uRdot (xRdot^2yRdot^2)^(-1/2)*(xRdot*xRddotyRdot*yRddot);rRdot psiRddot;FuR Mudot*uRdotXu*uRDu*uR*abs(uR);FvR Mudot*uR*rR;FrR Mrdot*rRdotNr*rRDr*rR*abs(rR);P(:,j)[xR;yR;psiR;xRdot;yRdot;rR;xRddot;yRddot;rRdot];t0 t0 dt;endend 参考文献[1] Fu B , Zhu D , Chen M ,et al.Formation Control of Autonomous Underwater Vehicles With Unknown Absolute Position Using Rigid Graph-Based MPC[J].IEEE Internet of Things Journal, 2025, 12(14):29061-29072.DOI:10.1109/JIOT.2025.3567996.更多免费数学建模和仿真教程关注领取