ROS学习笔记(14)拉普拉斯变换和PID

news2024/11/26 10:31:19

0.前提

近些时间在对睿抗的ROS仿真赛进行小组安排,对小组成员进行了一些安排,也要求他们以本次比赛写下自己的比赛经历博客,他们的培训由我来安排和负责,因此我得加吧油,起码保证我的进度得快过他们,才能安排好本次比赛。好了扯了这么多,进入重点,拉普拉斯变换和PID调节都是能在本科学习期间的自动控制原理当中看到,甚至自控是很多人考研时感到最头疼的科目之一,同时也是为了能更好的调节vesc。

1.拉普拉斯变换

1.拉氏变换概念

公式墙(1)知乎有一个讲的挺好的

在自控中有个弹簧-增块-阻尼器系统,其微分方程如下图:

我简单解释一下这个方程,用牛二可知F=fv(t)+ky(t)+ma(t),根据大学物理知识可知v(t)={y(t)}'a(t)={y(t)}'',而y上面的点代表的就是求导。在时域当中求解这个微分方程是相当麻烦的,而拉普拉斯变换给我们提供了一个将时域系统转变为频域系统的方式。

在复变函数(如果没有复变基础请自己去寻找书籍学习一下)中有一个章节来单独对拉普拉斯变换进行了讲解,不过好像在上复变的时候老师都没讲这一章内容,反倒在自控中老师单独花了时间来讲,在上图的拉普拉斯变换的定义中我们可以看到拉普拉斯积分公式:

反演公式就是拉氏反变换

F(s)=\int_{0}^{+\infty}f(t)e^{-st}dt

\mathfrak{L}(f)=\int_{0}^{\infty}f(t)e^{-st}dt=F(s)

在公式中我们将时域 t 转 变为频域 s。而 f(t) 是 F(t) 的拉氏逆变换,记为:

f(t)=\mathfrak{L}^{-1}[F(s)]

2.常见的拉氏变换

1.阶跃函数

f(t)=\begin{cases} 1&t\geq 0\\ 0& t< 0 \end{cases}     

 \mathfrak{L}[1(t)]=\int_{0}^{\infty}1\cdot e^{-st}dt=\frac{-1}{s}[e^{-st}]_{0}^{\infty}=\frac{1}{s}

2.指数函数

f(t)=e^{at}

\mathfrak{L}[f(t)]=\int_{0}^{\infty}e^{at}\cdot e^{-st}dt=\int_{0}^{\infty}e^{-(s-a)t}dt=\frac{-1}{s-a}[e^{-(s-a)t}]_{0}^{\infty}=\frac{1}{s-a}

3.正弦函数

f(t)=\begin{cases} 0 & \ t<0\\ sin\omega t &\ t\geq 0 \end{cases}

\mathfrak{L}[f(t)]=\int_{0}^{\infty}sin\omega t\cdot e^{-st}dt=\frac{\omega}{s^{2}+\omega ^{2}}

其余的常见拉氏变换我用图片放出来,其实记住上面的定义式\mathfrak{L}(f)=\int_{0}^{\infty}f(t)e^{-st}dt=F(s)都可以自己计算出来,唯一值得注意的就是复变里面的 -1=j^{2} :

3.拉氏变换几个重要性质

在拉氏变换中有几个重要的性质,为了方便我同样只放图片:

2.PID

自控当中有介绍到PID(比例-积分-微分控制器),利用系统误差、误差的微分和积分信号构成控制规律,PID控制器采用不太组合可实现PD,PI,PID这3种矫正方式。

图1

1.P控制(比例控制)和P控制器

1.P控制

这里的P取之英文单词Porportional的首字母译为比例的。

在ros小车循迹中的转向和转向偏差要成比例这就是P比例控制:

图2

小车循迹时,我们希望它的速度是平行于道路的,且始终位于道路中心,但因为误差的原因我们无法保证按照理想运行,因此我们按照比例控制来矫正。

1.核心思想:

e(t)=r(t)-x(t),理论值减实际值得的误差。

误差越大,用于矫正误差的输入就越大。

2.公式:

u(t)=K_{p}*e(t)

2.P控制器

1.核心思想:

图3

当前小车的运动状态如上图蓝线为道路中间线,当我们保证小车速度不变,我们需要的转向角为\theta,我们的目的是要保证小车运动在道路中间y=0\theta =0也就是L*sin(\theta )=0

再结合图2我们就可以得到e(t)=-(y+L*sin(\theta ))

注意:小车的运动方向会影响y\theta的取值,受坐标系构建的影响。

1.左转:y> 0:小车在道路右边——>左转:\theta <0

  L*sin(\theta ):小车左转L米——>左转:\theta <0

2.右转:y< 0:小车在道路左边——>右转:\theta >0

  L*sin(\theta ):小车右转L米——>右转:\theta >0

2.转向角度:

\theta _{p}=K*e(t)=K_{p}*(-y-L*sin(\theta ))   

小车应用P控制器的运动轨迹:

