【误差自适应跟踪方法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.mzph.cn/news/11972.shtml

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

相关文章

机器学习深度学习——线性回归的从零开始实现

虽然现在的深度学习框架几乎可以自动化实现下面的工作,但从零开始实现可以更了解工作原理,方便我们自定义模型、自定义层或自定义损失函数。 import random import torch from d2l import torch as d2l线性回归的从零开始实现 生成数据集读取数据集初始…

windows默认编码格式修改

1.命令提示符界面输入 chcp 936 对应 GBK 65001 对应 UTF-8 2.临时更改编码格式 chcp 936(或65001) 3.永久更改编码格式 依次开控制面板->时钟和区域->区域->管理->更改系统区域设置,然后按下图所示,勾选使用UTF-8语言支持。然后重启电脑。此…

防止连点..

1.连点js文件 let timer; letflag /*** 节流原理:在一定时间内,只能触发一次** param {Function} func 要执行的回调函数* param {Number} wait 延时的时间* param {Boolean} immediate 是否立即执行* return null*/ function throttle(func, wait 500…

【数字IC基础】竞争与冒险

竞争-冒险 1. 基本概念2. 冒险的分类3. 静态冒险产生的判断4. 毛刺的消除使用同步电路使用格雷码增加滤波电容增加冗余项,消除逻辑冒险引入选通脉冲 1. 基本概念 示例一: 如上图所示的这个电路,使用了两个逻辑门,一个非门和一个与…

Windows 找不到文件‘chrome‘。请确定文件名是否正确后,再试一次

爱像时间,永恒不变而又短暂;爱像流水,浩瀚壮阔却又普普通通。 Windows 找不到文件chrome。请确定文件名是否正确后,再试一次 如果 Windows 提示找不到文件 "chrome",可能是由于以下几种原因导致的&#xff1…

机器学习深度学习——模型选择、欠拟合和过拟合

👨‍🎓作者简介:一位即将上大四,正专攻机器学习的保研er 🌌上期文章:机器学习&&深度学习——多层感知机的简洁实现 📚订阅专栏:机器学习&&深度学习 希望文章对你们有…

【GitOps系列】使用 ArgoCD 快速打造GitOps工作流

文章目录 ArgoCD简介ArgoCD安装访问ArgoCDGitOps 工作流总览创建 ArgoCD 应用检查 ArgoCD 同步状态访问应用 连接 GitOps 工作流体验 GitOps 工作流生产建议1)修改默认密码2)配置 Ingress 和 TLS3)使用 Webhook 触发 ArgoCD4)将源…

DoIP学习笔记系列:(二)VN5620 DoIP测试配置实践笔记

文章目录 1. 添加.cdd2. CAPL中调用接口发送DoIP请求3. “Ethernet Packet Builder”的妙用4. CANoe也可以做交互界面在进行测试前,先检查车载以太网硬件连线是否正确,需要注意连接两端的Master、Slave,100M、1000M等基本情况,在配置VN5620的时候就可以灵活处理了。成功安装…

数学建模-MATLAB三维作图

导出图片用无压缩tif会更清晰 帮助文档:doc 函数名 matlab代码导出为PDF 新建实时脚本或右键文件转换为实时脚本实时编辑器-全部运行-内嵌显示保存为PDF

【TypeScript】接口类型 Interfaces 的使用理解

导语: 什么是 类型接口? 在面向对象语言中,接口(Interfaces)是一个很重要的概念,它是对行为的抽象,而具体如何行动需要由类(classes)去实现(implement&#x…

JVM-类加载

1.了解冯诺依曼计算机结构 1.1计算机处理数据过程 (1)提取阶段:由输入设备把原始数据或信息输入给计算机存储器存起来 (2)解码阶段:根据CPU的指令集架构(ISA)定义将数值解译为指令 (3)执行阶段:再由控制器把需要处理或计算的数据调入运算器 (4)最终阶段:由输出设备把最后运…

区间预测 | MATLAB实现基于QRF随机森林分位数回归时间序列区间预测模型

区间预测 | MATLAB实现基于QRF随机森林分位数回归时间序列区间预测模型 目录 区间预测 | MATLAB实现基于QRF随机森林分位数回归时间序列区间预测模型效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab实现基于QRF随机森林分位数回归时间序列区间预测模型&#xff1…

Dooring-Saas低代码技术详解

hello, 大家好, 我是徐小夕, 今天和大家分享一下基于 H5-Dooring零代码 开发的全新零代码搭建平台 Dooring-Saas 的技术架构和设计实现思路. 背景介绍 3年前我上线了第一版自研零代码引擎 H5-Dooring, 至今已迭代了 300 多个版本, 主要目的是快速且批量化的生产业务/营销过程中…

empty module导致的lvs问题

write_verilog时-exclude empty_modules即可 这里也分享一下ICC2 write lvs netlist的命令 write_verilog -exclude {scalar_wire_declarations leaf_module_declarations empty_modules well_tap_cells filler_cells supply_statements} -hierarchy all -force_no_referenc…

手风琴案例(jQuery)

案例效果 代码实现 jQuery代码(两种方法) 方法一:hover版 $(function () {$(".king li").hover(function() {$(this).addClass("current").siblings().removeClass("current");}, function() {$(".king…

单机部署NGINX

​ 1、找到合适的nginx资源包,可以去官网下载 这里用的是 nginx-1.24.0.tar.gz 2、上传下载下来的nginx软件包,并解压 tar zxvf nginx-1.24.0.tar.gz cd nginx-1.24.0/ 3、安装nginx 编译 ./configure --prefix/usr/local/nginx --with-http_ssl…

哈希表的简单模拟实现

文章目录 底层结构哈希冲突闭散列定义哈希节点定义哈希表**哈希表什么情况下进行扩容?如何扩容?**Insert()函数Find()函数二次探测HashFunc()仿函数Erase()函数全部的代码 开散列定义哈希节点定义哈希表Insert()函数Find()函数Erase()函数总代码 初识哈希…

UG\NX二次开发 获取2D制图视图中可见的对象,并获取类型

文章作者:里海 来源网站:https://blog.csdn.net/WangPaiFeiXingYuan 简介: 使用UF_VIEW_ask_visible_objects获取2D制图视图中可见的对象,并获取类型。 下面是将一个六面体以不同的视图投影,获取视图对象和类型的效果。 效果: 1个部件事例,1个体,4条边 1个部件事…

springboot创建并配置环境(一) - 创建环境

文章目录 一、介绍二、启动环境Environment的分析三、进入源码四、创建环境1. 如何确定应用类型2. 测试 一、介绍 在springboot的启动流程中,启动环境Environment是可以说是除了应用上下文ApplicationContext之外最重要的一个组件了,而且启动环境为应用…

MySQL主从复制

1.理解MySQL主从复制原理。 1.1MySQL支持的复制类型 MySQL支持以下几种常见的复制类型: 基于语句的复制(Statement-based Replication,SBR):基于语句的复制是MySQL最早支持的复制方式,它通过复制和执行S…