OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4330|回复: 3

对于PID控制电机转速的疑惑

[复制链接]

29

主题

73

帖子

0

精华

高级会员

Rank: 4

积分
511
金钱
511
注册时间
2015-10-11
在线时间
102 小时
发表于 2019-3-16 21:16:10 | 显示全部楼层 |阅读模式
15金钱
想请各位帮我解答一个疑惑,我用PID算法去控制电机转速,代码如下所示
cur_err = set_speed - cur_speed;
sum_err += cur_err;
duty = duty + (KP * cur_err ) + (KI * sum_err ) +(KD * (cur_err - last_err));
last_err = cur_err ;
这样也可以实现动态控制,但是和传统的PID公示不符啊。
我也试过 duty = (KP * cur_err ) + (KI * sum_err ) +(KD * (cur_err - last_err));
但是这样控制不了啊,如果没有误差的话误差积分不足以维持系统运行啊。
对此我很是疑惑,想请各位大神赐教。

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2019-3-17 02:30:49 | 显示全部楼层
回复

使用道具 举报

29

主题

73

帖子

0

精华

高级会员

Rank: 4

积分
511
金钱
511
注册时间
2015-10-11
在线时间
102 小时
 楼主| 发表于 2019-3-18 11:25:41 | 显示全部楼层
还请各位大神不吝赐教
回复

使用道具 举报

1

主题

2

帖子

0

精华

新手上路

积分
22
金钱
22
注册时间
2016-4-8
在线时间
3 小时
发表于 2019-3-20 16:44:14 | 显示全部楼层
上面的公式类似于增量PID,但还不是这样的,你下面的公式是标准的位置PID,不足以维持系统运行是什么意思?不能维持就有误差,有误差控制量就在增加,直到误差为零,这是一个动态平衡。其实速度环只用PI就可以了,因为速度本身就是位置的的微分,所以位置环一般只用P。标准PID确实在误差为零时只有积分起作用。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-23 00:37

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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