亿加合和智能车制作

标题: 求卓晴老师以及各位牛人解答:直立车平衡点出现抖动或自激现象 [打印本页]

作者: wuzexiao    时间: 2013-3-4 14:40
标题: 求卓晴老师以及各位牛人解答:直立车平衡点出现抖动或自激现象
直立车在平衡点附近并不能停在一点或者说是摆动的范围还是超过了3cm,并且在此过程中加大死区电压可以改善这个效果,但是此时会出现自激现象,小车在平衡点抖动保持轮子不产生位移,这对于小车的稳定性是不利的。对于小车出现这种情况的猜想:1、小车的机械结构中齿轮的咬合不好(不知是否所有的车模都是这样),存在着一定的回程差,所以小车处于动态平衡时无论是角度从正变为负或者负变为正时,小车总存在着一段“间隙”得不到及时的控制;2、电机本身的问题,电机由于要克服小车静态摩擦力,所以其实际控制中存在着死区(受电池的影响),从卓晴老师调试的视频可以看出,老师最后的调试结果中小车在平衡点附近还是有微小抖动以及位移;3、控制周期的问题(本人认为这个不是主要问题),我试过将控制周期改为1ms,当时小车仍然存在这样的问题。对于小车的这种情况虽然在实际的竞速比赛中是无意义的,但是对于研究小车系统是非常有意义的,从目前国产以及很多牛人制作的两轮车中,我们可以看到这种情况是普遍存在的,而美国SEGWAY的小车却不存在这个问题,所以希望有牛人出来解答这个问题。如果这种情况不是由于机械以及硬件的原因,那么这对于深入研究平衡车有重大的意义。

作者: 前行者cross    时间: 2013-3-4 16:24
这见地深刻
作者: qurrer    时间: 2013-3-4 16:47
硬件不够好,软件也需要优化吧
作者: wuzexiao    时间: 2013-3-4 17:30
qurrer 发表于 2013-3-4 16:47
硬件不够好,软件也需要优化吧

纳尼,一字千金。具体点,通俗点。

作者: qurrer    时间: 2013-3-4 18:14
wuzexiao 发表于 2013-3-4 17:30
纳尼,一字千金。具体点,通俗点。

车子偏离中心点角度很小时给电机小一点占空比,当车子偏离中心点角度比较大时再用大的占空比。

作者: zyj    时间: 2013-3-4 18:51
我现在觉得直立调的差不多就可以了。没必要那么纠结在这里
作者: 恋深蓝    时间: 2013-3-4 19:11
能站起来就可以直接下一步了,没必要纠结!
作者: 王海青    时间: 2013-3-4 19:24

作者: a3914925    时间: 2013-3-4 19:37

作者: 甜糖小海    时间: 2013-3-4 19:44

作者: hbqyzpy    时间: 2013-3-4 19:51

作者: 墨路相逢    时间: 2013-3-4 21:53
同意上面几个的观点,只要差不多就行了,纠结太久反而耽误时间!
作者: 崇文clover    时间: 2013-3-4 21:57

作者: 崇文clover    时间: 2013-3-4 21:57

作者: 徐晋鸿!    时间: 2013-3-4 23:20
有见解

作者: qk333444    时间: 2013-3-4 23:48
well...我的车也这样
作者: 为丞而琳    时间: 2013-3-5 00:37
我也这样啊,加上速度控制,令速度为0时,车子能在一厘米内移动,但车子一直抖啊,齿轮发出卡卡的声音啊,不懂怎么处理啊
作者: 河边有棵树    时间: 2013-3-5 09:34
表示  看不懂
作者: wuzexiao    时间: 2013-3-5 09:46
墨路相逢 发表于 2013-3-4 21:53
同意上面几个的观点,只要差不多就行了,纠结太久反而耽误时间!

