【误差自适应跟踪方法AUV】自适应跟踪(EAT)方法研究(Matlab代码Simulin实现)

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

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

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

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

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码、Simulink模型、文献


💥1 概述

摘要:跟踪问题(即如何遵循先前记忆的路径)是移动机器人中最重要的问题之一。根据机器人状态与路径相关的方式,可以制定几种方法。“轨迹跟踪”是最常见的方法,控制器旨在将机器人移动到移动的目标点,就像在实时伺服系统中一样。对于复杂系统或处于扰动或未建模效应下的系统,如 UAV(无人驾驶飞行器),其他跟踪方法可以提供额外的好处。在本文中,考虑路径描述符参数动态的方法(可称为“误差自适应跟踪”)与轨迹跟踪进行了对比。首先提出了跟踪方法的正式描述,表明两种类型的错误自适应跟踪可以在任何系统中与同一控制器一起使用。仿真实验表明,选择合适的跟踪速率可以提高无人机系统的误差收敛性和鲁棒性。结果表明,误差自适应跟踪方法优于轨迹跟踪方法,产生更快、更鲁棒的收敛跟踪,同时在需要时在实现收敛时保持相同的跟踪速率。

📚2 运行结果

 

 

 

 部分代码:

%% clear 
%% graphic (scope) parameters
% Xmin=-1;
% Xmax= 1;
% Ymin=-1;
% Ymax= 1;
%graphic (scope) parameters
Xmin=-5;
Xmax= 5;
Ymin=-5;
Ymax= 5;
%graphic (scope) parameters
% Xmin=-1;
% Xmax= 7;
% Ymin=-1;
% Ymax= 3.5;


%% Simulation constants
start_time=0;
stop_time=10;

%% system parameters 
pvtol_constants_global;

%% System matrixes
A_0 = [ 0 1 0 0 ; ...
        0 0 1 0 ;...
        0 0 0 1 ;...
        0 0 0 0  ];
A=blkdiag(A_0, A_0);

B_0 = [ 0 ; ...
        0 ;...
        0 ;...
        1 ];
B=blkdiag(B_0, B_0);


%% control matrix according to Hindman/Hauser:
K_0 =[-3604 -2328 -509.25 -39];
K=blkdiag(K_0, K_0);

%% Lyapunov equation
Ac=A+B*K;
Q=eye(8);

