金牌会员
- 积分
- 1582
- 威望
- 858
- 贡献
- 372
- 兑换币
- 342
- 注册时间
- 2012-2-28
- 在线时间
- 176 小时
- 毕业学校
- 重庆大学
|
本帖最后由 wsdyi100 于 2013-1-18 20:40 编辑
最近把速度闭环控制加到直立控制上,无论怎么调PI参数都调不到官方视频的那种效果,那种感觉。
我的速度闭环是增量式PI;u0+= u; u = pd * (e-e0) + pi *e;让后把u化成20份在u0的基础上加到速度PWM上去;
先阐述下我对PI闭环的理解,不对的请纠正:角度控制输出的角度PWM是负责直立控制的,当只有直立控制,车模可能往一个方向越来越加速的运动,这是因为角度所产生的PWM总是欠缺一点,不足以将车模拉回到平衡位置;这时加上速度闭环控制,闭环控制会产生速度的PWM,将速度的PWM加上角度的PWM刚好可以将欠缺的PWM给补上,把小车拉回平衡位置。
于是在这种想法上我把小车的角度PWM和速度PWM每次采集回来看数据,如图该图我设置的光设置了PI参数的P值为20;(I值也弄过,没什么效果,反而还不如直立)红色为角度PWM,黄色为速度PWM,蓝色为为速度(正为前,负为后),淡红色为角度PWM减去速度PWM;
这是两个PWM值减的值去控制电机,结果车的反应就是一放车车就很快的往后仰,加速跑,越跑越快,最后往后倒下;我觉得这是控制电机的PWM值不够大,本来角度控制的PWM就不够大,现在减了个闭环速度的平PWM,当然不能将小车拉回来了,车子一旦PWM不够,往后倾的就更厉害,角度检测到更大的倾角就会给更大的PWM,速就会有更大的速度,速度闭环一检测,也会产生更大(这里有点模糊);于是,我就想把两个PWM值加起来不久刚好可以有足够的PWM把小车拉回来了吗;于是我把程序里的两个PWM值该为相加;加上后如下图(也是值加了P值)相加后是这样,(颜色代表如上图)角度的PWM和速度的PWM极性竟然变相反了,这加起来不和上面的减一样么,我搞不懂是为啥? 这个只改了个加减怎么两个PWM值极性相反了,我看这个图的角度PWM好像是错,应速度为正时,即前倾,角度PWM(红色)应该是为负的而上图却变为正。真不懂是为什么。
视频还在审核中,主要是车往前跑到速度为0的时候,车体后仰一点,往后加速,在推它一下,等到速度为0的时候又后仰一点,又往后加速,后仰是车的后倾角度越来越大
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|