智能车制作

 找回密码
 注册

扫一扫,访问微社区

楼主: 汪洋大海
打印 上一主题 下一主题

各位大牛!小弟实在是蛋疼了,帮忙看看这蛋疼的PID波形,是什么问题啊?

  [复制链接]

36

主题

420

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2528
威望
1341
贡献
513
兑换币
18
注册时间
2011-7-10
在线时间
337 小时
21#
发表于 2012-5-19 13:04:50 | 只看该作者
znfc2 发表于 2012-5-18 09:01
我换了个编码器,依然有问题,我也不知道问题何在

你用的增量式PID,调整的参数是PI的还是PID的???还是PD的????
回复 支持 反对

使用道具 举报

16

主题

228

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1700
威望
950
贡献
394
兑换币
60
注册时间
2012-2-5
在线时间
178 小时
毕业学校
重庆大学
22#
发表于 2012-5-19 15:33:17 | 只看该作者
QianDE1991 发表于 2012-5-19 12:39
你的PID就是书上的那个DU=kp(e[0]-e[-1])+ki(e[0] )+kd(e[0]-2e[-1]+e[-2])?????
我看网上有些写着是增 ...

就是这个,40ms读一次,100线的
回复 支持 反对

使用道具 举报

36

主题

420

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2528
威望
1341
贡献
513
兑换币
18
注册时间
2011-7-10
在线时间
337 小时
23#
发表于 2012-5-19 16:25:46 | 只看该作者
cqu_cj 发表于 2012-5-19 15:33
就是这个,40ms读一次,100线的

在读下一次反馈之前是不是一直用前一次的反馈重复运算???

还是读一次反馈计算一次??
回复 支持 反对

使用道具 举报

36

主题

420

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2528
威望
1341
贡献
513
兑换币
18
注册时间
2011-7-10
在线时间
337 小时
24#
发表于 2012-5-19 16:26:33 | 只看该作者
汪洋大海 发表于 2012-5-18 17:51
速度给定值后采回来的速度值是这样的,疑似编码器坏了!

你这个软件是什么??能跟我讲下吗??

回复 支持 反对

使用道具 举报

5

主题

169

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2904
威望
1523
贡献
819
兑换币
227
注册时间
2011-5-21
在线时间
281 小时
25#
 楼主| 发表于 2012-5-19 16:27:58 | 只看该作者
QianDE1991 发表于 2012-5-19 16:26
你这个软件是什么??能跟我讲下吗??

这是我们软件班的基友自己写的上位机,呵呵
回复 支持 反对

使用道具 举报

16

主题

228

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1700
威望
950
贡献
394
兑换币
60
注册时间
2012-2-5
在线时间
178 小时
毕业学校
重庆大学
26#
发表于 2012-5-19 16:29:52 | 只看该作者
QianDE1991 发表于 2012-5-19 16:25
在读下一次反馈之前是不是一直用前一次的反馈重复运算???

还是读一次反馈计算一次??

每个周期只读一次啊!,我们采集完图像读一次,然后在算法中都用那个值
回复 支持 反对

使用道具 举报

36

主题

420

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2528
威望
1341
贡献
513
兑换币
18
注册时间
2011-7-10
在线时间
337 小时
27#
发表于 2012-5-19 16:31:46 | 只看该作者
cqu_cj 发表于 2012-5-19 16:29
每个周期只读一次啊!,我们采集完图像读一次,然后在算法中都用那个值

那就相当于读一次,计算上百次或以上(用同一个设定值和反馈值??)
回复 支持 反对

使用道具 举报

36

主题

420

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2528
威望
1341
贡献
513
兑换币
18
注册时间
2011-7-10
在线时间
337 小时
28#
发表于 2012-5-19 16:33:11 | 只看该作者
汪洋大海 发表于 2012-5-19 16:27
这是我们软件班的基友自己写的上位机,呵呵

哦哦,这样的啊~~我有基友的软件,只是基友说那个发送间隔10MS左右,这样我如果要3MS发一次会出问题,所以想问问的
回复 支持 反对

使用道具 举报

36

主题

420

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2528
威望
1341
贡献
513
兑换币
18
注册时间
2011-7-10
在线时间
337 小时
29#
发表于 2012-5-19 16:36:01 | 只看该作者
cqu_cj 发表于 2012-5-19 16:29
每个周期只读一次啊!,我们采集完图像读一次,然后在算法中都用那个值

int pid_calc_v2(void)
{
  int change;
  pid->error_0=pid->set-pid->back;
  #if 0
  if (abs1(pid->error_0) < dead_band) //0-max加速阶段,积分项不用,即积分项用于微小控制,可能在小车中可去掉
  {
    pid->KD =0;
  }
  else
  {
   pid->KD=(float)(0.50);
  }
  #endif
  change=pid->KP*(pid->error_0-pid->error_1)+pid->KI*pid->error_0

         +pid->KD*(pid->error_0-2*pid->error_1+pid->error_2);

  pid->error_1=pid->error_0;
  pid->error_2=pid->error_1;
  return(change);

}


这个是我写的,error_0是当前误差error_1是前一次误差,error_2是上上次误差

不知道我这样有没有错???

回复 支持 反对

使用道具 举报

5

主题

169

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2904
威望
1523
贡献
819
兑换币
227
注册时间
2011-5-21
在线时间
281 小时
30#
 楼主| 发表于 2012-5-19 16:55:56 | 只看该作者
QianDE1991 发表于 2012-5-19 16:33
哦哦,这样的啊~~我有基友的软件,只是基友说那个发送间隔10MS左右,这样我如果要3MS发一次会出问题,所以 ...

我们这个有五个通道,发送函数是放在主函数的for循环中的,循环一次发一次,发多了或者波特率过高电脑会死机{:soso_e129:}
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-22 09:35 , Processed in 0.159614 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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