global P;
P=lyap(Ac',Q);

%% constants for ref. traj. x_ref(r)=A_ref*sin(w_ref*r)
A_ref=1.857*pi/2;
w_ref=2*pi/5;
%

%% initial condition for x, that is:
% v_x = x_1;
% v_y = x_2; 
% omega = x_3; 
% T   = x_4; 
% T_d  = x_5; 

% x = x_6; 
% y = x_7;
% theta = x_8 ;

% an initial condition not null is necessary for T to prevent div/0 in
% coord_change_xv_u
% initial condition must be concordant  with that of psi_nu. Hence, call to
r_initial=0;
psi_nu_initial = psi_nu_ref(r_initial);

% Hindman/Hauser gave a value of 10.0 for initial Td
% However, analysing the  z(0) values, one gives to 
T_d_initial = 16;% g*m is 10.32
% this other condition gives us a smoother start 
T_initial = 16;% T_d_initial ;

%%%%%%%%%%%%%%%%%%%%%%
%%%%% IDEAL INITIAL CONDITIONS:
%from the coord change x to z, this initial values can be calculated
% remark: using these ideal initial conditions, tracking is perfect!
theta_initial = 0;
omega_initial = -psi_nu_initial(4)*m/T_initial;
%ideal initial conditions:
x_initial = [ psi_nu_initial(2); psi_nu_initial(6); omega_initial; T_initial ; T_d_initial; ...
    psi_nu_initial(1); psi_nu_initial(5); theta_initial ...
    ];  

%%%%%%%%%%%%%%%%%%%%%%
% Hindman/Hauser  uses this initial condition for z(0)
% z_initial = [ -1.5; v_x(0); v_x_dot(0); v_x_dot_dot(0) ; ...
%     0; 0; 0; 0 ...
%     ]
% if the PVTOL were robust, it should be stable against an initial 
% condition like  
%  x_initial = [ 0 ; 0 ; omega_initial ; T_initial ; T_d_initial; ...
%     -1.5 ; 0 ; 0 ...
%     ];  

🎉3 参考文献

部分理论来源于网络,如有侵权请联系删除。

[1]Hauser, J. and Hindman, R. Maneuver regulation from
trajectory tracking: Feedback linearizable systems. 
In Proc. IFAC Symp. Nonlinear Contr. Syst. Design, 638-643. Tahoe City, CA.(1995).

🌈4 Matlab代码、Simulink模型、文献

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/21056.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

路径规划算法:基于人工蜂鸟优化的路径规划算法- 附代码

路径规划算法:基于人工蜂鸟优化的路径规划算法- 附代码 文章目录 路径规划算法:基于人工蜂鸟优化的路径规划算法- 附代码1.算法原理1.1 环境设定1.2 约束条件1.3 适应度函数 2.算法结果3.MATLAB代码4.参考文献 摘要:本文主要介绍利用智能优化…

C# HTTP Error 500.19

解决办法&#xff1a; .vs configapplicationhost.config 修改<section name"windowsAuthenticationnurununoverrideModeDefault"Allow”/>

内网渗透之kerberos协议解析

kerberos协议简介&#xff1a; Kerberos协议是由麻省理工学院&#xff08;MIT&#xff09;开发的一种网络身份验证协议&#xff0c;用于在非安全网络中实现安全的身份验证。其设计目标是通过密钥系统为客户与服务器应用程序提供强大的认证服务。 Kerberos协议要解决的实际上就…

Linux驱动开发:Linux内核启动流程详解

前言&#xff1a;Linux 内核同样作为 Linux 驱动开发的 “三巨头” 之一&#xff0c;Linux 内核的启动流程要比 uboot 复杂的多&#xff0c;涉及到的内容也更多。但秉持着 “知其然知其所以然” 的学习态度&#xff0c;作者将给读者朋友大致的过一遍 Linux 内核的启动流程。(考…

Windows 安装 RabbitMq 和 Erlang

1.安装Erlang 音乐RabbitMq是基于Erlang开发的&#xff0c;所以先要安装这个环境 下载地址&#xff1a;32位 64位 其他版本自己找 官网 下载完之后无脑安装直接一直下一步 2.配置Erlang环境变量 2.1 新建ERLANG_HOME 把自己的安装的根目录填进去 比如&#xff1a;C:\Progra…

【javaEE面试题(五)在JMM(Java Memory Model (Java 内存模型))下谈volatile的作用】

volatile的作用 JMM下volatile作用 volatile 能保证内存可见性 volatile 修饰的变量, 能够保证 “内存可见性”. 代码在写入 volatile 修饰的变量的时候 改变线程工作内存中volatile变量副本的值将改变后的副本的值从工作内存刷新到主内存 代码在读取 volatile 修饰的变量的时…

基于低代码平台的项目设计的一般流程及低代码平台(基于iVX)与MVC的关系

基于低代码平台的项目设计的一般流程及低代码平台&#xff08;基于iVX&#xff09;与MVC的关系 1.基于低代码平台的项目设计的一般流程a.流程图b.MVC架构应用于iVX项目的各分层排序&#xff1a;&#xff08;1&#xff09;第一步&#xff1a;写M&#xff08;2&#xff09;第二步…

Linux+Docker+Gitlab+Jenkins+虚拟内存

最近想研究一下怎么自动化发布项目,于是找到了gitlab+jenkins这个组合,正好借机也研究一下最近很火的docker技术。本篇共分为五部分,分别为安装要求,内存虚拟化,安装docker,安装gitlab,安装jenkins。 一、 安装要求 1 Docker安装要求: 1.1 操作系统 Docker只支持64…

数据科学竞赛之吃鸡排名预测答辩PPT

该课程我的成绩为优秀&#xff0c;PPT格式仅供参考。

Jquery

一、概念 JQuery是一套兼容多浏览器的JS脚本库&#xff0c;核心理念是写的更少&#xff0c;做的更多&#xff0c;使用Jquery将极大的提高编写JS代码的效率。 下载与安装&#xff1a;下载&#xff1a;只需要在官网下载js文件&#xff0c;也可以用在线的。 安装&#xff1a;在需要…

echarts折线图横向渐变填充

这种情况&#xff0c;需要后端去计算&#xff0c;如何把不同分段的值赋予不同的颜色&#xff0c;然后组合成下面我们需要的格式就可以实现 drawLine1() {if (document.getElementById(s1) ! null) {var that thislet heightNum (this.porosityList.maxDepth-this.porosityLis…

基于javascript的可以自定义设置圆几等份的抽奖示例

基于javascript的可以自定义设置圆几等份的抽奖示例 效果示例图代码示例使用class 效果示例图 代码示例 <!DOCTYPE html> <html><head><meta charset"utf-8"><title></title><style type"text/css">* {padding…