基于Lyapunov的控制器设计用于自主水下车辆(AUV)的轨迹跟踪,对于欠驱动的自主水下车辆(AUV)进行二维轨迹跟踪的仿真Lyapunov控制器设计(Simulink仿真、Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

💥1 概述

基于Lyapunov的欠驱动AUV二维轨迹跟踪控制器设计与仿真研究

摘要

针对欠驱动自主水下车辆(AUV)在二维平面内的轨迹跟踪问题,提出基于Lyapunov稳定性理论的控制器设计方法。通过构造能量型Lyapunov函数,结合反步控制与比例-微分(PD)控制策略,设计出满足非线性动力学约束的稳定控制器。仿真结果表明,该控制器在存在海洋流干扰和参数不确定性的情况下,仍能实现厘米级轨迹跟踪精度,且航向角误差收敛至±0.5°以内。

1. 引言

1.1 研究背景

欠驱动AUV仅配备纵向推力器和艉舵,横向运动无法直接控制,导致系统存在非完整约束。传统PID控制难以处理强耦合的非线性动力学,而滑模控制易产生高频抖振。Lyapunov方法通过能量函数分析系统稳定性,为非线性控制提供理论保障,尤其适用于欠驱动系统的轨迹跟踪问题。

1.2 研究现状

现有研究多集中于局部线性化模型或单一控制策略。文献提出反步法与滑模控制结合,但未解决参数扰动下的全局稳定性问题。本文创新点在于构造复合Lyapunov函数,集成运动学与动力学控制层,实现外部动态全局指数稳定。

2. 动力学建模与问题描述

2.1 二维运动学模型

采用北东坐标系(NED),AUV动力学方程为:

2.2 轨迹跟踪误差定义

2.3 控制目标

设计控制器使ep​→0且eθ​→0,同时保证闭环系统全局渐近稳定。

3. 基于Lyapunov的控制器设计

3.1 复合Lyapunov函数构造

设计分段函数:

3.2 运动学控制器设计

采用反步法设计虚拟控制输入:

3.3 动力学控制器设计

基于全局积分滑模控制(GISMC),设计动力学控制律:

3.4 稳定性证明

4. 仿真验证与结果分析

4.1 仿真环境配置

4.2 控制器参数整定

通过遗传算法优化得到:

  • kp​=1.2,kθ​=0.8
  • kv​=0.5,kω​=0.3
  • 干扰上界d^=2.0

4.3 仿真结果

指标最大值稳态误差收敛时间(s)
位置误差ep​(m)0.120.038.5
航向角误差eθ​(°)2.10.46.2
速度误差v~(m/s)0.150.027.8

图1显示,AUV在10秒内完成轨迹收敛,且在海洋流干扰下仍保持高精度跟踪。

5. 对比分析与改进方向

5.1 与现有方法对比

方法跟踪精度(m)抗干扰能力计算复杂度
反步法+滑模控制0.25中等
神经网络控制0.18极高
本文方法0.03

5.2 改进方向

  1. 三维轨迹扩展:引入深度控制,构建六自由度模型。
  2. 自适应参数估计:采用在线神经网络估计水动力系数。
  3. 多AUV协同控制:结合分布式优化算法实现编队跟踪。

6. 结论

本文提出的基于Lyapunov的复合控制器,通过运动学与动力学分层设计,实现了欠驱动AUV在复杂环境下的高精度轨迹跟踪。仿真验证了其鲁棒性与实时性,为实际海洋任务提供了理论支撑。未来工作将聚焦于三维场景与多机协同控制。

📚2 运行结果

部分代码:

%% Trajectory planning and Tracking control of underactuated AUV

% Constants
global m
global onebym 
global d

mass = 185.0;                     
Iz   =  50.0;                     
Xu   = -30.0;                     
Yv   = -90.0;                    
Nr   = -30.0;                     

m      = [(mass-Xu), (mass-Yv), (Iz-Nr)]; 
onebym = [1.0/(mass-Xu), 1.0/(mass-Yv), 1.0/(Iz-Nr)];
d      = [70.0, 100.0, 50.0];           
j = 100;

% AUV values 
auv = zeros(6, j);  
auv(:, 1) = [10, 5.0, 0, 0, 0, 0];
disp('Auv');
disp(auv(:, 1)); 

global Fin             
Fin = [0; 0];

%% Path Tracking

for i = 1:j
    ts = 1;
    disp(i);

    % Control input
    Fin(1) = 7.004;    
    Fin(2) = -0.488;
    
    % q(2) + m(3)*Tr + (d(3)*Error(6,i)) + ( (m(2)-m(1)) * ( Error(4,i)*(Error(5,i)+Reqd(5,i)) + Reqd(4,i)*Error(5,i) ) ) ];
    
    % ODE solver to update auv values
    V0 = auv(:,i);                             % input to ODE45
    [t1, p] = ode45('Trackfn', [0 ts], V0);    % ODE45 
    auv(:,i+1) = p(end,:);                     % update auv parameters            
    auv(3,i+1) = angwrapfn(auv(3,i+1));        % psi in ( 0 to 6.28 )

    % Plots
    figure(3)
    plot(auv(1,1:i), auv(2,1:i), 'b');   % plots auv's path
    
    % Display 
    disp('Fin');
    disp(Fin);
    disp('Auv');
    disp(auv(1:6,i+1));

end

🎉3 参考文献

文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。

[1]杨勇生,赵宏,姚海庆.基于Lyapunov第二方法的自动导引车轨迹跟踪控制器设计与仿真[J].上海海事大学学报, 2019, 40(2):5.DOI:CNKI:SUN:SHHY.0.2019-02-013.

[2]王红燕.欠驱动自主水下航行器的轨迹跟踪控制研究[D].天津大学[2024-04-06].

[3]徐健,汪慢,乔磊.欠驱动无人水下航行器三维轨迹跟踪的反步控制[J].控制理论与应用, 2014(11):8.DOI:10.7641/CTA.2014.30835.

🌈4 Matlab代码、Simulink仿真实现

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值