接下来,我将使用示例和算法过程来解释PID的概念
pid:
P比例控制:基本功能是控制对象以线性方式增加,并在恒定比例下动态输出。
缺点:将发生稳态错误
I积分控制:基本功能是消除稳态错误
缺点:将增加过冲的
d差分控制:基本功能是削弱过冲的速度并提高惯性响应速度
1。什么是PID及其功能
上图描述了:设置一个输出目标,反馈系统将输出值发送回。如果它与目标不一致,则存在错误。 PID根据此错误调整输入值,直到输出达到设定值。
为什么我们需要PID?例如,控制温度,我们需要设置一个目标温度值,并且当温度以目标温度值稳定时
例如,我们希望水的目标温度为70,希望只能快速到达70,而没有抖动,并稳定在70
如果我们使用普通的加热方法,并在温度达到70时停止加热,这不是简单而快速吗?当然,它可以在要求不高的情况下使用。但是,如果需求较高,温度达到70后,加热器的剩余温度将继续升高,环境温度将散发热量,因此我们无法在70时稳定水温。
总结一下:我们需要PID的目的无非是无法通过普通控制手段快速,稳定地将其快速,稳定地输出到当前的设置值。
2。公式
解决的公式
KP ———————————————————————————————————————————————————————————————————–
Ki=(Kp*T)/Ti——————————————————————————————————————–
kd=(kp*td)/t ——–差分常数
3。实践例子
小敏的任务为:有一个水桶始终保持在1m的高度。目前,水桶中有0.2m的水。
然后,小ming使用p(比例)方法添加:水,即用1m的误差测量误差,并添加与误差成比例的水量。
令KP=0.4
第一次,误差为e(1)=1-0.2=0.8m,则添加的水量为kp0.8=0.40.8=0.32m。水桶的当前水位:0.2+0.32=0.52
第二次误差为e(2)=1-(0.2+0.32)=0.48m。然后增加的水量为kp*0.48=0.192m。水桶的当前水位为:0.52+0.192=0.712
通过P比率控制,当前价值的快速稳定性得到了完美的解决,但是必须在实际环境中考虑各种影响问题。所以,
小明的新任务:有一个水桶,但是水桶底部有一个孔,它仍然需要保持1m的高度。当前,水桶中有0.20万的水,但是每次添加水时,0.1m的水都会流出。这个示例接近我们实际工程的示例,例如运动摩擦的阻力和损失。
p(比例控制)u=kp e(e是与上次的差异)*
当前的水量为0.2m,当前水量为1m
令KP=0.4。然后u=0.4*e,e=最后水量- 当前水量
第一次,误差为e(1)=1-0.2=0.8m,则添加的水量为kp0.8=0.40.8=0.32m。水库的当前水位:0.2+0.32 -0.1=0.42
第二次误差为e(2)=1-(0.2+0.32)=0.48m。然后增加的水量为kp*0.48=0.192m。水桶的当前水位为:0.52+0.192=0.552
问题在于水位最终稳定在0.75m处。但是,当误差为0.25万时,添加的水量为0.1,每次添加都完全等于缺失的0.1。
在这里,引入了稳态误差的概念:即系统到达稳态时的误差。
当我们增加KP时,添加值1
随着我们继续增加,它更接近当前价值
当附加值为1.8时,它已经非常接近1m的水,但是摇动也很大。
结论:比例控制引入稳态误差,无法消除。增加比例常数可以减少稳态误差,但是如果它太大,它将导致系统振荡并不稳定。
为了消除稳态误差,第二次添加集成,并使用PI(比例积分控制)。
积分控制是将所有历史错误添加并乘以积分常数。
在同一情况下,现在设置kp=0.4,ki=0.3
第一次,错误是e(1)=1-0.2=0.8m,然后增加的水量为kp0.8=0.40.8=0.32m,ki * e(1)=0.3 * 0.8=0.8=0.24添加的水量=0.256
The second time, the error is e(2)=1-0.66=0.34m, then the added water volume is Kp0.34=0.40.34=0.136m, KI * (e(2)+e(1))=0.3 * 0.342=0.342 The added water volume=0.136m + 0.342=0.478 Current bucket water level: 0.66+ 0.478 – 0.1=1.038
我们发现添加Ki后,有效消除了稳态错误,但发现了过冲的错误
如果我们增加ki怎么办
过冲也会增加,KI值也将减少,并且过冲也会减少。
结论:
只要存在偏差,积分将连续累积直到误差为0。积分项将不再累积并变为常数,这可以抵消稳态误差。
表格中的最后几个项目的输出非常接近0.1,表明没有位置但已发生的过冲部分
因此,为了减少过冲,KD出现了
因此公式是:
令kp=0.4,ki=0.3,kd=0.3,水位0.2,目标水位1
第一次,误差为e(1)=1-0.2=0.8m,然后增加的水量为kp0.8=0.40.8=0.40.8=0.32m,ki * e(1)=0.3 * 0.8=0.8=0.24,kd=0(因为当前的水位差为0.8)添加的水量=0.32m + 0.32m + 0.256=0.56=0.56=0.56=0.56 – 0.2 + 0.56水平。
The second time, the error is e(2)=1-0.66=0.34m, then the added water volume is Kp0.34=0.40.34=0.136m, KI * (e(2)+e(1))=0.3 * 0.342=0.342 , KD (e(2) – (e1))=0.3(0.342 – 0.8)=-0.138 The added water volume=0.136m + 0.342 -0.138=0.34电流水平水位:0.66 + 0.478-0.1=0.9
过冲的显着削弱
结论:差异可以削弱过时趋势。
为了更清楚地比较三个系数之间的关系,我们进行了计算比较,并参见下图
假设初始水位为0.2,电流水平为1,流出水位为0.1,kp=0.4,ki=0.3,kd=0.3
首先,数据比较
仔细检查三个数字的最终水量变化。
对于KP,第一幅图中的水位无法达到目标水位。
对于KP和KI,第二幅图中的水位达到目标水位,但是发生了过度调节。
在PID的情况下,在第三张图片具有过冲的情况下,KD将立即减少,有效地抑制了过冲。
注意:PID的三个参数是随意设置的,因此调整后,您需要根据经验不断测试和调试。
使用图比较以下
此参数只是参考。需要连续尝试特定的PID参数设置,直到达到标准
如果在电动机控制场中使用,也控制电动机的电流输出,通常通过PWM控制输出电流,并且电动机的电流速度通过反馈采样电阻知道。也就是说,我们设置了当前速度,采样当前速度,调整PID的三个参数,然后继续尝试达到预定状态。但是,在控制电动机时,将涉及电动机的开环和闭环。开路仅仅是电动机加速度的过程,它等效于从0到预定速度和稳定的电动机的过程,而闭环是随后的稳定操作过程。如果在图中显示
用户评论
万象皆为过客
终于找到一篇对PID的讲解这么详细的文章了!以前看别的资料总是云里雾里,现在我终于明白PID的工作原理是怎么样的!
有8位网友表示赞同!
滴在键盘上的泪
看完这篇 PID 解释后,感觉自己像开了个新世界的大门一样!之前完全没接触过这方面的内容,这篇写的很生动易懂,赞一个!
有17位网友表示赞同!
未来未必来
对PID原理理解确实需要认真学习,文章解释得很到位,特别是那张PID框图真是太清晰了,把整个控制过程都展现出来了!
有16位网友表示赞同!
她最好i
我也想学做一点自动化控制相关的项目,这次看来这个PID是必须的功底,我会好好阅读一下这篇文章来加深理解!
有10位网友表示赞同!
莫飞霜
说PID复杂一点吧,确实有点难度,不过有了这篇详细的解释,我觉得还是可以慢慢攻克的,毕竟这是一个重要的基础知识。
有19位网友表示赞同!
君临臣
文章写的真的太好了!以前总是感觉PID很抽象,但是现在看了你的解释,终于明白了它背后的逻辑和控制效果。我现在更有信心去研究下具体的应用场景了!
有15位网友表示赞同!
在哪跌倒こ就在哪躺下
这篇 文章介绍挺全面的,从 PID 的概念到参数调节,都阐述得比较透彻! 对于初学者来说非常实用,建议收藏起来再次学习!
有14位网友表示赞同!
放肆丶小侽人
说实话,PID这个概念有点让人望而却步,感觉过于理论化了。希望以后能看到更多基于实际应用的案例分析!
有10位网友表示赞同!
米兰
文章对 PID 的讲解很棒,但是我个人更喜欢图解或代码实现方面的说明,这样更容易理解和记忆,希望能有更多具体的例子!
有18位网友表示赞同!
太难
学习完PID就感觉自己跨进了高级层次的控制领域,真是太兴奋了!这篇解释文章给了我很多启发和方向,我会继续深入学习!
有8位网友表示赞同!
■孤独像过不去的桥≈
这篇 文章介绍 PID 控制器时,感觉忽略了一些实际操作中的关键步骤,比如调试方法、常见问题和解决方案,这部分内容如果能够补充完善,将会更加实用!
有15位网友表示赞同!
〆mè村姑
我觉得PID是一种非常重要的控制技术,这本书对它的讲解比较全面。但是对于一些更深入的知识点,例如微分项的影响、不同应用场景下的 PID 参数设置等,作者似乎没有进行过多的阐述,希望有后续文章可以补充这些内容!
有5位网友表示赞同!
Hello爱情风
总觉得这篇 文章对PID原理的解释过于抽象,缺乏生动的案例和实践经验的分享。希望作者能结合实际工程案例来讲解,更加贴近我们日常学习和应用的需求!
有18位网友表示赞同!
有你,很幸福
对于新手入门来说,这篇文章已经算是很好的入门指南了。不过对于那些已经在接触 PID 领域的朋友来说,文章内容可能显得略显浅薄了些!
有10位网友表示赞同!
呆檬
对PID原理的理解确实需要多方面的学习积累,这篇的文章只是提供了基础性的了解,还需要通过实践和案例分析来加深理解!
有9位网友表示赞同!