平衡小车从原理到实践
作者:公众号:小白学移动机器人
关于内容:参考很多网上大佬的博客加上自己的理解而成,适合平衡车初学者和想要了解原理的小伙伴。
1、平衡小车控制原理
先记住一句话,直立环和速度环的结合是保持小车长期稳定平衡的前提。相信大家读到最后一定可以明白这句话的含义。
举个例子
大家都玩过的用手控制木棍直立不倒的游戏。这是一个通过眼睛观察木棒的倾角和倾斜趋势(角速度),通过手指的移动去抵消木棒倾斜的角度和倾斜的趋势使木棒能直立不倒的一个过程。典型的负反馈机制。
平衡小车也是如此,小车运动方向与倾斜方向一致,通过测量小车的倾角和倾角速度,进而通过控制小车车轮的加速度来消除小车的倾角和倾角速度,这样理论上不考虑电机极限的情况下,小车就可以平衡。
直立环的引出
理想情况下,控制电机的加速度和小车倾角成正比,可以让小车保持平衡,就是小车向倾斜的方向运动,倾斜角度越大,小车运动越快。 a = k p ∗ θ a=kp*θ a=kp∗θ 但实际上,小车刚体绕轴旋转时具有惯性,当小车到达倾角为零时,a输出零,因为惯性的存在,小车还是会向另一个方向倒去。如此反复,小车将一直振荡无法静止。
如何消除小车绕轴转动的惯性,也就是消除小车的转动惯量,使小车尽可能的静止呢?
首先分析转动惯量,公式如下: I = ∑ i m i r i 2 I=\sum_{i}m_i{r_i}^2 I=i∑miri2 其中m是质量,r是质点到转轴的垂直距离,m和r都无法为零,所以转动惯量客观存在。
既然不能使转动惯量为零,换个角度,是不是可以抵消转动惯量呢?
这里分析一下单摆模型吧。
由于重力的作用,单摆受到和单摆角度成正比与运动方向相反的回复力;类比电机的加速度
由于空气的作用,单摆又受到和单摆运动速度成正比与运动反向相反的阻尼力,使单摆最终平衡下来。
有没有启发,为了让小车能近似静止,还需要一个阻尼力,这个阻尼力和小车的倾角速度成正比。
所以,小车的平衡控制算法改写为: a = k p ∗ θ + k d ∗ θ ⋅ a=kp*θ+kd*θ^· a=kp∗θ+kd∗θ⋅ 一个是角度偏差,另一个是角度偏差的变化率,也就是角速度。为了简化控制,a的输出直接作为直流减速电机的PWM替代。这里引入PID,关于PID的理论就不讲了,网上大佬巨多。上面的公式就是一个位置式离散PD控制器。负反馈机制。
关于直立PD控制器的参数整定,也就公式中角度和角速度的参数整定,这里根据公式原理也可以得到一些调试技巧。
比例控制