资讯详情

PID 控制器

1.PID控制器入门

1.1.PID引入控制器

1.2.PID控制器适用于系统

1.3.PID控制器的宏观意义

2.PID控制器必备知识

2.1.控制系统概述

2.2.参数详解

2.3.连续和离散信号

3.PID控制算法

3.1.PID公式解释(抽象派)

3.2.PID公式解释(形象派)

3.2.1.小车例子

3.2.2.无人机例子

3.3.PID参数整定

4.其他相关控制知识

4.1.积分限幅

4.2.积分分离

4.3.微分先行


1.PID控制器入门

水管中间有一个控制阀(水龙头)。控制阀拧大时,出水管流量变大。控制阀拧小时,出水管流量变小。水管上有一个工人,负责控制控制阀,让出水管流量,而且可以随时

工人看到出水管的水流量是1L/S,工厂也希望出水管流量为1L/S。在紧急情况下,出水管有点裂,裂缝部分会流走一些水,导致目前出水管的水流为0.9L/S,如下图所示。此时控制阀拧大,出水管水流正好是1L/S,这样可以控制出水管的稳定水流

工人看到出水管的水流量是1L/S,工厂想让出水管水流量为2L/S。此时,工人将控制阀拧大,发现出水管流量为1.5L/S,工人再次拧大控制阀是不够的。这时发现出水管的水流刚好是2L/S,这样可以改变出水管的流量

在这个系统中,为了控制出水管的水流,我们必须依靠工人。出水管的水流通过工人的眼睛实时传递给大脑。大脑根据水流的大小来判断控制阀是大还是小。PID控制器是用来代替工人的,PID通过水流值控制控制阀的开度,可实时检测当前出水管的水流值。

1.2.PID控制器适用于系统

PID控制器适用

准确的说是

满足

齐次性:

y=f(x) -> ky=f(kx)

叠加性:

y1=f(x1) y2=f(x2) -> y1 y2=f(x1) f(x2)=f(x1 x2)

1.3.PID控制器的宏观意义

PID控制器占工业应用的95%

PID控制器的特点启动简单,无需准确建模系统


2.PID控制器必备知识

2.1.控制系统概述

预期输出x作为系统输入,实际输出y作为系统输出。x给控制器输入信号,我们在这里使用控制器PID控制器;PID根据输入操作控制器,输出一个Uc控制信号;Uc对执行器进行控制信号Uc控制信号做出反应Ua;反应Ua作用于对象,然后对象输出y,y是实际输出

,如下图所示:

预期输出x实际上是流量的预期输出

控制器对应工人师傅

输出控制器Uc相应地,工人的主人决定扭转控制阀的几圈

根据输入,执行器对应阀门Uc拧几圈执行

对象对应出水口的水流

实际输出y对应于量的实际输出

控制器控制一次后就不管了,没有反馈不会观察实际输出到底是多少,实际输出可能会出现干扰没有达到预期输出值

前馈控制系统就是在开环控制系统的基础上增加了一个干扰测量器。实际中执行器作用在对象时,会存在一些内外部因素的干扰,这些干扰会导致实际输出与预期输出相比存在误差。这时我们需要增加一个干扰测量器,将干扰值给到控制器,控制器根据干扰的大小,计算出需要给执行器补偿多少,执行器根据控制器的补偿值进行操作来补偿干扰噪声

,如下图所示:

前面工人控制水流量的例子,如果出水管中有一些石头对输出管水流量造成干扰,本身水流量输出预期1L/S,经过干扰后变成0.5L/S。工人师傅根据干扰造成的影响加大控制阀门,对这部分影响因素做出补偿,最后输出1L/S。这就类似于前馈控制系统干扰补偿部分的工作流程。

闭环控制系统就是在开环控制系统的基础上增加了一个传感器,形成了一个闭环回路,实际输出值会反馈到输入出这里。这里控制器的输入就不再是期望输出了,而是期望输出x-实际输出y 这样一个偏差值E(E=x-y)。控制器根据输入的偏差值输出一个控制信号Uc给执行器,执行器作用在对象输出实际输出值y

,如下图所示:

工人师傅用眼睛去观察出水管水流量,假设出水管流量只有0.9L/S,那么人脑就会比对实际输出相较于预期输出差了多少,人(控制器)就会对控制阀(执行器)输出一个再转几圈的信号,这样就经历了一个闭环控制的过程。

用两个控制器来控制一对主副对象,其中主对象是最终要控制的对象。在单闭环控制系统的基础上加了一个反馈环,里面的反馈环叫做内环,外面的反馈环叫做外环。

在前面工人控制水流量模型的基础上,出水管下面加了一个水箱,水箱里面的水也是我们控制的一个目标,控制水箱里面的水是一米的高度

