PID算法(位置式pid算法和增量式pid算法)

news2024/12/26 11:22:27

这里写目录标题

  • PID算法介绍
    • 比例环节
    • 比例+积分环节
    • 比例+积分+微分环节
  • 位置式PID
  • 增量式PID
  • PID参数整定
    • 采样周期选择
    • PID参数整定方法![请添加图片描述](https://img-blog.csdnimg.cn/849bf1672243484699b131b487f05a55.png)
      • 试凑法
      • 临界比例法
      • 一般调节法

PID算法介绍

PID 算法是闭环控制系统中常用的算法,PID 分别是 Proportion(比例)、Integral(积分)、
Differential(微分)的首字母缩写。它是一种结合比例、积分和微分三个环节于一体的闭环控
制算法,具体的控制流程如图 8.2.1 所示:
在这里插入图片描述

比例环节

u = Kp * e
u ----- 输出
Kp ----- 比例系数
e ----- 偏差
以温度控制系统为例,只采用比例环节的图:
在这里插入图片描述
总结:
1.Kp越大,系统响应越快,越快达到目标值。
2.Kp过大会使系统产生较大的超调和振荡,导致系统的稳定性变差。
3.仅有比例环节无法消除静态误差。

比例+积分环节

比例+积分环节的公式如下:
u = Kp * e + Ki * ∑e
u ----- 输出
e ----- 偏差
∑e ----- 累计偏差
Kp ----- 比例系数
Ki ----- 积分系数
以温度控制系统为例,采用比例和积分环节的图:
在这里插入图片描述
总结:
1.Ki越大,消除静态误差的时间越短,越快达到目标值。
2.Ki过大会使系统产生较大的超调和振荡,导致系统的稳定性变差。
3.对于惯性较大的系统,积分环节动态响应较差,容易产生超调,振荡。

比例+积分+微分环节

比例+积分+微分环节的公式如下:
请添加图片描述

总结:
1.Kd或者变化趋势越大,微分环节作用越强,对超调和振荡的抑制越强。
2.Kd过大会引起系统的不稳定,容易引入高频噪声。

注意:在实际的应用中,并不是每一个系统都需要 PID 的三个环节参与控制的,有的系统只需要比例环节或积分环节就可以控制得很好,除此之外,每一个系统的 PID 系数并不是通用的,这需要根据实际的情况去设置。

位置式PID

位置式PID公式:
在这里插入图片描述
1.Uk直接对应对象的输出(位置),如果计算出现异常,对系统影响很大。
2.全量计算,要对偏差e进行累加,计算量大。
3.在不带积分部件的对象中可以得到很好的效果,例如电液伺服,温控设备等。

增量式PID

增量式PID公式推导:
请添加图片描述

总结:
1.增量式PID计算的是相对上一次输出的增量,即Uk=Uk-1 + ▲Uk。
2.增量只与近三次的偏差有关,计算出现异常对系统工作影响较小。
3.计算量少,是实现相对较好。

注意:增量式 PID 公式输出的只是控制量的增量。
我们以一个实例来理解这句话:假设电机实际转速为 50RPM,现在我们要让它加速到 60RPM,
如果采用的是位置式 PID,系统将直接输出 60RPM 对应的控制量(占空比);
如果采用的是增量式 PID,系统将输出提速 10RPM对应的控制量(占空比),此时我们还需要加上上次(50RPM)的输出。

PID参数整定

采样周期选择

采样周期指的是 PID 控制中实际值的采样时间间隔,其越短,效果越趋于连续,但对硬件资源的占用也越高。
选择范围:
理论:香浓采样定理
这个定理可以用来确定采样周期可选择的最大值,当采样周期超出了这个最大的允许范围,我们所得到的信号就会失真,也就无法较好地还原信号了。

经验:实际值突变能力
根据控制对象突变能力选择。假设电机当前转速为 20RPM,我们需要提高
它的转速到 30RPM,此电机的转速在 1s 之内最大可以突变 10RPM(即电机速度的突变能力),如果我们每 1ms 采集一次电机转速,那么每一次采集到的速度变化量最大为 10RPM / 1000 =0.01RPM,很明显,此时最大变化量远远小于当前的速度,这对于我们的 PID 控制效果并没有明显的升,但是却占用了很多的硬件资源,因此,我们需要根据控制对象的突变力来选择采样周期。

PID参数整定方法请添加图片描述

理论计算整定法:
依据系统的数学模型,经过理论计算确定 PID 参数。这种方法是建立在理想化条件下的,其得到的参数不一定能够直接使用,还需要结合经验以及实际的系统进行调整。

工程整定法:
依靠工程经验,直接在控制系统的试验中进行整定,此方法易于掌握,在实际调参中被广泛采用。工程整定法包括:试凑法、临界比例法和一般调节法。

注意:无论采用哪一种方法所得到的 PID 参数,都需要在实际运行中进行最后调整与完善,因此,在 PID 参数整定中,最重要的就是经验的积累。

PID 各个系数调节的效果:
① 比例系数:调节作用快,系统一出现偏差,调节器立即将偏差放大输出。
② 积分系数:积分系数的调节会改变输入偏差对于系统输出的影响程度。积分系数越大,消除静差的时间越短,但是过大的积分系数则会导致系统出现超调现象,这在具有惯性的系统中尤为明显。
③ 微分系数:微分系数的调节是偏差变化量对于系统输出的影响程度。微分系数越大,系统对于偏差量的变化越敏感,越能提前响应,进而抑制超调,但是过大的微分系数则会让整个系统出现振荡。

试凑法

1.内容:
在闭环的控制系统里,将调节器置于纯比例作用下,从小到大逐渐调节比例系数,直到系统曲线出现等幅振荡,再根据经验公式计算参数。

2.请添加图片描述
调节思路:
① 先是比例(P),再积分(I),最后是微分(D);
② 按纯比例系统整定比例系数,使其得到比较理想的调节过程曲线,然后再把比例系数缩小 1.2 倍左右,将积分系数从小到大改变,使其得到较好的调节过程曲线;
③ 在这个积分系数下重新改变比例系数,再看调节过程曲线有无改善;
④ 如有改善,可将原整定的比例系数减少,改变积分系数,这样多次的反复,就可得到合适的比例系数和积分系数;
⑤ 如果存在外界的干扰,系统的稳定性不好,可把比例、积分系数适当减小,使系统足够稳定;
⑥ 如果系统存在小幅度超调,可以将整定好的比例系数和积分系数适当减小,增大微分系数,以得到超调量最小、调节作用时间最短的系统曲线;

临界比例法

1.内容:
在闭环的控制系统里,将调节器置于纯比例作用下,从小到大逐渐调节比例系数,直到系统曲线出现等幅振荡,再根据经验公式计算参数。

2.调节思路:
① 将积分、微分系数置零,比例度取适当值,平衡操作一段时间,使控制系统按纯比例作用的方式投入运行。
② 慢慢地增大比例系数,细心观察曲线的变化情况。如果控制过程的曲线波动是衰减的,则把比例系数继续增大;如果曲线波动是发散的,则应把比例系数减小,直至曲线波动呈等幅振荡,此时记下临界比例系数 δK 和临界振荡周期 Tk 的值。
③ 根据记下的比例系数和周期,采用经验公式,计算调节器的参数。
请添加图片描述

一般调节法

1.内容:
这种方法针对一般的 PID 控制系统所以称之为一般调节法。

2.调节思路:
① 首先将积分、微分系数置零,使系统为纯比例控制。控制对象的值设定为系统允许的最大值的 60%~70%,接着逐渐增大比例系数,直至系统出现振荡;此时再逐渐减小比例系数,直至系统振荡消失,然后记录此时的比例系数,并设定系统的比例系数为前值的 60%~70%。
② 确定比例系数后,设定一个较小的积分系数,然后逐渐增大积分系数直至系统出现振荡;此时在逐渐减小积分系数,直至系统振荡消失,然后记录此时的积分系数,并设定系统的积分系数为当前值的 55%~65%。
③ 微分系数一般不用设定,为 0 即可。若系统出现小幅度振荡,并且通过 PI 环节无法优化,这可以采用与确定比例、积分系数相同的方法,微分系数取系统不振荡时的 30%左右。④ 系统空载、带载联调,再对 PID 参数进行微调,直至满足要求。

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

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

相关文章

使用Process Monitor探测Windows系统高DPI缩放设置的注册表项

目录 1、在高显示比例下部分软件界面显示模糊问题 2、如何设置才能使得软件显示的清晰一些? 3、使用Process Monitor监测上述设置对应的注册表的操作 4、最后 VC常用功能开发汇总(专栏文章列表,欢迎订阅,持续更新...&#xff…

分布式 04 nginx 的使用

01.Nginx可以理解成为一个代理运营商在计算机网络中。用户发送的请求在Nginx中处理,而后分配给相关的服务器 02.在Nginx文件中conf文件件,中修改nginx.conf文件 首先先去监听和获取请求,使用关键字server 这个是浏览器url中输入localhost时…

如何在本地部署运行ChatGLM-6B

在本篇技术博客中,将展示如何在本地获取运行代码和模型,并配置环境以及 Web GUI,最后通过 Gradio 的网页版 Demo 进行聊天。 官方介绍 ChatGLM-6B 是一个开源的、支持中英双语的对话语言模型,基于 General Language Model (GLM)…

Flutter 自定义裁剪之圆形豁口/缺口

目录 Flutter自定义裁剪Flutter的自定义裁剪类CustomClipper裁剪的实际代码思路分析注意点完整代码总结如图所示,图中的圆形缺口,需要我们自定义裁剪,才能实现。 Flutter自定义裁剪 裁剪,我们想到的是剪刀,实际上,Flutter的裁剪原理,和我们现实物理世界的剪刀是一样的…

木夕的IC日记——Vim使用【一】

Vim使用日记【一】 Vim的运行方式进入Vim第一步:打开文件保存文件并退出Vim三种模式下能做哪些事命令模式编辑模式底行模式Visual Block功能 Vim的运行方式 作为Linux系统中最常用的文本编辑器,Vim体现了Linux“万物皆是文件”的设计哲学。通过Vim&…

flink集群安装部署

1.下载 官网下载:Downloads | Apache Flink 阿里网盘下载(包含依赖包):阿里云盘分享 提取码:9bl2 2.解压 tar -zxvf flink-1.12.7-bin-scala_2.11.tgz -C ../opt/module 3.修改配置文件 cd flink-1.12.7/conf/ …

[C++]string的使用

目录 string的使用:: 1.string类介绍 2.string常用接口说明 string相关习题训练:: 1.仅仅反转字母 2.找字符串中第一个只出现一次的字符 3.字符串里面最后一个单词的长度 4.验证一个字符串是否是回文 5.字符串相加 6.翻转字符串…

[Dubbo] 重要接口与类 (三)

文章目录 1.dubbo的整体调用链路2.dubbo的源码整体设计3.重要接口和类 1.dubbo的整体调用链路 消费者通过Interface进行方法调用,统一交由消费者的Proxy处理(Proxy通过ProxyFactory来进行代理对象的创建) Proxy调用Filter模块,做…

linux中fork函数与vfork函数的区别

fork函数跟vfork函数一样能够创建进程,它们主要有两个区别 (1)区别一: vfork直接使用父进程存储空间,不拷贝。 (2)区别二: vfork保证子进程先运行,当子进程调用exit退…

【读论文】AT-GAN

【读论文】AT-GAN 介绍网络架构生成器IAMSTM 辨别器 损失函数SEM损失内容损失结构损失对抗损失 总结参考 论文:https://www.sciencedirect.com/science/article/pii/S156625352200255X 如有侵权请联系博主 介绍 大概是刚开学的时候就读到一篇文章,看完…

Nginx静态资源传输优化,文件高效传输,事半功倍

1.引出问题 Nginx可以作为静态资源服务器,比如我们访问192.168.110.97:80,熟悉的nginx欢迎界面,这其实也是nginx为我们提供的一个静态文件:index.html。 既然是静态资源,那我们能否优化一下传输效率呢? 1…

训练计划安排(练一休一训练分化+倒金字塔训练法)【了解即可,一般人容量不用练一休一,看抖音@孙悟饭桶】

目录 练一休一训练分化每次训练的组数12-15组 (4-5个动作)QA 倒金字塔训练法倒金字塔热身正式组常见误区: 训练补剂bcaa咖啡因肌酸蛋白粉 如何降低皮质醇水平如何提升睾酮水平文献出处睡眠8h摄入适量脂肪(0.8g每公斤体重&#xff…

java APT原理及APT实战 - 一步步教你写ButterKnife

一、定义 Java APT 是 Java 技术设计的一个 APT 架构, APT(Annotation Processing Tool)即注解处理器,它是一种处理注解的工具,也是javac中的一个工具,用于在编译阶段未生成class之前对源码中的注解进行扫…

Windows巧用git实现笔记自动备份

Windows巧用git实现笔记自动备份 准备git仓库配置自动上传脚本设置 Windows 自动定时任务参考文献 准备git仓库 安装git:https://git-scm.com/downloads: 注册并登录gitee,本地生成ssh key(详情百度),然后…

数据处理Pandas学习笔记(一)

import pandas as pdpandas值series创建 t pd.Series([1, 2, 31, 12, 3, 4]) t0 1 1 2 2 31 3 12 4 3 5 4 dtype: int64type(t)pandas.core.series.Seriesseries指定索引 t2 pd.Series([1,23,3,2,3],indexlist(abcde)) t2a 1 b 23 c 3 d …

【Java-05】常用API、正则表达式、Collection集合

主要内容 BigInteger类BigDecimal类Arrays类包装类String类的常用方法正则表达式Collection集合 1 BigInteger类 1.1 概述 概述 : java.math.BigInteger类是一个引用数据类型 , 可以用于计算一些大的整数 , 当超出基本数据类型数据范围的整数运算时就可以使用BigInteger了。…

类别无关的姿态估计ECCV2022

现有的2D姿态估计工作主要集中在某一类别,例如人类、动物和车辆。然而,有很多应用场景需要检测unseen对象类的姿态(或关键点)。因此作者提出CAPE任务(Category-Agnostic Pose Estimation),该任务…

Sketch哪个版本好用?

使用最新版本的 Sketch 是很有意义的。一方面,最新版本通常会有新的功能和改进,使设计师更方便地完成工作。另一方面,使用最新版本还可以避免出现因版本不兼容而无法打开源文件的问题。此外,最新版本通常会更稳定,因此…

Linux command(sar)

说明 sar命令是一个系统性能监测工具,用于收集、报告和分析系统的各种资源使用情况。以下是sar命令的基本用法: sar [选项] [时间间隔] [次数] 选项:可用的选项包括-a(显示所有资源使用情况)、-b(显示I/…

图片修复增强调研

Real-ESRGAN 工程地址:https://github.com/xinntao/Real-ESRGAN 效果: 人脸增强部分,调用的GFPGAN. GFPGAN 工程地址:https://github.com/TencentARC/GFPGAN 论文效果: BasicSR-ESRGAN: 项目地址&a…