PID闭环控制算法解析(最透彻)

PID闭环控制算法解析

PID简介

PID闭环控制算法解析(最透彻)_第1张图片

 

P

Proportion(比例)

就是输入偏差乘以一个常数

I

Integral(积分)

就是对输入偏差进行积分运算

D

Derivative(微分)

对输入偏差进行微分运算

P(比例),I(积分),D(微分)环节

P环节

作用:对当前时刻的偏差进行比例放大

采样序列:系统中每个时刻采集回来的当前值,最终得到:“X1、X2、X3 … Xn-1,Xn”;

第k时刻的偏差:e(k)=Expect - Xk;

e(k)>0 : 控制系统还未达到期望值;

e(k)=0 : 控制系统已经达到期望值;

e(k)<0 : 控制系统已经超过期望值;

P环节的第k时刻的输出:u(k)=Kp * e(k) 。

Kp:P比例系数,可以理解为放大倍数。

单P算法中的缺陷:当系统不存在偏差(e(k)=0)时,执行部件便无输出,被控对象处于失控状态。

PID闭环控制算法解析(最透彻)_第2张图片

 

(每次系统输出,都会使得控制系统更加接近期望值,偏差ek不断变小,所以斜率不断变小)我们看到如果没有I,D环节,误差永远不会被消除,会在目标值附近进行波动。

I环节

I(积分)环节:对过去所有时间的偏差进行积分。

偏差序列:e(k)=Expect – Xk,将得到的数据“e1、e2、e3 … en-1、en”,的后Ti个时间单位进行求和,最终得到以下数据:

∑ei:对过去所有时间的偏差进行求和;

∑ei<0 : 控制系统在 过去大部分时间段还未达到期望值;

∑ei=0 : 控制系统在 过去大部分时间段已经达到期望值;

∑ei>0 : 控制系统在 过去大部分时间段已经超过期望值;

I环节的第k时刻的输出:u(k)=Ki * ∑ei 。(Ki:i比例系数)

在控制系统刚启动时,由于I环节的 偏差累积效应,可以 更快的达到期望值。但同时也由于偏差的累积效应,使得系统第一次达到期望值时,过去所有时刻都未达标,即∑ei很大,所以曲线其实会超过期望的那条虚线并持续增长,所以,我们通常会在I环节中除以积分时间Ti,即u(k)=Ki * ∑ei/Ti。

PID闭环控制算法解析(最透彻)_第3张图片

I环节中引入了“误差的积分值”,积分代表了以前误差的累积,可以加快达到目标值,但是由于I环节受此状态之前误差的累积 的影响,因此当达到目标值之后,不会稳定下来,会继续越过目标值进行变化,因此就需要我们不仅要考虑以前,也要考虑未来于是就出现了“D(微分)环节”。

 

D环节

D(微分)环节:通过偏差的偏差,对控制系统的输出走向进行预判,起超前调节的作用。

偏差的偏差序列:△ek=ek-ek-1,最终得到“△e1、△e2、△e3 … △en-1、△en”;

△e(k)很大时,表示控制系统上一刻的输出很“陡峭”,表明控制系统离目标相差很远,所以D环节的输出也很大。

D环节的第k时刻的输出:u(k)=Kd * △e(k) 。

Kd:D积分系数,除了超前预判,还可理解为阻尼力。

PID闭环控制算法解析(最透彻)_第4张图片

微分环节很奈斯,D环节反映了最近一些时间误差的变化,对于我们预测未来误差的走向具有重要意义,并且由于D环节很容易受噪声波动也就是误差波动的影响,因此加入I环节可以使大幅度的波动迟缓,即I环节限制大幅度波动(由于I环节对在此之前的Ti个单位时间内的误差求平均,因此对于当前的前一个误差变化的敏感度下降,于是I环节拥有“延迟效果”),D环节预测修正值得走向,一个联系从前,一个联系未来。

 

PID算法的由来

尽管不同类型的控制器,其结bai构、原理各不相同,但是基本控制规律只有三个:比例(P)控制、积分(I)控制和微分(D)控制。这几种控制规律可以单独使用,但是更多场合是组合使用。如比例(P)控制、比例-积分(PI)控制、比例-积分-微分(PID)控制等。

比例(P)控制

