[疑难问答] PID算法

[复制链接]
261|53
backlugin 发表于 2026-10-17 17:43 | 显示全部楼层
如何用代码实现积分饱和防止功能?
chenci2013 发表于 2026-10-17 21:43 | 显示全部楼层
增量式只是输出增量,最终输出仍然要做限幅!增量式不能天然防积分饱和。
averyleigh 发表于 2026-10-18 17:36 | 显示全部楼层
避免浮点运算的资源消耗              
juliestephen 发表于 2026-10-18 19:13 | 显示全部楼层
MCU浮点运算耗时且占用资源,优先使用定点数或整数比例系数。
uytyu 发表于 2026-10-18 19:48 | 显示全部楼层
PID计算出的输出值必须被限制在执行机构的有效范围内,防止损坏硬件。
biechedan 发表于 2026-10-18 21:40 | 显示全部楼层
系统启动、目标值大幅跳变时,误差会长时间保持大值,导致积分项无限制累积溢出,后续会引发严重超调。必须加入积分限幅、遇限削弱积分等机制,把积分输出牢牢限制在安全区间内。
vivilyly 发表于 2026-10-19 08:54 | 显示全部楼层
若使用RTOS,PID任务周期需固定,避免调度延迟导致控制波动。
elsaflower 发表于 2026-10-19 10:35 | 显示全部楼层
增量式PID比位置式更节省存储,且抗积分饱和能力强,适合单片机实现
wwppd 发表于 2026-10-19 12:46 | 显示全部楼层
不要在任务里随便跑 PID,如果任务调度抖动,Ts 不稳定。
lihuami 发表于 2026-10-19 13:14 | 显示全部楼层
PID计算应放在定时器中断中,而不是主循环里。主循环容易被其他任务打断,导致dt抖动,积分和微分项都会失准。定时器中断触发ADC采样和PID计算,保证周期稳定。
usysm 发表于 2026-10-19 14:18 | 显示全部楼层
采样要做多次平均或者硬件 RC 滤波,抑制高频噪声
saservice 发表于 2026-10-19 15:03 | 显示全部楼层
算法离散化与数据类型的优化              
uptown 发表于 2026-10-19 16:41 | 显示全部楼层
电机控制中,应在PWM周期中点采样相电流,避开开关噪声。采样时刻与PWM更新同步,能显著降低电流纹波对PID的干扰。
febgxu 发表于 2026-10-19 17:35 | 显示全部楼层
PID参数如何适配不同采样周期?
lzmm 发表于 2026-10-19 18:10 | 显示全部楼层
单片机PID调参有哪些实用工具推荐?
louliana 发表于 2026-10-19 18:54 | 显示全部楼层
微分项对高频噪声极其敏感,直接计算误差微分很容易被传感器噪声带偏,导致PWM输出剧烈跳变。推荐用‌不完全微分算法‌,给微分项串一个低通滤波,既保留微分的阻尼效果,又不会放大噪声。
hearstnorman323 发表于 2026-10-19 19:23 | 显示全部楼层
计算耗时要评估,中断不能太长,避免打断其他关键业务。
wengh2016 发表于 2026-10-19 20:25 | 显示全部楼层
资源紧张的8位单片机优先用‌增量式PID‌,无需累加历史全量误差,内存占用极低;32位MCU的电机、温控场景优先用位置式PID,方便直接做输出限幅,控制逻辑更直观。
earlmax 发表于 2026-10-19 20:55 | 显示全部楼层
微分项对高频噪声极其敏感,ADC采样中的微小毛刺都可能被放大,导致PWM输出剧烈抖动,不仅降低效率,还可能损坏驱动电路。
adolphcocker 发表于 2026-10-20 10:57 | 显示全部楼层
单片机上 PID 的难度,90% 不在 PID 公式本身,而在三件事:离散化带来的采样周期约束、有限算力下的数值表示、以及物理世界的"不完美"。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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