基于STM32的平衡车设计

时间:2022-08-10 01:46:26

基于STM32的平衡车设计

摘 要:文章鉴于平衡车在当今世界的发展热潮提出了一种设计方案。文章基于STM32微处理器,通过卡尔曼滤波法和PID控制实现了两轮平衡车的自平衡控制。该设计方案采用加速度计和陀螺仪共同采集获取姿态角,得到可靠的输出。

关键词:平衡车;加速度计;陀螺仪;卡尔曼滤波;PID算法

前言

平衡车作为一种交通工具,广泛应用于航空、安保等领域。鉴于其绿色、节能、方便、灵活、轻巧等优点,解决了很多诸如交通、能源、环保等问题带来的压力,平衡车作为一种理想的交通工具具有很大的市场。随着现代科技的不断进步,对于市场上平衡车的响应的精确度和速度的要求不断提高,文章设计方案通过陀螺仪测量角度和角速度,并通过加速度计来矫正陀螺仪的角度漂移,实现了精确度的提高。

1 力学原理分析

如图1所示,类比倒立摆,控制车轮做加速运动,得到车模恢复力:

F=mgsin?兹-macos?兹≈mg?兹-mk1?兹(1)

式(1)中k1是车轮加速度a与偏角θ的比例。因为空气中存在摩擦力,即阻尼力,则式(1)变作:

F=mg?兹-mk1?兹-mk2■ (2)

可得:a=k1?兹+k2■ (3)

式(3)中k1大于g,k2大于0;k1决定了车模平衡的位置,k2决定了车模的响应时间。

从上述数学模型中可以看出,只需知道车模的倾角及角速度,即可推得车轮的加速度,从而可以控制电机的转速,实现对车轮的正确控制。

2 控制系统设计

控制系统的整体设计方案是:通过陀螺仪测得车模的倾角和角速度,加速度计用来消除陀螺仪角度漂移。两者测得数据经过A/D转换输入到控制器中,经过卡尔曼滤波得到可靠的车模角度。同时编码器测得车轮速度传递到控制器中。处理器经过PID算法结合车模角度和车轮速度输出PWM控制量驱动电机运转,改变车轮的转速。具体框图如图2所示。

图2

系统整体采用PID控制算法,如图3所示。在速度控制和角度控制中都使用了微分环节,目的是使车模快速的稳定下来,加快了响应时间。速度控制的积分环节是为了消除速度的控制误差。

图3

3 主要硬件设计

3.1 电源模块

单片机、各传感器、电机驱动模块、显示模块都要用到直流电。本设计采用12V,1A锂电池供电,采用LM2596稳压片进行降压,最后输出5V到主板和各个传感器。

3.2 姿态角采集传感器

通过前面的力学分析可知要使车模能够稳定的直立,需要测得车模的角度与角速度的信息,然后通过卡尔曼滤波得到可靠的姿态角。姿态角的获取采用陀螺仪和加速度计测量。该模块采用了六轴惯性传感器MPU6050,该芯片集成了3轴陀螺仪MEMS传感器和3轴加速度计MEMS传感器。该设计有效避免了两路传感器的轴间差问题。现简述陀螺仪和加速度计的工作机理:

陀螺仪:陀螺仪安装在车模上,可以测量车模的角速度,角速度通过积分便可得到角度值。车模运动会产生噪声,同时其他因素会产生噪声,但车模运动的噪声占主要部分,而车模的运动不会对车模的角速度产生影响,所以噪声对陀螺仪的测量信号影响很小,因此通过陀螺仪可以得到可靠的角速度信号。积分又使得信号更加平滑,所以陀螺仪可以得到角度值。但是,陀螺仪输出的角度值是通过角速度积分得到的,如果角速度存在即使很微小的偏差,经过积分后就会形成累计误差,从而将偏差放大,从而输出错误的角度信号。为了解决此问题,该设计通过其他途径同时获得角度信号,然后与陀螺仪输出角度信号进行比对,从而获得可靠的角度信号。另一角度信号的获得通过加速度计来实现。