本人是上届参加飞思卡尔比赛的。现在是在研究不同算法对于小车控制的问题。采用常规的极点配置以及LQR等线性系统控制的方法对于小车都可以实现平衡,并且在速度控制方面也有很棒的控制效果,但是美中不足的是线性的算法目前为止我还无法在静止直立方面调整得非常理想。所以抛出这样的问题是想让大家一起思考一下,到底是我们小车的硬件问题还是我们在控制方面存在着一些问题。作为自动化的学生,以后如果从事控制类的工作,独立思考,打破头颅想问题的意志是少不了。

作者: wuzexiao    时间: 2013-3-5 09:55
qurrer 发表于 2013-3-4 18:14
车子偏离中心点角度很小时给电机小一点占空比,当车子偏离中心点角度比较大时再用大的占空比。

确实是这样,模糊控制可以较好的解决这个问题。理论上应该是这样控制小车的,可惜的是我在我们的小车上调不到那种效果。请大神上传视频,看看你最后的调试结果。
作者: jingandlin    时间: 2013-3-5 10:09
只要站起来比较的稳,直接下一步吧
作者: wuzexiao    时间: 2013-3-5 10:14
jingandlin 发表于 2013-3-5 10:09
只要站起来比较的稳,直接下一步吧

好吧,你们都是参加比赛的!现在车子跑起来了没?

作者: jingandlin    时间: 2013-3-5 10:19
开始准备中。。。
作者: 破轮    时间: 2013-3-5 13:32
我为这个稳定性都伤了两个月的脑了,那些问题都想过。不过已经有人弄出很稳定的车了,说明那些已经不是问题了
作者: 寒冬的朝阳    时间: 2013-3-5 13:56
软件好好努力吧
作者: wuzexiao    时间: 2013-3-5 14:20
破轮 发表于 2013-3-5 13:32
我为这个稳定性都伤了两个月的脑了,那些问题都想过。不过已经有人弄出很稳定的车了,说明那些已经不是问题 ...

确实可以弄出很稳定的车。只要在电机的最大输出扭矩范围内能够调整过来的外部扰动,如果参数调得好,车子都可以很快稳定下来。不过这种稳定在平衡点的效果还是同样的。

作者: cuijing    时间: 2013-3-5 14:28

作者: 1102252970    时间: 2013-3-5 15:18

作者: mingongB    时间: 2013-3-5 16:05
感觉主要是齿轮间隙那边的问题吧,还有就是角度计算不够准确,小范围滞后,导致直立参数不敢加到更大
作者: wuzexiao    时间: 2013-3-5 16:40
mingongB 发表于 2013-3-5 16:05
感觉主要是齿轮间隙那边的问题吧,还有就是角度计算不够准确,小范围滞后,导致直立参数不敢加到更大

角度计算准确度的计算可以通过编码器来测试。我现在使用的传感器不是飞思卡尔指定的陀螺仪以及加速度计,现在使用的传感器比这个好很多,而且其准确度我也通过编码器(2048线的)测试过了,可以说非常接近真实值了。所以我一直怀疑是齿轮的原因。卓晴老师真的潜水了。

作者: qurrer    时间: 2013-3-5 16:48
我的还在调啊,学长的车子已经调的很好了,不过人家已经去上班实习了
作者: 释是圣杰    时间: 2013-3-5 17:08

作者: wuzexiao    时间: 2013-3-5 17:20
qurrer 发表于 2013-3-5 16:48
我的还在调啊,学长的车子已经调的很好了,不过人家已经去上班实习了

呵呵,我上班搞得就是控制,所以过来看看做智能车的孩子们。
作者: Аレしêη    时间: 2013-3-5 17:46

作者: ベ咔布奇シ诺    时间: 2013-3-5 19:24
确实存在这方面的问题
作者: qurrer    时间: 2013-3-5 19:59
wuzexiao 发表于 2013-3-5 17:20
呵呵,我上班搞得就是控制,所以过来看看做智能车的孩子们。

你也来做做车子,给 我们提供一下技术支持

作者: 吢冇紷蒠    时间: 2013-3-5 20:31

作者: Damphy    时间: 2013-3-5 23:24

作者: 2011飞飞飞    时间: 2013-3-5 23:30

