智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 4618|回复: 8
打印 上一主题 下一主题

[软件类] 速度PID控制的程序不知是否正确,大家帮忙看看吧

[复制链接]

4

主题

7

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
465
威望
348
贡献
91
兑换币
0
注册时间
2010-10-12
在线时间
13 小时
跳转到指定楼层
1#
发表于 2012-3-15 20:31:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 yuzhaokun 于 2012-3-15 20:35 编辑

我们的小车已经可以基本站立了,但朝一个方向加速运动,我们想将速度控制加入。
整个车的控制思路是按这个官方的框图来的


这是我的速度控制函数

现在有如下几个问题请教大家:
第一:第一张图中官方的角度信息更新周期是5ms,速度控制周期是100ms;我们自己的角度信息更新周期是6.2ms,速度控制周期是124ms,这样是否合适;
第二:我们对于PID控制理论理解不深,上述速度控制函数是否正确;
第三:我们的车在平衡位置附近5度范围内,小车不做反应,观察波形发现,在平衡位置5度范围内,滤波后的角度基本不发生变化,是不是大家所说的滤波后的波形细节不够丰富。
波形参见这个帖子:http://www.znczz.com/thread-84501-1-1.html

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

2

主题

311

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2811

论坛骨干奖章优秀会员奖章技术大牛奖章

威望
1705
贡献
606
兑换币
245
注册时间
2011-3-28
在线时间
250 小时
2#
发表于 2012-3-15 20:48:25 | 只看该作者
(1) 可以参见设置指南附录中的最新控制框架;
(2)上述控制函数最后一句错了:应该是 Speed_Control_Out = Speed_Delta * Speed_Control_P + Speed_Control_Integral. 注意:不是 +=,而是=;
(3)如果车模在5度范围内不做反应,还需要认真检查解决这个问题;
(4)最后提醒,框图中速度控制量是和角度控制量相减,而不是相加。请注意控制框图中的加减符号。
回复 支持 反对

使用道具 举报

19

主题

667

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2730

热心会员奖章特殊贡献奖章论坛骨干奖章推广达人奖章在线王奖章活跃会员奖章优秀会员奖章

威望
1504
贡献
364
兑换币
29
注册时间
2012-2-4
在线时间
431 小时
毕业学校
外国语学校
3#
发表于 2012-3-15 21:58:35 | 只看该作者
吉他手 发表于 2012-3-15 20:48
(1) 可以参见设置指南附录中的最新控制框架;
(2)上述控制函数最后一句错了:应该是 Speed_Control_Out =  ...

那个官方2.0的那个版本我记得有个速度平滑的函数,因为速度脉冲采样是每5ms一次,那么那个fvalue在这5ms是个定值, 那么那个速度平滑函数是也是每5ms调用一次吗??
回复 支持 反对

使用道具 举报

2

主题

311

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2811

论坛骨干奖章优秀会员奖章技术大牛奖章

威望
1705
贡献
606
兑换币
245
注册时间
2011-3-28
在线时间
250 小时
4#
发表于 2012-3-15 22:07:23 | 只看该作者

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

7

主题

81

帖子

0

精华

高级会员

Rank: 4

积分
889
威望
599
贡献
204
兑换币
61
注册时间
2011-1-9
在线时间
43 小时
5#
发表于 2012-3-16 10:30:47 | 只看该作者
人家角度那块用的增量式的pid,不是位置式的。虽然不是很好用,调好了也是可以的
回复 支持 反对

使用道具 举报

21

主题

273

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2915
威望
1628
贡献
643
兑换币
264
注册时间
2012-1-15
在线时间
322 小时
6#
发表于 2012-5-2 17:50:29 | 只看该作者
吉他手 发表于 2012-3-15 20:48
(1) 可以参见设置指南附录中的最新控制框架;
(2)上述控制函数最后一句错了:应该是 Speed_Control_Out =  ...

老师,关于速度反馈的正负问题,我只这样理解的。

由于角度控制无法使车模保持直立静止,只能有一个向前的小的加速度,这表明给电机的电压还不够大,不足以使车轮的运动超过车体。这就需要速度反馈。根据现在的位置、要求它所在的位置,还有现在的速度、要求它所达到的速度,来判断是使电机电压继续增大还是减小。当车模向前运动时,就要在给车模一个向前的小的速度,让车轮的运动超过车体,这就是靠位移Pi来实现的。由于只有Pi会发生震荡,所以需要阻尼系数来使其缓解震荡,这就是Pd的作用。

不知道这样理解是否正确,还请老师指点。

另外还想问一个问题。我上学期学了自动控制原理这门课,用的是北工大孙亮编的教材。书后的题做得都不错,给什么题都会算,考试成绩也相当不错。但是到了设计这块完全发蒙。比如什么时候用比例,什么时候用微分,积分,微分积分都有什么用,还有什么稳定性判据,Nyquist定理,校正法。。。这些理论的东西在实际中该怎样应用啊?想把他们用在智能车中,但是毫无头绪。。。我是学微电子的,做智能车就是为了玩,自己喜欢。
回复 支持 反对

使用道具 举报

2

主题

311

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2811

论坛骨干奖章优秀会员奖章技术大牛奖章

威望
1705
贡献
606
兑换币
245
注册时间
2011-3-28
在线时间
250 小时
7#
发表于 2012-5-2 19:29:12 | 只看该作者
yssdsz 发表于 2012-5-2 17:50
老师,关于速度反馈的正负问题,我只这样理解的。

由于角度控制无法使车模保持直立静止,只能有一个向 ...

你的第一个问题的理解大部分应该是正确的。但是车模之所以只在直立控制下无法保持静止,最主要的原因就是传感器的零点有偏差和漂移引起的。所以通过速度反馈来自动调节这个零点。

课程上的学习是为了奠定一些理论基础。遇到实际问题,还需要从控制的基本原理来进行理解和处理。原来的的理论学习是为了自己在解决实际问题的时候能够有正确的指导。但实际的措施还是通过实际的控制效果加以选择和调整。


回复 支持 反对

使用道具 举报

7

主题

103

帖子

0

精华

高级会员

Rank: 4

积分
944
威望
538
贡献
250
兑换币
52
注册时间
2012-2-17
在线时间
78 小时
毕业学校
***************
8#
发表于 2012-5-16 19:04:10 | 只看该作者
学习
回复 支持 反对

使用道具 举报

0

主题

15

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
427
威望
268
贡献
105
兑换币
6
注册时间
2012-2-16
在线时间
27 小时
毕业学校
北方工业大学
9#
发表于 2012-5-23 14:50:47 | 只看该作者
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-1 10:28 , Processed in 0.079780 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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