简易平衡小车制作(micropython版)——第1篇

简易平衡小车制作(micropython版)——第1篇

平衡小车原理

首先来了解一下平衡小车的原理,最基本的平衡小车是通过左右两个电机运动下实现自立不倒的智能小车。平衡小车通过负反馈调节实现平衡,因为小车有两个轮子着地,车体会在轮子滚动的方向发生倾倒,这时车体上的陀螺仪传感器将信号传输到单片机上,单片机通过控制轮子转动,抵消车体的倾倒趋势,便可以实现平衡。简单来说就是车子向前倾倒,车轮向前转动;车子向后倾倒,车轮向后转动;车体垂直时车轮保持不动。
根据上面的简述,可以知道想要小车保持平衡就必须要实时的控制轮子转动的速度。车体倾角比较大的时候,就要加快转速,否则无法扭转车子;倾角比较小的时候,减慢转速,防止调整过渡。这时就需要用到pid控制以及pwm调节相配合来输出相应的转速了。在这一篇中我们主要来讲解pid控制。

pid控制简介

Pid控制由比例单元(P)、积分单元(I)和微分单元(D)组成,又称pid调节。Pid控制的基础是p——比例控制,也就是我们常见的线性调节,光是用此调节还不行,会出现不可消除的稳态误差;i——积分控制可以消除稳态误差,但同时会使调节出现延时;d——微分控制可加快大惯性系统响应速度以及减弱超调趋势。如果对pid还不够理解,可以去点击查看以下博客,该博主用最浅显易懂的话语对pid控制算法进行了深刻的解读。
https://blog.csdn.net/qq_25352981/article/details/81007075
pid控制算法有三个参数,一般称为kp、ki和kd,这三个参数分别为比例参数、积分参数和微分参数,本人在查找资料的过程中发现许多介绍中都使用了pd调节,本人通过实测,加上ki参数后效果更好一些,但是数值不能太大,会出现不能及时调节的情况。

pid在平衡小车中的应用

那么如何在小车中使用pid控制呢?这就需要一个差值,这个差值是小车倾斜状态下与直立平衡状态下的角度误差error,这个差值作为pid控制公式的变量,决定输出的速度值。由此可以写出一个简易的公式,如下:
speed=kperror+kiacc_error+kdsub_error
其中speed为输出速度数值;kp
error 为比例控制环节;acc_error为上一个角度误差加上这一时刻的角度误差(离散情况下,积分就是做累加),kiacc_error 为积分控制环节; sub_error为这一时刻误差减去上一的角度误差(离散情况下,微分就是error的差值),kdsub_error 为微分控制环节。
这样,pid控制算法就基本上实现了在平衡小车上的应用,那么问题来了,如何得到这个角度误差呢?这就需要用到加速度和陀螺仪传感器了。我们将会在下一篇章中探讨该类传感器在平衡小车上的应用。

你可能感兴趣的:(平衡小车)