作者: 为丞而琳    时间: 2013-3-6 00:38
好想知道答案啊,我的车怎么都会抖啊,卡卡卡的
作者: wuzexiao    时间: 2013-3-6 09:14
为丞而琳 发表于 2013-3-6 00:38
好想知道答案啊,我的车怎么都会抖啊,卡卡卡的

如果单纯要求小车在平衡点的稳定性,那么直立的参数应该小一点,不过当车子跑起来的时候,抖动问题基本不存在,所以对于你们参加比赛的,主要考虑的应该是小车的加减速性能,小车硬一点调节时间就小一点。

作者: 602王帅    时间: 2013-3-6 10:03

作者: hmit    时间: 2013-3-6 10:46
要是对角度控制加上积分呢?
作者: wuzexiao    时间: 2013-3-6 11:08
hmit 发表于 2013-3-6 10:46
要是对角度控制加上积分呢?

车可以在没有速度闭环的情况下站立,不过抖动很大,让你受不了,所以建议不要加上去。由于姿态检测的信号可能存在噪声,积分会产生误差累积,所以才选用PD控制,然后通过速度闭环来使得小车静止直立。
作者: 为丞而琳    时间: 2013-3-6 12:01
wuzexiao 发表于 2013-3-6 09:14
如果单纯要求小车在平衡点的稳定性,那么直立的参数应该小一点,不过当车子跑起来的时候,抖动问题基本不 ...

我给一个比较大的速度时,车子就前倾的很厉害,很快的冲出去,然后再减速下来,最后就匀速了,怎么处理这一个超调的过程?
作者: wuzexiao    时间: 2013-3-6 13:37
为丞而琳 发表于 2013-3-6 12:01
我给一个比较大的速度时,车子就前倾的很厉害,很快的冲出去,然后再减速下来,最后就匀速了,怎么处理这 ...

小车起始状态给一个较小的速度,或者起始状态将PI参数的I去掉,等延时一段时间再加上I。因为起始状态I累加的很快,所以当你给一个较大的速度时,小车会产生一个很大的倾角来加速。所以你可以通过限制积分项的范围或者对起始状态特殊处理的方法来解决这个问题。

作者: 乔大侠    时间: 2013-3-6 13:43

作者: 为丞而琳    时间: 2013-3-6 18:43
wuzexiao 发表于 2013-3-6 13:37
小车起始状态给一个较小的速度,或者起始状态将PI参数的I去掉,等延时一段时间再加上I。因为起始状态I累加 ...

多谢啦,我试试看

作者: yhs    时间: 2013-3-6 19:35
wuzexiao 发表于 2013-3-6 13:37
小车起始状态给一个较小的速度,或者起始状态将PI参数的I去掉,等延时一段时间再加上I。因为起始状态I累加 ...

楼主:
      我想问,我看了你说的所有问题。我觉得直立的抖动是机械机构的问题,我尝试过通过配重,使得车的前后质量差不多,把直立的抖动问题解决了。
      另外,我对速度控制很不理解。首先,你前面说让车硬一点是什么概念?为什么车硬一点就可以使得车的速度调节时间较少呢?我之前发现我怎么调参数,那个控速的周期都是100ms,根本没有办法修改,修改了马上就不能控制速度。
      还有第二个问题,对于速度闭环,我使用的增量式的PID,而我只能用PD去控速,我一用I来控速,车马上就会因为太快而倒了,没办法直立。但是我看到你说你是上一届做过飞车的,而我也是,现在大四,虽然没机会参加了,但是我依然想知道速度的控制应该用PI还是PD控制的呢?它的控制周期可以缩短吗?我听说今年的飞车的直立车的电机改变了,我有点冲动想买回来看看控制周期可不可以小于100ms,可以用增量式的PI控制,而不用增量式的PD控制呢?希望可以在大四结束之前解决这点疑问,我也像楼主一样想解决一些直立车的问题,希望多多交流。

作者: yahui123    时间: 2013-3-6 21:26

