[疑难问答] PID算法

[复制链接]
219|53
pl202 发表于 2026-10-20 11:39 | 显示全部楼层
反馈噪声大,PID 怎么调都抖,很多人以为是参数问题,实际是采样没滤波。
mmbs 发表于 2026-10-20 12:23 | 显示全部楼层
积分限幅可根据被控量范围动态调整,避免固定限幅导致小误差时积分不足。
kmzuaz 发表于 2026-10-20 14:28 | 显示全部楼层
先把I和D完全置0,从小到大单独调P,直到系统出现小幅等幅振荡,再回退30%~50%的Kp值;之后从小到大逐步加Ki,消除稳态静差;最后再小幅度引入Kd,抑制超调,绝对不能一开始就三个参数一起乱调。
maqianqu 发表于 2026-10-20 17:08 | 显示全部楼层
通过临界比例度和衰减曲线法计算理论参数,再结合实际调整。
minzisc 发表于 2026-10-20 18:47 | 显示全部楼层
增量式PID天然抗积分饱和,但长期运行可能因舍入误差产生漂移,需定期校正或使用位置式+抗饱和。
dspmana 发表于 2026-10-20 22:03 | 显示全部楼层
一般取系统时间常数的 1/10~1/20。太慢会响应迟钝,太快会放大噪声、增加单片机负担。常见电机电流环10~20kHz,速度环1~5kHz,温度环1~10Hz。
kkzz 发表于 2026-10-21 12:34 | 显示全部楼层
当输出达到限幅值后,误差仍存在,积分会继续累积,导致退出饱和时严重超调。必须做积分限幅或抗饱和回算:输出饱和时停止积分,或把超出部分回算到积分器。
jonas222 发表于 2026-10-21 17:08 | 显示全部楼层
当误差长时间很大,积分项持续累加,输出顶到最大限幅;当误差反向后,积分值需要很长时间才能退回来,造成超调巨大。
youtome 发表于 2026-10-21 18:22 | 显示全部楼层
加看门狗,防止PID计算卡死导致执行器失控。
modesty3jonah 发表于 2026-10-21 20:24 | 显示全部楼层
阀门、电机都有启动死区。可在输出端加死区补偿,或把死区纳入前馈。否则小误差时PID输出被死区吃掉,稳态误差消不掉。
iyoum 发表于 2026-10-21 22:00 | 显示全部楼层
采样周期过短会增加单片机负担,过长则导致控制滞后、超调量增大。需通过实验或仿真确定最优值,并与定时器中断周期严格对齐。
uiint 发表于 2026-10-23 09:42 | 显示全部楼层
放大系数过大易溢出,过小则精度不足,需根据被控量范围合理设定。
tifmill 发表于 2026-10-23 10:48 | 显示全部楼层
先将Ki和Kd设为0,只调Kp,直到系统出现临界振荡或快速响应,然后将Kp适当减小。接着引入Ki消除静差,最后才根据需要加入Kd来抑制超调。
zerorobert 发表于 2026-10-23 11:51 | 显示全部楼层
必须用硬件定时器中断严格保证PID运算周期固定,绝对不能在主循环里用软件延时实现,否则主循环被其他任务抢占导致周期波动,会直接破坏PID的离散化数学模型,引发系统莫名振荡。
plsbackup 发表于 2026-10-23 12:29 | 显示全部楼层
怎样防止PID输出饱和?              
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部