图4

2.D控制(微分控制) 与PD控制器

1.D控制

这里的D取之英文单词Derivativel的首字母译为微分的。

观看图4可知道仅引入P控制时,我们的小车会在中心线附近摆动,为了出现这种超调现象,我们需要更快的做出调整反应。这时我们引入了D控制,D控制具有超前矫正的作用。

1.核心思想:

D控制预测反馈误差信号e(t)的变化趋势(预测基于误差的导数增益)。这里的e(t)和P控制里面的e(t)是同一个。

2.公式:

u(t)=K_{p}*\frac{d}{dt}e(t)

2.PD控制器

1.核心思想

D控制和P控制共同组成了PD控制。 

2.转向角度

\theta _{p}=K_{p}*e(t)+K_{p}*\frac{d}{dt}e(t)=K_{p}*(-y-L*sin(\theta ))+K_{p}*\frac{d}{dt}(-y-L*sin(\theta ))

小车PD控制运动轨迹:

  图5    

3.I控制(积分控制)和PID控制器

1.I控制

这里的I取之英文单词Integral的首字母译为积分的。I控制具有滞后和稳定作用。

1.核心思想:

稳态误差随时间积累,I控制提高系统稳定精度。

2.公式:

u(t)=K_{i}\int_{0}^{t}e(t)dt ,这里的e(t)和P控制里面的e(t)是同一个。

2.PID控制器

1.核心思想:

I控制加入PD控制,会得到PID控制

2.转向角度:

\theta _{pi}=K_{p}*e(t)+K_{i}\int_{0}^{t}e(t)dt+K_{p}*\frac{d}{dt}e(t)

误差牺牲e(t)=-(y+L*sin(\theta ))

小车PID控制运动轨迹(红色为PID控制器的运动轨迹,紫色是PD控制器的运动轨迹):

图6

4.结尾

好了本篇博客到此就基本结束了,其实本来还应该有个PI控制器的,但我们的核心是PID控制器嘛,所以能得出PID控制器就好了,现在回头看PID的图1,会不会有新的思考?

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

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

相关文章

源码编译安装curl _ 统信UOS _ 麒麟KOS _ 中科方德

原文链接&#xff1a;源码编译安装curl | 统信UOS | 麒麟KOS | 中科方德 Hello&#xff0c;大家好啊&#xff01;今天我们来探讨一个非常实用的话题&#xff1a;在统信UOS、麒麟KOS以及中科方德桌面操作系统上如何从源码编译安装curl。Curl是一个广泛使用的命令行工具和库&…

【Kafka】Kafka高性能之道(六)

Kafka高性能之道 Kafka高性能原因 高效使用磁盘 1)顺序写磁盘&#xff0c;顺序写磁盘性能高于随机写内存。 2)Append Only 数据不更新&#xff0c;无记录级的数据删除(只会整个segment删s除)。读操作可直接在page cache内进行。如果进程重启&#xff0c;JVM内的cache会失效&a…

Pandas dataframe 中显示包含NaN值的单元格

大部分教程只讲如何打印含有NA的列或行。这个函数可以直接定位到单元格&#xff0c;当dataframe的行和列都很多的时候更加直观。 # Finding NaN locations for df.loc def locate_na(df):nan_indices set()nan_columns set()for col, vals in df_descriptors.items():for in…

grafana监控模板 regex截取ip地址

查看prometheus的node服务启动指标up&#xff0c;也可以查看其他的服务 配置监控模板 配置正则截取ip regex截取ip地址 /.*instance"([^"]*):9100*/ #提取&#xff08;instance"&#xff09;开头&#xff0c;&#xff08;:9001&#xff09;结束字段

Qt Creator中变量与函数的注释 - 鼠标悬浮可显示

Qt Creator中变量与函数的注释 - 鼠标悬浮可显示 引言一、变量注释二、函数注释三、参考链接 引言 代码注释在软件开发中起着至关重要的作用。它们不仅有助于开发者理解和维护代码&#xff0c;还能促进团队协作&#xff0c;提高代码的可读性和可维护性。适当的注释应该是简洁明…

头脑风暴式会议设计6步法

头脑风暴是一种常用的会议讨论工具&#xff0c;可以释放参与者的思想&#xff0c;让参与者更加有创意地思考&#xff0c;产生新的想法和见解。引导者在设计会议时&#xff0c;遵循一定的步骤和流程&#xff0c;便能高效激发创新思维&#xff0c;共创出有效的问题解决方案。下图…

百度竞价开户详解:步骤、优势与注意事项

随着互联网的普及&#xff0c;网络营销已成为企业不可或缺的一部分。其中&#xff0c;百度竞价作为一种高效的网络推广方式&#xff0c;受到了越来越多企业的青睐。本文将详细介绍百度竞价开户的流程、优势以及注意事项&#xff0c;帮助企业更好地利用这一工具提升品牌知名度和…

linux运行python怎么结束