单独的比例控制也称“有差控制”,输出的变化与输入控制器的偏差成比例关系,偏差越大输出越大。实际应用中,比例度的大小应视具体情况而定,比例度太小,控制作用太弱,不利于系统克服扰动,余差太大,控制质量差,也没有什么控制作用;比例度太大,控制作用太强,容易导致系统的稳定性变差,引发振荡。

对于反应灵敏、放大能力强的被控对象,为提高系统的稳定性,应当使比例度稍小些;而对于反应迟钝,放大能力又较弱的被控对象,比例度可选大一些,以提高整个系统的灵敏度,也可以相应减小余差。

单纯的比例控制适用于扰动不大,滞后较小,负荷变化小,要求不高,允许有一定余差存在的场合。工业生产中比例控制规律使用较为普遍。

比例积分(PI)控制

比例控制规律是基本控制规律中最基本的、应用最普遍的一种,其最大优点就是控制及时、迅速。只要有偏差产生,控制器立即产生控制作用。但是,不能最终消除余差的缺点限制了它的单独使用。克服余差的办法是在比例控制的基础上加上积分控制作用。

积分控制器的输出与输入偏差对时间的积分成正比。这里的“积分”指的是“积累”的意思。积分控制器的输出不仅与输入偏差的大小有关,而且还与偏差存在的时间有关。只要偏差存在,输出就会不断累积(输出值越来越大或越来越小),一直到偏差为零,累积才会停止。所以,积分控制可以消除余差。积分控制规律又称无差控制规律。

积分时间的大小表征了积分控制作用的强弱。积分时间越小,控制作用越强;反之,控制作用越弱。

积分控制虽然能消除余差,但它存在着控制不及时的缺点。因为积分输出的累积是渐进的,其产生的控制作用总是落后于偏差的变化,不能及时有效地克服干扰的影响,难以使控制系统稳定下来。所以,实用中一般不单独使用积分控制,而是和比例控制作用结合起来,构成比例积分控制。这样取二者之长,互相弥补,既有比例控制作用的迅速及时,又有积分控制作用消除余差的能力。因此,比例积分控制可以实现较为理想的过程控制。

比例积分控制器是目前应用最为广泛的一种控制器,多用于工业生产中液位、压力、流量等控制系统。由于引入积分作用能消除余差,弥补了纯比例控制的缺陷,获得较好的控制质量。但是积分作用的引入,会使系统稳定性变差。对于有较大惯性滞后的控制系统,要尽量避免使用。

比例微分(PD)控制

比例积分控制对于时间滞后的被控对象使用不够理想。所谓“时间滞后”指的是:当被控对象受到扰动作用后,被控变量没有立即发生变化,而是有一个时间上的延迟,比如容量滞后,此时比例积分控制显得迟钝、不及时。为此,人们设想:能否根据偏差的变化趋势来做出相应的控制动作呢?犹如有经验的操作人员,即可根据偏差的大小来改变阀门的开度(比例作用),又可根据偏差变化的速度大小来预计将要出现的情况,提前进行过量控制,“防患于未然”。这就是具有“超前”控制作用的微分控制规律。微分控制器输出的大小取决于输入偏差变化的速度。

微分输出只与偏差的变化速度有关,而与偏差的大小以及偏差是否存在与否无关。如果偏差为一固定值,不管多大,只要不变化,则输出的变化一定为零,控制器没有任何控制作用。微分时间越大,微分输出维持的时间就越长,因此微分作用越强;反之则越弱。当微分时间为0时,就没有微分控制作用了。同理,微分时间的选取,也是需要根据实际情况来确定的。

微分控制作用的特点是:动作迅速,具有超前调节功能,可有效改善被控对象有较大时间滞后的控制品质;但是它不能消除余差,尤其是对于恒定偏差输入时,根本就没有控制作用。因此,不能单独使用微分控制规律。

比例和微分作用结合,比单纯的比例作用更快。尤其是对容量滞后大的对象,可以减小动偏差的幅度,节省控制时间,显著改善控制质量。

比例积分微分(PID)控制

最为理想的控制当属比例-积分-微分控制规律。它集三者之长:既有比例作用的及时迅速,又有积分作用的消除余差能力,还有微分作用的超前控制功能。

当偏差阶跃出现时,微分立即大幅度动作,抑制偏差的这种跃变;比例也同时起消除偏差的作用,使偏差幅度减小,由于比例作用是持久和起主要作用的控制规律,因此可使系统比较稳定;而积分作用慢慢把余差克服掉。只要三个作用的控制参数选择得当,便可充分发挥三种控制规律的优点,得到较为理想的控制效果。

