智能车制作

标题: 速度控制算法不解~! [打印本页]

作者: zhanghuaping    时间: 2012-4-1 10:14
标题: 速度控制算法不解~!
本帖最后由 zhanghuaping 于 2012-4-1 10:16 编辑

             我用这个控制算法不能实现官网视频那种效果?设速为0时,如果我单单调节P反而能使得车子来回摆动,说明P是通过控制电机来调节设定角度的,我这时怎么加D(正反都试过)都不能让他快速停下了。
           而且积分的时候有时会出现问题,会积的好大啊!
           不太理解这个控制算法!路过的讲讲你们的见解,深入的剖析一下!!!感激不尽!



作者: 吉他手    时间: 2012-4-1 11:37
之所以能够形成这个算法,它的来源在参考设计指南的速度控制一节中,作者费了很大的篇章试图说明它的来历。建议你先仔细的看看这块内容。如果在这儿展开说明,相对比较困难。你可以将你看的过程中的疑问在这儿提出。
此外如果你增加了速度反馈P之后能够使得车模出现来回摆动,而不再朝着一个方向加速了。那么再增加D就应该可以减少车模的速度震荡了。
防止速度反馈中的积分值过大,还是需要仔细校正角度零点值,使得即使没有速度反馈的情况下,车模就已经接近静止。这样就可以避免速度控制中的积分过大了。

作者: dright_chao    时间: 2012-4-1 12:02
吉他手 发表于 2012-4-1 11:37
之所以能够形成这个算法,它的来源在参考设计指南的速度控制一节中,作者费了很大的篇章试图说明它的来历。 ...

以前调出过您说的效果,但是给速度之后跑不动,这是什么原因呢?

作者: wo520    时间: 2012-4-1 13:59
这个你还是先尝试一下,再问会比较好!!
作者: fshunj    时间: 2012-4-1 16:58
吉他手 发表于 2012-4-1 11:37
之所以能够形成这个算法,它的来源在参考设计指南的速度控制一节中,作者费了很大的篇章试图说明它的来历。 ...

你所说的速度算法是PI还是PD啊?怎么又说积分,又说D.


作者: 吉他手    时间: 2012-4-1 20:11
fshunj 发表于 2012-4-1 16:58
你所说的速度算法是PI还是PD啊?怎么又说积分,又说D.

本质上是通过速度反馈到输出电压的PI调节,但是在参考指南中是通过速度反馈到车模角度的PD调节。所以究竟是PI,还是PD需要看反馈量的参数定义。一般的讲只讲PI就可以了。但是无法理解为什么反馈的量是于电机控制量相加而不是相减。这一点的确比较矛盾。因此参考指南中是从速度反馈到车模角度控制来讲解速度控制的,因此就称之为PD调节。有点乱,希望你们能够理解。如果认识不到这与常规车模速度调节恰恰相反现象的存在,那么现在你们对于控制算法还存在着误区。
建议看看参考指南中的讲解,如果有问题欢迎提出。。。。。。。

作者: zl6977    时间: 2012-4-2 17:47
本帖最后由 zl6977 于 2012-4-2 17:49 编辑
吉他手 发表于 2012-4-1 20:11
本质上是通过速度反馈到输出电压的PI调节,但是在参考指南中是通过速度反馈到车模角度的PD调节。所以究竟 ...

我理解的参考方案里面的测速方案:参考方案里面说1/(Tz*s+1)近似成1/(Tz*s)积分,把原本的微分作用Kd/Tz跟这个1/(Tz*s)合并起来了,所以在参考程序里面没有单独的微分D的步骤。

我没学过自控,不知我理解的对不对?唉,卡这好久了,车子提不起速来。说是要重做直立静止。我现在的直立还是不能做到一动不动,总在2CM的范围内小幅来回走动,轻推它一下也能不倒。以前我用外部中断加AB相测速的方法车子还能勉强跑一圈。现在换分时复用,用PWM的正负来判断车轮转向,加上控速反而走不起来了,不管速度设为多大。会不会跟底层的测速有关啊。。。
作者: 吉他手    时间: 2012-4-2 17:55
zl6977 发表于 2012-4-2 17:47
我理解的参考方案里面的测速方案:参考方案里面说1/(Tz*s+1)近似成1/(Tz*s)积分,把原本的微分作用Kd/Tz跟 ...

你对于参考方案中的速度控制理解是对的。
至于后面改动之后出现的车模无法完成一圈运行的情况,还是需要你仔细检查每一个环节是否存在BUG。如果你使用AB相能够比较精确的确定车模的速度,我觉得你还可以继续使用原来的方案。

作者: zl6977    时间: 2012-4-2 18:00
吉他手 发表于 2012-4-2 17:55
你对于参考方案中的速度控制理解是对的。
至于后面改动之后出现的车模无法完成一圈运行的情况,还是需要 ...

参考方案中的陀螺仪电路,静止时的输出一直在变大或者变小,我用的5V供电。想听听您对这个问题的分析。

作者: 慕名凤姐而来    时间: 2012-4-2 18:09
学习!~
作者: 吉他手    时间: 2012-4-2 18:11
zl6977 发表于 2012-4-2 18:00
参考方案中的陀螺仪电路,静止时的输出一直在变大或者变小,我用的5V供电。想听听您对这个问题的分析。

如果陀螺仪输出的确不稳定的话,建议:(1)减小放大电路的放大倍数;(2)对于得到的数据进行滤波;(3)适当减小角度补偿时间常数Tz。如果还是解决不了的话,是需要考虑你的传感器的稳定性了。

