PID算法与PID三个调节分量的优缺点概述

发布时间:2024-08-21  

pid算法概述

过程控制中有两个重要的算法PID反馈算法,卡尔曼状态估计算法。PID主要用来过程控制,卡尔曼滤波主要用来状态估计,比如预测运动轨迹之类的。这一篇我们主要分享PID算法。


什么是pid算法呢?PID分别表示比例P,积分I,微分D。比例。积分,微分,计算的都是误差或者目前的值和期望的值之间的差异,变化率,均值等。该算法主要用于过程控制。


学过信号与系统或者自动化控制的应该都多多少少记得状态方程,给一个系统加上输入,然后得到输出。输出和输入有明确的函数关系。y=f(x);这个函数的计算过程就是该系统的固有属性。比如我们设计滤波器,根据运动规律得到一个弹簧滑块的力学计算公式。给滤波器输入会得到输出,给弹簧滑块弹簧一个力,弹簧滑块会按照一定的规律运动。模拟滤波器的阻抗匹配电路连接规律决定了该滤波器的固有属性。弹簧滑块的质量,弹性系数,摩擦系数等决定了该力学系统的固有属性。该固有属性就是y=f(x);给一个输入x会得到一个输出y。可以看到抛开是具体的应用场景是信号还是力学系统,背后的数学模型是一样的。

那么这个和PID有啥关系呢?要解释这个我们先要解释反馈。数学模型是理想的模型,但是实际的使用场景不会这么理想,我们设计的模拟滤波器,计算好了电阻,电容连接好了电路。但是电阻和电容都不是理想的器件,更何况外界包括电路本身还有电磁干扰。工厂生产的5欧姆的电阻不可能就没有误差就是5欧姆。随着电路的使用发热空气湿度电阻的大小也会变化,同样的电容也是。加上外界干扰情况就更加的复杂。同样的力学系统,我们也是理想情况,1千克的滑块,不可能就完全是1千克,弹簧的弹性系数随着使用也不是严格确定的值,摩擦系数也不会没有误差。所以就需要引入反馈系统。


1,举例解释pid算法

结合具体的使用场景, 学习过模电的应该都多少有点印象,电路为了减少温度漂移带来的影响,引入了反馈,当输入不够或者过大的时候,通过反馈可以增加或减少输入,作为补偿。这样的电路更加有稳定性 。

那么PID和反馈有什么关系呢? 可以说PID算法就是一个基于反馈的算法 。通常用于过程控制。只不过PID通常的使用场景比刚才说的滤波器里面的反馈有一点不同,刚才的滤波器我们的阻抗匹配设计好了滤波器的参数,也就是y=f(x)这个理想的数学模型已经有了,反馈是为了提高系统的稳定性。

但是通常情况下PID使用的场景是一个不确定的系统。比如我们期望将一杯水加热到60度,并且一直维持在60度。这个时候电热丝加热就是该水杯系统的输入,输出就是温度值。但是希望这杯水的温度就是一直维持在60度,不能高不能低(当然有一定的误差)。这个水杯就是一个系统,我们给水杯加热我们当然列不出来一个y=f(x)的一个状态方程。或者很难列出来。所以这个时候水杯对我们来说就是一个黑盒子。

如下图

图片

pid算法

图中r(t)就是我们的目标温度60度,y(t)是传感器的测量温度,x(t)是电热丝的功率,e(t)=r(t)-y(t)。也就是目标温度和当前实际温度的差。

右侧的水杯加热部分就是一个黑盒子,我们并不知道他的状态方程y=f(x);也就是水杯是我们需要控制的黑盒子

那么我们怎么做到水杯里面的水加热到60度之后一直维持在一个很小的误差范围呢?我们肯定是通过不断地调节电热丝功率来实现的。当水的温度低于60度了就加大功率,当温度开始降低了,就降低功率。我们需要一个温度计来不断的测水的温度,然后和我们的期望温度60度做比较,进而决定控制电热丝的功率。这不就是反馈吗?

