两轮自平衡小车(全部设计资料+设计分析) 电路方案
自己做的自平衡小车,基本达到预期效果。制作资料在压缩包里面,供参考。 该两轮自平衡小车硬件设计概述: 控制器:ATmega16;8MHz; 加速度传感器:MMA2260;陀螺仪:EWTS82; 传感器的融合:卡尔曼滤波; 马达:EN_2342CR(速比64)+双路12脉冲编码器+CD40106对信号整形; 驱动板芯片:CD4001+IR2111+IRF1404(驱动电流可以很大); 图片(拍摄效果不佳),视频如下: 小车实物图展示: 设计分析: 其实控制很简单,利用定时器产生10ms中断,每次中断进行如下工作: 1:AD采样加速度传感器和陀螺仪,然后卡尔曼滤波得出角度与角速度;(滤波模块借鉴老外的)(互补滤波效果感觉不是很好); 2:计算车轮的速度,积分得出位置; 3:利用PD算法得出PWM值=K1*angle + K2*angle_dot + K3*speed + K4 * position; 4:前进后退给定参考速度计算即可; 注意: 增量式轮速传感器A相中断,读取B相电位判断前进还是后退,在10ms的时间内累加,计算车轮的速度; 由于10ms累加的轮速信号不多,直接计算车体会发抖,所以增加了低通滤波,解决问题; 我在外面增加4个电位器可以手动调节4个K值,方便调试; 附件的文件夹里面有matlab建模的资料,可以求出所需的4个K的值,(参考NXT的),大家可自行调试K值看看对车辆的影响; 电机选取建议: 由于考虑到减速器,而且带传感器。其实后面实践得知可以不要位置传感器,这样选择电机的空间就很大了,买便宜的; 电机扭矩要大;说白了,功率要大;转动惯量大似乎的更稳定,所以不用空心杯的也许更好; 减速比可以大一点,用较大的轮子; 重心越靠下,抗扰性越强;但是可能会影响稳定性; 购买的电机型号参考: 算法: 常用计算方法有两种:互补滤波和卡尔曼滤波;都可以输出校正后的角度与角速度;我采用的是卡尔曼滤波,考虑到单片机的运算能力,是经过精简的,当然这些都是老外做的,关于卡尔曼滤波,我找了很多资料,详见附件内容。