搜索
bottom↓
回复: 20

平衡车速度控制原理是怎么样的?

[复制链接]

出0入0汤圆

发表于 2015-10-7 22:17:53 | 显示全部楼层 |阅读模式
本人用了stm32主控弄了平衡小车,现在小车完全可以平衡,没有加码盘上去的。  现在不知道怎么控制前进后退,看了飞思卡尔的方案,说是改变倾角控制速度,但是都不懂,看了好多别人程序,还是不知道怎么解决。关于加上码盘怎么使小车更平稳的原理不懂。现在有3个问题。

1.平衡车怎么样才能前进后退,控制它原理是什么?

2.添加码盘,记录速度和距离后怎么样用,用它原理是怎么样的?

3.平衡车的前进后退是否和码盘有关系,关系在哪里?


谢谢大神解答。。。。。。

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

发表于 2015-10-7 23:11:26 | 显示全部楼层
利用速度作为反馈去控制倾角

出0入8汤圆

发表于 2015-10-7 23:26:42 | 显示全部楼层
在PID中加上速度环,给定目标速度,通过码盘检测实际速度。

出0入0汤圆

 楼主| 发表于 2015-10-7 23:47:27 | 显示全部楼层
鼻儿眼睛花 发表于 2015-10-7 23:11
利用速度作为反馈去控制倾角

       
//        speed = speed*0.3+encoder_read()*0.7;                //            测量速度        
//        encoder_write(0);                                                //码盘清零
//        position += speed;                                                //小车位置
//        position += speed_need;                                     //speed_need控制前进后退
//        if(position<-6000) position = -6000;//6000           
//        if(position> 6000) position =  6000;//6000

PWM+=speed*Ki+position*Kn;       //pid算法


这个是我的速度反馈,但是我不知道在里面有什么作用,我加上去导致更加不稳定       

出0入0汤圆

 楼主| 发表于 2015-10-7 23:49:35 | 显示全部楼层
xujihu 发表于 2015-10-7 23:26
在PID中加上速度环,给定目标速度,通过码盘检测实际速度。

//        speed = speed*0.3+encoder_read()*0.7;                //            测量速度        
//        encoder_write(0);                                                //码盘清零
//        position += speed;                                                //小车位置
//        position += speed_need;                                     //speed_need控制前进后退
//        if(position<-6000) position = -6000;//6000           
//        if(position> 6000) position =  6000;//6000

PWM+=speed*Ki+position*Kn;       //pid算法


是否是这样的?我开始加speed_need设定速度上去,但是车只是晃动一下,还要改什么吗

出0入10汤圆

发表于 2015-10-8 07:53:32 | 显示全部楼层
简单一点,小车控制系统由一个倾角环和一个速度环还可以再加上一个转向环来构成,你现在倾角环做好了,再加上一个速度环基本功能就实现了,而这个速度环的反馈靠什么?编码器啊!!!

出0入0汤圆

发表于 2015-10-8 08:27:54 | 显示全部楼层
两个闭环保证直立:角速度环和角度环,这两个环互相反馈;
一个闭环保证不会乱跑:平动速度环;

这三个环都搞定了,剩下的就可以接个遥控器随便玩了。

怎么控制前进:平动速度环闭环设置一个偏差,该偏差“零点”控制前进速度;

怎么控制加速跑:角度环给个偏差,以 G 分量做加速。

高级控制可以加上 平动加速度环。
角速度闭环来自于陀螺仪,角度闭环来自于加速度计,平动闭环来自于编码器。

出0入0汤圆

发表于 2015-10-8 08:33:47 | 显示全部楼层
本帖最后由 mandylion2008 于 2015-10-8 08:36 编辑

自己没做过平衡车,看上面几位说的如此轻巧容易,敢问做的平衡车在原地停留时是否会前后不住地摇晃?是不是完全静止的?
据我所知,大家做的都是会前后摇晃的,我只见过YOUTUBE上的一个国外视频,里面的平衡车真的是完全静止!要动就动,要停就停。

是指那种两轮倒立摆模型车,不是载人的。
到今天也没有见过一个人做出像村田顽童的山寨品,有一两个视频也只是形似而已,摆得超厉害,完全不是那种控制方法,人家只是会偶尔摆动一下。

出0入0汤圆

 楼主| 发表于 2015-10-8 12:33:20 | 显示全部楼层
sunfulong 发表于 2015-10-8 07:53
简单一点,小车控制系统由一个倾角环和一个速度环还可以再加上一个转向环来构成,你现在倾角环做好了,再加 ...

小车本身可以平稳直立了,我加上速度环。就是我前面所写的那个,小车本身只会前后微小晃动,也就是说小车本身没有速度,所以感觉速度环上去没什么用。再说如果我想让车子前进,在没有外力作用下,要改变哪个参数?不可能自己就会动吧。

出0入0汤圆

 楼主| 发表于 2015-10-8 12:40:56 | 显示全部楼层
alcohol 发表于 2015-10-8 08:27
两个闭环保证直立:角速度环和角度环,这两个环互相反馈;
一个闭环保证不会乱跑:平动速度环;

现在是我 角度环和角速度环 已经保证直立和不会乱跑了,导致我加上速度环感觉不出效果,不知道速度环在里面是怎么样工作的。或者说我速度环写错啦?  速度环在我上面写着。我的速度环和飞思卡尔的直立车感觉差别好大。

出0入0汤圆

 楼主| 发表于 2015-10-8 12:44:26 | 显示全部楼层
