AUV控制中的反步法

news/2024/11/20 1:36:50/

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

目录

前言

一、问题描述

二、反步法的简单介绍

三、AUV中的反步法

      1.纵向速度

      2.艏向角

前言

本文简单介绍AUV控制中常见反步法的使用。


提示:以下是本篇文章正文内容,下面案例可供参考

一、问题描述

在AUV的运动控制中,主要包括点跟踪、路径跟踪和轨迹跟踪。为了使AUV达到一定的速度或是以一个期望的姿态运动,那么就应给到执行机构合适的控制输入信息,由此产生控制力来驱动AUV的运动。如何根据我们所期望的AUV姿态来设计控制器即问题所在,但是我们的期望值往往是一个位置、一条直线、速度值或是角度值,将其转化为控制力和控制力矩是我们控制器需要做的事。

二、反步法的简单介绍

反步法是一种典型的递归设计方法,从系统的最后一级进行设计,使其渐进稳定。后对包含最后一级的前一子系统进行设计,也通过李氏方法使其达到渐进稳定。以此进行迭代推导,并使整个闭环系统达到渐近稳定,同时可以计算出系统的控制输入。

三、AUV中的反步法

1.纵向速度

在AUV的控制器的设计过程中,往往都进行解耦处理,这里我们以纵向速度为例利用反步法进行纵向推力设计。

首先我们假设期望我们AUV的纵向速度为ud。若AUV的初始速度为0,由此就产生了速度误差,倘若我们能使AUV的纵向速度误差变为零,就实现了对AUV 的纵向速度的控制。

如此,选取李雅普诺夫能量函数:

V = \frac{1}{2}u_{e}^{2}(u_{e}=u-u_{d})

求一阶导,可以得到:

\dot{V}=u_{e}\cdot (\dot{u}-\dot{u_{d}})

若能使\dot{V}\leq 0就可以使速度的误差整定到零。

在一阶导的公式中涉及到了AUV速度的一阶导数,用AUV的动力学方程进行替换,假设纵向推力的动力学方程简单表示为:

F=m_{u}\dot{u}+d_{u}

带入后李雅普诺夫函数的一阶导重新表示为:

\dot{V}=u_{e}(\frac{F-d_{u}}{m_{u}}-\dot{u}_{d})

现在若能选择合适的纵向推力F,使\dot{V}\leq 0就实现了对速度的控制。选取的纵向推力F为:

F=m_{u}(\dot{u}_{d}-K_{1}(u-u_{d}))+d_{u}

其中增益K大于零。上式即为根据反步法所设计的控制器。

2.艏向角

由纵向速度的反步法可知,仅进行了一次反步的操作,而对于艏向角来说,要进行两次反步的操作。反步法的最终目的是构造控制率来使李雅普诺夫函数小于零,而要得到控制力或控制力矩,就要求在李雅普诺夫函数的一节导中包含速度的一阶导,如此才能带入动力学方程。

对于艏向角而言,和纵向速度类似,先设置期望的艏向角,得到误差值:

psie=psi-psid

取第一个李氏函数:

V_{1}=\frac{1}{2}psie^{2}

第一次反步操作:

\dot{V}_{1}=pise(\dot{psi}-\dot{psid})

取虚拟控制率为:

r_{d}=psid-K_{1}(psi-psid)

由此得到一个虚拟的角速度,满足这个虚拟的角速度就可以满足艏向角的趋近,此时的虚拟角速度就是我们的期望角速度。

其导数为:

r_{d}=\dot{psid}-K_{1}(\dot{psi}-\dot{psid})

进一步根据角速度的误差取第二个李氏函数:

V_{2}=\frac{1}{2}(r-r_{d})^{2}

进行反步操作:

\dot{V}_{2}=(r-r_{d})(\dot{r}-\dot{r}_{d})

得到的第二个李氏函数的导数中包含角速度的一阶导,进而可以带入动力学方程,使满足李氏函数一阶导小于零得到转艏力矩。一般简化的艏向角速度的动力学方程的表达式为:

