PID控制详解

PID 控制详解
一、 PID 控制简介
PID( Proportional Integral Derivative) 控制是最早发展起来的控制策略之一,由于其算法简单、鲁棒
性好和可靠性高,被广泛应用于工业过程控制,尤其适用于可建立精确数学模型的确定性控制系
统。
在工程实际中,应用最为广泛的调节器控制规律为比例、积分、微分控制,简称 PID 控制,又称
PID 调节,它实际上是一种算法。 PID 控制器问世至今已有近 70 年历史,它以其结构简单、稳定性
好、工作可靠、调整方便而成为工业控制的主要技术之一。当被控对象的结构和参数不能完全掌
握,或得不到精确的数学模型时,控制理论的其它技术难以采用时,系统控制器的结构和参数必须
依靠经验和现场调试来确定,这时应用 PID 控制技术最为方便。即当我们不完全了解一个系统和被控
对象,或不能通过有效的测量手段来获得系统参数时,最适合用 PID 控制技术。 PID 控制,实际中也
PI PD 控制。 PID 控制器就是根据系统的误差,利用比例、积分、微分计算出控制量进行控制
的。
从信号变换的角度而言,超前校正、滞后校正、滞后-超前校正可以总结为比例、积分、微分三
种运算及其组合。
PID 调节器的适用范围: PID 调节控制是一个传统控制方法,它适用于温度、压力、流量、液位等
几乎所有现场,不同的现场,仅仅是 PID 参数应设置不同,只要参数设置得当均可以达到很好的效
果。均可以达到 0.1% ,甚至更高的控制要求。
PID 控制的不足
1. 在实际工业生产过程往往具有非线性、时变不确定,难以建立精确的数学模型,常规的 PID
制器不能达到理想的控制效果;
2. 在实际生产现场中,由于受到参数整定方法烦杂的困扰,常规 PID 控制器参数往往整定不良、
效果欠佳,对运行工况的适应能力很差。
二、 PID 控制器各校正环节
任何闭环控制系统的首要任务是要稳(稳定)、快(快速)、准(准确)的响应命令。 PID 调整的
主要工作就是如何实现这一任务。
增大比例系数 P 将加快系统的响应,它的作用于输出值较快,但不能很好稳定在一个理想的数
值,不良的结果是虽较能有效的克服扰动的影响,但有余差出现,过大的比例系数会使系统有比较
大的超调,并产生振荡,使稳定性变坏。积分能在比例的基础上消除余差,它能对稳定后有累积误 差的系统进行误差修整,减小稳态误差。微分具有超前作用,对于具有容量滞后的控制通道,引入
微分参与控制,在微分项设置得当的情况下,对于提高系统的动态性能指标,有着显著效果,它可
以使系统超调量减小,稳定性增加,动态误差减小。
综上所述, P— 比例控制系统的响应快速性,快速作用于输出,好比 " 现在 " (现在就起作用,
快), I— 积分控制系统的准确性,消除过去的累积误差,好比 " 过去 " (清除过去积怨,回到准确轨
道), D— 微分控制系统的稳定性,具有超前控制作用,好比 " 未来 " (放眼未来,未雨绸缪,稳定才
能发展)。当然这个结论也不可一概而论,只是想让初学者更加快速的理解 PID 的作用。
在调整的时候,你所要做的任务就是在系统结构允许的情况下,在这三个参数之间权衡调整,
达到最佳控制效果,实现稳快准的控制特点。
比例控制可快速、及时、按比例调节偏差,提高控制灵敏度,但有静差,控制精度低。积分控制
能消除偏差,提高控制精度、改善稳态性能,但易引起震荡,造成超调。微分控制是一种超前控
制,能调节系统速度、减小超调量、提高稳定性,但其时间常数过大会引入干扰、系统冲击大,过
小则调节周期长、效果不显著。比例、积分、微分控制相互配合,合理选择 PID 调节器的参数,即比
例系数 KP 、积分时间常数 τi 和微分时间常数 τD ,可迅速、准确、平稳的消除偏差,达到良好的控制
效果。
1. 比例环节
成比例地反映控制系统的偏差信号 e(t) ,偏差一旦产生,控制器立即产生控制作用,以减小偏差。
当仅有比例控制时系统输出存在稳态误差( Steady-state error )。
P 参数越小比例作用越强,动态响应越快,消除误差的能力越强。但实际系统是有惯性的,控制输
出变化后,实际 y(t) 值变化还需等待一段时间才会缓慢变化。由于实际系统是有惯性的,比例作用不
宜太强,比例作用太强会引起系统振荡不稳定。 P 参数的大小应在以上定量计算的基础上根据系统响
应情况,现场调试决定,通常将 P 参数由大向小调,以能达到最快响应又无超调 ( 或无大的超调 ) 为最
佳参数。
优点 : 调整系统的开环比例系数,提高系统的稳态精度,减低系统的惰性,加快响应速度。
缺点 : 仅用 P 控制器 , 过大的开环比例系数不仅会使系统的超调量增大,而且会使系统稳定裕度变
小,甚至不稳定。
2. 积分环节
控制器的输出与输入误差信号的积分成正比关系。主要用于消除静差,提高系统的无差度。积分
作用的强弱取决于积分时间常数 T,T 越大,积分作用越弱,反之则越强。 为什么要引进积分作用?
比例作用的输出与误差的大小成正比,误差越大,输出越大,误差越小,输出越小,误差为零,
输出为零。由于没有误差时输出为零,因此比例调节不可能完全消除误差,不可能使被控的 PV 值达
到给定值。必须存在一个稳定的误差,以维持一个稳定的输出,才能使系统的 PV 值保持稳定。这就
是通常所说的比例作用是有差调节,是有静差的,加强比例作用只能减少静差,不能消除静差 (
差:即静态误差,也称稳态误差 )
为了消除静差必须引入积分作用,积分作用可以消除静差,以使被控的 y(t) 值最后与给定值一致。
引进积分作用的目的也就是为了消除静差,使 y(t) 值达到给定值,并保持一致。
积分作用消除静差的原理是,只要有误差存在,就对误差进行积分,使输出继续增大或减小,一
直到误差为零,积分停止,输出不再变化,系统的 PV 值保持稳定, y(t) 值等于 u(t) 值,达到无差调节
的效果。
但由于实际系统是有惯性的,输出变化后, y(t) 值不会马上变化,须等待一段时间才缓慢变化,因
此积分的快慢必须与实际系统的惯性相匹配,惯性大、积分作用就应该弱,积分时间 I 就应该大些,
反之而然。如果积分作用太强,积分输出变化过快,就会引起积分过头的现象,产生积分超调和振
荡。通常 I 参数也是由大往小调,即积分作用由小往大调,观察系统响应以能达到快速消除误差,达
到给定值,又不引起振荡为准。
对一个自动控制系统,如果在进入稳态后存在稳态误差,则称这个控制系统是有稳态误差的或简
称有差系统( System with Steady-state Error )。为了消除稳态误差,在控制器中必须引入 积分
。积分项对误差取决于时间的积分,随着时间的增加,积分项会增大。这样,即便误差很小,积
分项也会随着时间的增加而加大,它推动控制器的输出增大使稳态误差进一步减小,直到等于零。
因此,比例 + 积分 (PI) 控制器,可以使系统在进入稳态后无稳态误差。 PI 控制器不但保持了积分控制
器消除稳态误差的 记忆功能 ,而且克服了单独使用积分控制消除误差时反应不灵敏的缺点。
优点:消除稳态误差。
缺点:积分控制器的加入会影响系统的稳定性,使系统的稳定裕度减小。
3. 微分环节
反映偏差信号的变化趋势,并能在偏差信号变得太大之前,在系统中引入一个有效的早期修正信
号,从而加快系统的动作速度,减少调节时间。在微分控制中,控制器的输出与输入误差信号的微
分(即误差的变化率)成正比关系。
为什么要引进微分作用? 前面已经分析过,不论比例调节作用,还是积分调节作用都是建立在产生误差后才进行调节以消
除误差,都是事后调节,因此这种调节对稳态来说是无差的,对动态来说肯定是有差的,因为对于
负载变化或给定值变化所产生的扰动,必须等待产生误差以后,然后再来慢慢调节予以消除。
但一般的控制系统,不仅对稳定控制有要求,而且对动态指标也有要求,通常都要求负载变化或
给定调整等引起扰动后,恢复到稳态的速度要快,因此光有比例和积分调节作用还不能完全满足要
求,必须引入微分作用。比例作用和积分作用是事后调节 ( 即发生误差后才进行调节 ) ,而微分作用则
是事前预防控制,即一发现 y(t) 有变大或变小的趋势,马上就输出一个阻止其变化的控制信号,以防
止出现过冲或超调等。
D 越大,微分作用越强, D 越小,微分作用越弱。系统调试时通常把 D 从小往大调,具体参数由试验
决定。
如:由于给定值调整或负载扰动引起 y(t) 变化,比例作用和微分作用一定等到 y(t) 值变化后才进行
调节,并且误差小时,产生的比例和积分调节作用也小,纠正误差的能力也小,误差大时,产生的
比例和积分作用才增大。因为是事后调节动态指标不会很理想。而微分作用可以在产生误差之前一
发现有产生误差的趋势就开始调节,是提前控制,所以及时性更好,可以最大限度地减少动态误
差,使整体效果更好。但微分作用只能作为比例和积分控制的一种补充,不能起主导作用,微分作
用不能太强,太强也会引起系统不稳定,产生振荡,微分作用只能在 P I 调好后再由小往大调,一
点一点试着加上去。
自动控制系统在克服误差的调节过程中可能会出现振荡甚至失稳。其原因是由于存在有较大惯性
组件(环节)或有滞后 (delay) 组件,具有抑制误差的作用,其变化总是落后于误差的变化。解决的
办法是使抑制误差的作用的变化 超前 ,即在误差接近零时,抑制误差的作用就应该是零。这就是
说,在控制器中仅引入 比例 项往往是不够的,比例项的作用仅是放大误差的幅值,而目前需要增加
的是 微分项 ,它能预测误差变化的趋势。这样,具有比例 + 微分的控制器,就能够提前使抑制误差
的控制作用等于零,甚至为负值,从而避免了被控量的严重超调。所以对有较大惯性或滞后的被控
对象,比例 + 微分 (PD) 控制器能改善系统在调节过程中的动态特性。 PD 控制只在动态过程中才起作
用,对恒定稳态情况起阻断作用。因此,微分控制在任何情况下都不能单独使用。
优点:使系统的响应速度变快,超调减小,振荡减轻,对动态过程有 预测 作用。
在低频段,主要是 PI 控制规律起作用,提高系统型别,消除或减少稳态误差;在中高频段主要是
PD 规律起作用,增大截止频率和相角裕度,提高响应速度。因此,控制器可以全面地提高系统的控
制性能。
三、 PID 控制器的参数整定
PID 控制器的参数整定是控制系统设计的核心内容。它是根据被控过程的特性确定 PID 控制器的比
例系数、积分时间和微分时间的大小。 PID 控制器参数整定的方法很多,概括起来有两大类: 1. 理论计算整定法
它主要是依据系统的数学模型,经过理论计算确定控制器参数。这种方法所得到的计算数据未必
可以直接用,还必须通过工程实际进行调整和修改。
2. 工程整定方法
它主要依赖工程经验,直接在控制系统的试验中进行,且方法简单、易于掌握,在工程实际中被
广泛采用。 PID 控制器参数的工程整定方法,主要有临界比例法、反应曲线法和衰减法。三种方法各
有其特点,其共同点都是通过试验,然后按照工程经验公式对控制器参数进行整定。但无论采用哪
一种方法所得到的控制器参数,都需要在实际运行中进行最后调整与完善。现在一般采用的是临界
比例法。利用该方法进行 PID 控制器参数的整定步骤如下:
(1) 首先预选择一个足够短的采样周期让系统工作;
(2) 仅加入比例控制环节,直到系统对输入的阶跃响应出现临界振荡,记下这时的比例放大系数
和临界振荡周期;
(3) 在一定的控制度下通过公式计算得到 PID 控制器的参数。
PID 调试一般原则
a. 在输出不振荡时,增大比例增益 P
b. 在输出不振荡时,减小积分时间常数 Ti
c. 在输出不振荡时,增大微分时间常数 Td
PID 调试一般步骤
a. 确定比例增益 P
确定比例增益 P 时,首先去掉 PID 的积分项和微分项,一般是令 Ti=0 Td=0 (具体见 PID 的参数
设定说明),使 PID 为纯比例调节。输入设定为系统允许的最大值的 60%~70% ,由 0 逐渐加大比例增
P ,直至系统出现振荡;再反过来,从此时的比例增益 P 逐渐减小,直至系统振荡消失,记录此时
的比例增益 P ,设定 PID 的比例增益 P 为当前值的 60%~70% 。比例增益 P 调试完成。
b. 确定积分时间常数 Ti
比例增益 P 确定后,设定一个较大的积分时间常数 Ti 的初值,然后逐渐减小 Ti ,直至系统出现振
荡,之后在反过来,逐渐加大 Ti ,直至系统振荡消失。记录此时的 Ti ,设定 PID 的积分时间常数 Ti
当前值的 150%~180% 。积分时间常数 Ti 调试完成。 c. 确定积分时间常数 Td
积分时间常数 Td 一般不用设定,为 0 即可。若要设定,与确定 P Ti 的方法相同,取不振荡时的
30%
d. 系统空载、带载联调,再对 PID 参数进行微调,直至满足要求。
变速积分的基本思想是,设法改变积分项的累加速度,使其与偏差大小相对应:偏差越大,积分
越慢;反之则越快,有利于提高系统品质。

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

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

