PID理解
PID 通俗解释
PID控制原理3个故事:看完您就明白了。
1、:PID的故事小明接到这样一个任务:有一个水缸点漏水(而且漏水的速度还不一定固定不变),要求水面高度维持在某个位置,一旦发现水面高度低于要求位置,就要往水缸里加水。
小明接到任务后就一直守在水缸旁边,时间长就觉得无聊,就跑到房里看小说了,每30分钟来检查一次水面高度。
水漏得太快,每次小明来检查时,水都快漏完了,离要求的高度相差很远,小明改为每3分钟来检查一次,结果每次来水都没怎么漏,不需要加水,来得太频繁做的是无用功。
几次试验后,确定每10分钟来检查一次。
这个检查时间就称为采样周期开始小明用瓢加水,水龙头离水缸有十几米的距离,经常要跑好几趟才加够水,于是小明又改为用桶加,一加就是一桶,跑的次数少了,加水的速度也快了,但好几次将缸给加溢出了,不小心弄湿了几次鞋,小明又动脑筋,我不用瓢也不用桶,老子用盆,几次下来,发现刚刚好,不用跑太多次,也不会让水溢出。
这个加水工具的大小就称为比例系数小明又发现水虽然不会加过量溢出了,有时会高过要求位置比较多,还是有打湿鞋的危险。
他又想了个办法,在水缸上装一个漏斗,每次加水不直接倒进水缸,而是倒进漏斗让它慢慢加。
这样溢出的问题解决了,但加水的速度又慢了,有时还赶不上漏水的速度。
于是他试着变换不同大小口径的漏斗来控制加水的速度,最后终于找到了满意的漏斗。
漏斗的时间就称为积分时间小明终于喘了一口,但任务的要求突然严了,水位控制的及时性要求大大提高,一旦水位过低,必须立即将水加到要求位置,而且不能高出太多,否则不给工钱。
小明又为难了!于是他又开努脑筋,终于让它想到一个办法,常放一盆备用水在旁边,一发现水位低了,不经过漏斗就是一盆水下去,这样及时性是保证了,但水位有时会高多了。
他又在要求水面位置上面一点将水凿一孔,再接一根管子到下面的备用桶里这样多出的水会从上面的孔里漏出来。
这个水漏出的快慢就称为微分时间看到几个问采样周期的帖子,临时想了这么个故事。
pid通俗易懂的解释
pid通俗易懂的解释pid,即proportional-integral-derivative,控制系统中常用的调节系统,需要利用此技术来指导被控对象达到极限配置或设定的预期状态,pid技术是工业控制中最重要的技术之一,用于控制机器的行为,以达到预定的计划。
PID技术的主要功能是调节被控对象的行为,使之更好地达到极限配置或设定的预期状态。
代码中,p是比例,i是积分,d是微分。
这三个量表示对被控对象的三种不同调整,它们分别产生有效的控制反应,从而帮助被控对象更快地达到极限配置或设定的预期状态。
比例(p)部分,也称为比例调节,是pid中最重要的部分,它通过检测错误信号(或者说,“误差”)来调节被控对象的行为。
比例的值越大,由此产生的反应就越大,因此,它可以更快地把被控对象带到预期状态。
但是,如果比例太大,就会造成过度反应,因此需要仔细调整比例大小,才能达到理想状态。
积分(i)部分,也称为积分调节,是pid中最耗时的部分。
它检测误差,并向当前运行方向积累误差,从而帮助被控对象达到预期状态。
例如,当被控对象的误差太小,而被控对象的当前运行方向正确时,积分会积累误差,从而使被控对象更快地达到预期状态。
但是,如果积分过大,可能会导致振荡,所以在使用的时候,也需要仔细调整积分的大小。
微分(d)部分,也称为微分调节,是pid中最容易理解的部分。
它检测误差,并基于误差的前后变化,调节被控对象的行为。
例如,当误差出现变化时,它会加快当前运行方向,从而帮助被控对象更快地达到预期状态。
但是,微分的值过大也会导致过度反应,所以,也需要仔细调整微分的大小,才能达到理想状态。
以上就是pid调节系统的简单介绍。
PID技术由比例、积分、微分三个量共同组成,依据不同调整,帮助被控对象更快地达到预期状态。
在使用过程中,大部分理论建议调整这三个量,以达到理想状态。
PID在实际生活中也有着广泛的应用,它可以应用于机器视觉检测、自动驾驶、工业自动化等领域,帮助机器更快地达到极限配置或设定的预期状态,从而获得更好的效果。
新手必看之pid教程
Pid教程
很多新手不知道最基本的pid我能理解,做淘客不知道pid的我的建议是先去阿里妈妈学习一下,但是居然还有很多做网站的也在问pid是什么,这个就很尴尬了,一边问站怎么建,一边问pid 是什么,像这种我是建议大家真的是去多了解了解再开始,如果你第一次问了pid是什么,或许还有人告诉你,如果你再问站怎么建,这个,你就自己去体会了
提倡大家做个爱学习的淘客,赚钱从来就不是一件容易的事。
废话说完了我还是得做个基础教程。
一、什么是pid?
pid即淘宝联盟标识淘客用户id,推广类型,推广位的一串数字。
通常以mm_开始,如: mm_32766788_4434234_36654914 其中,32766788 为淘宝联盟账号的ID。
4434234 为备案推广类型的ID。
36654914 为推广位的ID。
理解了这三个PID的意义,那么你就不会问pid会不会变,什么时候会变的问题了。
二、怎么获取通用和定向的pid?
三、怎么获取鹊桥pid?。
pid的简单理解
pid的简单理解PID是Proportional-Integral-Derivative的缩写,即比例-积分-微分控制。
它是一种常用的控制算法,广泛应用于工业自动化领域。
PID控制器通过对被控对象的测量值与设定值之间的误差进行计算,并根据比例项、积分项和微分项的权重对控制量进行调整,以使误差最小化,从而实现对被控对象的精确控制。
在PID控制器中,比例项(P项)是根据误差的大小来调整控制量的,比例项越大,控制量的变化就越大。
积分项(I项)是根据误差的累积值来调整控制量的,积分项可以消除稳态误差,提高系统的稳定性。
微分项(D项)是根据误差的变化率来调整控制量的,微分项可以预测误差的变化趋势,从而提高系统的响应速度和稳定性。
PID控制器的工作原理可以简单描述为以下几个步骤:1. 测量被控对象的实际值;2. 计算误差,即设定值与实际值之间的差异;3. 根据比例项、积分项和微分项的权重,计算控制量的调整值;4. 将调整值与当前控制量相加,得到新的控制量;5. 将新的控制量发送给被控对象,使其实际值逐渐趋近于设定值。
比例项的作用是根据误差的大小来调整控制量的变化幅度,当误差较大时,控制量的变化幅度也会较大,从而快速减小误差。
积分项的作用是根据误差的累积值来调整控制量的变化幅度,当误差存在较长时间时,积分项会逐渐增大,以消除稳态误差。
微分项的作用是根据误差的变化率来调整控制量的变化幅度,当误差的变化速度较大时,微分项会增大,以提高系统的响应速度和稳定性。
在实际应用中,PID控制器的参数调节是一个重要的环节。
通过合理地调节比例项、积分项和微分项的权重,可以使系统达到更好的控制效果。
比例项较大时,系统的响应速度会较快,但可能会引起超调现象;积分项较大时,系统的稳态误差会减小,但可能会引起震荡现象;微分项较大时,系统的稳定性会增强,但可能会引起超调现象。
因此,在实际应用中需要根据被控对象的特性和控制要求来选择合适的参数。
pid参数的定义
pid参数的定义在计算机系统中,pid(Process IDentifier)是一个用来区分不同进程的唯一标识符。
每个进程都有一个唯一的pid号,用来在系统中找到对应进程的相关信息。
在Unix、Linux等系统中,pid号通常是一个整数值,它表示进程在系统中的位置。
pid号的作用是方便系统进行进程管理和资源分配。
通过pid号,系统可以追踪进程的状态、调整进程的优先级、控制进程的执行等。
同时,pid号也可以帮助其他进程与指定进程进行通信,从而实现进程间的数据交互。
在实际应用中,pid号的使用非常广泛。
比如,当我们使用终端命令查看进程时,就可以通过pid号来识别不同的进程。
同时,许多系统调用和库函数也需要pid号作为参数,以便进行进程管理和控制。
通常情况下,每个进程都有一个唯一的pid号。
pid号的范围通常在0到65535之间,其中0表示系统进程,1表示init进程,而65535则是最大的pid号。
总之,pid号是一个非常重要的概念,它在进程管理和系统资源分配中扮演了重要的角色。
由于pid号的唯一性和特殊性,我们需要充分理解pid号的定义和用途,以便更好地管理和控制我们的计算机系统。
使用pid参数管理进程时,我们需要注意以下几点:1. 列出进程列表我们可以使用ps命令来列出当前系统中所有的进程列表,同时也会列出每个进程的pid号。
2. 终止进程我们可以使用kill命令来终止指定pid号的进程。
通常,我们可以使用kill -9命令来强制终止一个进程。
3. 获取进程信息我们可以使用top、htop等命令来获取当前系统中进程的信息,包括进程的状态、内存占用、CPU占用率等等。
同时,也可以使用kill -s命令来给指定进程发送信号。
4. 进程优先级我们可以使用nice命令来调整进程的优先级,从而影响其在系统资源分配中的权重。
综上所述,pid号是计算机系统中一个非常重要的概念,对于进程管理和调控都有着重要的作用。
如何快速读懂PID
2。了解相关的标准,如设备的图形表示方法,阀门的DCS等,有些还涉及到自控的连锁控制等,这些内容最好看看相关标准或手册,有个大概的了解,至少知道那些符号的大概功能。
P&ID读图与画图-给初学者的建议
经常发现论坛上,有人问关于P&ID读图与画图的问题。
P&ID图对于初学者来说,确实是一个比较大的难题,各种设备,管线,各类管件,阀门盲板之类,一大堆的自控符号,让人无所适从。那么我们该如何下手学习呢,下面就我个人学习的一点体会分享大家,希望能抛砖引玉,让有经验的工程师们都能分享自己的经验来帮助新人快速成长。
3。看首页图。有些标准里面没有规定的,在某个项目自己有自己规定的符号的,只有通过看首页图才能明白。否则就是看天书一样,谁也不懂。
4。熟悉并掌握一些典型设备的P&ID与配管布置。这一点很重要,比如说离心泵,压缩机,反应釜,精馏塔,换热器等,这些化工厂最典型的设备都是有标准的PID方案的,不同的设计都大同小异,基本设计思路都是一样的。整个PID图纸其实就是不同设备单元的PID布置的组合。学会典型的PID布置,对于画PID图比读图更重要。因此,对于工艺设计工程师来说更应该熟悉典型设备的PID布置。
如何快速读懂PID
首先 ,要搞清楚什么是PID 管道及仪表流程图 PIPING INSTRUMENTATION DIAGRAM
它与PFD 最主要的区别就是加了"仪表"在里面,PFD PROCESS FLOW DIAGRAM
由入门到精通吃透PID
由入门到精通吃透PIDPID控制器(Proportional-Integral-Derivative Controller)是一种常见的控制器,广泛应用于工业自动化领域。
它通过对系统的反馈信号进行比例、积分和微分运算,以达到控制系统稳定和响应速度的目的。
本文将从入门到精通分别介绍PID控制器的基本原理、参数调整方法和应用实例。
一、基本原理在控制系统中,PID控制器根据反馈信号与设定值之间的差异来调整输出信号,从而实现对被控对象的控制。
它由三个基本部分组成:比例控制部分、积分控制部分和微分控制部分。
1. 比例控制部分:根据反馈信号与设定值之间的差异,以一定的比例调节输出信号。
比例控制的作用是根据差异的大小来进行精确调节,但它不能解决系统的超调和稳态误差问题。
2. 积分控制部分:通过累积反馈信号与设定值之间的差异,对输出信号进行调节。
积分控制可以消除系统的稳态误差,但会增大系统的超调。
3. 微分控制部分:通过反馈信号的变化率来预测未来的发展趋势,以调节输出信号。
微分控制可以提高系统的响应速度和稳定性,但过大的微分作用会引入噪声和振荡。
PID控制器的输出信号可以表示为:u(t) = Kp * e(t) + Ki * ∫e(t)dt + Kd * de(t)/dt其中,u(t)为输出信号,Kp、Ki和Kd分别为比例、积分和微分增益,e(t)为反馈信号与设定值之间的误差,∫e(t)dt为误差的积分,de(t)/dt为误差的微分。
二、参数调整方法PID控制器的参数选择对控制系统的性能至关重要。
有许多方法可以调整PID控制器的参数,常见的包括经验法、试错法和优化算法。
1. 经验法:根据实际经验,选择适当的参数范围,并逐步调整参数,观察系统的响应变化。
这种方法简单直观,但需要具备一定的经验和调试能力。
2. 试错法:通过不断试验不同的参数组合,观察系统的响应,并根据系统的性能指标进行优化调整。
试错法可以快速找到合适的参数组合,但依赖于多次试验和手动调整。
PID我的理解
1-5 控制论1945年,美国数学家维纳把乃奎斯特的反馈概念推广到一切工程控制中,1948年维纳发表奠基性著作《控制论》。
这本书的副标题是“关于动物和机器中控制和通信的科学”。
在此之前西方没有控制论这个词。
维纳先生根据希腊词Kubernetes(舵手)创造了一个词:cybernetics。
舵手是干什么的?控制船的方向的。
“cyber”一词在今天已经被重新定义为“对电子、机械和生物系统的控制过程的理论性研究,特别是对这些系统中的信息流动的研究。
”——由最初的“舵手”变成了后来的“指导者”和“统治者”,由“驾驭航向”转变为“控制别人”。
且慢,维纳说:控制论是“对电子、机械和生物系统的控制过程的理论性研究”?电子需要控制论,机械需要控制论,生物也需要?恩,咱开头就说了,人们生产活动都离不开的。
虽然你在泡女孩的时候,从没有想过那讨厌的比例积分微分什么的概念,但是你实际上切切实实无意识地一直在运用控制论的方法。
维纳运用自己丰富的学识敏锐的观察深刻的分析,把这些基本原理提炼出来,最终,创立了控制论。
1-6 再说负反馈咱们前面说了,维纳在上学期间,精通数学、物理、无线电、生物和哲学。
而在电子领域,乃奎斯特已经提出了负反馈回路可以使得系统稳定这个概念。
维纳通过在电子学领域的知识,在控制领域取得了重大突破。
其实瓦特的蒸汽转速控制系统,本身也不知不觉地应用了负反馈系统:转速反馈到连杆上后,控制汽阀关小,使得转速降低。
只是瓦特没有把这个机构中的原理提炼出来,上升到理论高度。
说着容易做着难,这个理论经过了200年才被提出来。
负反馈理论应用非常广泛。
维纳本人研究的物理、无线电、生物学,在这些领域都广泛的应用着负反馈原理,这些学科很可能都给他提出负反馈理论以支持。
不光物理、无线电、生物学使用负反馈,也不光工业控制使用负反馈,大到国家宏观调控,中到商业管理,小到个人的行为,角角落落,无不出现负反馈的身影。
国家每一项宏观调控政策出台后,总要收集各种数据观察政策发布后的效果,这个收集的信息叫反馈。
pid各参数的意思
pid各参数的意思摘要:1.PID简介2.PID的三个参数a.比例(P)参数b.积分(I)参数c.微分(D)参数3.参数调整方法及应用场景4.PID参数对控制系统性能的影响5.总结正文:PID(比例-积分-微分)控制器是一种广泛应用于工业控制系统的反馈控制算法。
PID控制器通过计算偏差值(期望值与实际值之间的差值)的比例、积分和微分值,来控制系统的输出,从而使系统的输出达到期望值。
PID的三个参数分别是:比例(P)参数、积分(I)参数和微分(D)参数。
比例参数决定了控制器对偏差的响应强度,即控制器输出的变化量与偏差的大小成正比。
积分参数决定了控制器对偏差的累积响应,即控制器输出的变化量与偏差的积分成正比。
微分参数决定了控制器对偏差的预测响应,即控制器输出的变化量与偏差的微分成正比。
参数调整是PID控制器应用的关键。
一般情况下,可以通过实验法来确定PID参数。
首先,将PID控制器设置为比例控制模式,然后逐渐增加比例参数,直到系统出现振荡。
接下来,将比例参数减小一些,然后逐渐增加积分参数,直到系统不再出现振荡。
最后,将比例参数和积分参数固定,逐渐增加微分参数,直到系统响应达到最佳状态。
PID参数的选择对控制系统的性能有很大的影响。
如果比例参数过大,会导致系统出现振荡,而如果比例参数过小,则会导致系统响应过慢。
如果积分参数过大,会导致系统响应变慢,而如果积分参数过小,则会导致系统不能完全消除偏差。
如果微分参数过大,会导致系统出现噪声干扰,而如果微分参数过小,则会导致系统响应不够及时。
PID控制器是一种重要的工业控制器,可以通过调整PID参数来控制系统的输出,从而使系统的输出达到期望值。
PID通俗易懂的讲解
很多同学都不清楚PID是个什么东西,因为很多不是自动化的学生。
他们开口就要资料,要程序。
这是明显的学习方法不对,起码,首先,你要理解PID是个什么东西。
本文以通俗的理解,以小车纵向控制举例说明PID的一些理解。
首先,为什么要做PID?由于外界原因,小车的实际速度有时不稳定,这是其一,要让小车以最快的时间达达到既定的目标速度,这是其二。
速度控制系统是闭环,才能满足整个系统的稳定要求,必竟速度是系统参数之一,这是其三.小车调速肯定不是线性的,外界因素那么多,没人能证明是线性的。
如果是线性的,直接用P就可以了。
比如在P WM=60%时,速度是2M/S,那么你要它3M/S,就把PW M提高到90%。
因为90/60=3/2,这样一来太完美了。
完美是不可能的。
那么不是线性的,要怎么怎么控制PW M使速度达到即定的速度呢?即要快,又要准,又要狠。
(即快准狠)系统这个速度的调整过程就必须通过某个算法调整,一般PID就是这个所用的算法。
可能你会想到,如果通过编码器测得现在的速度是2.0m/s,要达到2.3m/s的速度,那么我把pwm增大一点不就行了吗?是的,增大pwm多少呢?必须要通过算法,因为PWM和速度是个什么关系,对于整个系统来说,谁也不知道。
要一点一点的试,加个1%,不够,再加1%还是不够,那么第三次你还会加1%吗?很有可能就加2%了。
通过PID三个参数得到一个表达式:△PW M=a *△V1+b *△V2+c *△V3,ab c是通过PID的那个长长的公式展开,然后约简后的数字,△V1 ,△V2 ,△V3 此前第一次调整后的速度差 ,第二次调整后的速度差,第三次。
PID通俗解释
PID是比例、积分、微分的简称,PID控制的难点不是编程,而是控制器的参数整定。
参数整定的关键是正确地理解各参数的物理意义,PID控制的原理可以用人对炉温的手动控制来理解。
阅读本文不需要高深的数学知识。
1.比例控制有经验的操作人员手动控制电加热炉的炉温,可以获得非常好的控制品质,PID控制与人工控制的控制策略有很多相似的地方。
下面介绍操作人员怎样用比例控制的思想来手动控制电加热炉的炉温。
假设用热电偶检测炉温,用数字仪表显示温度值。
在控制过程中,操作人员用眼睛读取炉温,并与炉温给定值比较,得到温度的误差值。
然后用手操作电位器,调节加热的电流,使炉温保持在给定值附近。
操作人员知道炉温稳定在给定值时电位器的大致位置(我们将它称为位置L),并根据当时的温度误差值调整控制加热电流的电位器的转角。
炉温小于给定值时,误差为正,在位置L的基础上顺时针增大电位器的转角,以增大加热的电流。
炉温大于给定值时,误差为负,在位置L的基础上反时针减小电位器的转角,并令转角与位置L的差值与误差成正比。
上述控制策略就是比例控制,即PID控制器输出中的比例部分与误差成正比。
闭环中存在着各种各样的延迟作用。
例如调节电位器转角后,到温度上升到新的转角对应的稳态值时有较大的时间延迟。
由于延迟因素的存在,调节电位器转角后不能马上看到调节的效果,因此闭环控制系统调节困难的主要原因是系统中的延迟作用。
比例控制的比例系数如果太小,即调节后的电位器转角与位置L的差值太小,调节的力度不够,使系统输出量变化缓慢,调节所需的总时间过长。
比例系数如果过大,即调节后电位器转角与位置L的差值过大,调节力度太强,将造成调节过头,甚至使温度忽高忽低,来回震荡。
增大比例系数使系统反应灵敏,调节速度加快,并且可以减小稳态误差。
但是比例系数过大会使超调量增大,振荡次数增加,调节时间加长,动态性能变坏,比例系数太大甚至会使闭环系统不稳定。
单纯的比例控制很难保证调节得恰到好处,完全消除误差。
自动化控制PID到底是啥趣味讲解资料说明
自动化控制PID到底是啥趣味讲解资料说明
啥是PID?
PID,就是“比例(proportional)、积分(integral)、微分(derivative)”,是一种很常见的控制算法。
算法是不可以吃的。
PID已经有107年的历史了。
它并不是什么很神圣的东西,大家一定都见过PID的实际应用。
比如四轴飞行器,再比如平衡小车......还有汽车的定速巡航、3D打印机上的温度控制器.... 就是类似于这种:需要将某一个物理量“保持稳定”的场合(比如维持平衡,稳定温度、转速等),PID都会派上大用场。
那么问题来了:
比如,我想控制一个“热得快”,让一锅水的温度保持在50℃
这么简单的任务,为啥要用到微积分的理论呢。
你一定在想:
这不是so easy嘛~ 小于50度就让它加热,大于50度就断电,不就行了?几行代码用Arduino分分钟写出来。
没错~在要求不高的情况下,确实可以这么干~ But!如果换一种说法,你就知道问题出在哪里了:
如果我的控制对象是一辆汽车呢?
要是希望汽车的车速保持在50km/h不动,你还敢这样干么。
设想一下,假如汽车的定速巡航电脑在某一时间测到车速是45km/h。
它立刻命令发动机:加速!
结果,发动机那边突然来了个100%全油门,嗡的一下,汽车急加速到了60km/h。
这时电脑又发出命令:刹车!
结果,吱...............哇............(乘客吐)
所以,在大多数场合中,用“开关量”来控制一个物理量,就显得比较简单粗暴了。
有时。
通俗易懂的PID控制算法讲解
最优控制旨在寻找一种最优的控制策 略,使得系统性能达到最优。与PID 控制相比,最优控制具有更高的性能 指标和更好的全局优化能力。然而, 最优控制的实现需要精确的数学模型 和大量的计算资源,且对系统参数变 化较为敏感。
05
PID控制算法的应用实例
工业自动化领域的应用
要点一
温度控制
在工业生产过程中,PID控制算法被 广泛应用于温度控制系统中,如熔炼 炉、热处理炉等设备的温度控制。通 过实时采集温度数据,与设定值进行 比较,PID控制器能够自动调节加热 元件的功率,使温度稳定在设定值附 近。
该传递函数描述了PID控制器在频域中的特性,可用于分析系统的稳定性、动态性能和 稳态精度等。
通过调整Kp、Ki和Kd三个参数,可以实现对系统性能的优化。在实际应用中,常采用 试凑法、经验法或优化算法等方法来确定PID参数。
03
PID控制算法的参数整定
参数整定的意义
提高系统性能
通过调整PID控制器的参数,可以优化系统 的动态响应和稳态精度,从而提高系统的整 体性能。
适应不同应用场景
不同的被控对象和不同的应用场景需要不同的PID 参数配置,参数整定可以使PID控制器适应各种应 用场景。
保证系统稳定性
合理的参数配置可以保证系统的稳定性,避 免系统出现振荡或失控等不稳定现象。
参数整定的方法
试凑法
根据经验或实验数据,逐步调整 PID控制器的参数,观察系统的响 应情况,直到满足性能指标要求 。
PID控制算法由比例(P)、积分(I) 和微分(D)三个部分组成,每个部 分都有不同的作用,通过调整三个部 分的参数可以实现对系统的精确控制 。
PID控制算法的应用领域
01
02
03
对闭环控制pid理解
PID控制理解
闭环控制器中最著名的控制机制是比例-积分-微分(PID)控制。
PID是对误差(控制对象实际输出值与期望输出值之间的差)进行处理以得到控制器的控制量的三种方式的统称。
比例控制(P-Proportional)是将误差乘以一个增益系数Kp从而得到控制量,其本质是将误差放大并立即用之纠正错误。
Kp越大则误差纠正越快,但是Kp太大会产生大的超调,甚至导致系统的不稳。
比例控制不能完全消除误差,因为当误差接近于0时,比例控制的作用也接近于0,其结果体现为一个稳态误差(静差)。
积分(I-Integral)控制是获取误差的时间积分,将其乘以一个增益系数K i 后得到控制量,其本质是对曾经产生的误差做出反应,这样在误差接近于0时其作用并不接近于0,就可消除静态误差。
积分增益系数可能产生副作用是导致系统不稳定。
微分(D-Differential)控制是将误差的变化率乘以增益系数K d来作为控制量,其本质是对抗和稳定系统的暂态响应,因此可认为其作为电子阻尼达到稳定系统的作用。
三种控制方式本质不同但是可以联合使用,并通过系统整定各取所长来优化系统。
PID调节是一种误差驱动机制,即系统中总是存在一定误差。
数字PID的理解
做过数字电源的能深刻理解PID。
P是输出与基准之差。
能输出误差较大情况下,迅速调节输出。
I是累加输出与基准之差后再除以累加次数。
能在输出误差不太大的情况下,迅速调节输出。
D是上上次输出与基准之差,与上次输出与基准之差,两值再做差。
能预测本次输出与基准之间的差距。
能非常细微的调节输出。
最后P\I\D都乘以一个常数,(这个常数就是调节P\I\D的作用大小)再做和运算,所得的数值去控制输出信号。
P值太大会过冲,严重会大幅震荡。
I值过大会严重削弱P的调节功能,让系统反应过慢。
D值过大会产生所谓毛刺。
本人是先加P,让系统有一些过冲和小幅震荡。
再加上I,让过冲降下来和震荡,变得比较平直,最后加D,让系统反应更灵敏。
模拟电路中,比如TL432反馈。
P不用说了,天生就有。
I是432 REF与C脚之间那个串联的RC(C值一般都较大,R主要是调节I值的作用大小),D是电源输出与REF脚之间串联的RC(C值较小,R主要是调节D值的作用大小)。
电路有很多变型,并非此一种。
根据负载特性,有PI,PD或单纯的P,单纯的I。
PID通俗理解
本文以通俗的理解,以小车纵向控制举例说明PID的一些理解。
首先,为什么要做PID?由于外界原因,小车的实际速度有时不稳定,这是其一,要让小车以最快的时间达达到既定的目标速度,这是其二。
速度控制系统是闭环,才能满足整个系统的稳定要求,必竟速度是系统参数之一,这是其三.小车调速肯定不是线性的,外界因素那么多,没人能证明是线性的。
如果是线性的,直接用P就可以了。
比如在PWM=60%时,速度是2M/S,那么你要它3M/S,就把PWM提高到90%。
因为90/60=3/2,这样一来太完美了。
完美是不可能的。
那么不是线性的,要怎么怎么控制PWM使速度达到即定的速度呢?即要快,又要准,又要狠。
(即快准狠)系统这个速度的调整过程就必须通过某个算法调整,一般PID就是这个所用的算法。
可能你会想到,如果通过编码器测得现在的速度是2.0m/s,要达到2.3m/s的速度,那么我把pwm增大一点不就行了吗?是的,增大pwm多少呢?必须要通过算法,因为PWM和速度是个什么关系,对于整个系统来说,谁也不知道。
要一点一点的试,加个1%,不够,再加1%还是不够,那么第三次你还会加1%吗?很有可能就加2%了。
通过PID三个参数得到一个表达式:△PWM=a *△V1+b *△V2+c *△V3,ab c是通过PID的那个长长的公式展开,然后约简后的数字,△V1 ,△V2 ,△V3 此前第一次调整后的速度差,第二次调整后的速度差,第三次。
一句话,PID要使当前速度达到目标速度最快,需要建立如何调整pwm和速度之间的关系。
输入输出是什么:输入就是前次速度,前前次速度,前前前次速度。
输出就是你的PWM应该增加或减小多少。
PID一般有两种:位置式PID和增量式PID。
在小车里一般用增量式,为什么呢?位置式PID的输出与过去的所有状态有关,计算时要对e(每一次的控制误差)进行累加,这个计算量非常大,而明没有必要。
而且小车的PID控制器的输出并不是绝对数值,而是一个△,代表增多少,减多少。
PID的理解
关于理解PID控制算法最典型的一个例子就是一个漏水的水缸的问题。
网上有很多讲解PID的帖子会讲到这个例子。
这里我也把我自己对于PID的理解用这个例子阐述一遍。
有个漏水的水缸,而且漏水的速度还不是恒定的。
然后我们还有个水桶,我们可以控制往水缸里面加水或者从水缸里面舀水出来。
另外我们可以检测水平面。
现在我们的目的就是要控制水平面稳定在我们想要的任何一个平面上。
注意我们使用PID需要在一个闭环系统里面。
什么叫闭环系统,就是有输入有反馈,输入就是能输入一个量去影响和控制我们的系统,反馈就是我们要能知道我们最终控制的东西的状态。
在这个漏水的水缸系统中,输入就是这个水桶,我们能通过水桶往水缸里面加水或者从水缸里面舀水出来来影响我们水缸的水平面,反馈的话也就是说我们要能测量水平面,知道水平面是多少。
控制系统原理图如下(原理图没有用别人的,有一些区别,道理上一样):其中Kp为比例系数,Ti为积分时间常量,Td为微分时间常量。
比例控制理解首先是比例控制。
比例控制就好比是通过水桶往水缸加水或者从水缸舀水。
假设我们需要把水平面稳定在A平面,而实际水平面在B平面,那么水平面差值Err=A-B,那这个时候我们需要往里面加水的量就是Kp*Err,Kp就是我们的比例控制系数。
如果A>B,Err为正,就往水缸里面加水;如果A<B,Err为负,就从水缸里面舀水出来。
那么只要预期水平面和实际水平面有差值,我们都会通过水桶去加减水来调整系统。
同时Kp的大小也有对系统的性能有影响。
如果Kp的值比较大,优点是从B平面达到A平面的速度快,缺点是在B平面已经接近A平面的时候系统会产生比较大的震荡。
如果Kp的值比较小,优点是B平面在接近A平面的时候系统震荡小,缺点是从B平面达到A平面的速度慢。
这里也许有人会有疑问,如果这里把比例控制系数Kp直接设置成1,然后加水的量直接为Err=A-B不就可以了。
然而实际上很多系统是做不到这点的。
pid三个参数的简单理解
pid三个参数的简单理解PID(比例-积分-微分)控制是工业自动控制的基础技术,它的出现填补了工业自动化系统调节产品质量和节能的空缺。
它的控制原理不言自明,由比例-积分-微分三个参数来构成,被公认为是控制技术最成功的经典模型。
本文从理论上来论述其三个参数,及其分别在控制系统中扮演的角色,以期能更好地深入了解PID控制原理,以实现更加精准的调节。
首先,PID控制参数中的比例系数是调节系统对输入变化的响应的相对大小的参数,用它来表示系统输出的绝对变化。
它是当输入变化时,输出也跟着变化的非线性关系,可以看做一个系数,控制器根据这个系数来调节输出量。
因此,总结起来,比例系数是非线性相关性的参数,主要作用是用来表示输出变量的变化程度,以及改变输入的变化率。
其次,PID控制参数中的积分系数主要用来弥补比例系数的不足,其目的是有效地抑制输出误差,使系统的反应更加连续、稳定,达到更优的调节效果。
积分系数的另一个重要作用是帮助参数收敛,以实现系统的调节,对参数的收敛程度有较强的把握能力,能够在较短的时间内达到更优的参数调节效果。
因此,积分系数有助于系统的更精准地调节,使系统能够更快、更准确地实现控制要求。
最后,PID控制参数中的微分系数是用来抑制输出延迟的,它通过分析系统对输入变化的响应,来抑制输出的延迟和不稳定。
微分系数有助于响应更快,让系统可以做到更快速地收敛。
此外,微分系数还可以帮助系统更好地抵抗外界的干扰,从而有效地实现变量的控制要求。
综上所述,PID控制参数由比例-积分-微分三个参数构成,它们分别对应了系统对不同状态的反应能力。
比例系数表示输出变化程度,积分系数有助于抑制输出误差,微分系数则可以帮助系统抵抗外界不稳定因素的影响。
只有把握好这三个参数,系统才能达到最优的效果,才能实现更加精准的控制。
因此,对于PID控制的三个参数,只要能把握住它们之间的关联,并准确把握它们在系统调节中所起的作用,就可以把握住PID控制系统的工作原理,从而能更好地实现系统的控制目标。
工艺流程pid是什么意思
工艺流程PID是什么意思工艺流程PID是指工艺流程管道与仪表图,是一种常用的工程设计工具,主要用于展示工艺流程中的管道、设备以及仪表之间的关系与连接。
PID图在工程设计中扮演着重要的角色,能够直观地反映出工艺流程中各个组成部分之间的关系,帮助设计人员更好地理解和分析工艺流程。
PID图由三部分组成:P表示管道、设备,即Process;I表示仪表,即Instrumentation;D表示控制,即Drawings。
其中,P部分用于表示工艺流程中的设备、管道、阀门等元件;I部分用于表示工艺流程中的仪表设备,如传感器、控制阀等;D部分用于表示控制系统中的控制逻辑和信号传输。
工艺流程PID图主要包括以下几个方面的内容:管道与设备、仪表与控制、信号传输与控制逻辑。
在PID图中,通过使用符号和线条等图形表达出不同元件之间的连接与关系。
比如,设备和管道之间使用实线表示,仪表和管道之间使用点线表示。
在工艺流程PID图中,设备和管道的连接关系是十分重要的。
通过PID图,可以清晰地了解到不同设备之间的流体传输关系,以及管道的走向和连接方式等。
同时,PID图还能够展示出设备的基本信息,如设备的名称、型号等。
仪表与控制是工艺流程中一个非常关键的环节。
PID图中的仪表部分展示了各种仪表设备的位置与连接方式。
不同的仪表设备可以对流体的参数进行测量、调节和控制。
通过PID图,可以清晰地了解到仪表设备之间的信号传输方式,以及仪表设备与控制系统之间的连接方式。
信号传输与控制逻辑是PID图中的重要内容之一。
在工艺流程中,控制系统能够根据不同的信号进行相应的控制操作。
PID图通过使用不同的线条和符号来表示不同的信号传输方式,以及控制系统中的逻辑关系。
通过PID图,可以清晰地了解到工艺流程管道与仪表之间的信号传输方式,以及各个仪表设备的控制逻辑。
总的来说,工艺流程PID图是一种用于展示工艺流程中管道、设备与仪表之间关系的工程设计工具。
通过PID图,可以更好地理解和分析工艺流程。
PID自己的理解和验证
PID自己的理解和验证PID调节的自我认识PID调节分为位置式和增量式,小车里面应该用的是位置式。
看似很复杂的公式其实也没有那么令人捉摸不透,假设现在就是一个控制小车的车速度的问题,在任何一个时刻,一个环境,要想让小车的速度按照一个速度输出。
必然存在着一个输入。
这个输入值不能确定,确切说不能用数学公式准确的刻画,而且环境时刻在改变,即使知道了输入值和输出速度的关系,环境一旦改变对应关系自然也就变了,为了解决这个复杂问题,所以才引入了PID调节。
需要明白的是小车的速度和输入之间的关系不是线性的,肯定不存在v=k*in这种表达式。
如果真的是这样的话,只需要一个k就可以调节了,假如现在的速度是3m/s,输入电压是3v,要想达到4m/s仅仅需要使得输入增大1v就搞定了,存在着数学关系in=in+(v1-v)*k0;v1是想要达到的速度,v是现在的速度,这个k0是可以确定的也就是k的倒数。
但是这么做不切实际。
当初存在很多疑惑,认为通过这个k0调节足够,当初我认为即使只有k0输出也会在目标输出值上下进行震荡,但是会慢慢的靠近,一直可以成功达到标准的输出。
没有必要用积分和微分,后来就用C语言编写一个程序简单的验证下自己的猜想。
已经知道了v和i之间的不存在线性关系。
所以自己假设在一切条件不变的情况下存在着一个固定的数学关系式,当然不是线性的,为了方便起见,我们假设v=in*in;这个是存在的,但是假设我们还不知道,所以不能直接用这个公式控制速度。
假设现在in=1;v自然等于1,现在目标是要求v输出4,应该怎么办呢。
假设只有比例项控制C语言程序如下所示:double y=16,x=4;,y1=100;//y=x*x,然后取得系数k=0.1 //double err=0;//double err_array[100]={0}; int i,t; while(1) {for(i=1;i<100;i++) { }x=x+(y1-y)*0.1;//+(err_array[i]-err_array[i-1])*0.001; //err_array[i]=(64-y); y=x*x;printf(\ %lf %lf\\n\,i,x,y);通过更改x和y的初始值和目标值运行可以观测程序运行结果,现在目标值是y1=100;系数目前是0.1我把目标值改了。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
很多同学都不清楚PID是个什么东西,因为很多不是自动化的学生。
他们开口就要资料,要程序。
这是明显的学习方法不对,起码,首先,你要理解PID是个什么东西。
本文以通俗的理解,以小车纵向控制举例说明PID的一些理解。
首先,为什么要做PID?
由于外界原因,小车的实际速度有时不稳定,这是其一,
要让小车以最快的时间达达到既定的目标速度,这是其二。
速度控制系统是闭环,才能满足整个系统的稳定要求,必竟速度是系统参数之一,这是其三.
小车调速肯定不是线性的,外界因素那么多,没人能证明是线性的。
如果是线性的,直接用P就可以了。
比如在PWM=60%时,速度是2M/S,那么你要它3M/S,就把PWM提高到90%。
因为90/60=3/2,这样一来太完美了。
完美是不可能的。
那么不是线性的,要怎么怎么控制PWM使速度达到即定的速度呢?即要快,又要准,又要狠。
(即快准狠
)系统这个速度的调整过程就必须通过某个算法调整,一般PID就是这个所用的算法。
可能你会想到,如果通过编码器测得现在的速度是 2.0m/s,要达到2.3m/s的速度,那么我把pwm增大一点不
就行了吗?是的,增大pwm多少呢?必须要通过算法,因为PWM和速度是个什么关系,对于整个系统来说,谁也
不知道。
要一点一点的试,加个1%,不够,再加1%还是不够,那么第三次你还会加1%吗?很有可能就加2%了。
通过PID三个参数得到一个表达式:△PWM=a *△V1+b *△V2+c *△V3,a b c是通过PID的那个长长的公式展开
,然后约简后的数字,△V1 ,△V2 ,△V3 此前第一次调整后的速度差,第二次调整后的速度差,第三次。
一句话,PID要使当前速度达到目标速度最快,需要建立如何调整pwm和速度之间的关系。
输入输出是什么:
输入就是前次速度,前前次速度,前前前次速度。
输出就是你的PWM应该增加或减小多少。
PID实际编程的过程的,要注意的东西还是有几点的。
PID这东西可以做得很深。
1 PID的诊定。
凑试法,临界比例法,经验法。
2 T的确定,采样周期应远小于过程的扰动信号的周期,在小车程序中一般是ms级别。
3 目标速度何时赋值问题,如何更新新的目标速度?这个问题一般的人都乎略了。
目标速度肯定不是个恒定的,那么何时改变目标速度呢?
4 改变了目标速度,那么e(k) e(k-1) e(k-2)怎么改变呢?是赋0还是要怎么变?
5 是不是PID要一直开着?
6 error为多少时就可以当速度已达到目标?
7 PID的优先级怎么处理,如果和图像采集有冲突怎么办?
8 PID的输入是速度,输出是PWM,按理说PWM产生速度,但二者不是同一个东西,有没有问题?
9 PID计算如何优化其速度?指针,汇编,移位?都可以试!
//*****************************************************
//定义PID结构体
//*****************************************************
typedef struct PID
{
int SetPoint; //设定目标 Desired Value
double Proportion; //比例常数 Proportional Const
double Integral; //积分常数 Integral Const
double Derivative; //微分常数 Derivative Const
int LastError; //Error[-1]
int PrevError; //Error[-2]
} PID;
//*****************************************************
//定义相关宏
//*****************************************************
#define P_DATA 100
#define I_DATA
0.6
#define D_DATA
1
#define HAVE_NEW_VELOCITY 0X01
//*****************************************************
//声明PID实体
//*****************************************************
static PID sPID;
static PID *sptr = &sPID;
//*****************************************************
//PID参数初始化
//*****************************************************
void IncPIDInit(void)
{
sptr->LastError = 0; //Error[-1]
sptr->PrevError = 0; //Error[-2]
sptr->Proportion = P_DATA; //比例常数 Proportional Const
sptr->Integral = I_DATA; //积分常数Integral Const
sptr->Derivative = D_DATA; //微分常数 Derivative Const
sptr->SetPoint =100;
目标是100
}
//*****************************************************
//增量式PID控制设计
//*****************************************************
int IncPIDCalc(int NextPoint)
{
int iError, iIncpid; //当前误差
iError = sptr->SetPoint - NextPoint; //增量计算
iIncpid = sptr->Proportion * iError //E[k]项
- sptr->Integral * sptr->LastError //E[k-1]项
+ sptr->Derivative * sptr->PrevError; //E[k-2]项
sptr->PrevError = sptr->LastError;
//存储误差,用于下次计算
sptr->LastError = iError;
return(iIncpid);
//返回增量值
Int g_CurrentVelocity;
Int g_Flag;
void main(void)
{
DisableInterrupt
InitMCu();
IncPIDInit();
g_CurrentVelocity=0; //全局变量也初始化
g_Flag=0;
//全局变量也初始化
EnableInterrupt;
While(1)
{
if (g_Flag& HAVE_NEW_VELOCITY)
{
PWMOUT+= IncPIDCalc(CurrentVelocity);
g_Flag&=~ HAVE_NEW_VELOCITY;
}
}
}
//****************************************
//采样周期T
//****************************************
Interrrupt TIME void
{
CurrentVelocity =GetCurrentVelocity;
g_Flag|= HAVE_NEW_VELOCITY;
}。