智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 18283|回复: 30
打印 上一主题 下一主题

舵机的PID控制输出

    [复制链接]

19

主题

160

帖子

0

精华

高级会员

Rank: 4

积分
919
QQ
威望
487
贡献
284
兑换币
0
注册时间
2009-11-4
在线时间
74 小时
跳转到指定楼层
#
发表于 2010-4-15 18:18:47 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
//位置式 PID 控制设计
unsigned int LocPIDCalc(int NextPoint)
{
    register int  iError,dError;
  
  iError = sptr->SetPoint - NextPoint;       //偏差
  sptr->SumError += iError;       //积分
  dError = iError - sptr->LastError;     //微分
  sptr->LastError = iError;
      
  return(sptr->Proportion * iError            //比例项
           + sptr->Integral * sptr->SumError   //积分项
           + sptr->Derivative * dError);        //微分项
}

第一:以上的是位置式PID 算法,输入的是从CCD中读取过来的黑线的中点,setpoint的值是舵机位置。按照凌阳公司的PID解说,好像这个函数的返回值是具体的位置,而不是增量。其实PID的程序,比如说要偏差啦,积分了,微分了,这些设置我是懂的,我也看了好多大学的报告,也包括他们的程序,程序也很少。感觉还是有点云里雾里的。这个返回值到底是什么东西,是舵机角度的增量吗??还是PWM的增量,还是直接是具体位置(比如采集40个点,正中是20)?我知道增量式PID算出来是增量的,最后要实现控制的话还得加上原来的PWM数值。这个位置式是什么情况。
看过whut_wj的一个回答,输出的是PWM的增量。但是,他回答的是增量式的,而不是位置式的。

1

主题

88

帖子

0

精华

高级会员

Rank: 4

积分
516
QQ
威望
250
贡献
152
兑换币
174
注册时间
2014-11-6
在线时间
57 小时
毕业学校
广技师
30#
发表于 2015-2-7 15:24:14 | 只看该作者
请问楼主如果用PID来控制舵机,我不知不懂怎么算那个偏差值,都没有可测量的输出量
回复 支持 反对

使用道具 举报

3

主题

563

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
3808

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

QQ
威望
1710
贡献
906
兑换币
1148
注册时间
2013-8-24
在线时间
596 小时
29#
发表于 2013-10-21 22:24:28 | 只看该作者
回复 支持 反对

使用道具 举报

0

主题

7

帖子

0

精华

注册会员

Rank: 2

积分
121
威望
56
贡献
47
兑换币
36
注册时间
2013-9-16
在线时间
9 小时
28#
发表于 2013-10-21 18:21:34 | 只看该作者
借鉴一下
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

注册会员

Rank: 2

积分
57
威望
39
贡献
12
兑换币
13
注册时间
2013-8-1
在线时间
4 小时
毕业学校
北华航天工业学院
27#
发表于 2013-8-6 11:04:47 | 只看该作者
给舵机独立供电可以有效防止舵机抖动的问题。
回复 支持 反对

使用道具 举报

4

主题

21

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
327
威望
214
贡献
79
兑换币
0
注册时间
2012-4-15
在线时间
17 小时
毕业学校
安徽三联学院
26#
发表于 2012-7-12 20:25:47 | 只看该作者
cuiyulian 发表于 2011-6-21 17:57
怎么才能让舵机减少抖动呢   希望不吝赐教啊

你好!你的抖动问题解决了吗?
回复 支持 反对

使用道具 举报

4

主题

21

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
327
威望
214
贡献
79
兑换币
0
注册时间
2012-4-15
在线时间
17 小时
毕业学校
安徽三联学院
25#
发表于 2012-7-12 20:22:30 | 只看该作者
50833713 发表于 2010-4-16 09:07
级联了是给7,可以直接给,但是有个问题要考虑,就是PWM的分频系数那,如果时钟太大,那么为了保证1.5MS的高 ...

高手,能和我说说增量式PID的一些步骤吗?最好带程序
回复 支持 反对

使用道具 举报

7

主题

68

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1305
威望
765
贡献
276
兑换币
4
注册时间
2011-9-27
在线时间
132 小时
24#
发表于 2012-5-19 13:41:11 | 只看该作者
楼主我也是有这么的疑问~~本来以为位置式的话是直接就是输出了,但是想了下不太对
现在还好疑惑~
回复 支持 反对

使用道具 举报

2

主题

128

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1024
威望
622
贡献
102
兑换币
0
注册时间
2011-12-16
在线时间
150 小时
23#
发表于 2012-5-19 13:06:08 | 只看该作者
50833713 发表于 2010-4-16 09:07
级联了是给7,可以直接给,但是有个问题要考虑,就是PWM的分频系数那,如果时钟太大,那么为了保证1.5MS的高 ...

谢谢解释 不过 不是很明白 云里雾里
回复 支持 反对

使用道具 举报

0

主题

18

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
365
威望
217
贡献
34
兑换币
0
注册时间
2012-3-8
在线时间
57 小时
毕业学校
安徽大学
22#
发表于 2012-5-3 22:23:18 | 只看该作者
good
回复 支持 反对

使用道具 举报

6

主题

741

帖子

0

精华

常驻嘉宾

大坏蛋

Rank: 8Rank: 8

积分
3542

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

威望
2051
贡献
627
兑换币
193
注册时间
2012-3-11
在线时间
432 小时
21#
发表于 2012-4-19 21:43:13 | 只看该作者
mark
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-15 15:11 , Processed in 0.086231 second(s), 34 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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