当温度低于60度加大功率,当温度高于60度降低功率。仔细思考一下这样的控制对吗?显然不对,我们设想一下,刚开始一杯室温下的水,温度是25度,这个时候不到60度,还差32度,所以我们加大功率,但是很快水温40度了,还差20度,我们还加大功率吗?显然不太合理。所以改进一下改为根据当前的水温和目标60度的差值,来决定输入的功率,设r(t)为我们的目标60度,y(t)是当前的测量温度,那么r(t)-y(t)就是当前和目标的U差值,所以我们是不是可以让功率受控于这个差值呢,x(t)=Kp(r(t)-y(t))+U常数,这样随着温度的升高我们的我们输入的功率x(t)会越来越小,直到一个常熟U,之所以有该常数是因为,我们不可能当温度到达60度的时候,就关闭了电热丝,因为水杯一直在在散热。所以有一个这样的常数,但是散热功率不能明确的就是这个常数U,因为周围哪怕来一股风,外界的环境是各种干扰的。所以就需要一会儿加大功率,一会儿减少功率。这个就是PID控制中的比例部分P。看起来似乎是可以控制,但是实际会发现温度在60度上下变化误差很大。

所以也就是这样的控制不够精细化,误差变化范围很大。如果温度是50多度,外界的散热环境也在实时变化,因为温度不够60度,所以肯定还是需要加热的,那么接近60度的时候功率还是挺大的,这样温度很快就超过60度了,可能会到65度,尽管我们降低功率了,但是热量的传输有一个过程,电阻丝还在加热。那么再想一下,还可以考虑哪些因素呢?我们思考一下为什么温度会很快超过60,然后我们才发现。然后才考虑降低,这样的控制,这个很快就是一个关键字。很快意味着速度,也就是温度上升的速度,这个是什么这个就是微分呀。所以我们可以从两个角度考虑既要考虑比例,又要考虑微分。比如刚开始一秒钟温度升高3度,后面一秒钟温度增加4度,然后是一秒钟增加2度。这个是温度增加的速度。所以当温度增加的速度快,快到达目标温度60的时候,我们是不是可以提前减速,这样后面超过了60度也不会超过很多。所以我们的输入改为x(t)=Kp(r(t)-y(t)+Kdy(t)’+U

这样我们的控制精确一些了,误差减少了。是不是还可以减少误差呢?有了比例和微分,这样我们的温度一直在60度上下波动。我们还可以考虑哪些因素呢?又是注意关键词语波动,在上下波动,也就是均值接近60,均值和什么相关呢,当然是积分。

令e(t)=r(t)-y(t),则整个PID的控制算法的公式可以改变为

所以最终的控制量就是x(t)=Kpe(t)+Kde(t)‘+Kie(t)积分+U

2,PID参数则确定

分析了PID的原理,那么公式中的Kp,Ki,Kd的确定通常是很麻烦的。首先不同的系统这个参数肯定不一样。所以这几个参数的大小肯定是受到原本系统的固有属性的影响的,以水加热来说,首先水的多少,是冬天还是夏天,周围空气的流动,水杯自身的导热程度等这些属性一定是间接的影响到这几个参数,正是因为系统的固有属性不能确定所以我们无法或者很难数学建模列出来y=f(x)。所以我们才需要借助反馈。不断地调整输入,使输出达到我们的期望。

通常的调节过程是先确定Kp的大概值,然后是Kd,再下来是Ki

以加热为例,首先我们调节Kp,使温度能快速的达到60度,但是肯定会过冲超过60度,为了能快速上升到60度,那么Kp就要调大一点,但是同样带来一个弊端就是温度可能超过60度很高,比如到80度了,所以通常都会有指标参数,比如最高温度不能超过多少度,达到60的时间是多少之类的。根据这个我们会选择一个比较合适的Kp。这个时候温度会在60度上下波动,但是误差很大,收敛很慢。

接着我们调节Kd,因为Kd是对温度上升速度的反应部分,结合Kd,能快速的降低误差,Kd是对观测量变化的体验,所以通常一个系统如果观测量变化很灵敏,很快,那么通常Kd就会很小。结合了Kp和Kd,这个时候系统的收敛速度能很快收敛,最高温度也会降低。但是系统还是很长一段时间在60度上下波动。为了进一步控制,接下来就要调节Ki参数了

Ki就是对波动的反应。能让观测量温度快速稳定在60度,同时误差也会小。

三个参数的调节是独立的,但是最后的输出是一个总的,所以当Ki调节完了,反过来又要适当的调节Kp,Kd,最终达到一个比较好的效果。

3,PID三个调节分量的优缺点

Kp调节的是宏观的,让系统快速的达到期望目标,Kd是对速度的反馈调节,能让系统快速的收敛,Ki是对考虑历史数据,是一个均值的作用,能减少毛刺,让系统基本稳定后的波动小一些。

但是凡是都有弊端,Kp过大,尽管能让系统快速达到期望值,但是同样的会过多的超过期望值。所以需要Kd对速度变化部分提供反馈控制

Kd对当前的速度做出反应,所以可以让观测值快速收敛,但是毛刺还是很多。

因为Ki部分求的是均值,会让系统很快稳定,但是尤其是最开始的时候偏差很大,历史的偏差会一直影响积分控制项,将这个残差一直留着,所以通常可以在系统最开始的时候不适用Ki,当系统达到期望值之后,开始加入Ki部分,这样能消除系统最早的最严重的偏差。得到更好的效果

我们还是以加热丝给水杯加热为例,我们在室内调好了PID的三个参数,然后我们拿到室外,或者开空调了,或者夏天调的参数在冬天使用,那么我们调的这几个参数可能会因为外部环境的变化可能就很难达到很好的效果。调节的参数总是有一定适用范围的,所以也是有方式自动调节PID参数的,做到PID参数的自适应的。

买来的一台大疆无人机,在空气流动不大,温度适宜的地方可以起飞,然后如果狂风大作,总不可能说大风的时候不能用了,需要重新调节参数,肯定是有自适应调节的。飞机刚开始感受到变化,比如突然大风开始刮起来了,这个时候飞机会短暂的不稳定,然后快速的稳定。


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

相关文章

    从光学的原理上进行颜色的调配。 图像灰度化处理可以作为图像处理的预处理步骤,为之后的图像分割、图像识别和图像分析等上层操作做准备。 3 图像灰度化的方法 图像灰度化常用以下几种方法: (1)分量法 将彩色图像的三个分量......
    决电压凹陷问题的一种有效手段。DVR主要用来保护敏感负荷免遭来自电网的电压扰动尤其是电压凹陷的冲击,同时也应该能够补偿如电压谐波、不平衡等稳态电压质量问题。要想实现上述功能,首先要快速检测电压凹陷的起止时刻;其次要产生准确的补偿指令电压信号包括凹陷补偿指令信号和除电压基波分量......
    、细节分量和随机分量步骤3:初始化改进K-means聚类算法参数,聚类类别数k取待分析台变数,以各台变低压侧三相电压平均值为初始聚类中心。 步骤4:由式(l5)计算出各用户与k个聚......
    次数,睡眠效率等。 而对于心率的监测,目前的方法主要有两种:一是光电透射测量法,另一种是心电信号测量法。所谓光电透射测量法,就是心脏的规律跳动会引起血液透光率的变化,采集......
    这样的运算可以消除两路参考源的非相关固有噪声。混合的分量可以通过平均来消除,最终剩下的只有被测件的固有噪声,这使灵敏度不再局限于内部参考源的固有相位噪声。测量的改善程度主要决定于平均的次数,而最大可以改善达20dB......
    了系统具有良好的稳定裕度与动态特性。在矢量控制中逆变器环节仅仅被当作一个增益系统,这种上层控制算法与底层 PWM 独立分离设计的结构使得系统的整体性能存在进一步优化的空间。这是因为不同的PWM 策略......
    到实际数字控制系统的离散化特性,现有文献直接在离散域设计电流内环调节器,保证了系统具有良好的稳定裕度与动态特性。在矢量控制中逆变器环节仅仅被当作一个增益系统,这种上层控制算法与底层PWM 独立分......
    以调用高级信号处理工具包中的小波降躁函数来滤除宽带噪声。 对于例如胎心信号提取等较为复杂的处理,开发人员也可以通过LabVIEW中的ICA独立分量分析)算法来加以研究应用。如图1所示,上半部分是采集到的母体和胎心的混合信号,下半部分是经过ICA处理......
    的应用情况对脉冲占空比的要求也不相同,因此准确快速地测量出脉冲占空比也就非常必要。测量占空比的方法主要有示波器比较法、单片机计算法、平均值转换法等。示波器比较法简单易行,但不能直接准确快速地给出读数;单片机计算法......
    Laplace 图像增强后的效果 2.3 边缘检测 图像边缘指的是其周围像素灰度急剧变化的那些像 素的集合,它主要存在于目标、背景与区域之间,对图像进 行边缘检测是图像识别的重要步骤[6]。采用......

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>