打印

pid控制疑惑?

[复制链接]
1728|15
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
假如我用PID算法控制电机速度,PID的公式为  PWM输出=P*(给定速度-反馈速度)+积分项+微分项,


假如只使用比例控制,P=2;积分项=0;微分项=0;

1.当给定速度》反馈速度时,给定速度=50,反馈速度=30;那么此时PWM输出=2*(50-30)=40;这个我可以理解,为了使实际速度增加,PWM为正值,误差越大,输出越大。从而越接近给定速度。

2.当给定速度<反馈速度时,给定速度=10,反馈速度=30;那么此时PWM输出=2*(10-30)=-40;这个我不理解,怎么还出现﹣值了?PWM下线是0占空比,如果我把PID输出下线限制为0,那岂不是只要给定速度小于反馈速度,PID计算出的结果就是0,电机就停了?这么理解对么?

相关帖子

沙发
tyw| | 2019-1-20 09:07 | 只看该作者
板凳
xuyaqi| | 2019-1-20 10:15 | 只看该作者
PID增量算法:


按增量算法很容易理解,计算结果正值,原有输出值要增加,计算结果负值,原有输出值要减少。

使用特权

评论回复
地板
tianxj01| | 2019-1-20 10:50 | 只看该作者
PID给出负值,说明控制方向变成减量,至于具体到输出实际上是多少,则取决于你自己设定的实际输出范围。而且,在PID具体到执行目标段,我们都会有一个限幅处理,在程序过程中,比如给定10,反馈40,误差=30,P=2,则计算结果=-40,减去给定的10,则输出实际上是-30.由于PWM=-30不可执行,所以程序设定结果最小值=0,也就是PWM输出=0,这就是输出限幅。

使用特权

评论回复
5
zyj9490| | 2019-1-20 10:53 | 只看该作者
PID绝对不是这么简单的加和,肯定有一个常项。

使用特权

评论回复
6
gx_huang| | 2019-1-20 11:21 | 只看该作者
如果这个都疑惑,那疑惑的问题多了,你把PID搞好,估计得需要很长时间。

使用特权

评论回复
7
cjseng| | 2019-1-20 11:22 | 只看该作者
输出为0,但是电机有惯性,不会立即停下来,输出为负,我的理解就是给电机施加反转的信号,强迫电机降低转速。

使用特权

评论回复
8
它山之石|  楼主 | 2019-1-24 21:09 | 只看该作者
tyw 发表于 2019-1-20 09:07
  • 〓◆从新手到高手 自动调节系统解析与PID整定 高清书签◆〓
  • 〓◆ PID相关专辑 29册 119M ◆〓

  • 谢谢 tyw前辈的资料

    使用特权

    评论回复
    9
    它山之石|  楼主 | 2019-1-24 21:09 | 只看该作者

    是的 增量的好理解一些

    使用特权

    评论回复
    10
    它山之石|  楼主 | 2019-1-24 21:10 | 只看该作者

    位置的不好理解

    使用特权

    评论回复
    11
    它山之石|  楼主 | 2019-1-24 21:10 | 只看该作者
    gx_huang 发表于 2019-1-20 11:21
    如果这个都疑惑,那疑惑的问题多了,你把PID搞好,估计得需要很长时间。

    嗯 这方面欠缺很多很多。。嘻嘻

    使用特权

    评论回复
    12
    zmw809154465| | 2019-6-3 07:32 | 只看该作者
    你搞懂没有?教教我?

    使用特权

    评论回复
    13
    cjseng| | 2019-6-3 11:05 | 只看该作者
    电机有惯性,PWM=0,只是让速度慢慢降下来,不会一下子就停止的,等到实际转速略低于给定转速时,PWM又变成正的了,就继续转下去了。
    实际上只考虑比例的话,输出转速通常是不断波动的

    使用特权

    评论回复
    14
    tianxj01| | 2019-6-3 11:29 | 只看该作者
    咱按照典型的电机控制概念,对象是一个H桥,那么,你这里就不需要有疑惑了,给出负的结果,就是意味着给电机施加负电压值,进行制动。
    对于单管PWM调速,则没法实现负电压制动,那么你就需要进行输出幅值限幅处理,这个和我们放大器输出有个实际输出电压范围的物理意义是一模一样的,当你得到负值,那么就进行限幅处理,变成PWM=0,输出,这时候的物理意义就是不施加驱动信号,电机会自然减速。
    你问的“那岂不是只要给定速度小于反馈速度,PID计算出的结果就是0,电机就停了?这么理解对么?”这个理解是错误的。
    PID控制,哪怕只是P项,我们实际控制是一个目标速度的比例值再去加减反馈速度误差*P的值,也就是说,比如,电机负载正常情况,每单位PWM代表1转,则如果我执行目标是100转,计算是这样来的PWM=100+error*P。

    使用特权

    评论回复
    15
    zyj9490| | 2019-6-3 12:16 | 只看该作者
    这是个动态闭环的过程,且电机及糸统有惭性,不可能速度一个阶跃出来。如果这样,PWM如你说的,没有输出,或反向阻尼。

    使用特权

    评论回复
    16
    zyj9490| | 2019-6-3 12:19 | 只看该作者
    PWM输出改变的电磁转距,而不是速度,而实际电机转速是电磁转距与负载转距共同作用的结果。

    使用特权

    评论回复
    发新帖 我要提问
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    个人签名:<img src="static/image/smiley/comcom/3.gif" class="vm">

    95

    主题

    547

    帖子

    4

    粉丝