编辑本段PID控制器调试方法

比例系数的调节

比例系数P的调节范围一般是:0.1--100.

如果增益值取 0.1,PID 调节器输出变化为十分之一的偏差值。如果增益值取 100, PID 调节器输出变化为一百倍的偏差值。

可见该值越大,比例产生的增益作用越大。初调时,选小一些,然后慢慢调大,直到系统波动足够小时,再该调节积分或微分系数。过大的P值会导致系统不稳定,持续振荡;过小的P值又会使系统反应迟钝。合适的值应该使系统由足够的灵敏度但又不会反应过于灵敏,一定时间的迟缓要靠积分时间来调节。

积分系数的调节

积分时间常数的定义是,偏差引起输出增长的时间。积分时间设为 1秒,则输出变化 100%所需时间为 1 秒。初调时要把积分时间设置长些,然后慢慢调小直到系统稳定为止。

微分系数的调节

微分值是偏差值的变化率。例如,如果输入偏差值线性变化,则在调节器输出侧叠加一个恒定的调节量。大部分控制系统不需要调节微分时间。因为只有时间滞后的系统才需要附加这个参数。如果画蛇添足加上这个参数反而会使系统的控制受到影响。如果通过比例、积分参数的调节还是收不到理想的控制要求,就可以调节微分时间。初调时把这个系数设小,然后慢慢调大,直到系统稳定。

PID参数的计算方法

常用计算方法与方法的实现

PID控制器的参数整定是控制系统设计的核心内容。它是根据被 控过程的特性确定PID控制器的比例系数、积分时间和微分时间的大小。

PID控制器参数整定的方法很多,概括起来有两大类:

一是理论计算整定法。它主要是依据系统的数学模型,经过理论计算确定控制器参数。这种方法所得到的计算数据未必可以直接用,还必须通过工程实际进行调整和修改。

二是工程整定方法,它主要依赖工程经验,直接在控制系统的试验中进行,且方法简单、易于掌握,在工程实际中被广泛采用。PID控制器参数的工程整定方法,主要有临界比例法、反应曲线法和衰减法。

两种方法各有其特点,其共同点都是通过试验,然后按照工程经验公式对控制器参数进行整定。但无论采用哪一种方法所得到的控制器参数,都需要在实际运行中进行最后调整与完善。

现在一般采用的是临界比例法。利用该方法进行 PID控制器参数的整定步骤如下:

(1) 首先预选择一个足够短的采样周期让系统工作;

(2) 仅加入比例控制环节,直到系统对输入的阶跃响应出现临界振荡, 记下这时的比例放大系数和临界振荡周期;

(3) 在一定的控制度下通过公式计算得到PID控制器的参数。

PID算法的matlab仿真

https://blog.csdn.net/weixin_44044411/article/details/85891109

各个环节系数的作用

比例调节Kp的作用

能提高系统的动态响应速度,迅速反映误差,从而减少误差,但是不能消除误差,简单来说就是越大越快越小越慢但是可能会超调或者过慢有很多弊端,并且太大了会不稳定。

微分环节Kd的作用

控制在微分控制中,控制器的输出与输入误差信号的微分(即误差的变化率)成正比关系。自动控制系统在补偿误差的调节过程中可能会出现振荡甚至失稳。其原因是由于存在较大惯性环节(如水波影响)或滞后单元(如通讯设备的延迟),它们具有抑制误差的作用,即其变化总是落后于误差的变化,而解决的办法是提前抑制误差的变化。

当系统产生频繁震荡的杂波时,简单的微分控制可能被这些噪声所干扰,因此微分控制的缺点是对干扰噪声敏感,使系统抑制干扰的能力降低。为此可在微分部分增加惯性滤波环节。

微分显然与变化率有关,你可以把它理解为导数,它可以减小超调量来克服震荡,使系统稳定性提高,同时加快响应速度,使系统更快有更好的动态性能,这就像个“预言家”,它可以根据变化率来判断系统快要上升还是下降来提前改变系统的控制量这就与积分作用形成互补,这样一来系统就几乎完美了。

积分环节Ki的作用

