智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 4510|回复: 9
打印 上一主题 下一主题

电机PID控制

[复制链接]

17

主题

83

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1458
威望
743
贡献
303
兑换币
8
注册时间
2012-2-21
在线时间
206 小时
跳转到指定楼层
1#
发表于 2012-7-8 12:25:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请教一个问题: 之前都是开环跑,这两天调闭环,用PID只能给一个PID设定值,只要改变设定值,电机就会狂转,一时还检查不到原因
void Speed_PID(uint expect,uint feedback)
{
  motor_err=expect-feedback;
  speedP=lastspeed + KpSP*(motor_err-lastmotor_err);
  lastspeed=speedP;
  lastmotor_err=motor_err;
  PWMDTY67=speedP;
}

这个是电机闭环控制程序

9

主题

399

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2323
QQ
威望
1319
贡献
554
兑换币
90
注册时间
2011-9-18
在线时间
225 小时
2#
发表于 2012-7-8 13:14:40 | 只看该作者
只用P控制?
回复 支持 反对

使用道具 举报

17

主题

83

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1458
威望
743
贡献
303
兑换币
8
注册时间
2012-2-21
在线时间
206 小时
3#
 楼主| 发表于 2012-7-8 15:02:00 | 只看该作者
isearching 发表于 2012-7-8 13:14
只用P控制?

加了个I,差点把电机搞坏,差速齿轮都磨了
回复 支持 反对

使用道具 举报

55

主题

1286

帖子

0

精华

跨届大侠

Rank: 10Rank: 10Rank: 10

积分
8827

优秀会员奖章活跃会员奖章在线王奖章论坛元老奖章资源大师奖章论坛骨干奖章

威望
4121
贡献
2694
兑换币
1967
注册时间
2012-5-8
在线时间
1006 小时
4#
发表于 2012-7-8 15:37:33 | 只看该作者
你的公式好像有问题。。。另外注意你定义的变量值的范围
回复 支持 反对

使用道具 举报

68

主题

807

帖子

0

精华

杰出人士

Rank: 12Rank: 12Rank: 12

积分
12168

优秀会员奖章活跃会员奖章在线王奖章论坛骨干奖章论坛元老奖章

QQ
威望
7954
贡献
2434
兑换币
496
注册时间
2011-10-4
在线时间
890 小时
5#
发表于 2012-7-8 21:18:53 | 只看该作者
最好不要这样搞,输入是什么输出还是什么。
回复 支持 反对

使用道具 举报

3

主题

51

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
361
威望
249
贡献
70
兑换币
30
注册时间
2012-7-12
在线时间
21 小时
毕业学校
吉林大学
6#
发表于 2012-8-1 16:01:51 | 只看该作者
回复 支持 反对

使用道具 举报

1

主题

9

帖子

0

精华

注册会员

Rank: 2

积分
114
威望
64
贡献
30
兑换币
0
注册时间
2012-10-21
在线时间
10 小时
7#
发表于 2012-10-21 12:09:56 | 只看该作者
回复 支持 反对

使用道具 举报

55

主题

401

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1987
威望
1361
贡献
22
兑换币
638
注册时间
2012-9-23
在线时间
302 小时
毕业学校
同济大学
8#
发表于 2013-1-18 18:45:03 | 只看该作者
公式真错了啊
回复 支持 反对

使用道具 举报

21

主题

121

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1178
QQ
威望
651
贡献
281
兑换币
218
注册时间
2012-7-20
在线时间
123 小时
9#
发表于 2013-2-3 19:02:37 | 只看该作者
pwm_dianji = PWMDTY45 + Kp*(speed_error - last_speed_error)+Ki*speed_error+Kd*(speed_error-2*pre_speed_error+last_speed_error);
有学长留的这个公式,我在纠结呢
回复 支持 反对

使用道具 举报

4

主题

69

帖子

0

精华

高级会员

Rank: 4

积分
936
威望
483
贡献
279
兑换币
323
注册时间
2013-10-18
在线时间
87 小时
10#
发表于 2014-2-19 16:18:42 | 只看该作者
参数错了,输入的不该是速度,该是编码器的值
回复 支持 反对

使用道具 举报

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

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-6-19 01:33 , Processed in 0.053427 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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