开源飞控ACFLY:ADRC离散系统最速控制综合函数的理解

2023-05-16

ACFLY原创文章,转载请说明出处https://blog.csdn.net/weixin_40767422/article/details/86709848

ADRC相关论文资料请加q群:180319060下载

最近在看韩京清教授的自抗扰论文,里面关于最速控制综合函数fhan的离散公式让我有点懵圈,于是又找到了一篇相关的论文http://www.doc88.com/p-606277652526.html,这篇论文里详细推导了离 散系统真正的最速控制综合函数 fsun(),寻思着把学习心得写一下,挺有意思的(不能让我一个人懵圈)。。。

fhan

一,先看连续化的快速最优控制系统,主要是上图中最下面那条公式,这是什么意思?其实不难,你可以把等号左边的X1看作位置,X2看作速度,那么X1求导就是X2,(X1头上加一点就代表导数),那么X2的导数自然是加速度了,这是二阶积分系统。sgn函数我就不赘述了,r代表加速度。sgn函数括号里,x1代表当前位置,V(t)代表目标位置(下图有点错),x2代表当前速度。这个公式解决的是

从一点到一点,先做匀加速运动再做匀减速运动并要求到达目标位置的速度为0,时间最短,问你什么时候应该加速什么时候应该减速。

1

          x2|x2|/2r就是初中运动公式\large V^{_{t}^{2}}-V^{_{0}^{2}}=2as,指当前速度匀减速到0所需路长,x1-v(t)就是当前位置到目标位置的距离,只不过是负的,两者相加如果等于0,那么证明刚好到了平衡点,下一刻就应该减速了。大于小于0大家可以自己判断应该减速还是加速。

二,接下来重头戏看看离散化的快速最优控制系统,一堆公式。。。

  1  这篇文章是相对于二阶离散系统的,我们仍然可以把x1(k)看作位置,把x(2)看作速度,h为积分步长,u(k)为控制量:加速度,u(k)<=r意思是控制量最大值为r,是人为调整的参数。离散和连续都是为了实现最速控制,所用时间最少,且到达目标位置时速度为0,即无超调,这是公式推导的基本要求,务必记住。

2.知道初始状态x1[0],x2[0],k步之后可推导出x1[k]和x2[k]的状态,化成矩阵形式如上图(可自己动手推导验证)。系统达到稳态是指达到目标位置,到达目标位置速度x2必须为0,x1即目标位置也设为0是为了方便计算系统初始值的表达式,假设初始位置x1[0]=1,目标位置是x1=3,现在变换一下,把目标位置的点设为=0,点还是那个点,只是坐标变化一下,那么初始位置也做相应变化x1[0]=-2;式4也很容易推导,最好自己动手推导一下。为什么要得到这个式子,这个式子是k步之内达到原点(即目标位置)所有初值和控制量的关系,初值是已知的,我们要反推出最佳控制量u[k]使得k步之内无超调最快达到目标。

3.可分3种情况反推出最优控制量u[k]。这是1步之内到达原点(即目标位置)的情况,把k=1代入式4便可得出式5,有两个点a-1,a+1相当于假设一步步长为1,当初始位置在1的时候可以一步走到原点(即目标位置),初始位置在-1的时候也可以一步走到原点(即目标位置),只不过方向相反而已。

4.这是第二种情况,k<=2内达到原点,与上面类似,不多说,都是为了反推出最优控制量。

 

 

5.这是第3种情况,k>=3到达原点的情况。我刚开始看的时候就有一个疑问:给出最速轨迹线a后为什么还要给出轨迹b,后来我想明白了。

        当我们的初始位置在最速轨迹线的时候当然最好,我们可以全速u[k]=r前进,足够靠近原点两步之内就能到达原点时,u[k]由情况2决定。

       不然始终加速度最大为r,到达原点后会产生超调,就像一个人跑步,你到达终点前始终全速前进,到了终点由于速度不为0肯定还会向前移动,不符合文章开始说的无超调要求。

        那当初始位置不在最速轨迹线上呢,那肯定得想方设法回到最速轨迹线上。假设初始位置在b-轨迹线的上方,要想回到最速轨迹线上,肯定得减速(这个不会看不出来吧),而且还是以最大加速度-r减速,不然怎么符合最速控制要求呢。

         如果恰好减速到b-轨迹线上最好(请看上图文字b轨迹线代表什么),再以-r减速一步便可到达最速轨迹线Gbest线上。那如果减速到a线和b线之间呢,再以-r全力减速肯定到达不了Gbest线上,这就是为什么给出b轨迹线的原因。那当系统状态变量在a线和b线之间该如何求出最佳控制量?如下图:

 

6式23就是所求最优控制量,可知还需求出k,k是整数,k’是为了求出k。 fix() 为取整函数. 。

至此,便可得到fsun函数的表达式。

最后总结一下,

  • 当初始位置在b轨迹线上或以上或以下,控制量为|r|

  • 当初始位置在a轨迹线和b轨迹线之间,想办法回到最速轨迹线

  • 在最速轨迹线上,当k>=3时,控制量为|r|,当k<=2时,调整控制量使得到达原点的速度为0无超调。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