F_{r}=m_{r}\dot{r}+d_{r}

为满足李氏函数导数小于零,则设计:

F_{r}=m_{r}(\dot{r}_{d}-K_{2}(r-r_{d}))+d_{r}

带入\dot{r_{d}}得到最终的控制率为:

F_{r}=m_{r}(\dot{psid}-K_{1}(\dot{psi}-\dot{psid})-K_{2}(r-r_{d}))+d_{r}

由以上可知对于艏向角度的控制器设计运用了两次反步,而纵向速度只采用了一次,这是由想要控制的量和动力学方程中速度一阶导的阶数差决定的。



http://www.ppmy.cn/news/835015.html

相关文章

水下机器人ROV和AUV

水下机器人,也可以称为无人水下潜航器(Unmanned Underwater Vehicle,UUV),是在水下的极限环境中运行并能潜入水面替代人进行某种动作的可控机器结构。水下无人潜航器通常可分为三类:遥控水下机器人&#xf…

7.1JavaEE——Spring中的Bean的管理——Spring IoC容器

一、BeanFactory接口 BeanFactory接口的常用方法 方法名称 描述 getBean&#xff08;String name&#xff09; 根据参数名称获取Bean getBean&#xff08;String name,Class<T> type&#xff09; 根据参数名称、参数类型获取Bean <T>T getBean&#xff0…

基于Hololen2 unity vuforia空间生成大型物体,以及打开内部浏览器的打开教程

1.简介 1.1 功能介绍 本文主要做了两个功能&#xff1a; 1.扫描一张二维码生成一个操作台&#xff08;桌子&#xff09;&#xff0c;这张桌子比二维码尺寸大非常多&#xff08;就是实际物体大小的桌子&#xff09;&#xff0c;所以需要定位 好桌子和操作台之间的位置关系。并且…

iphone导出视频 无法连接到设备_如何解决爱思助手无法识别设备或连接超时等故障?...

设备插入数据线连接电脑之后,只有所有驱动都正常,才能成功连接爱思助手。在爱思助手「工具箱」-「iTunes 及驱动」中可以看查看到详情,如下图所示: 打开爱思助手,无法识别设备或者显示设备连接超时(如下图),这种情况一般是设备连接不稳定或者是电脑中苹果服务、驱动出现异…

iphone导出视频 无法连接到设备_爱思助手无法识别设备或者连接超时解决办法...

设备插入数据线连接电脑之后,打开爱思助手但是无法识别设备或者显示设备连接超时,这种情况一般是设备连接不稳定或者是电脑中苹果服务、驱动出现异常导致的,可以根据下面的解决方法排查。 一、数据线和电脑USB接口正常状态 1、请确认您的数据线是苹果原装数据线,不要使用破…

Maven 项目打包可执行 JAR 文件(2023/07/11)

Maven 项目打包可执行 JAR 文件 文章目录 Maven 项目打包可执行 JAR 文件1. pom.xml 配置2. 配置介绍3. 打包 默认情况下&#xff0c;Maven 项目打包后只包含代码&#xff0c;不包含第三方依赖&#xff0c;所以无法直接运行&#xff0c;本文将介绍如何一起打包第三方依赖以及指…

《TCP/IP网络编程》第3,4章学习记录

基础知识&#xff1a; struct sockaddr_in {sa_family_t sin_family; //地址族&#xff08;Address Family)uint16_t sin_port; //16位TCP/UDP端口号struct in_addr sin_addr; //32位IP地址char sin_zero[8]; //不使用 }sa_family_t包括&#xff1a; (1)AF_INET,IPv4网络协议…

性能测试之性能问题分析

目录 开始性能测试前需要了解的内容&#xff1a; 测试策略&#xff1a; 压测中遇到的性能问题及解决办法&#xff1a; 性能问题分析流程 开始性能测试前需要了解的内容&#xff1a; 1、项目具体需求。 2、指标&#xff1a;响应时间在多少以内&#xff0c;并发数多少&#xff…