相关文章

【仅1月出刊】普刊广涉计算机、社科、教育、法学等多领域!

【欧亚科睿学术】 1 EURASIA JOURNAL OF SCIENCE AND TECHNOLOGY 终审周期 仅1月出刊(知网收录) 《欧亚科学技术杂志》 Print ISSN:2663-1024 Online ISSN:2663-1016 出版社:UPUBSCIENCE 【简介】本刊致力于传播…

【C语言】指针(一)

目录 一、内存 1.1 ❥ 理解内存和地址的关系 1.2 ❥ 编址 二、指针变量 2.1 ❥ 取地址操作符(&) 2.2 ❥ 指针变量和解引用操作符(*) 2.3 ❥ 指针变量的大小 三、指针类型的意义 3.1 ❥ 指针的解引用 3.2 ❥ 指针-整数 3…

PCIE协议-2-事务层规范-TLP Prefix Rules

2.2.10 TLP前缀规则 以下规则适用于任何包含TLP前缀的TLP: 对于任何TLP,TLP中byte0的Fmt[2:0]字段中的值100b表示存在TLP前缀,并且Type[4]位指示TLP前缀的类型。 Type[4]位中的值0b表示存在本地TLP前缀。Type[4]位中的值1b表示存在端到端TL…

企微软件群发:高效沟通,智慧营销的新选择