控制器1就是工人师傅,根据水箱水位高度的偏移值做出一个计算;

控制器2也是工人师傅,根据控制器1的输出和水管水流量换算值的一个偏移量再做出一个计算;

执行器是水阀,直接控制的是出水管水流量,间接控制水箱水位高度;

副对象是出水口水流量;

主对象是水箱的水位高度

两个传感器都是工人师傅的眼睛,内环传感器观察的是出水口水流量,外环传感器观察的是水箱水位高度

例子中双闭环控制系统的控制过程:

期望输出x是水位1米,期望输出x与实际输出y1做差得到偏移值E1作为控制器1的输入,控制器1输出一个控制值Uc1,控制值Uc1和内环反馈流量的输出值y2做差得到偏移值E2作为控制器2的输入,控制器2输出一个控制值Uc2,控制值Uc2给到执行器阀门来控制出水管的水流量。副对象出水口的水流量变化进而改变主对象水箱水位的高度

将系统里面一些不稳定的量进行控制,来更好地控制最终的对象,达到稳定控制的目的。

例如上面的例子,水管中的水流量如果过大可能会导致水箱水位变化过快不好控制,那么在里面再加一层控制出水管水流量就能更好的控制水箱的水位值

相当于一个单闭环的控制系统+一个前馈通道。这种系统考虑到了内外因素的干扰,干扰会对对象有一个扰动的作用。设置一个前馈反馈回路,把干扰检测出来,干扰测量器负责测量干扰的大小,测量的值给到前馈反馈的控制器,前馈反馈的控制器作用到执行器使得这个前馈反馈环对对象的作用可以抵消干扰对对象的作用。单闭环的控制回路起到精准控制对象的作用

在前面工人控制水流量模型的基础上,出水管内有石头对出水管水流量干扰

这里的石头作为干扰对对象和实际输出造成影响,这里的干扰使出水管水流量变小,通过增大阀门来弥补石头对流量造成的这部分减小量就是前馈反馈回路的功能。人眼通过观察出水管的流水量操作水阀进行实时的控制,这就是单闭环回路的功能。两个回路加在一起就实现了前馈-反馈复合控制系统的功能

2.2.参数详解

1.:输入(期望输出)- 输出(实际输出)

2.:控制器得到一个输入量,输入量通过控制器会经过一个运算(例如PID运算)得到一个控制信号值,控制信号值给到执行器

3.:施加在对象上产生作用的量

4.:控制的某对象某一属性改变量

2.3.连续与离散信号


3.PID控制算法

3.1.PID公式解释(抽象派)

C:控制器的输出(前面控制系统的Uc)

e:误差,期望输出-实际输出得到的偏差值

P:比力度,超参数需要人为的调

Ti:积分时间,超参数需要人为的调

Td:微分时间,超参数需要人为的调

3.2.PID公式解释(形象派)

3.2.1.小车例子

小车前面有一堵墙,墙距离小车100米,小车要跑到100米处的墙的位置处停下

在这样一个模型下进行控制分析,,如下图所示

控制过程:

开始时,期望位置-实际位置=100-0=100m,控制器的输入为100m;P为0.1,控制器的输出为100×0.1=10;执行器电机得到一个10的输入并执行,输出一个对地10m/s的速度;对象小车以10m/s的速度移动,会得到一个实际位置,假设一个控制周期为1s,则得到的实际位置为10m;得到的实际位置再反馈会来

此时,期望位置-实际位置=100-10=90m,控制器的输入为90m;P为0.1,控制器的输出为90×0.1=9;执行器电机得到一个10的输入并执行,输出一个对地9m/s的速度;对象小车以9m/s的速度移动,会得到一个实际位置,假设一个控制周期为1s,则得到的实际位置为19m;得到的实际位置再反馈会来

以此类推......

根据上面的分析,我们可以得到小车的位置随时间的变化图和电机的速度随时间的变化图,如下图所示

控制过程:

开始时,期望位置-实际位置=100-0=100m,控制器的输入为100m;P为0.5,控制器的输出为100×0.5=50;执行器电机得到一个50的输入并执行,输出一个对地50m/s的速度;对象小车以50m/s的速度移动,会得到一个实际位置,假设一个控制周期为1s,则得到的实际位置为50m;得到的实际位置再反馈会来

此时,期望位置-实际位置=100-50=50m,控制器的输入为50m;P为0.5,控制器的输出为50×0.5=25;执行器电机得到一个25的输入并执行,输出一个对地25m/s的速度;对象小车以25m/s的速度移动,会得到一个实际位置,假设一个控制周期为1s,则得到的实际位置为75m;得到的实际位置再反馈会来

以此类推......

根据上面的分析,我们可以得到小车的位置随时间的变化图和电机的速度随时间的变化图,如下图所示

