【误差自适应跟踪方法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模型、文献

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

电赛培训(高频电路类赛题)学习总结

此篇文章基于全国电子设计大赛培训网的官网的高频电路类赛题总结的知识点。 高频电路赛题的相关理论知识点 (1)高频电路的单位 a.1kHz1000Hz不等于1KHz(大写的K是错误的) b.S是西门子,电导的单位,s是秒&…

aop实现方式及基本使用

aop实现方式 aspectj 编译器增强,直接修改源码可以不借助Spring实现 也没有用代理对象 (ajc编译器) aop 的原理并非代理一种, 编译器也能玩出花样(直接修改源码) 运行时需要在 VM options 里加入 -javaagent:D:/envir…

K8s卷存储详解(二)

K8s卷存储详解(二) 持久卷持久卷(PV)持久卷申领(PVC)存储类(StorageClass)存储制备器(Provisioner)PV和PVC的生命周期持久卷的类型CSI 卷快照CSI 卷克隆 投射…

Dubbo

Dubbo 简介Dubbo的快速入门Dubbo的基本架构安装DubboAdmin入门案例Dubbo的最佳实践 Dubbo的高级特性启动检查多版本超时与重试负载均衡SpringCloud整合Dubbo案例 简介 Dubbo是阿里巴巴公司开源的一个高性能、轻量级的Java RPC框架。 致力于提高性能和透明化的RPC远程服务调用方…

Python Numpy入门基础(二)数组操作

入门基础(二) NumPy是Python中一个重要的数学运算库,它提供了了一组多维数组对象和一组用于操作这些数组的函数。以下是一些NumPy的主要特点: 多维数组对象:NumPy的核心是ndarray对象,它是一个多维数组对…

Go 下载安装教程

1. 下载地址:The Go Programming Language (google.cn) 2. 下载安装包 3. 安装 (1)下一步 (2)同意 (3)修改安装路径,如果不修改,直接下一步 更改后,点击下一…

2023年的深度学习入门指南(22) - 百川大模型13B的运行及量化

2023年的深度学习入门指南(22) - 百川大模型13B的运行及量化 不知道上一讲的大段代码大家看晕了没有。但是如果你仔细看了会发现,其实代码还是不全的。比如分词器我们就没讲。 另外,13B比7B的改进点也没有讲。 再有,对于13B需要多少显存我们…

FANUC机器人实现2个RO输出信号互锁关联(互补)的具体方法

FANUC机器人实现2个RO输出信号互锁关联(互补)的具体方法 一般情况下,为了方便用户控制工装夹具上的电磁阀等控制工具,FANUC机器人出厂时给我们提供了8个RO输出信号,如下图所示,这8个RO信号可以各自单独使用。 那么,如果为了安全控制,需要将2个RO信号成对的进行安全互锁…

【后端面经-Spring】Spring简介

【后端面经-Spring】Spring简介 1. Spring简介2. Spring模块3. Spring核心特性4. Spring的后续拓展面试模拟参考资料 1. Spring简介 Spring是为了简化java项目开发设计的一款设计层面开源框架,其设计目的就是为了“简化开发”。 它使用分层架构,解决业务…

面试-杨辉三角python递归实现,二进制转换

杨辉三角 def yang_hui(x,y):xint(x)yint(y)assert x>y,列数不应该大于行数# x 表示行,y表示列if y1 or yx:return 1else:return yang_hui(x-1,y-1)yang_hui(x-1,y)xinput(输入第几行) yinput(输入第几列) resultyang_hui(int(x),int(y)) print(result) #inclu…

Docker consul 的容器服务更新与发现

目录 一、Consul 简介 1.什么是服务注册与发现 2. 什么是consul 3.consul 架构 二、部署 consul 服务器(192.168.88.10) 1.建立 Consul 服务 2.查看集群信息 3.通过 http api 获取集群信息 三、registrator服务器(192.168.88.60&…

mac 删除自带的ABC输入法保留一个搜狗输入法,搜狗配置一下可以减少很多的敲击键盘和鼠标点击次数

0. 背景 对于开发者来说,经常被中英文切换输入法所困扰,我这边有一个方法,删除mac默认的ABC输入法 仅仅保留搜狗一个输入法,配置一下搜狗输入:哪些指定为英文输入,哪些指定为中文输入(符号也可…

Intel RealSense D455(D400系列) Linux-ROS 安装配置(亲测可用)

硬件:Intel RealSense D455 系统:Ubuntu 18.04 Part_1: 安装librealsense SDK2.0 1.1 注册密钥 sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-key F6E65AC044F831AC80A06380C8B3A55A6F3EFCDE或者 sudo apt-key adv --keyserver hkp:/…

【已解决】电脑连上网线但无法上网

文章目录 案例情况解决方案必要的解决方法简要概括详细步骤1、打开控制面板2、打开更改适配器设置3、 找Internet协议版本44、修改配置 可能有用的解决方法 问题解决原理Internet 协议版本 4(TCP/IPv4)确保IP地址和DNS服务器设置为自动获取 案例情况 网…

小程序UV:衡量用户规模与活跃度的重要指标

什么是UV UV是Unique Visitor(独立访客)的缩写,指的是在特定时间段内访问某个网站、应用或平台的独立用户数量。UV是根据设备、IP地址、Cookie等来识别不同的用户,对于相同的用户多次访问,只计算为一个UV。UV是衡量网…

redis的四种模式优缺点

redis简介 Redis是一个完全开源的内存数据结构存储工具,它支持多种数据结构,以及多种功能。Redis还提供了持久化功能,可以将数据存储到磁盘上,以便在重启后恢复数据。由于其高性能、可靠性和灵活性,Redis被广泛应用于…

力扣天天练--week3-LeetCode75

topic75-9-t443:压缩字符串 题目描述: 给你一个字符数组 chars ,请使用下述算法压缩: 从一个空字符串 s 开始。对于 chars 中的每组 连续重复字符 : 如果这一组长度为 1 ,则将字符追加到 s 中。 否则,需…

【图像处理】使用自动编码器进行图像降噪(改进版)

阿里雷扎凯沙瓦尔兹 一、说明 自动编码器是一种学习压缩和重建输入数据的神经网络。它由一个将数据压缩为低维表示的编码器和一个从压缩表示中重建原始数据的解码器组成。该模型使用无监督学习进行训练,旨在最小化输入和重建输出之间的差异。自动编码器可用于降维、…

Linux之Shell 编程详解(一)

第 1 章 Shell 概述 1)Linux 提供的 Shell 解析器有 [atguiguhadoop101 ~]$ cat /etc/shells /bin/sh /bin/bash /usr/bin/sh /usr/bin/bash /bin/tcsh /bin/csh2)bash 和 sh 的关系 [atguiguhadoop101 bin]$ ll | grep bash -rwxr-xr-x. 1 root root …

Ubuntu-解决包依赖关系

Ubuntu-解决包依赖关系的办法 安装软件包的时候,有时会遇到类似下图的依赖问题,无法正常安装,下面提供三种方法解决依赖问题。 1.可以尝试用下面方法处理依赖问题,紧跟前一条安装命令后面输入下面命令,然后再执行安装…