在数字化时代,高效沟通是企业成功的关键。企微软件群发功能,以其精准、高效、便捷的特点,成为企业与客户、员工、合作伙伴之间沟通的新选择。本文将带您深入了解企微软件群发的优势与应用,助您掌握这一智慧营销的新利器。 一、引…

R语言数据分析案例-巴西固体燃料排放量预测与分析

1 背景 自18世纪中叶以来,由于快速城市化、人口增长和技术发展,导致一氧化二氮(N2O)、 甲烷(CH4)和二氧化碳(CO 2)等温室气体浓度急剧上升,引发了全球变暖、海平面上 升…

【数据结构】有关栈和队列相互转换问题

文章目录 用队列实现栈思路实现 用栈实现队列思路实现 用队列实现栈 Leetcode-225 用队列实现栈 思路 建立队列的基本结构并实现队列的基本操作 这部分这里就不多说了,需要的可以看笔者的另一篇博客 【数据结构】队列详解(Queue) 就简单带过一下需要实现的功能 …

信息量、熵、KL散度、交叉熵概念理解

信息量、熵、KL散度、交叉熵概念理解 (1) 信息量 信息量是对事件的不确定性的度量。 假设我们听到了两件事,分别如下:事件A:巴西队进入了世界杯决赛圈。 事件B:中国队进入了世界杯决赛圈。仅凭直觉来说,显而易见事件…