可以看出当P从0.1改为0.5后,小车改变的就更快了,也将更快的完成控制

控制过程: 

开始时,期望位置-实际位置=100-0=100m,控制器的输入为100m;P为0.05,控制器的输出为100×0.05=5;执行器电机得到一个5的输入并执行,输出一个对地5m/s的速度;对象小车以5m/s的速度移动,会得到一个实际位置,假设一个控制周期为1s,则得到的实际位置为5m;得到的实际位置再反馈会来

此时,期望位置-实际位置=100-5=95m,控制器的输入为95m;P为0.05,控制器的输出为95×0.05=4.75;执行器电机得到一个4.75的输入并执行,输出一个对地4.75m/s的速度;对象小车以4.75m/s的速度移动,会得到一个实际位置,假设一个控制周期为1s,则得到的实际位置为9.75m;得到的实际位置再反馈会来

以此类推......

根据上面的分析,我们可以得到小车的位置随时间的变化图和电机的速度随时间的变化图,如下图所示

可以看出当P从0.1改为0.5后,小车改变的就更慢了,也将更慢的完成控制

容易看出,参数P值可以控制控制系统到达期望值的时间

3.2.2.无人机例子

控制无人机从地面飞到100米的空中

在这样一个模型下进行控制分析,

1.这里要考虑无人机重力的因素,如果转轮的升力F等于无人机的重力mg,则无人机悬停;如果转轮的升力F大于无人机的重力mg,则无人机上升。

2.我们设定一个条件,当无人机悬停在空中,转轮的速度为100rpm。

当p=1时,控制过程:

开始时,期望位置-实际位置=100-0=100m,控制器的输入为100m;P为1,控制器的输出为100×1=100;执行器电机得到一个100的输入并执行,转轮输出100rpm的转速;对象无人机将悬停在0m的高度,因此P应该给大一点

当p=2时,控制过程:

开始时,期望位置-实际位置=100-0=100m,控制器的输入为100m;P为2,控制器的输出为100×2=200;执行器电机得到一个200的输入并执行,转轮输出200rpm的转速;对象无人机将上升。在上升的过程中期望高度-实际高度得到的误差值将变小,当误差值减小到50m的时候,也就是无人机在50m的空中的时候,期望位置-实际位置=100-50=50m,控制器的输入为50m;P为2,控制器的输出为50×2=100;执行器电机得到一个100的输入并执行,转轮输出100rpm的转速;对象无人机将悬停在50m的高度

当p=100时,控制过程:

开始时,期望位置-实际位置=100-0=100m,控制器的输入为100m;P为100,控制器的输出为100×100=10000;执行器电机得到一个10000的输入并执行,转轮输出10000rpm的转速;对象无人机将上升。在上升的过程中期望高度-实际高度得到的误差值将变小,当误差值减小到1m的时候,也就是无人机在99m的空中的时候,期望位置-实际位置=100-99=1m,控制器的输入为1m;P为100,控制器的输出为1×100=100;执行器电机得到一个100的输入并执行,转轮输出100rpm的转速;对象无人机将悬停在99m的高度

可以看出,在这个模型中,如果只用P一个参数来控制,随着P的增大无人机只能无限接近100m的高度,无法准确到达100m,由于只用参数P某些模型下会导致结果总有一个误差,这个误差我们叫做稳态误差,因此我们需要引入参数I项来解决稳态误差。

经过前面分析可知,当P=100,无人机会悬停在99m的空中,此时控制器输入的误差不变是1m,因此P项会使转轮一直保持100rpm使无人机悬停;加入I项,I项是积分项,会根据以往的误差慢慢积累,如果误差保持不变,I项就会一直线性的积累,那么控制器中P项加上I项慢慢积累的就会产生新的输出,新的输出给执行器,无人机就会慢慢上升,如下图所示。这样到最后无人机到达100m的高度时,比例项P不提供升力,如果积分项I提供的升力如果还不足以维持悬空,那么无人机会下落一点,又会产生误差,然后比例项P再会提供升力,此时积分项I项又会积累一些误差使I项提供的升力强了一些,在P和I共同作用下无人机再一次到了100m高度,此时只有I提供升力,如果I的升力经过上一次增加后还是不够悬停,那么会继续重复前面操作,直到积分项I提供的升力刚好可以使无人机悬空,此时无人机无限接近100m可以认为就是100m。

当p=100时,控制过程:

开始时,期望位置-实际位置=100-0=100m,控制器的输入为100m;P为100,控制器的输出为100×100+I·(前面误差的累加)= 10000+I·(前面误差的累加);执行器电机得到一个10000+I·(前面误差的累加)的输入并执行,转轮输出10000+I·(前面误差的累加)rpm的转速;对象无人机将上升。

