智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 2783|回复: 7
打印 上一主题 下一主题

电机P控制始终调节不到指定的速度,求教

[复制链接]

9

主题

26

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1179
威望
704
贡献
235
兑换币
4
注册时间
2010-11-11
在线时间
120 小时
跳转到指定楼层
1#
发表于 2012-3-9 17:15:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
speed_offset[1]=speed_offset[0];
speed_offset[0]=speed_wanted-speed;   //获得本次速度偏差值

Pre_Control_Speed = Control_Speed;
Control_Speed = Pre_Control_Speed
                    + (int)(Speed_K)*(speed_offset[0]-speed_offset[1]);//PID增量式
if(Control_Speed>600){  //限幅控制
       Control_Speed=600;
    }
    else if(Control_Speed<0){
       Control_Speed=0;
    }
   
    PWMDTY67=Control_Speed;

我用的增量式,单用P控制发现个很奇怪的问题,当我设定恒定速度50时(发现改成60,70也一样),最后调节的结果是稳定在40,调试看了一下speed_offset[0]和speed_offset[1]都是20左右,相减以后自然就没有输出,稳定在40了!我的P算式没写错吧?为什么跟踪恒定值都有误差呢?

4

主题

240

帖子

0

精华

跨届大侠

Rank: 10Rank: 10Rank: 10

积分
6812

论坛元老奖章

QQ
威望
1268
贡献
4600
兑换币
65
注册时间
2011-10-22
在线时间
472 小时
2#
发表于 2012-3-9 18:30:34 | 只看该作者
因为单用比例控制存在着静态误差,你加个积分或者微分就OK了
回复 支持 反对

使用道具 举报

15

主题

228

帖子

0

精华

常驻嘉宾

初出茅庐

Rank: 8Rank: 8

积分
3123
QQ
威望
1384
贡献
957
兑换币
45
注册时间
2011-3-7
在线时间
391 小时
3#
发表于 2012-3-9 21:24:16 | 只看该作者
(int)(Speed_K)*(speed_offset[0]-speed_offset[1]);//这个是D
(int)(Speed_K)*(speed_offset[0]);// 这个是P
回复 支持 反对

使用道具 举报

9

主题

26

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1179
威望
704
贡献
235
兑换币
4
注册时间
2010-11-11
在线时间
120 小时
4#
 楼主| 发表于 2012-3-10 00:04:00 | 只看该作者
我用的是增量式啊,你那是位置式
回复 支持 反对

使用道具 举报

0

主题

50

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
398
威望
292
贡献
64
兑换币
0
注册时间
2012-1-11
在线时间
21 小时
5#
发表于 2012-3-19 13:00:36 | 只看该作者
主要是积分吧,P调好了就上I
回复 支持 反对

使用道具 举报

22

主题

276

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
4309
威望
2101
贡献
1034
兑换币
502
注册时间
2012-2-3
在线时间
587 小时
毕业学校
农大
6#
发表于 2012-3-19 13:16:34 | 只看该作者
I是关键,没有I的话,不可能严格达到设定速度
回复 支持 反对

使用道具 举报

9

主题

26

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1179
威望
704
贡献
235
兑换币
4
注册时间
2010-11-11
在线时间
120 小时
7#
 楼主| 发表于 2012-3-19 22:32:36 | 只看该作者
我知道加I以后就能精确控制,就是光加P为什么无论设什么速度最后出来都是一个定值有点不懂
回复 支持 反对

使用道具 举报

59

主题

234

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2831

热心会员奖章推广达人奖章

威望
737
贡献
1890
兑换币
0
注册时间
2012-2-20
在线时间
102 小时
毕业学校
华中科技大学
8#
发表于 2012-3-29 21:13:19 | 只看该作者
wulicheng 发表于 2012-3-19 22:32
我知道加I以后就能精确控制,就是光加P为什么无论设什么速度最后出来都是一个定值有点不懂

只有比例环节确实会有一个恒定误差,我们上学期上自控原理书里面有讲,你可以查查自动控制原理
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-21 17:52 , Processed in 0.044910 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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