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

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值