matlab两轮自平衡小车,两轮自平衡小车(全部设计资料+设计分析)

自己做的自平衡小车,基本达到预期效果。制作资料在压缩包里面,供参考。

该两轮自平衡小车硬件设计概述:控制器:ATmega16;8MHz;

加速度传感器:MMA2260;陀螺仪:EWTS82;

传感器的融合:卡尔曼滤波;

马达:EN_2342CR(速比64)+双路12脉冲编码器+CD40106对信号整形;

驱动板芯片:CD4001+IR2111+IRF1404(驱动电流可以很大);

图片(拍摄效果不佳),视频如下:

小车实物图展示:

1.jpg

设计分析:

其实控制很简单,利用定时器产生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值看看对车辆的影响;

电机选取建议:由于考虑到减速器,而且带传感器。其实后面实践得知可以不要位置传感器,这样选择电机的空间就很大了,买便宜的;

电机扭矩要大;说白了,功率要大;转动惯量大似乎的更稳定,所以不用空心杯的也许更好;

减速比可以大一点,用较大的轮子;

重心越靠下,抗扰性越强;但是可能会影响稳定性;

购买的电机型号参考:

clipboard1451550330891.png

算法:

常用计算方法有两种:互补滤波和卡尔曼滤波;都可以输出校正后的角度与角速度;我采用的是卡尔曼滤波,考虑到单片机的运算能力,是经过精简的,当然这些都是老外做的,关于卡尔曼滤波,我找了很多资料,详见附件内容。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值