5iMX宗旨:分享遥控模型兴趣爱好

5iMX.com 我爱模型 玩家论坛 ——专业遥控模型和无人机玩家论坛(玩模型就上我爱模型,创始于2003年)
123
返回列表 发新帖
楼主: tcjsjxx
打印 上一主题 下一主题

闲谈 PID

  [复制链接]
41
发表于 2024-3-26 21:09 | 只看该作者
本帖最后由 stylecheng 于 2024-3-26 21:20 编辑
tcjsjxx 发表于 2019-6-16 18:31
那么接下来,显然,P已经玩不转了。那么怎么办?无所作为?一直任由P失灵的现状一直存在?那当然不行,我们 ...

我不知道中间是不是有楼被吞了,单看这楼的理解是存在错误的。静差是外部因素导致的,比如PID控制的加热系统,由于环境温度低于目标温度,发热丝一直在散热(散热就是外部因素),我们讨论理想状态:环境温度恒定,比例系数跟微分系数也调好了。先抛开积分项不谈,由于实际温度越来越接近目标温度,误差越来越小,在不改变比例系数的情况下,输出功率也就来越小,直到输出功率等于散热功率的平衡点的时候,实际温度就不会改变了。因为在散热,所以输出功率必定不为0,所以这个时候实际温度离目标温度会有一定的差距,这个差距就是静差。前面提到了比例系数已经是理想值了,要靠加大比例系数来减小静差那就会导致过冲,而且加大比例系数只能减小而不能削除静差。这个时候就需要靠累积误差的增加来加大输出功率消除静差了。累积误差并不会导致比例系数(二楼里面说的P)的增加,只是单纯把误差值累加起来(这就是叫积分,并不是滥用名词),虽然误差越来越小,但是因为是累加,所以累积误差是一直在增加的,直到实际温度等于目标温度,误差值为0,累积误差不再变化,这个时候累积误差增加的输出功率也就刚好补偿了静差。

欢迎继续阅读楼主其他信息

42
发表于 2024-3-26 21:11 | 只看该作者
本帖最后由 stylecheng 于 2024-3-26 21:28 编辑
tcjsjxx 发表于 2019-6-16 22:01
简单来说,以上实现代码说的就是:

PID输出=P比例系数×(误差)+I系数×(误差积分值)+D系数×(误差微分值)

其中:误差积分值=本次误差+上次误差
           误差微分值=本次误差-上次误差

这里也理解错了, sptr->SumError += iError  ——》 sptr->SumError = sptr->SumError + iError  ——》 误差积分值 = 上次误差积分值 + 本次误差。

43
发表于 2024-10-10 20:23 | 只看该作者
wylwilliam 发表于 2021-7-21 10:46
这评论,简直是神仙打架呀……我等话都插不上呀。


44
发表于 2024-10-13 23:13 ——“来自手机” | 只看该作者
这个贴的技术含量相当的高呀。
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

关闭

【站内推荐】上一条 /2 下一条

快速回复 返回顶部 返回列表