到最后,期望位置为100m,实际位置也为100m,控制器的输入为0m,也就是没有了误差;P为100,控制器的输出为0×100+I·(前面误差的累加)= I·(前面误差的累加),此时比例项P为0,不提供升力;由于积分项不受当前状态影响,因此积分项I不会因为当前误差为0而改变,积分项I只是会停止积累误差,如下图所示,此时I项提供的升力保证无人机悬空,悬空的位置刚好为100m

随着无人机的上升,P项和I项积累值的变化情况如下图所示

在该模型中,如果只使用P和I项虽然能使无人机悬停在100m的空中,但还是有一定问题。当无人机在地面时,设P=100,那么100×100=10000rpm,开始比例项的升力就非常大,如果一个人将无人机摁住不让其上升,那么I·(前面误差的累加)这一项中误差累加的非常快,一段时间后也会导致转轮转速变得很大,此时松开无人机,无人机可能突然上升到远远超过100米的高空,虽然最后靠P和I这两个超参数项还是能控制无人机近似到达100米空中,如下图所示,但是开始一瞬间上升这么高不安全,而且无人机高度来回震荡控制时间长,所以,再增加超参数D微分项来消除或减小其震荡,缩短控制时间,并且也控制其不要上升的那么快更加安全。

无人机有可能因为开始速度过快而飞过,如下图左所示,此时控制器输入误差的变化如下图右所示。右图误差的导数值就是D的微分项。开始无人机速度很快但是随着高度的升高输入控制器的误差值在变小,因此误差变化率为负的,此时微分项D给无人机一个反推力使得无人机上升的速度慢下来。无人机上升的速度越快,误差减小也就越快,误差变化率为负的,其值也就越小,那么微分项D给无人机一个反推力也就越大。

  

3.3.PID参数整定

因为某些系统是不允许超调的,所以Kp开始不能给太大,从小一点开始往大调,当调到一定值时发现实际输出可以很快贴进目标值,那么就停止。因为单独Kp不能消除稳态误差,此时加入Ki项

Ki的引入是为了减少误差。Ki小的话积分作用弱一点,误差消除效率就会差一些;Ki大的话积分作用强一点,误差消除效率就会好一些

如果系统发生超调,Kd的引入就是消除震荡或使震荡减弱。但是Kd不能太大,如果太大会严重影响系统的调节时间,来回缓慢震荡,使实际输出很久才能贴合住预期输出

开始Kp从小往大慢慢的给,给到可以较快的贴合预期输出后加入Ki项,Ki从小开始慢慢往大的给,当出现高效率的贴合预期输出值的曲线时,如果对控制时间有要求需要时间较短,那么可以把Ki再给大一点,此时观察有没有超调,如果有超调那么加入Kd项来调整即可。

一般的系统我们使用Kp和Ki即可,只有震荡明显的情况下会使用Kd


4.其余相关控制知识

4.1.积分限幅

使用P和I项进行控制,无人机在地面准备起飞,期望高度是100m。此时一个人摁住无人机,那么误差值一直为100m,控制器P项输出保持不变,控制器I项输出是线性增长的,如下图所示

一段时间后,那个人突然不摁了,此时控制器I项输出可能非常大,再加上控制器P项输出,控制器给电机的输出非常大,那么无人机速度就非常快并且飞的非常高。对于这种情况,我们对积分限幅,I项增加到一定值时就不再增了,如下图所示,那么无人机在上面这种情况下就不至于飞的很快很高,这就是积分限幅的作用。

4.2.积分分离

当无人机期望高度为100m而此时也到达了100m的位置,那么误差值为0,控制器P项的输出值为0,由控制器的I项来保持无人机的悬停,由于此时没有误差,因此I项的误差也不再累计,如下图所示。

此时如果给无人机一个新的期望高度1000m,那么误差值为900m突然变得很大,导致控制器积分项I也突然变得很大,如下图所示,再加上P项,可能导致无人机最后严重超调一直震荡

这种情况下,我们使用积分分离,对误差进行一个条件判断,例如如果无人机误差超过500m,我们就让积分项I等于0,如果无人机误差低于500m,我们再使用I项,这样I项就不会像前面增长的那么快,使系统可以快速跟随且不至于严重超调  

4.3.微分先行

如下图所示,相较于前面的控制系统有一些变化。我们直接将传感器的反馈值分出来一路给到控制器的D项,这样做有一个好处就是如果希望无人机快速反应移动,当期望高度突变的时候,影响会先给到P和I项,由于开始时无人机位置没有突变,传感器反馈的实际高度值也不会突变,因此不会马上给到D项,这样就有效减小了D项开始的缓冲作用,使无人机可以快速反应移动。如果不这样做,那么如果期望高度突变,D项的微分值也会突变变得很大,缓冲作用非常大,使相应效果大大降低。

标签: e0e1e2传感器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台