PID——基本原理

概念

公式

Kp,Ki,Kd分别是比例项、积分项、微分项的权重占比。

比例项

比例项的调控力度只和现在 时刻的误差值有关,和过去未来均无关。误差值是确定的,系数Kp越大,比例项占比越大,输出力度也就越大,所以系统响应越快,但超调振荡也越来越严重 。如果只有纯比例项控制,系统最后会存在稳态误差。

稳态误差产生过程:以电机为例,当实际值达到目标值后,误差此时=0,由于是纯比例项控制,调控力度只和当前误差有关,现在误差=0了,调控力度就直接也=0了,即驱动电机旋转的PWM=0,电机没了驱动力,同时由于摩擦力 而不断减速,一减速就导致又产生误差,开始误差较小,调控力度就小,还无法抵抗摩擦力,电机继续减速,误差继续增大,直到误差大到让调控力度和摩擦力相等了,电机此时相当于不受力了,不再减速,但也没办法加速了因为out=Kp*error,由于平衡使得误差error不再改变,输出力度也不改变了,只能使得力度和摩擦力平衡,所以最后存在稳态误差。如果Kp大的话会使得减速时输出力度等于摩擦力的用时缩短,最后稳态误差会更小。

如果改为out += Kp*error,这样会使得只要有误差存在,输出力度就会一直加大,最后一定能消除稳态误差。但问题是比例项只与现在时刻的误差有关,它不知道上一次的误差,也就不知道上一次的输出,所以引入积分项来消除稳态误差,这样的写法就是积分项。

积分项

积分项是将从开始到现在产生的所有时刻误差相加,输出力度与误差积分有关,即和过去有关。在比例项基础上再加上积分项,现在再看电机的例子:在一开始实际值=目标值时误差=0,比例项输出=0了,但积分项仍然有输出力度,此时误差=0只是让其输出力度不变了而已,所以电机不会减速,稳态误差不存在了。

Ki越大,稳态误差消除越快,但系统的滞后性会增强。滞后性:当目标值突然改变之后,积分项会先负向积分,一点一点将自己累计的正向积分消解掉,完毕后才能反向累计去追赶目标值,这就是积分项的滞后性,响应速度慢会导致系统不稳定。相比之下比例项 Kp*error就没有滞后性,因为它只与现在误差有关,目标值变向后它的当前误差也会马上改变,所以调控力度也会马上改变,反应很迅速。

所以通常将比例项和积分项搭配使用,优势互补。比例项响应很快,但有稳态误差;积分项响应慢,但能消除稳态误差。

微分项

微分项可以抑制系统超调振荡,它根据误差的变化预判未来 趋势并提前抑制,但这种抑制一直存在,比例项和积分项正常调控时微分项也会产生阻尼,那么微分项过大就会导致系统卡顿,调控不顺滑。

一般来说定速控制使用PI控制即可,因为超调振荡的情况很少,用不着D项;定位置控制用PD控制,因为稳态误差较小,不太需要I项。

相关推荐
youshi666814 天前
平衡车——PID算法优化
stm32·单片机·嵌入式硬件·算法·pid·平衡车
AIgorithmGEEK1 个月前
[Linux]线程三部曲(上):一个执行流的诞生——从操作系统一路拆到 pthread_create
linux·线程·pid
我不管我就要叫小猪1 个月前
PID——优化与改进措施
pid
想你依然心痛4 个月前
PID控制器参数整定:Ziegler-Nichols与自适应方法——离散化、抗积分饱和
pid·ziegler-nichols
海砥装备HardAus4 个月前
大载重工业吊运无人机动力学耦合与负载抑制底层控制技术
无人机·pid·工业无人机
海砥装备HardAus4 个月前
工业重载吊运无人机:载荷摆动产生机理与主流抑摆控制方案详解
无人机·pid·加速度·大载重无人机
sulikey5 个月前
个人Linux操作系统学习笔记7 - 进程理解
linux·笔记·学习·操作系统·进程·pid
PcVue China5 个月前
PcVue AI 智能管控:解锁建筑冷站能效新价值
大数据·人工智能·pid·建筑冷站
南宫萧幕6 个月前
MATLAB/Simulink 从零打通:HEV 能量管理 GA 联合仿真保姆级建模指南
开发语言·算法·matlab·汽车·控制·pid