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

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

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

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

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

AUV动力学模型简化

设计目标

Lyapunov函数构造

Lyapunov稳定性分析

仿真验证

总结

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码、Simulink仿真实现


💥1 概述

Lyapunov控制器是一种常用的控制方法,用于设计稳定的控制系统。在设计自主水下车辆(AUV)的轨迹跟踪控制器时,可以使用Lyapunov方法来保证系统的稳定性和收敛性。以下是基于Lyapunov的控制器设计步骤,以实现欠驱动的自主水下车辆的二维轨迹跟踪:

1. **系统建模**:
   首先,需要对水下车辆的动力学进行建模。对于二维轨迹跟踪,通常可以采用简化的二自由度模型。这个模型至少包括位置和航向角,可能还包括速度等状态变量。

2. **定义Lyapunov函数**:
   设计一个Lyapunov函数,用于描述系统的能量或者“距离”函数。该函数的导数应该为负,以确保系统的稳定性。在这种情况下,我们可以选择系统误差的平方和作为Lyapunov函数。

3. **设计控制器**:
   根据Lyapunov函数的导数,设计控制器以实现Lyapunov稳定性条件。通常,控制器的设计需要考虑系统状态的误差以及其导数。控制器的设计可以是线性或非线性的,但必须满足Lyapunov稳定性条件。

4. **仿真验证**:
   使用仿真软件(如MATLAB/Simulink、Python等)对设计的控制器进行验证。在仿真中,将模型与所需的轨迹进行比较,并评估控制器的性能。

以下是一个简单的基于Lyapunov的控制器设计示例,假设系统的状态为位置误差 \( e = r - r_d \),其中 \( r \) 是实际位置, \( r_d \) 是期望位置,且航向角误差 \( \theta_e = \theta - \theta_d \),其中 \( \theta \) 是实际航向角, \( \theta_d \) 是期望航向角。

1. **系统建模**:
   假设二维轨迹跟踪系统的动力学模型如下:
   \[
   \dot{r} = v \cos(\theta)
   \]
   \[
   \dot{\theta} = u
   \]
   其中 \( v \) 是速度, \( u \) 是舵角。

2. **Lyapunov函数**:
   定义Lyapunov函数 \( V(e, \theta_e) = \frac{1}{2} e^2 + \frac{1}{2} k_{\theta} \theta_e^2 \),其中 \( k_{\theta} \) 是控制器参数。

3. **设计控制器**:
   设计控制器 \( u = -k_r e - k_{\theta} \theta_e \),其中 \( k_r \) 是位置误差的增益,\( k_{\theta} \) 是航向角误差的增益。

4. **仿真验证**:
   使用仿真软件验证控制器的性能,包括轨迹跟踪精度和系统的稳定性。

需要注意的是,Lyapunov控制器的设计需要考虑系统的具体动力学特性以及轨迹跟踪的要求。在实际应用中,可能需要对控制器进行调整和优化,以满足性能和稳定性的要求。

基于Lyapunov的控制器设计方法在控制理论中被广泛应用,因为它们能够提供系统稳定性的确切证明,并且能够直观地设计控制器以满足特定性能指标。对于欠驱动的自主水下车辆(AUV),即控制输入少于系统自由度的情况,采用Lyapunov方法设计轨迹跟踪控制器特别具有挑战性但也非常吸引人,因为它可以处理非线性动力学和系统约束。以下是一个简化的示例,说明如何基于Lyapunov方法为二维轨迹跟踪任务设计控制器。

AUV动力学模型简化

假设AUV在二维平面内运动,仅考虑横纵坐标(x,y)和平面内的航向角θ,忽略深度和翻滚等动态。动力学模型可以简化为: [ \begin{cases} \dot{x} = v\cos(\theta) \ \dot{y} = v\sin(\theta) \ \dot{\theta} = \omega \end{cases} ] 其中,𝑣v是AUV的速度,𝜔ω是角速度,假设它们是控制输入。

设计目标

我们的目标是设计一个控制器,使得AUV能够追踪给定的二维轨迹(𝑥𝑑(𝑡),𝑦𝑑(𝑡))(xd​(t),yd​(t)),并且维持期望的航向角𝜃𝑑(𝑡)θd​(t)。

Lyapunov函数构造

Lyapunov稳定性分析

接下来,我们设计控制律使𝑉˙V˙负定。一个直观的选择是基于比例-微分(PD)控制: [ \begin{cases} v = k_p(e_x\cos(e_{\theta}) + e_y\sin(e_{\theta})) + k_d(\dot{x}d\cos(e{\theta}) + \dot{y}d\sin(e{\theta})) \ \omega = k_{\theta}e_{\theta} \end{cases} ] 这里,𝑘𝑝,𝑘𝑑,𝑘𝜃kp​,kd​,kθ​是比例、微分和航向增益。

仿真验证

  • 实现上述控制律并将其集成到AUV的动力学模型中。
  • 使用MATLAB/Simulink或其他仿真软件设置仿真环境,包括轨迹设定、初始条件、模型参数等。
  • 运行仿真,观察AUV的轨迹是否能准确跟踪预定路径,检查误差项𝑒𝑥,𝑒𝑦,𝑒𝜃ex​,ey​,eθ​随时间的变化,验证系统的稳定性。
  • 根据仿真结果调整增益参数以优化性能。

总结

基于Lyapunov的控制器设计为欠驱动AUV的轨迹跟踪提供了理论上的稳定性保证。通过精心设计的Lyapunov函数和控制律,可以实现期望的轨迹跟踪性能。然而,实际应用中还需考虑更多因素,如非线性动力学效应、外界干扰、传感器噪声和执行器限制等,可能需要更复杂的控制策略和更精细的参数调校。

📚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仿真实现

免费下载,论文、设计请注明引用! 微小型AUV具有体积小,灵活性高、隐蔽性好等特点,可以工作于其它大型水下机器人无法进入的区域。民用上可以应用于海洋矿产勘探、海底地形探测,沉船打捞,水下考古,海洋生物探测等;军事上可以用来反水雷,作为自航水雷的载体、监察海战时水下敌情等。 首先,本文对所设计的微小型AUV的结构、推进器分布进行介绍,并对其进行受力分析和建立运动方程。结合运动方程设计了被控对象模型未知的AUV自动定深、自动定航控制器;同时研究了传统的PID控制、模糊控制、自适应控制等算法,并最终设计了应用于该微小型AUV的模糊参数自适应PID控制算法。 其次,对该具有多传感器的微小型AUV控制系统进行了研究设计。针对分布式控制系统总体机构及其通信总线进行设计;分别详细设计了分布式系统的各个子系统;着重研究、设计了理论、算法及软件实现方案;计了基于CAN总线的分布式微小型AUV控制系统,提高了系统的稳定性和模块化程度,在结构上优化了系统的复杂性。最终形成了由软硬件系统组成分布式控制系统。 再其次,根据SINS、DVL和深度计这三个传感器的姿态角、角速度,线速度、加速度,深度等导航信息进行AUV的航位推算研究与实现;并使用综合水池实验室的X-Y航车系统,反复试验,对航位推算进行了标定,修正了安装误差角和刻度因子。提高了航位推算精度。结合航位推算和AUV制导控制设计了有海流影响的AUV自动巡航控制器。抗海流自动巡航控制器除抗海流功能外可以补偿SINS与艏向安装误差带来的控制性能缺陷。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值