作者: 六个柚子    时间: 2013-3-6 23:52
站着跟跑起来的状态是两码事
作者: wuzexiao    时间: 2013-3-7 09:42
yhs 发表于 2013-3-6 19:35
楼主:
      我想问,我看了你说的所有问题。我觉得直立的抖动是机械机构的问题,我尝试过通过配重,使 ...

       首先非常感谢您帮我解开了抖动这个疑问。让电机硬一点实际就是让速度小车的PID参数大一点,这样可以使得小车的调节时间缩短,不过会增加超调量,所以在直立站立时一般是不希望系统超调过多的,这样对于站立情况不利,但是对于车在行走时,我们希望能够小车能够很快地达到我们给定的速度,所以PID参数大一点可以有较快地响应速度(前提参数不会大到让小车抖动)。
      对于您提到的速度控制周期的问题,在实际的伺服控制中,电机的控制频率一般是1K或者更高,而在卓晴老师所讲的速度控制环节实际上并不是电机的伺服控制环,而是小车的运动控制环(伺服控制环一般有速度伺服以及力矩伺服,是为了保证电机输出需要的力矩)。小车的运动控制环是我们人对小车下达速度命令的环节,它的直接效果是改变小车的倾角使得小车加速或者减速(卓老师里面介绍的改变小车的速度实际上是通过改变角度来实现的),对于小车直立控制来说,速度控制实际上是一个扰动,会影响小车的稳定性,所以在这里小车的速度控制周期要大于或者等于小车的直立控制周期。您说的100ms控制周期的问题,我也试过用10ms来控制,实际结果也是可以实现的。只不过对于速度的给定要平滑点,不能对直立造成太大的扰动(剧烈加减速会不稳定)。
      另一个问题是电机控制用PI还是PD。要精确控制电机的速度PI是必须的,而D的功能有减少超调的作用,对于小车速度控制来说,PI控制是主导作用。使用PD控制不能消除系统的稳态误差(这个可以通过传递函数的稳态误差计算得到),所以速度控制用PI控制,你也可以加上D。
      这些都是我个人的看法,如果有什么问题请您指出。非常高兴能和你有这样交流的机会。

作者: fanyunfeng    时间: 2013-3-7 16:17
我也是觉得只要能够直立就直接下一步吧
作者: 瓜豪gh    时间: 2013-3-7 16:59
硬件
作者: icefire    时间: 2013-3-7 18:07
电机不够好。一是死区问题。还有电机响应是要时间的。
作者: cmwanysys    时间: 2013-3-7 20:34

作者: Peaker    时间: 2013-3-7 21:22
看看
作者: tian_zhuo    时间: 2013-3-7 22:03

作者: fish007    时间: 2013-3-8 13:19
CCD怎么弄啊?
作者: wuzexiao    时间: 2013-3-8 13:39
fish007 发表于 2013-3-8 13:19
CCD怎么弄啊?

这个没弄过。不过网上貌似有模块买的。好像还带上位机
作者: fish007    时间: 2013-3-8 13:47
wuzexiao 发表于 2013-3-8 13:39
这个没弄过。不过网上貌似有模块买的。好像还带上位机

对啊,可是串口的那个线不知道怎么连…………

作者: wuzexiao    时间: 2013-3-8 17:21
fish007 发表于 2013-3-8 13:47
对啊,可是串口的那个线不知道怎么连…………

,这个你要问一下商家或者找一下资料了。据我所知貌似买的基本都能用。
作者: fish007    时间: 2013-3-8 17:34
哎……好吧,我再看看,谢谢你
作者: fish007    时间: 2013-3-8 17:34
wuzexiao 发表于 2013-3-8 17:21
,这个你要问一下商家或者找一下资料了。据我所知貌似买的基本都能用。

