飞思卡尔是一段基情燃烧的岁月,是白天课上的一堆瞌睡,是傍晚擦赛道的一盆抹布,凌晨的一桶康师傅,是清晨的一缕阳光。。。。然而,我的飞思卡尔就这样先告一段落了,我的第一届智能车,也可能是最后一届,下一届就大三了,那时就是实验室的新生力量的奋斗了。
其实是决赛的时候忘记了调速度档,以一个中速跑了下来,嘿嘿,二逼吧,遗憾吧,两米三的速度,还能上两个档,最高能稳两米六,他能做到啊!只是可惜呀,都说没有遗憾怎么叫青春。说的真操蛋,真特么有道理。除了我,还有通过这届比赛认识的好多高手,真的是遗憾,不过还要记住人品是守恒的,努力和付出了,就会有收获,可能这次不是收获的时候,嘿嘿,这样想会好一些吧。
这段期间,感谢论坛里的朋友们,更要感谢某群的群友们,你们真的是又会水又会套路又很牛逼,跟你们学到了很多。进国赛的加油,带着兄弟们的遗憾,嘿嘿。下面,说说我头一年做车的一些渣渣经验,没有啥,就是自己比赛前和比赛后的一些日记,就是想着万一谁看着能用的上就行。
直立调节: 角度环: 首先融合角度,陀螺仪积分得到的角度和加速度计得到的角度融合,融合后的角度在和加速度计计算得到的角度对比,目标是 1、 融合后的角度稳定的时候波动的值尽量小,在小数点后一位波动,这个需要调节参数PACC,这个参数是对加速度计的信赖程度,即权重分配。(加速度计得到的角度是很不稳定的) 2、调节B_P 使融合的角度和加速度计的角度跟随,以为加速度计灵敏,反应姿态快,所以要让融合的角度尽量不滞后于当前的角度。 上位机理想效果图: file:///C:\Users\ADMINI~1\AppData\Local\Temp\msohtmlclip1\01\clip_image001.jpg
简单来讲,一要稳定,二要跟随度好。 实际上,给车PWM试验时,能立的很稳的时候的波形不一定是最好的,以实际为准。
角度环是用PID调节里的P,D调节,P的控制量是融合后的角度,D的控制量是实时积分出的角度值。 P是调整回复力,D是防止超调 单P是能立起来的。 先调节P,找到P的方向,即正负;然后慢慢增大,肯定单P是能立住的,然后P增大到有超调的现象,就是上下在平衡位置晃动,这个时候增加D,也是先找到D的方向,正反馈就是方向反了。D的量个人觉得是微调的,慢慢增加他,会发现超调越来越小,直到你摆动车身的时候立刻回复平衡位置。
速度环:P,I调节 P的控制量是设定速度减去平滑滤波后的速度 I的控制量是设定速度减去当前速度的积分
按照桌老师的方案: 一:静态调节速度环 先调节I,(在有角度环的时候调节速度环)先确定I的方向 正常的现象是 向一个方向推小车,小车会自己回到原来的位置,并在原来的位置来回震荡,然后再加P,直到小车能迅速回到原来的位置。 二:动态调节速度环 在静态调节速度环达到所需效果后,给一定的速度,小车能够匀速前进。这里面有个积分限制的问题,最开始不用加积分限制。 具体算法之后再说
继续说明速度环:静态调节I控制震荡幅度, I大了的现象是推出去会很快回来,但是会过冲向反方向荡出去,一直往复下去。 I小了的现象是推出去后不能很快荡回来甚至回不来。 如果I刚好感觉 合适,就开始加速度环的P P是让小车迅速回到设定速度。 在调节好I的基础上,开始加P,一点一点给P,感受车的现象,小车震荡会越来月减少,直到小车能够没有过冲,推出去后回到原来的位置。 如果小车回来的不够迅速,那么就在你之前感觉合适的I的基础上,在加I,同时根据加I的现象再加P。 动态的时候最好把方向环加上,没有方向环也行。给定速度,看小车能否维持这个速度前进,我的车是静态很好,但是给速度就会有不稳。 <<PID.gif>> 这个动态图片是PID的作用,很形象
省赛回来了,是啊,就是充满了遗憾,小翔的实力我是清楚的,就所有赛区而言,他就是国赛的水平。嘿嘿,不提了。
再次简单说一下平衡车的调试方法: 1、角度环。用的模拟I2C,比较稳定,但是速度较慢,但是够控制了。用mpu6050读取角加速度的值,用mma7361读取加速度的值,角速度积分得到实时角度Angle_g,但在此基础上需要乘以一个时间系数BP(后面继续说),mma7361得到的是AD值,16位,0~65535.找到物理中值,方法是转一圈,找到最大值,最小值,做和除以2,挺准的,再乘以一个系数将AD值映射到-90到90度记为Angle_a。然后将两个传感器得到的角度值进行互补滤波融合角度Angle_present。互补滤波就是先加权,在将融合后的角度Angle_present传给角加速度得到的角度Angle_g,逐次逼近,互补滤波。这里为什么要将陀螺仪的角加速度得到的角度权重给的很大,是因为角速度计得到的数据不稳定,晃动很大,就是放在桌子上,自己都会有很大的跳动,这很正常,所以引入陀螺仪积分得到的角度,他的曲线基本没有毛刺,很光滑,所以权重较大,所以融合的时候需要好好调节之前所说的那个系数BP,达到融合角度Angle_present与Angle_a曲线基本重叠,并且不出现过冲,而且要跟随得很好。就像上面的那张图一样。这是理想的。然后就可以加PD控制了,P的控制量就是角度Angle_present加上你需要的零偏角。D的控制量是实时角度值。 我的第一辆车最开始单P立不起来,找了很久的原因,才发现是电机的死区电压给的太大了,其实死区电压基本不需要。但是改小了死区电压后,单P仍然不是很稳,加一点点D就好了。 但是我的第二辆车,因为陀螺仪的位置装在了车轴附近,单P就立的稳的不行,虽然不可思议,但是真的是这样,比赛的时候也是单P跑的。单P跑2.6m没问题。结构很重要。 2、速度环。编码器一开始用的学长传下来的编码器,512线迷你。正交解码,用的是CD4013解析方向,但是CD4013总是会坏一路,特别邪门,第一辆车就用这个跑的,过了校赛,买的泰庆的小钢炮,真的是小的不行,但是唯一不太好的地方就是轴不太结实,稍微有一点瓢,带自己解析方向的,省着在用CD4013了。速度环说简单很简单,说费劲能让你烦到不行。PI控制,P控制量是设定速度减去平滑滤波后的实时速度,I的控制量是设定速度减去实时速度的积分,这个就不多说了。调节速度环,你一定会遇到一个现象,忽快忽慢,如果你PI一个劲再调节,也不好使,那就是你的控制周期有问题,绝对是这样!我经历这段时期的时候都已经崩溃了。调节速度环,到后来掌握了一套方案:首先静态去调,之前有说过,找到PI的方向,然后在比较大的回环上,用蓝牙发送速度,先给单P,看速度是否能达到设定速度,达到也肯定是上下跳动很大的,这个时候给I,慢慢调节I,这个时候速度就会渐渐平稳,然后在大跑道上跑,再跟踪速度的值。这样调节速度环,感觉还是很准的。这里忘了说,积分限幅很重要,有的时候限制的太小速度环的I就不起作用了。个人建议:回环可以用KT板,可以摩轮胎,如果你的轮胎摩擦力感觉不够,可以这样试试,但是真正的最好最有效的磨轮胎方法就是跑,哈工大的一朋友的车就是硬跑的,跑了一年。轮子摩擦力足够了。结构很重要 3、方向环。
方向控制就是最最平凡的差比和,最开始用过三个电感,两边判断方向,中间电感做偏差,然而最开始初值采的不好,车子跑的时候角度变化会导致不线性,试过将采集初值和角度拟合成函数,但是效果不太好,可能是自己没处理明白吧。到校赛前就是用的差比和,电感肯定是要掰一下的,内八字。太切八字,十字晃,太水平,又会串道,这里调节的方法就是找到一个合适的值,在十字和容易串道的地方一个劲调试,采集板的增益也得调节,采集电感值小的时候,不容易串道,但是十字太切内。所以这需要适中。这里忘了说,归一化,你调好之后,记录你的值,然后归一化,我做的不是很好,以至于最后没有用归一化,不归一化的缺点就是适应性不强。校赛的时候是用的分段P,效果还好。去省赛的时候用的中间一个竖直电感,他能完全分出直道,大S,十字。给分段PD就更好给了,效果还好吧。采集的AD值用AD硬件16次滤波加上软件平滑滤波20次。模糊算法没有用过,自己渣。前瞻38厘米。结构很重要。 4、车子的结构真的太重要了。我的车是倒着跑的,东北赛区我就看到了一辆也是倒着跑的。之前想着倒着跑就是试一试,结果就这样用了,坡道是个难题,急坡真的不好上,只要是稍微缓一点就能上了,坡道今年就是垃圾,也没处理。倒着跑都说直道能加速到不可控,我的车没有出现这个问题,给多少是多少,挺稳的,拐弯很灵敏。就是坡道啊,,因为是倒着跑,所以单杆,很稳,对了,电感信号线,用最细的那种屏蔽线,网上有,比漆包线啥的稳多了,16位AD晃动值100多,就是线不太好做,不过我队友真的牛叉,做的特别好,而且3D打印技术好,陀螺仪槽,电池支架,电机驱动槽,都做的特别好,结构很紧凑,陀螺仪的位置就在车轴上,我觉得单P能够控制得这么硬就是因为陀螺仪放在这的原因吧。重心很低,但是后来因为物理平衡角度太高了,出于无奈,加了配重,其实车一定是越轻跑得越快,前提重心低,好的跑车不也是轻,且地盘低,排量大。排量的话,我们的电机驱动是BTN7971,明年也想用,因为这个芯片有电流反馈引脚,之前一直想试着电流闭环,电池对电机的影响还是不小的,以至于后来哪套参数适应于哪个电池都记的明明白白。结构很重要啊。
最后:想对那些遗憾没有进国赛的车友说一句勉励的话: 出于信仰,心有不甘。面向未来,春暖花开。
|