般就是消除稳态误差,只要系统存在误差积分作用就会不断积累,输出控制量来消除误差,如果偏差为零这时积分才停止,但是积分作用太强会使得超调量加大,甚至使系统出现震荡,那么问题来了,这个积分作用太强太弱是啥意思呢,我的理解是:积分作用就相当与容错率高的意思,你容错太多了才开始调节那不就是超调量太大了么,反之你容错率低,刚刚误差一点你就马上进行调节,这样不就容易引起震荡了嘛,所以不管怎么说这个积分调节都有点滞后的意思在里面,不管你容错多少这个误差都发生了,那么有没有办法对这种误差进行预测呢,就是需要微分环节了。

Kp,Kd,Ki三个参数动态变化对系统的影响

 

 

PID闭环控制算法解析(最透彻)_第5张图片

 Kp,Kd,Ki三个参数动态变化的PID调节图解

PID闭环控制算法解析(最透彻)_第6张图片

 

 

什么是“超调”?

超调是衡量调节品质的一个量。当系统输出超过稳态值时,输出的最大值Y(tp)减去稳态值Y(∞)的差除以稳态值乘以百分之百得到的一个输出最大偏差比:

 

因此,超调反映的是控制系统在达到稳态前控制作用最糟糕的结果。

如下图所示:

PID闭环控制算法解析(最透彻)_第7张图片

 

当我们仅用“真实值与目标值的差”作为修正数据的主要来源,那么会一直产生error,只要有error图像就会波动,这就是P闭环调节。当我们调节的力度股过大,以至于调的偏离目标值,跑到了目标值的另一侧,这就叫超调。

三种调节对应的时间特性

调节类型

意义

时间关系

比例调节P

反映了当前值与当前误差的差值

当前与当前

积分调节I

当前误差是在此之前的误差的累积

当前与之前

微分调节D

用近期的误差来预测未来误差的走势

当前与未来

三种调节对应的优缺点

比例控制

能迅速反映误差,从而减小误差,但比例控制不能消除稳态误差,KP的加大会引起系统的不稳定

积分控制

只要系统存在误差,积分控制作用就不断地积累,输出控制量以消除误差。因此只要有足够的时间,积分控制将能完全消除误差,但是积分作用太强会使系统超调加大,甚至使系统出现振荡

微分控制

可以减小超调量,克服振荡,使系统的稳定性提高,同时加快系统的动态响应速度,减小调整时间,从而改善系统的动态性能

PID算法

算法公式

 

通常,对系数做如下简化:

 

参数说明

Kp

比例系数,反映了调节速度

E(t)

当前值-目标值,即当前的误差

T1

积分的时间,反映了当前值与前T1个周期的关系

TD

微分时间常数,反映了系统的修正力度

误差的积分

T1个时间间隔的误差的累加

误差的微分

当前误差与前一个误差的差值

微分时间常数Td对控制性能的影响

随着微分时间常数Td的增加,闭环系统响应的响应速度加快,调节时间减小。微分环节的主要作用是提高系统的响应速度。由于该环节对误差的导数(即误差变化率发生作用),它能在误差较大的变化趋势时施加合适的控制。

但是过大的Kd值会因为系统造成或者受控对象的大时间延迟而出现问题。微分环节对于信号无变化或变化缓慢的系统不起作用。

积分时间常数Ti对控制性能的影响

积分作用的强弱取决于积分常数Ti。Ti越小,积分作用就越强,反之Ti大则积分作用弱。积分控制的主要作用是改善系统的稳态性能,消除系统的稳态误差。当系统存在控制误差时,积分控制就进行,直至无差,积分调节停止,积分控制输出一常值。

加入积分控制可使得系统的相对稳定性变差。Ti值的减小可能导致系统的超调量增大,Ti值的增大可能使得系统响应趋于稳态值的速度减慢。

这里的积分作用说的是“Ti越小说明当前的修正值与之前的误差关系不紧密,因此积分的效果不明显”。

位置式与增量式PID算法的区别

位置式PID的输出与过去的所有状态有关,计算时要对e(每一次的控制误差)进行累加,这个计算量非常大,而明显没有必要。而且小车的PID控制器的输出并不是绝对数值,而是一个△,代表增多少,减多少。换句话说,通过增量PID算法,每次输出是PWM要增加多少或者减小多少,而不是PWM的实际值。所以明白增量式PID就行了。

增量型 PID,是对位置型 PID 取增量,这时控制器输出的是相邻两次采样时刻所计算的位置值之差,得到的结果是增量,即在上一次的控制量的基础上需要增加(负值意味减少)控制量。

 

你可能感兴趣的:(STM32单片机,算法)