哎……好吧,我再看看,谢谢你
作者: 南工★YIHUI    时间: 2013-3-9 21:46
学习学习
作者: yhs    时间: 2013-3-9 21:56
wuzexiao 发表于 2013-3-7 09:42
首先非常感谢您帮我解开了抖动这个疑问。让电机硬一点实际就是让速度小车的PID参数大一点,这样可 ...

  首先,非常感谢您的回复,解开了我一些疑团,让我可以带小点疑团离开学校。
  不过我还是想继续解开另外一些疑团,第一,不知道您有无发现其实以前那车的直立控制参数可以在很大一部分范围里面实现直立的,既然速度的PID参数大一点,车就会硬一点(这是您的说法),那直立参数大一点对于直立是不是就会更好呢?但是这个时候就会使得车的速度控制差一点,对吗?
  关于速度的控制,我对于增量式的PID还是有一点了解的,但是我以前那车只要使用I,马上就会倒了,尤其是在开始的时候,超调非常厉害,难道是我给的速度变化太大吗?您是怎么定义给定速度的平滑性呢?速度满足什么函数关系的时候可以实现速度给定平滑呢?
  然后我表示十分佩服您,因为我以前只要使用小于100ms的控速周期,那车就基本是控速不成功的了,我想知道您是怎么可以实现小于100ms的控速周期的,我当时被这个周期给搞死了。

作者: 老衲想多了    时间: 2013-3-10 01:20

作者: chenyuchenyu    时间: 2013-3-10 09:44
有见解
作者: wen123    时间: 2013-3-10 12:01

作者: 迷起有天    时间: 2013-3-10 13:58

作者: Tenacity    时间: 2013-3-10 16:25
直立车的速度pwm是直接加在直立上面的么。。。我试了好久  还是一直加速。。。怎么回事啊。。。

作者: 抓住指間の落寞.    时间: 2013-3-10 17:58
:
作者: 旋转げ命运    时间: 2013-3-10 20:16

作者: 赦叶    时间: 2013-3-10 21:02
{:soso_e100:}
作者: 程伟NO.1    时间: 2013-3-10 21:04

作者: chachacha    时间: 2013-3-10 21:20

作者: wangpeng1    时间: 2013-3-10 21:41
直立啊 头痛
作者: hpbfsj    时间: 2013-3-11 00:23
学习了
作者: wuzexiao    时间: 2013-3-11 09:02
yhs 发表于 2013-3-9 21:56
首先,非常感谢您的回复,解开了我一些疑团,让我可以带小点疑团离开学校。
  不过我还是想继续解开另 ...

      对于小车直立的PD参数,P的可调范围很大,只要满足能够克服重力加速度的分量就可以实现直立。这个在官方的资料里面有解释。但是为什么加上速度控制那个调节范围就没那么大了的问题,建议您参考一下固高科技的倒立摆建模,里面讲得很详细。加上了速度PI控制,闭环系统的极点会改变,过大会产生震荡,不能保证收敛了,这样系统就不能稳定了。对于小车的整个控制,如果您进行仿真就可以很清晰的看出各个参数对系统的影响。
      对于100ms的控制周期您是按照官方的把它平均在20个控制周期的吧!我采用的是位置式PID(不过采用增量式的应该也没问题),您试一下把参数调一下,看看能不能解决,我确实没遇到您说的这个一定要100ms控制的问题。如果您对系统进行建模,你可以用matlab进行实验仿真,控制周期在10ms确实是可以实现的。

作者: wuzexiao    时间: 2013-3-11 09:05
yhs 发表于 2013-3-9 21:56
首先,非常感谢您的回复,解开了我一些疑团,让我可以带小点疑团离开学校。
  不过我还是想继续解开另 ...

速度平滑可以使这样的,如果想从速度10加速到100,那您可以选取多几个点,然后按照直线或者指数等曲线的方法进行速度给定。说白了就是多选取几个点,而不是直接从10变为一百,这样扰动太大很容易就倒了!
作者: wuzexiao    时间: 2013-3-11 09:06
Tenacity 发表于 2013-3-10 16:25
直立车的速度pwm是直接加在直立上面的么。。。我试了好久  还是一直加速。。。怎么回事啊。。。