Python从0到POC编写-魔法方法

name __name__ 是系统定义的内部函数, 它的作用是识别模块。 通常我们看到这样一句话: if __name__ __main____name__ 的值有两种情况,那么挨个来说下。 如果模块是被直接执行的 ,那么 __name__ 的值 为 __main__ 例如&…

E: 无法获得锁 /var/lib/dpkg/lock-frontend - open

E: 无法获得锁 /var/lib/dpkg/lock-frontend - open 我们在ubuntu系统下使用命令sudo apt-get install/update安装软件或者更新软件时,有时会出现如下错误提示导致软件无法正常安装: E: 无法获得锁 /var/lib/dpkg/lock-frontend - open (11: 资源暂时不可…

html中用frameset对窗口进行划分

html中&#xff0c;一般有<head><body>等部分&#xff0c;在用<frameset>对窗口进行区域划分时&#xff0c;<body>标签对就不再需要了。直接删除就可以了。 请看下面的示例&#xff1a; 由于使用frameset进行窗口划分时&#xff0c;对于电脑屏幕的划分…

排序-快速排序(Quick Sort)

快排的简介 快速排序&#xff08;Quick Sort&#xff09;是一种高效的排序算法&#xff0c;采用分治法的策略&#xff0c;其基本思想是选择一个基准元素&#xff0c;通过一趟排序将待排序的数据分割成独立的两部分&#xff0c;其中一部分的所有数据都比另外一部分的所有数据要…

Java基础杂集

1、包装缓存机制&#xff1a;Byte、Short、Integer、Long默认缓存了-128—127相应类型的缓存数据&#xff0c;而Double和Float没有缓存&#xff0c;Character缓存了0 - 127之间的数据&#xff0c;Boolean直接返回false和true。 加上自动装箱拆箱&#xff08;valueOf&#xff0…

Android 老年模式功能 放大字体

1 配置属性 <attr name"text_size_16" format"dimension"/><attr name"text_size_18" format"dimension"/><attr name"text_size_14" format"dimension"/><attr name"text_size_12&quo…

容器组件:Column ,Row(HarmonyOS学习第四课【4.1】)

容器组件-Column Column 容器组件是沿垂直方向布局的容器。该组件从APIVersion7开始支持从API version 9开始&#xff0c;该接口支持在ArkTs,卡片中使用。其可以包含子组件 Column(value?: {space?: string | number}) 参数 space 参数类型string | number 是否必填&am…

第11节 多文件函数生成位置规律

我把多年的shellcode开发经验浓缩在了这个专题课&#x1f469;&#x1f3fb;‍&#x1f4bb;里&#xff0c;主要面向对网络安全技术感兴趣的小伙伴。这是视频版内容对应的文字版材料&#xff0c;内容里面的每一个环境我都亲自测试实操过的记录&#xff0c;有需要的小伙伴可以参…

Git系统对于开发者来说有哪些优势

哈喽大家好呀&#xff0c;淼淼又来和大家见面啦&#xff0c;众所周知&#xff0c;在当今的开发领域&#xff0c;版本控制是开发过程中十分重要的环节之一&#xff0c;Git作为一种分布式版本控制系统&#xff0c;它不只是一个简单的代码管理工具&#xff0c;更是一种促进团队协作…

进程创建-fork

demo1代码状态变迁 demo2代码输出到stdout使用管道 demo1 代码 #include <pthread.h> #include <iostream> #include <unistd.h> int main(int argc, char const *argv[]) {// 1.pid_t x fork();// 2.pid_t y fork();// 3.printf("%d %d\n", x…

【C++】STL-list的使用

目录 1、list的使用 1.1 list的构造 1.2 list的遍历 1.3 list capacity 1.4 list element access 1.5 容量相关 list是一个带头双向循环链表 1、list的使用 1.1 list的构造 1.2 list的遍历 list只有两种遍历方式&#xff0c;因为没有operator[] 因为list的双向链表&am…

《建筑抗震设计规程》DB62/T 3055-2020下载

本规程适用于抗震设防分类为乙类、丙类&#xff0c;抗震设防烈度为6度(0.05g)、7度(0.10g、0.15g)、8度(020g、030g)、9度(0.40g)的多高层钢筋混凝土结构及钢-混凝土混合结构、中等跨度钢屋盖结构、门式刚架钢结构、多低层砖砌体结构房屋建筑的抗震设计。 关于甘肃省地方标准《…

01 | 为什么需要消息队列?

哪些问题适合使用消息队列来解决&#xff1f; 1. 异步处理 2. 流量控制 使用消息队列隔离网关和后端服务&#xff0c;以达到流量控制和保护后端服务的目的。 3. 服务解耦 无论增加、减少下游系统或是下游系统需求如何变化&#xff0c;订单服务都无需做任何更改&#xff0c…