假如你已经进入到【>>>】&#xff0c;那么输入【quit&#xff08;&#xff09;】&#xff0c;然后按一下回车键即可退出了。 如果是想要关闭窗口的&#xff0c;那么直接在这个窗口上按【ctrld】。

正点原子[第二期]Linux之ARM(MX6U)裸机篇学习笔记-6.5

前言&#xff1a; 本文是根据哔哩哔哩网站上“正点原子[第二期]Linux之ARM&#xff08;MX6U&#xff09;裸机篇”视频的学习笔记&#xff0c;在这里会记录下正点原子 I.MX6ULL 开发板的配套视频教程所作的实验和学习笔记内容。本文大量引用了正点原子教学视频和链接中的内容。…

stm32单片机开发四、USART

串口的空闲状态时高电平&#xff0c;起始位是低电平&#xff0c;来打破空闲状态的高电平 必须要有停止位&#xff0c;停止位一般为一位高电平 串口常说的数据为8N1&#xff0c;其实就是8个数据位&#xff08;固定的&#xff09;&#xff0c;N就是none&#xff0c;也就是0个校验…

用socat验证multicase(组播)和broadcast(广播) with k8s容器环境

安装socat 网络允许的话&#xff0c;可以使用yum install -y socat进行安装。 如果是在容器里面运行&#xff0c;建议使用静态链接的socat: 可以从此处下载&#xff1a; Release socat-v1.7.4.4 ernw/static-toolbox GitHub 确定网络接口地址和组播地址 #kubectl exec -i…

低GPU利用率的实证研究;可解决数学问题的数据合成新范式;大规模合成数学推理的指令微调数据;大模型改进推荐系统

编者按&#xff1a;欢迎阅读“科研上新”栏目&#xff01;“科研上新”汇聚了微软亚洲研究院最新的创新成果与科研动态。在这里&#xff0c;你可以快速浏览研究院的亮点资讯&#xff0c;保持对前沿领域的敏锐嗅觉&#xff0c;同时也能找到先进实用的开源工具。 本期内容速览 …

KT-0911兔气管插管

简单介绍&#xff1a; 在医学和生物学常用兔进行实验&#xff0c;实验中经常需要给兔气管插管以进行机械通气或气管给药等操作。 详情介绍&#xff1a; 技术参数&#xff1a; 1.材质&#xff1a;PVC注塑一体成型 2.插管外径尺寸&#xff1a;5mm 3.适用动物&#xff1a;兔…

10分钟了解数据质量管理-奥斯汀格里芬 Apache Griffin

在不重视数据质量的大数据发展时期&#xff0c;Griffin并不能引起重视&#xff0c;但是随着数据治理在很多企业的全面开展与落地&#xff0c;数据质量的问题开始引起重视。 1.Griffin简介 Griffin是一个开源的大数据数据质量解决方案&#xff0c;由eBay开源&#xff0c;它支持…

FPlan Part1 EP1(MySQL)

今天完成了MySQL的第一部分&#xff0c;计划分为三部分&#xff0c;预计将在五一假期前完成&#xff0c;以及一个Java小游戏。 重点如下

【数据结构与算法】力扣 225. 用队列实现栈

题目描述 请你仅使用两个队列实现一个后入先出&#xff08;LIFO&#xff09;的栈&#xff0c;并支持普通栈的全部四种操作&#xff08;push、top、pop 和 empty&#xff09;。 实现 MyStack 类&#xff1a; void push(int x) 将元素 x 压入栈顶。int pop() 移除并返回栈顶元…

AI图书推荐:AI驱动的图书写作工作流—从想法构思到变现

《AI驱动的图书写作工作流—从想法到变现》&#xff08;AI-Driven Book Creation: From Concept to Cash&#xff09;是Martynas Zaloga倾力打造的一本实用指南&#xff0c;它巧妙地将写作艺术与人工智能前沿技术相结合。此书不仅揭示了AI在图书出版领域的无限潜力&#xff0c;…

网盘—上传文件

本文主要讲解网盘里面关于文件操作部分的上传文件&#xff0c;具体步骤如下 目录 1、实施步骤&#xff1a; 2、代码实现 2.1、添加上传文件协议 2.2、添加上传文件槽函数 2.3、添加槽函数定义 2.4、关联上传槽函数 2.5、服务器端 2.6、在服务器端添加上传文件请求的ca…

17.IIC原理及应用

IIC总线的一些特征 • 只要求两条总线线路 一条串行数据线 SDA 一条串行时钟线 SCL • 每个连接到总线的器件都可以通过唯一的地址和一直存在的简单的主机 从机关系软件设定地 址 主机可以作为主机发送器或主机接收器 • 它是一个真正的多主机总线 如果两个或更多主机同时初始…

sql今天学习总结

排序order by&#xff08;默认升序&#xff09; order by id desc(降序排序&#xff09; order by id,number&#xff08;先按id排再按name排序&#xff09; in,not in and or 通配符 where name like "Aa%";选取所有以Aa开头的名字 like "%r" 以r结…