方向是反的。实际是一个正反馈,看官方的第二版解释得很清楚
作者: Tenacity    时间: 2013-3-11 10:28
wuzexiao 发表于 2013-3-11 09:06
方向是反的。实际是一个正反馈,看官方的第二版解释得很清楚

记性反的也试过了,,,,问题还是没解决啊

作者: wuzexiao    时间: 2013-3-11 10:59
Tenacity 发表于 2013-3-11 10:28
记性反的也试过了,,,,问题还是没解决啊

那你先看看是不是你测速那一块出问题了。调一个PI试试控速的效果。

作者: 奋斗小青年、    时间: 2013-3-11 11:31
程伟NO.1 发表于 2013-3-10 21:04

你好,不要呲牙
作者: 阿亮    时间: 2013-3-11 15:59

作者: 程伟NO.1    时间: 2013-3-11 19:40
奋斗小青年、 发表于 2013-3-11 11:31
你好,不要呲牙

我是学你。。。
作者: 程伟NO.1    时间: 2013-3-11 19:40
奋斗小青年、 发表于 2013-3-11 11:31
你好,不要呲牙

我那是学的你

作者: 曾云春    时间: 2013-3-11 21:34
恩,看看吧
作者: 蛊惑小夜    时间: 2013-3-11 22:58
楼主,我是这么理解PI控速的,在设定速度为0的情况下,把整个系统看做是一个弹簧系统,I的作用即是弹簧的回复力,因为它的作用力和车偏离原点的位置成正比,那么P的作用即可以理解为阻尼力或是摩擦力,因为它总是和速度运动方向相反的,阻碍速度的增加,这样看来在调节速度控制的时候应该先调整I的大小使车像弹簧一样在原点来回震荡,再调节P使这种震荡减小到最小,稳定回到原点而不超调。但很多人都说是先调P,而我按我的方法先给I的时候就会出现向前运动时I的作用可以使车回到原点,但向后运动时就会一直过了原点加速运动直到倒下,难道真的是我这种算法模型建立的不对?楼主当年速度PI是怎么调的啊
作者: wuzexiao    时间: 2013-3-12 08:58
蛊惑小夜 发表于 2013-3-11 22:58
楼主,我是这么理解PI控速的,在设定速度为0的情况下,把整个系统看做是一个弹簧系统,I的作用即是弹簧的回 ...

抛开小车系统,如果你对电机进行控速,P是其主导作用的,当你的速度大于给定速度时,得到的erro是一个负的值,这样通过P控制就可以使得小车的速度降下来,反之亦然。而单纯的P控制不能消除余差,所以这就需要增加一个I来消除稳态误差,这部分可以由PID控制的传递函数来分析。对于小车的调试,官方是先调I参数,具体原因我也不是特别清楚(可能是I参数调试效果比较明显),其实我一般都是两个一起调的,先给一定的P,然后增加I,再增加P的。你出现的这个问题你可以先看一下你编码器采集结果有没有问题,然后再来调PI。

作者: dec112233    时间: 2013-3-12 16:02

作者: lyb    时间: 2013-3-12 16:29
学到很多啊
作者: 圣徒    时间: 2013-3-12 19:11
我们的也是这样啊在零点处有轻微的抖动,我正在尝试用双零点法
作者: wuzexiao    时间: 2013-3-13 08:57
圣徒 发表于 2013-3-12 19:11
我们的也是这样啊在零点处有轻微的抖动,我正在尝试用双零点法

亲,能不能叙述一下什么叫双零点法?
作者: 额_好吧    时间: 2013-3-13 09:45

作者: 额_好吧    时间: 2013-3-13 09:45

作者: 夜月L    时间: 2013-3-13 10:42

作者: wsdyi100    时间: 2013-3-13 15:13
{:soso_e100:}
作者: new_life    时间: 2013-3-13 16:10

作者: 抓住指間の落寞.    时间: 2013-3-13 16:45
表示车还未装好,表示要如何调直立平衡,求大神们给点资源




欢迎光临 亿加合和智能车制作 (http://www.znczz.com/) Powered by Discuz! X3.2