智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 4495|回复: 16
打印 上一主题 下一主题

速度PID

  [复制链接]

3

主题

9

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
381
威望
243
贡献
136
兑换币
4
注册时间
2010-5-13
在线时间
1 小时
跳转到指定楼层
1#
发表于 2010-5-19 11:02:52 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
购买主题 已有 37 人购买  本主题需向作者支付 2 贡献 才能浏览

10

主题

51

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
387
QQ
威望
289
贡献
74
兑换币
0
注册时间
2010-6-26
在线时间
12 小时
推荐
发表于 2010-8-8 11:16:23 | 只看该作者
void SpeedPIDCtl(int real_speed, int aim_speed)
{
    unsigned char i;
    int tempSpeed;
    int sum_error;
    sum_error = 0;
    SpeedPID.Proportion = Kp;
    SpeedPID.Derivation = Kd;
    SpeedPID.Integral   = Ki;
    SpeedPID.SetPoint =  aim_speed;
    for(i=0; i<ERR_NUM -1; i++)
    {
        SpeedPID.Error[i] = SpeedPID.Error[i+1];
        sum_error += SpeedPID.Error[i];
    }
    SpeedPID.Error[ERR_NUM-1] = SpeedPID.SetPoint - real_speed;
    sum_error += SpeedPID.Error[ERR_NUM-1];
    SpeedPID.DerError[LAST_ERR_NUM-1] = SpeedPID.Error[ERR_NUM-1] - SpeedPID.Error[ERR_NUM-2];
    SpeedPID.dError  =  SpeedPID.DerError[LAST_ERR_NUM-1] - SpeedPID.DerError[0];
    for(i=0; i<LAST_ERR_NUM-1; i++)
    {
        SpeedPID.DerError[i] = SpeedPID.DerError[i+1];
    }
    tempSpeed = SpeedPID.Proportion * SpeedPID.Error[ERR_NUM-1] +
                SpeedPID.Integral * sum_error +
                SpeedPID.Derivation * SpeedPID.dError;}

一起看吧
回复 支持 1 反对 0

使用道具 举报

3

主题

113

帖子

0

精华

高级会员

Rank: 4

积分
529
QQ
威望
342
贡献
131
兑换币
0
注册时间
2010-11-13
在线时间
28 小时
17#
发表于 2011-4-14 02:20:35 | 只看该作者
回复 支持 反对

使用道具 举报

3

主题

113

帖子

0

精华

高级会员

Rank: 4

积分
529
QQ
威望
342
贡献
131
兑换币
0
注册时间
2010-11-13
在线时间
28 小时
16#
发表于 2011-4-14 02:20:30 | 只看该作者
回复 支持 反对

使用道具 举报

1

主题

59

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
379
威望
285
贡献
82
兑换币
0
注册时间
2010-11-12
在线时间
6 小时
15#
发表于 2011-4-13 15:58:06 | 只看该作者
很汗颜   这样的东西都可以拿出来卖钱。。。我都可以写了。。。
回复 支持 反对

使用道具 举报

15

主题

114

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1152
威望
360
贡献
752
兑换币
0
注册时间
2010-6-22
在线时间
20 小时
14#
发表于 2010-10-28 21:47:00 | 只看该作者
void SpeedPIDCtl(int real_speed, int aim_speed)
{
    unsigned char i;
    int tempSpeed;
    int sum_error;
    sum_error = 0;
    SpeedPID.Proportion = Kp;
    SpeedPID.Derivation = Kd;
    SpeedPID.Integral   = Ki;
    SpeedPID.SetPoint =  aim_speed;
    for(i=0; i<ERR_NUM -1; i++)
    {
        SpeedPID.Error[i] = SpeedPID.Error[i+1];
        sum_error += SpeedPID.Error[i];
    }
    SpeedPID.Error[ERR_NUM-1] = SpeedPID.SetPoint - real_speed;
    sum_error += SpeedPID.Error[ERR_NUM-1];
    SpeedPID.DerError[LAST_ERR_NUM-1] = SpeedPID.Error[ERR_NUM-1] - SpeedPID.Error[ERR_NUM-2];
    SpeedPID.dError  =  SpeedPID.DerError[LAST_ERR_NUM-1] - SpeedPID.DerError[0];
    for(i=0; i<LAST_ERR_NUM-1; i++)
    {
        SpeedPID.DerError[i] = SpeedPID.DerError[i+1];
    }
    tempSpeed = SpeedPID.Proportion * SpeedPID.Error[ERR_NUM-1] +
                SpeedPID.Integral * sum_error +
                SpeedPID.Derivation * SpeedPID.dError;}
一起看~~~~~~
回复 支持 反对

使用道具 举报

2

主题

44

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
416
QQ
威望
327
贡献
57
兑换币
0
注册时间
2010-9-18
在线时间
16 小时
13#
发表于 2010-10-28 19:01:11 | 只看该作者
好贵呀
回复 支持 反对

使用道具 举报

3

主题

34

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
406
QQ
威望
318
贡献
56
兑换币
24
注册时间
2009-11-13
在线时间
16 小时
12#
发表于 2010-9-10 21:27:32 | 只看该作者
有些贵为什么我没有看楼下亏大了
回复 支持 反对

使用道具 举报

2

主题

71

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
360
QQ
威望
298
贡献
40
兑换币
0
注册时间
2010-8-7
在线时间
11 小时
11#
发表于 2010-8-8 12:40:17 | 只看该作者
回复 10# 程辉程辉


    谢
回复 支持 反对

使用道具 举报

0

主题

10

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
213
威望
180
贡献
33
兑换币
0
注册时间
2010-7-15
在线时间
0 小时
9#
发表于 2010-7-15 12:30:44 | 只看该作者
好想买不起。。。。。。。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-28 10:29 , Processed in 0.059089 second(s), 33 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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