作者: zl6977    时间: 2012-4-2 18:20
吉他手 发表于 2012-4-2 18:11
如果陀螺仪输出的确不稳定的话,建议:(1)减小放大电路的放大倍数;(2)对于得到的数据进行滤波;(3) ...

我用的5v供电,中立点电压设到了2.xV,而陀螺仪本身的基准是1.33V左右,有没有可能是电流灌到ENC03里面,造成温度升高什么的。设的那个中立点电压是不是应该越接近Vref(1.33V)越好呢?
我用DATASHEET上的电路,放大也是10倍,就几乎不漂,可以排除芯片不稳吧。

我不是电类专业的,说的不对让您见笑了。

作者: 玩ㄝ★卟恭    时间: 2012-4-3 11:11
CAR_SPEED_SETfDelta应该就是CAR_SPEED_SETfDelta  不知道大家是怎么理解的

补充内容 (2012-4-5 09:37):
CAR_SPEED_SETfDelta应该就是CAR_SPEED_SET吧  不知道大家是怎么理解的
作者: 林夕22    时间: 2012-4-21 20:28
大家都好厉害啊
作者: dx1001    时间: 2012-4-27 11:17
充电了!
作者: Goolloo    时间: 2012-4-27 13:34
楼主试试把d变成负的?
作者: madd    时间: 2012-5-5 13:14
积分参数需不需要置0
作者: madd    时间: 2012-5-5 13:16
积分后的那个g_SpeedCrolIntegral需要置0吗?
作者: 644822830    时间: 2012-5-25 01:11

作者: liucheng_34    时间: 2012-10-23 17:07
顶一个

作者: liucheng_34    时间: 2012-10-23 18:52
吉他手 发表于 2012-4-1 20:11
本质上是通过速度反馈到输出电压的PI调节,但是在参考指南中是通过速度反馈到车模角度的PD调节。所以究竟 ...

吉他大哥,我看参考手册里的速度控制第5遍了,有几点困惑的地方,希望能和你交流下:速度控制分析的整体流程是:手册先对角度控制进行了分析,然后对车模运动速度的稳定性进行了分析。
问题1:前者的在简化模型过程中提到"忽略车模倾角引起车轮加速度",这样做的目的是什么呢?我理解这个车轮加速度是向后的,这样才能产生向后的速度,才能形成倾角。如果忽略了,怎么会有倾角产生。
问题2:车模由直立到给定角度这个过渡阶段,应该不会有向前的加速度吧,还是只要车模有向前的倾角就立刻会向前加速呢?
问题先提到这,还有几个~~~





作者: 吉他手    时间: 2012-10-23 21:37
应该说,手册中对于速度控制的讲解应该是很失败。的确没有讲的太清楚。但是它主要想强调两点:
(1)在调整速度控制和车模保证角度控制之间有关联,解开这个关联(俗称解耦)需要通过控制速度控制环 增益来达到。
(2)速度控制过程为了抑制过冲,需要引入微分控制。
但是这个之间的关系确实比简单形象讲解直立控制有些困难。
理解手册中所谓的简化和忽略某些环节,是指速度控制回路的时间常数比较大,相对于车模直立控制来讲。
不是不愿意讲清楚,我的智慧还是很有限。容我再想想。。。
作者: alvin1991    时间: 2012-10-24 12:33
学习
作者: `俟。    时间: 2013-1-5 00:28
请问你说的官网视频  是指?

作者: 登高使者    时间: 2014-1-2 16:04
zl6977 发表于 2012-4-2 17:47
我理解的参考方案里面的测速方案:参考方案里面说1/(Tz*s+1)近似成1/(Tz*s)积分,把原本的微分作用Kd/Tz跟 ...

你好!我现在不太懂这个"换分时复用,用PWM的正负来判断车轮转向",请问能不能指导一下呢?谢谢你啦!
作者: 天河之外    时间: 2014-1-6 17:01

作者: zl6977    时间: 2014-1-7 16:27
登高使者 发表于 2014-1-2 16:04
你好!我现在不太懂这个"换分时复用,用PWM的正负来判断车轮转向",请问能不能指导一下呢?谢谢你啦!

这都坟贴了啊。。都两届没做了,要不是今天要查点东西,论坛都不会上了。我记得“换分时复用,用PWM的正负来判断车轮转向”这句话当时是这个意思:1.分时复用是相对于外部中断计数而言的,当时没想那么多,居然用了外部中断去计数,程序很容易被打乱。。。一定要换成“脉冲累加器的分时复用”去分别读左右轮的脉冲值。之所以是复用,是因为当时的xs128只有一个脉冲累加器。
2.用PWM的正负来判断车轮转向,这个好说,就是最终输出的PWM是正,那么我就认为轮子是正转,反之,PWM是负我就认为是反转。实际情况当然不一定是这样,因为还有轮子的惯性之类的原因嘛。



作者: 登高使者    时间: 2014-1-11 09:13
zl6977 发表于 2014-1-7 16:27
这都坟贴了啊。。都两届没做了,要不是今天要查点东西,论坛都不会上了。我记得“换分时复用,用PWM的正负 ...

恩恩!还是要感谢你的!
作者: 竹兰    时间: 2014-4-7 10:09
zl6977 发表于 2014-1-7 16:27
这都坟贴了啊。。都两届没做了,要不是今天要查点东西,论坛都不会上了。我记得“换分时复用,用PWM的正负 ...

请问,你的分时复用,是怎样用的?我不太懂,可以讲解下么?




欢迎光临 智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2