mandylion2008 发表于 2015-10-8 08:33
自己没做过平衡车,看上面几位说的如此轻巧容易,敢问做的平衡车在原地停留时是否会前后不住地摇晃?是不是 ...

恩,所以东西做的精致都很难。

出0入10汤圆

发表于 2015-10-8 13:54:34 | 显示全部楼层
mandylion2008 发表于 2015-10-8 08:33
自己没做过平衡车,看上面几位说的如此轻巧容易,敢问做的平衡车在原地停留时是否会前后不住地摇晃?是不是 ...

平衡小车现在其实已经蛮成熟了,你可以看看全国大学生智能车竞赛的平衡车组视频,那些车不仅稳定,而且速度超快,不加速度环是不可能保持静止的,仅有倾角环的前提下只能够保证车体的竖直而不能保持静止,车体前后不住地摇晃是绝对的,只不过有人能够花大量的时间来调参数使其摇晃的幅度较小而已。这里其实想说楼主一下,既然看了飞思卡尔的方案,那么就把方案看透,改变倾角控制速度只是为了更好地说明速度控制的原理而不是控制速度的本质,建议看一下清华大学卓晴老师专门为飞思卡尔方案配的详细讲解视频,里面从传感器原理到整车调试讲得相当详细。

出0入0汤圆

发表于 2015-10-8 17:22:49 | 显示全部楼层
sunfulong 发表于 2015-10-8 13:54
平衡小车现在其实已经蛮成熟了,你可以看看全国大学生智能车竞赛的平衡车组视频,那些车不仅稳定,而且速 ...

哈哈,受教了!

我今天看了你说的视频,确实跑得很快,比我印象中的不住地原地摇晃好多了,但那些视频没有给出静止时的特写,还是不太相信,况且这种校准也不是光靠时间来搞的吧,这样就把动脑变成动手了。

出0入0汤圆

发表于 2015-10-8 17:41:37 | 显示全部楼层
前面不久就做个PID控制的小车和你的不一样,但是基本原理和思路应该都差不多的。楼上几位说的都对,就是找反馈,找参照物,然后慢慢调节

出0入10汤圆

发表于 2015-10-9 08:07:36 | 显示全部楼层
mandylion2008 发表于 2015-10-8 17:22
哈哈,受教了!

我今天看了你说的视频,确实跑得很快,比我印象中的不住地原地摇晃好多了,但那些视频没 ...

你说得对~
      从控制原理的角度平衡车是可以调到无限接近静止的,绝对静止不可能,关于车的调教肯定不能仅靠时间来消耗,动脑分析是必须的,整个过程是 方案=》调教=》改进=》新方案 的循环过程,做车人一般方案实现后如果没有某种动力的驱动大部分人不会再把时间消耗在枯燥的调教改进上,东西实现了,成果有了,论文有了…………………………………………………………………………………………也就差不多了吧。。。吧。。。吧

出0入0汤圆

发表于 2015-10-10 23:22:34 | 显示全部楼层
mandylion2008 发表于 2015-10-8 08:33
自己没做过平衡车,看上面几位说的如此轻巧容易,敢问做的平衡车在原地停留时是否会前后不住地摇晃?是不是 ...

不住的摇晃是可以避免的,这要在机械结构和电机上下功夫。
先假设电机是理想的无限细分类型,考虑传动部分:假设电机和轮子通过齿轮传动的,那么一个不可避免的问题就是齿轮存在死区,这个死区控制模型通常不考虑,那么计算并实施控制时,这个死区就会干扰控制的施行,类似插入一个分段函数,使得控制模型一段产生类似“交越失真”的效果,从外在来看,就是抖动;
再假设传送机构是理想的,考虑电机:假设电机是无刷的,无刷电机是有极对数的,在平衡车应用中,电机工作在超低速模式,这种模式下转矩输出不是恒定的(由于极对之间的换向,导致磁路发生变化所致),这种影响通常简单模型也不会考虑,所以也会产生额外的控制误差。

一般地,平衡车抖动最主要是这两个因素引起的,其他因素还有:控制系统不能很好的实施无差控制,存在一定的残差,在接近恒定点附近,控制实施较弱,有静态误差;还有一个影响在于,控制系统不能自主修正温漂等带来的“实时”误差,使得系统类似产生自激,并又收敛,反复的过程;另一方面,如果融合算法不够好,传感器自身特性会因为电机振动产生噪声,这些噪声在平衡点附近相当于系统信噪比大幅度下降,导致控制不够理想。

说白了,成本和精力在那里,首先我们都要活下去,活下去就要出东西,不是不能做精品,但肚子不答应,如是而已。

出0入0汤圆

发表于 2015-10-12 10:04:58 来自手机 | 显示全部楼层
我之前是做摄像头直立车的。不管是速度控制环还是方向控制环,都不能影响平衡控制,速度环是将100ms的偏差量分20次加入到pid中

出0入0汤圆

发表于 2015-10-12 10:08:15 来自手机 | 显示全部楼层
然后,速度,方向,平衡的控制量线性叠加得到输出量

出0入0汤圆

发表于 2015-10-29 17:15:24 | 显示全部楼层
平衡车留个记号

出0入0汤圆

发表于 2015-11-4 09:50:12 | 显示全部楼层
mark,以后要用的时候再来研究。

出0入0汤圆

发表于 2020-7-20 09:36:40 | 显示全部楼层
速度环怎么用?
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-26 06:30

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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