加速度计:加速度计可以测量重力作用或者物体运动所产生的加速度。该设计采用加速度计z轴上的信号。当车模直立时,输出信号的电压值为0,当车模倾斜时,重力在z轴方向上产生加速度g的分量,从而使电压值发生改变。其中:

u=kgsin?兹≈kg?兹(4)

式(4)中k代表加速度计的灵敏系数;?兹值很小。

从该式中可以看出,加速度计可以获得车模的角度值。但同时车模的运动会对车模的加速度产生很大影响,从而使加速度计产生的角度信号发生偏差。

该设计通过比对陀螺仪和加速度计产生的角度信号,将其比对误差进行比例放大,叠加到陀螺仪测得的角速度值里共同积分,从而获得可靠的角度信号值。

3.3 编码器

该模块采用AB相增量式霍尔编码器,自带上拉整形,单片机可以直接读取。该编码器可以通过转动时输出脉冲来检测确定其位置。该编码器内部有两对光电耦合器,输出脉冲是相位差是90的两组脉冲序列,通过判断两路脉冲的超前和滞后判断车轮的正转和反转。

图4 正转图 图5 反转图

3.4 电机驱动模块

本设计采用额定电压12V电机,通过TB6612FNG驱动芯片进行供电。左右两轮单独控制,所以采用两个电机。驱动电机PWM采用单极性驱动,以便提高电源效率。又由于车轮转动存在正转和反转两个方向,所以两个电机共采用四个PWM信号。

3.5 显示模块

该模块采用OLED显示屏,可以显示车模的角度,车轮转速,以及PID控制中的各个参数,方便对车模进行调试。

4 软件设计

算法图如图6。

软件部分主要包括对各传感器的数据的采集和处理;输出可靠的PWM控制信号控制电机的运行;车模的直立、速度和方向控制;车模运行初始化和显示部分。

PID算法是将卡尔曼滤波后的角度值与速度反馈得到值进行反馈控制。

卡尔曼滤波是一种递归的最优化估计,其原理是:根据k-1时刻的最优角度值和其偏差预测得到k时刻的角度值,同时用k-1时刻的最优值的偏差和k时刻的预测值的偏差共同产生k时刻的预测值的高斯白噪声,同时根据测量值和预测值的协方差来判断出两个值的权重的大小,从而计算出此刻的最优角度值。再根据k时刻的最优角度值和计算出的偏差进行预测k+1时刻的角度值。

5 测试结果

对代码中直立控制,方向控制,速度控制中的参数进行多次调整,最终经过上位机测试,由图7可以看出平衡车平衡十分稳定,系统运行平稳可靠。

6 结束语

两轮平衡车是一个相对复杂的系统,它对传感器技术和智能控制技术有很高的要求。文章给出了一种设计方案并成功实现两轮平衡车的自平衡控制。对于具体的软件设计代码、遥控控制、超声波避障功能未做深入的讨论。双轮平衡车作为一种可以代步的使用工具,其节能、灵巧、高效、环保等优点使其具有很大的市场潜力,积极投资和研发双轮平衡车的优化设计,将带来更大的市场经济效益,促进经济的发展。

参考文献

[1]彭丁聪.卡尔曼滤波的基本原理及应用[J].软件导刊,2009.

[2]袁泽睿.两轮自平衡机器人控制算法的研究[D].哈尔滨:哈尔滨工业大学,2006.

[3]胡寿松.自动控制原理[M].北京:科学出版社,2001.

[4]曹志杰.一种自平衡双轮移动机器人控制系统的设计与实现[D].北京邮电大学,2008.

作者简介:张洪伟(1993,9-),男,河北省保定人,西南大学自动化专业,本科生。

上一篇:东北经济现状及思考 下一篇:分级纳米硫化亚锡的合成及形貌控制