pid算法
简介
无人机能够在空中自动飞行,直升机可以悬停在空中,地铁可以精准的停在地铁站预设的位置,火车可以按照预定的速度行驶,平衡车可以保持直立平衡而不摔倒等等,这些都离不开自动控制技术,有了自动控制技术才使得机器变得智能高效。
自动控制技术是20世纪发展最快、影响最大的技术之一,也是21世纪最重要的高技术之一。今天,技术、生产、军事、管理、生活等各个领域,都离不开自动控制技术。就定义而言,自动控制技术是控制论的技术实现应用,是通过具有一定控制功能的自动控制系统,来完成某种控制任务,保证某个过程按照预想进行,或者实现某个预设的目标。
自动控制原理
从控制的方式看,自动控制系统有闭环和开环两种。
闭环控制:
闭环控制也就是(负)反馈控制,原理与人和动物的目的性行为相似,系统组成包括传感器(相当于感官),控制装置(相当于脑和神经),执行机构(相当于手腿和肌肉)。传感器检测被控对象的状态信息(输出量),并将其转变成物理(电)信号传给控制装置。控制装置比较被控对象当前状态(输出量)对希望状态(给定量)的偏差,产生一个控制信号,通过执行机构驱动被控对象运动,使其运动状态接近希望状态。在实际中,闭环(反馈)控制的方法多种多样,应用于不同领域和各个方面,当前广泛应用并快速发展的有:最优控制,自适应控制,专家控制(即以专家知识库为基础建立控制规则和程序),模糊控制,容错控制,智能控制等。
开环控制:
开环控制也叫程序控制,这是按照事先确定好的程序,依次发出信号去控制对象。按信号产生的条件,开环控制有时限控制,次序控制,条件控制。20世纪80年代以来,用微电子技术生产的可编程序控制器在工业控制(电梯,多工步机床,自来水厂)中得到广泛应用。当然,一些复杂系统或过程常常综合运用多种控制类型和多类控制程序。
在实际情况当中,绝大多数都是使用的闭环控制,闭环控制有反馈调节环节,这样可以实时的监测系统的状态,如果当前的系统状态没有达到预设的情况,则会根据偏差进行调整,直到达到预设状态为止。
PID控制器原理
PID控制算法作为闭环控制算法的基础,在工程实际中得到了广泛的应用。PID控制器问世至今已有近70年历史,它以其结构简单、稳定性好、工作可靠、调整方便而成为工业控制的主要技术之一。当我们不完全了解一个系统和被控对象,或不能通过有效的测量手段来获得系统参数时,最适合用PID控制技术。在单回路控制系统中,由于扰动作用使被控参数偏离给定值,从而产生偏差。自动控制系统的调节单元将来自变送器的测量值与给定值相比较之后产生的偏差进行比例、微分、积分运算,并输出统一标准信号,去控制执行机构的动作。PID控制器就是根据系统的误差,利用比例、积分、微分计算出控制量进行控制的。重要的事情说3遍,PID控制算法的核心就是:比例(P)、积分(I)、微分(D);比例(P)、积分(I)、微分(D);比例(P)、积分(I)、微分(D)。
①比例(P)控制 :
比例控制是一种最简单的控制方式。是按比例反应系统的的偏差,系统一旦出现了偏差,比例调节立即产生调节作用,减少偏差。比例作用大,可以加快调节,减少误差,但是过大的比例,是系统的稳定性下降,甚至造成系统的不稳定。但当仅有比例控制时系统输出存在稳态误差。
②积分(I)控制 :
在积分控制中,控制器的输出与输入误差信号的积分成正比关系。积分项对误差取决于时间的积分,随着时间的增加,积分项会增大。这样,即便误差很小,积分项也会随着时间的增加而加大,它推动控制器的输出增大使稳态误差进一步减小,直到等于零。由于积分作用输出随时间积累而逐渐增大,故调节动作缓慢,这样会造成调节不及时,使系统稳定裕度下降。因此积分作用一般不单独使用,而是与比例作用组合起来构成PI调节器,用于控制系统中减小稳态误差。
③微分(D)控制 :
在微分控制中,控制器的输出与输入误差信号的微分(即误差的变化率)成正比关系。 自动控制系统在克服误差的调节过程中可能会出现振荡甚至失稳,其原因是由于存在有较大惯性组件(环节)或有滞后(delay)组件,具有抑制误差的作用,其变化总是落后于误差的变化。解决的办法是使抑制误差的作用的变化“超前”,即在误差接近零时,抑制误差的作用就应该是零。而微分项能预测误差变化的趋势,这样,具有比例+微分的控制器,就能够提前使抑制误差的控制作用等于零,甚至为负值,从而避免了被控量的严重超调。所以对有较大惯性或滞后的被控对象,比例+微分(PD)控制器能改善系统在调节过程中的动态特性。比例P只与偏差成正比,积分作用I是偏差对时间的积累,微分作用D是偏差的变化率。自动调节系统中当干扰出现时微分D立即起作用,P随偏差的增大而明显起来,两者首先起克服偏差的作用,使被控量在新值上稳定,此新稳定值与设定值之差叫余差,而I随时间增加逐渐增强,直至克服掉余差,使被控量重返到设定值上来。
常用的有两种PID控制算法,即位置式算法和增量算法。增量算法就是相对于标准算法的相邻两次运算之差,根据具体的应用适当选择使用哪一种算法,直接计算法得到的是当前需要的控制量,而相邻两次控制量的差就是增量。
1.标准的位置式计算法公式:
Pout(t)=Kp*e(t)+Ki*∑e(t)+Kd*(e(t)-e(t-1));
2.增量法计算公式:
Pdlt= Pout(t)- Pout(t-1);即Pdlt=Kp*(e(t)-e(t-1))+Ki*e(t)+Kd*(e(t)-2*e(t-1)+e(t-2));
PID控制器的参数整定:
PID控制器的参数整定是控制系统设计的核心内容。PID控制器参数整定的方法很多,概括起来有两大类:一是理论计算整定法。它主要是依据系统的数学模型,经过理论计算确定控制器参数。这种方法所得到的计算数据未必可以直接用,还必须通过工程实际进行调整和修改。二是工程整定方法,它主要依赖工程经验,直接在控制系统的试验中进行,且方法简单、易于掌握,在工程实际中被广泛采用。PID控制器参数的整定方法,主要有临界比例法、反应曲线法和衰减法。三种方法各有其特点,其共同点都是通过试验,然后按照工程经验公式对控制器参数进行整定。但无论采用哪一种方法所得到的控制器参数,都需要在实际运行中进行最后调整与完善。
我个人经验,一般PID参数确定的步骤如下:
(1) 确定比例系数Kp
先确定比例系数Kp时,首先去掉PID的积分项和微分项,可以令Ti=0、Td=0,使之成为纯比例调节。输入设定为系统允许输出最大值的60%~70%,比例系数Kp由0开始逐渐增大,直至系统出现振荡;再反过来,从此时的比例系数Kp逐渐减小,直至系统振荡消失。记录此时的比例系数Kp,设定PID的比例系数Kp为当前值的70%~80%。
(2) 确定积分时间常数Ti
比例系数Kp确定之后,设定一个较大的积分时间常数Ti,然后逐渐减小Ti,直至系统出现振荡,然后再反过来,逐渐增大Ti,直至系统振荡消失。记录此时的Ti,设定PID的积分时间常数Ti为当前值的150%~180%。
(3) 确定微分时间常数Td
微分时间常数Td一般不用设定,为0即可,此时PID调节转换为PI调节。如果需要设定,则与确定Kp的方法相同,取不振荡时其值的30%。
(4) 系统空载、带载联调
对PID参数进行微调,直到满足性能要求。
到这里,我想大家对PID有了一定的认识和了解,但是为什么系统在PID控制下就可以就可以达到设定值呢?如果你还有这样的疑问就请看下面的内容,保证你看了就明白了。
下面就以电机转速控制系统为例,用形象的方式讲解下PID:
l 输入量:目标设定值,即转动速度
l 测量装置:测量当前速度的装置
l 控制器:控制算法的处理器(PID控制器),根据当前的偏差情况,计算出下一时刻的控制值,
l 被控制对象:输出系统或执行系统,即电压或能量
假设初始状态电机转速为零,则Ud=0;设定值为100n/s,及每秒钟转100圈,则Ur=100;
当前速度偏差:Ue(k) =Ur(k) - Ud(k) ;
PID控制器:根据当前的速度偏差,分别计算出比例、积分、微分的控制值,然后叠加在一起得到当前的控制值,这里需要注意的地方是计算微分时候的正负号,微分的符号应与系统状态的变化趋势成相反的极性。
最后将控制值输出给执行机构。
就这样一直循环递归,最后控制系统会达到稳定状态。当电机达到稳定状态时,即便是负载发送变化,比如说给电机增加一点阻力,电机还是会在自动控制下再一次的达到设置值并稳定下来。
PID参数的整定方式参数上边。
最后我解释下为什么电机在PID控制算法下可以达到设定值,并稳定的运行(这是这篇文章的核心,一定要认真看):
在解释之前,我先举个单摆的例子。单摆大家都知道的一个现象,把单摆悬挂的小球抬高一定的高度,然后放手后单摆会来回摆动,但是最终会回到静止状态。
为什么小球抬高一定位置后会摆动呢?
我想大家都知道是因为重力,小球受到重力(G)和绳子的拉力(F),构成了恢复力(F1),恢复力会改变小球的运动状态,小球越高恢复力越大,并且方向始终都是指向平衡位置。这就好比PID当中的P,偏差越大比例控制值越大,并且方向始终指向系统的稳定状态。
为什么小球抬不会一直持续摆动呢?
我想大家都知道是因为空气的阻力,因为空气阻力的存在对小球来回摆动有一定的阻尼作用,致使小球会回到静止状态,小球速度越快阻尼力越大,并且始终与运动方向相反。这就好比PID当中的D,偏差的微分越大,微分控制值越大,并且方向始终与系统状态的变化趋势想同。
PID当中的积分该怎么解释呢?
假设有3级微风吹着小球,方式是从左往右,这个时候如何没有一个额外的向左的拉力小球就回不到平衡位置O了,要想回到平衡位置O就需要额外的力来抵消风力,这个时候积分就起到作用了。当控制系统已经到达稳定状态时,但是没有达到设定值,则PID会一直累加积分控制值,从而增大控制量,最后达到设定值。
到这里是不是一下子就明白了。PID的核心就是比例、积分、微分,3个控制值都是有用的,只有3个控制值互相配合才能使控制系统稳定可靠的运行。
文章最后发布于: 2018-04-17 22:05:06
相关阅读
今天在写文档时看见流程图中有PID算法,莫名熟悉,查了下是过程控制算法,对不起大学自动控制理论的老师-_-!PID算法在过程控制中,按偏差
python 之禅: Beautiful is better than ugly.(美丽优于丑陋) Explicit is better than implicit.(直白优于含蓄) Simple is b
可能学习如何使用RapidMiner Studio的最佳方法是实践方法: 下载RapidMiner Studio,并研究捆绑的教程。阅读完教程后,请按照“ 起始页
一文读懂PID控制算法(抛弃公式,从原理上真正理解PID控制
一文读懂PID控制算法(抛弃公式,从原理上真正理解PID控制) PID控制应该算是应用非常广泛的控制算法了。小到控制一个元件的温度,大到
本人想做做之前的电赛题--滚球平衡,但这涉及到了一些自动控制的东西,比如PID。 对PID之前只是略有耳闻,为了复现滚球平衡,只能来现学P