智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 5819|回复: 31
打印 上一主题 下一主题

舵机PD求助 ·········

  [复制链接]

2

主题

15

帖子

0

精华

注册会员

Rank: 2

积分
98
威望
67
贡献
15
兑换币
28
注册时间
2013-12-29
在线时间
8 小时
毕业学校
xian
跳转到指定楼层
#
发表于 2014-6-7 21:10:29 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
5贡献
D=error[0]-2*error[1]+error[2];
     P=error[0]-error[1];
     output=(int)(Kp*P+Kd*D);

    error[2]=error[1];//记录上上一次偏差
    error[1]=error[0]; //记录上一次偏差
     error[0]=result;  //读取当前偏差

   error[2];error[1];error[0];为什么这三个值老是相等啊

回复

使用道具 举报

54

主题

837

帖子

0

精华

跨届大侠

Rank: 10Rank: 10Rank: 10

积分
7535
威望
5099
贡献
1882
兑换币
1028
注册时间
2014-1-5
在线时间
277 小时
31#
发表于 2014-6-8 16:33:32 | 只看该作者
楼主  给不给分???
回复

使用道具 举报

0

主题

19

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
238
威望
145
贡献
57
兑换币
94
注册时间
2013-2-20
在线时间
18 小时
毕业学校
中山大学
30#
发表于 2014-6-8 09:34:19 | 只看该作者
静态仿真看一下吧,也许是你采集速度比处理速度要慢呢
回复

使用道具 举报

54

主题

837

帖子

0

精华

跨届大侠

Rank: 10Rank: 10Rank: 10

积分
7535
威望
5099
贡献
1882
兑换币
1028
注册时间
2014-1-5
在线时间
277 小时
29#
发表于 2014-6-8 09:07:33 | 只看该作者
☆孑与二 发表于 2014-6-7 22:12
x是0,1,-1变化

其实数是变得  只是变得很快而已  而且不止是-1,0,1;变化范围其实是更大的。
回复

使用道具 举报

54

主题

837

帖子

0

精华

跨届大侠

Rank: 10Rank: 10Rank: 10

积分
7535
威望
5099
贡献
1882
兑换币
1028
注册时间
2014-1-5
在线时间
277 小时
28#
发表于 2014-6-8 09:05:26 | 只看该作者
☆孑与二 发表于 2014-6-7 22:12
x是0,1,-1变化

我靠   变化就对啦   
回复

使用道具 举报

10

主题

153

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1405
威望
732
贡献
311
兑换币
457
注册时间
2014-2-21
在线时间
181 小时
27#
发表于 2014-6-8 08:52:52 | 只看该作者
☆孑与二 发表于 2014-6-7 21:48
哪个?result没更新~~~~?

你说你的error都是同一个数,error是不是位置的偏移量,你用的作差还是?
回复

使用道具 举报

1

主题

392

帖子

0

精华

常驻嘉宾

软件的辅助造就机械的完美。

Rank: 8Rank: 8

积分
4078
QQ
威望
2364
贡献
1062
兑换币
979
注册时间
2014-3-15
在线时间
326 小时
26#
发表于 2014-6-7 22:33:07 | 只看该作者
感觉是变量类型的问题,你可以在你的kp数后面加个.0
回复

使用道具 举报

2

主题

15

帖子

0

精华

注册会员

Rank: 2

积分
98
威望
67
贡献
15
兑换币
28
注册时间
2013-12-29
在线时间
8 小时
毕业学校
xian
25#
 楼主| 发表于 2014-6-7 22:27:33 | 只看该作者
qq1358381353 发表于 2014-6-7 22:24
变量类型定义错了了吧?整形的话,小于一就一直是零。

int  无符号 整形···
回复

使用道具 举报

2

主题

15

帖子

0

精华

注册会员

Rank: 2

积分
98
威望
67
贡献
15
兑换币
28
注册时间
2013-12-29
在线时间
8 小时
毕业学校
xian
24#
 楼主| 发表于 2014-6-7 22:26:32 | 只看该作者
醒世恒言 发表于 2014-6-7 22:15
定义的是不是全局变量???这个 error[0]=result;  //读取当前偏差  应该放在pd前面才能使用这次的偏差

全局变量···放前也一样
回复

使用道具 举报

1

主题

392

帖子

0

精华

常驻嘉宾

软件的辅助造就机械的完美。

Rank: 8Rank: 8

积分
4078
QQ
威望
2364
贡献
1062
兑换币
979
注册时间
2014-3-15
在线时间
326 小时
23#
发表于 2014-6-7 22:24:18 | 只看该作者
变量类型定义错了了吧?整形的话,小于一就一直是零。
回复

使用道具 举报

44

主题

314

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
3248
QQ
威望
1625
贡献
881
兑换币
811
注册时间
2012-6-14
在线时间
371 小时
22#
发表于 2014-6-7 22:15:00 | 只看该作者
定义的是不是全局变量???这个 error[0]=result;  //读取当前偏差  应该放在pd前面才能使用这次的偏差
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-6 22:55 , Processed in 0.122647 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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