开源飞控ACFLY:ADRC离散系统最速控制综合函数的理解 的相关文章

  • 【C++学习】——(五)数组

    C 43 43 学习 xff08 五 xff09 数组 开篇 上一篇讲解了类型 xff0c 通过类型来开始本篇的学习 xff1b int a 10 上述代码中的a是什么类型呢 xff1f 相信很多人都知道是一个数组类型 xff0c 具体来说
  • openstack中ipv6三种获取IP地址方式

    前言 openstack共有三种用于ipv6的寻址的模式 xff0c 分别是dhcpv6 stateful dhcp stateless以及slaac 1 xff09 slaac模式 Address discovered from an O
  • 华为S5720-52X-PWR-LI/S5720-52X-LI交互机堆叠和VLAN配置

    主要配置流程为 xff1a 交换机设备上电通过console线或网线连接到交换机后 xff0c 进行参数和堆叠配置断电 xff0c 连接好光纤重新上电 1 首次登录交换机 使用Putty软件 xff0c 通过串口 xff0c 连接到交换机
  • 配置Intel REALSENSE相机的一些坑

    最近入手了一个intel REALSENSE相机 xff0c 看别人都是直接使用配套的USB3的线连接电脑就安装好了 xff0c 但是我却要倒霉的配置了一个下午 xff0c 终于在今天晚上配置好了 xff0c 记录一下这个下午踩过的坑 xf
  • 高斯滤波知识点总结——KF、EKF、UKF以及IF、EIF等

    高斯滤波知识点总结 KF EKF UKF以及IF EIF等 1 引言 本文是我在学习 Probabilistic Robotics 这本书中第三章 高斯滤波过程中的一些知识总结 本文主要是整理高斯滤波算法的知识点和一些讨论 xff0c 具体
  • Git 学习小结

    Git 安装和使用教程 git 提交 全部文件 git add git add xx命令可以将xx文件添加到暂存区 xff0c 如果有很多改动可以通过 git add A 来一次添加所有改变的文件 注意 A 选项后面还有一个句点 git a
  • ROS 串口

    64 TOC ROS学习笔记 ROS中使用串口进行通讯测试 参考两篇文献 xff0c 感谢原作者 xff1a https blog csdn net qq 44623066 article details 125626937 https b
  • sklearn库之sklearn.cluster.KMeans的学习

    这篇呢是接着上一篇kmeans的学习 xff0c 这篇主要是介绍调用机器学习的库来使用集成的kmeans 哈哈会调用就行 xff0c 主要学习呢就是看官方文档 xff0c 学习这个包装类的参数 xff0c 返回值以及它方法 这里面有好多ex
  • docker容器开启ssh端口

    docker容器开启ssh端口 启动一个docker容器 加端口 port 22 docker run dit p port 22 p port1 port restart span class token operator 61 span
  • PID中各个参数意义

    1 比例部分 xff1a PID是比例 积分 微分的简称 xff0c PID控制的难点不是编程 xff0c 而是控制器的参数整定 增大比例系数使系统反应灵敏 xff0c 调节速度加快 xff0c 并且可以减小稳态误差 但是比例系数过大会使超
  • 关于多线程,你必须知道的那些玩意儿

    进程与线程 概念 进程和线程作为必知必会的知识 xff0c 想来读者们也都是耳熟能详了 xff0c 但真的是这样嘛 xff1f 今天我们就来重新捋一捋 xff0c 看看有没有什么知识点欠缺的 先来一张我随手截的活动监视器的图 xff0c 分
  • 多传感器融合-搭建ROS工程

    多传感器融合搭建记录1 Tag3 0 一 安装Terminator二 vscode创建功能包三 ROS相关基础1 添加源文件2 添加launch文件3 ROS话题通讯 四 添加代码1 发布者publishera 点云发布类CloudPubl
  • Win11配置Matconvnet错误使用 vl_compilenn>nvcc_compile和datacu.hpp undefined的问题

    初始配置环境 xff1a 电脑 xff1a 联想R9000K Win11 显卡 xff1a 3080 Matlab 2021b Visual Studio 2017 Professional VS安装位置 xff1a D VisualStu
  • openstack/ovn环境,虚拟机连接外网设置

    当使用OVN来做为neutron的后端 xff0c 来实现SDN方案时 xff0c 我们也会需要虚拟机连接外网 xff0c 本文记录操作方法 xff1a 环境 xff1a pike版本 xff0c 创建好net1 xff0c 子网subne
  • 软件环境:安装报Error opening file for writing

    环境 xff1a 办公电脑 xff0c win10 xff0c 64位 xff1b 现象 xff1a 昨天给电脑升级工作相关软件 xff0c 安装报错 xff1b 解决 xff1a 先是更改目录权限等等诸多方案 xff0c 都无效 xff0
  • 卡尔曼滤波原理讲解以及基于陀螺仪和加速度计的角度估计:自己记录一下

    基于陀螺仪和加速度计的角度估计
  • oracle 新建用户

    1 打开命令行窗口 xff0c 输入 slqplus 回车 2 create user 用户名 identified by 密码 xff1b 回车 3 授权权限 xff1a grant connect resource dba to 用户名
  • 解决MySQL 8.0 SQLYog工具连接报错1251

    报错提示 xff0c 如图 xff1a 错误号码1251 Client does not support authentication protocol requested by server consider upgrading MySQ
  • vc中m_开头的意义

    一种变量命名方法 匈牙利命名法 xff0c m即member xff0c 即定义的变量为成员变量 这是一种命名规范
  • amixer

    1 查看有多少个接口可以操作 amixer controls amixer contents 2 get系列 amixer sget 39 Playback Path 39 0 3 set系列 amixer cset numid 61 2

随机推荐