您现在的位置:专区首页>> 优秀作品>>作品

基本信息

作品名称:
两轮自平衡小车
大类:
科技发明制作B类
小类:
机械与控制
简介:

本设计采用微控制器,通过软件滤波和自动控制理论算法使得小车达到平衡状态。系统的传感器采用角度传感SCA61T,和陀螺仪采集小车车身的水平状态值和小车的加速度值。并且采用了LM298双桥大功率集成驱动芯片来驱动电机,无线遥控来控制小车的数据传输。依靠这些可靠的硬件设计,使用PID 闭环控制算法和卡尔曼滤波算法 ,使得整个硬件结构和软件系统能顺利匹配。从而使得小车能保持直立自平衡状态。

详细介绍:

单轴两轮自平衡小车系统设计
说明书


摘要:
本设计采用ATMEL公司推出的MEGA 16 单片机作为“双轮直立自平衡小车” 的微控制器,用以处理任意时刻传感器的数据;通过软件滤波和自动控制理论算法使得小车能够在任意时刻进行自我调整以达到平衡状态。 该系统的传感器采用角度传SCA61T,和陀螺仪采集小车车身的水平状态值和小车的加速度值。并且采用了LM298双桥大功率集成驱动芯片来驱动电机,无线遥控来控制小车的数据传输。依靠这些设备和可靠的硬件设计,我们使用了一套PID 闭环控制算法和比较稳定的卡尔曼滤波算法 ,使得整个硬件结构和软件系统能顺利匹配。从而使得我们的小车能保持直立自平衡状态。

关键词:微控制器 卡尔曼滤波 PID闭环控制

一、总体设计方案
(1)、设计思路
题目要求设计并制作一个单轴两轮自平衡小车。对于小车能保持平衡,直立行走。系统应该设置有测量倾角和加速度的模块。可以采用角速度传感器和陀螺仪测量出小车的倾角和加速度,并把数据传送给单片机处理。经过单片机处理数据和进行相应的补偿后,通过控制电机从而使小车保持在平衡状态。

系统硬件结构
(2)、方案论证与比较
1.微控制器选型
方案一: 采用目前市场比较主流性能稳定价格低廉的AT8952单片机,AT8952单片机内部资源8K字节在系统可编程Flash存储器、全静态操作:0Hz~33MHz 、 32个可编程I/O口线 、三个16位定时器/计数器 八个中断源 、全双工UART串行通道、 低功耗空闲和掉电模式 、掉电后中断可唤醒 、看门狗定时器 、双数据指针 、和一路可编程的PWM 输出。我们的系统一共用到两路独立的PWM输出,AT89S52只有一路硬件PWM 这样我们必须考虑用软件或硬件再产产生一路可调的PWM 才能满足我们系统的两个轮子调速的需求。考虑到系统整体的程序构思是一个很耗费CPU运行时间,所以我们排除了软件中断的方式在产生一路PWM ,节省了CPU 的程序运行时间的开销。值得我们考虑的只能用其他电机控制芯片+AT8952来控制我们的两个电机,后来我们考虑了NEC-SSOP30 这个电机控制芯片来产生两路PWM,该芯片是一颗强大的直流电机和步进电机的控制芯片,里面有三路可编程的直流电机PWM 输出通道 和 三路步进电机 控制通道,和单片机通信接口,有SPI 总线接口 和 USAP 串口通信 ,但是考虑到NEC –SSOP30 芯片 的指令周期是1.4MS ,不能实时性的更新系统的PWM 这样就会造成整个系统的不稳定。最重要的一点还有考虑到该系统是程序里面运行的是一些比较复杂的浮点数运算,对微控制器的内核得必须既有可靠稳定快速处理浮点数运算的性能,51内核是以冯诺依曼总线结构对数据的处理和传输,因为我们都知道该结构使不能同时进取指令和举行指令的,最终取得指令周期加长,程序的实时性不能体现。还要51内核的浮点数运算能力也不理想。
方案二:采用微芯公司的PIC18F4520 微控制器作为核心控制单元, PIC18F4520 是PIC家族里的一款比较高性能的单片机,内部有三个可编程中断,4个输入电平变化中断,2个捕获/ 比较/PWM/(ECCP)模块,有两通道PWM 等。PIC 系列单片机内部采用精简指令集大大提高程序执行效率,内部采用哈弗总线结构,同时可以取指令和执行指令,大大提高程序的运行速度,PIC18F4520 内部不仅有一个8MHZ 的始终振荡器,可以给系统能够提供内部时钟,还有一个PLL 倍频电路,可以给用户扩大系统频率,从而使得程序的实时性加强。PIC 系列单片机是一个性能分类比较讲究的单片机家族,对于PIC18F4520 这款单片机的浮点数处理能力不是很理想,考虑到PIC专门用做浮点数运算的16位单片机选型,但是价格非常的昂贵
方案三:采用因特尔梅公司的增强型的MEGA 16高性能、低功耗的 8 位 AVR&reg 微处理器 。MEGA 16先进的RISC结构 – 131 条指令 – 大多数指令执行时间为单个时钟周期 –32 个8 位通用工作寄存器– 全静态工作 – 工作于16 MHz 时性能高达16 MIPS – 只需两个时钟周期的硬件乘法器 – 两个具有独立预分频器和比较器功能的8 位定时器/ 计数器– 一个具有预分频器、比较功能和捕捉功能的16 位定时器 /计数器– 具有独立振荡器的实时计数器RTC – 四通道PWM –8路 10 位ADC 等内部资源。ATmega16是基于增强的AVR RISC结构的低功耗8位CMOS微控制器。由于其先进的指 令集以及单时钟周期指令执行时间,ATmega16 的数据吞吐率高达 1MIPS/MHz,从而可 以缓减系统在功耗和处理速度之间的矛盾。AVR 内核具有丰富的指令集和 32 个通用工作寄存器。所有的寄存器都直接与算逻单元 (ALU) 相连接,使得一条指令可以在一个时钟周期内同时访问两个独立的寄存器。这种结 构大大提高了代码效率,并且具有比普通的 CISC微控制器最高至 10倍的数据吞吐率。
两轮小车自平衡是一个闭环稳定的控制系统,对软件和硬件性能要求都比较严格。软件部分只要是开微控制单元进行处理,处理的准确性和实时性都还严格的要求。因为考虑到硬件滤波的成本和灵活性,我们选择了采用软件滤波的方式,这样我们程序里面就加重了比较复杂的软件滤波算法,再加上PID 闭环平衡控制算法,这两个算法都是用浮点数进行运算,这样就要考虑到我们的微控制器的性能了。51系列单片内部结构和指令集来看显然不如PIC18F4520 ,但是 PIC18F4520 对于浮点数运算并非是这款芯片的特点,其浮点数运算肯定不够理想。考虑到成本问题我们排除了采用高价格的16位专门处理浮点数运算的PIC 微控制芯片 ,最终我们考虑 MEGA16 这款价格和性能都比较合适的微控制芯片,因为不管在价位,还是内核结构,和运算效率 MEGA16 都强AT89S52 和PIC18F4520 所以最终整个系统我们采用MEGA16 作为整体的控制处理单元。
2.滤波电路模块:
方案一:可以采用硬件滤波方式,RC LC 运放一阶滤波方式 ,或者采用一些精密的集成芯片滤波等。但考虑到硬件滤波的电路性能要求,可调节性,灵活性和成本。最终不采用硬件滤波的方法。
方案二:采用软件滤波,软件滤波算有 1.限幅滤波法(又称程序判断滤波法) 。优点:能有效克服因偶然因素引起的脉冲干扰 。缺点无法抑制那种周期性的干扰平滑度。2、中位值滤波 B、优点:能有效克服因偶然因素引起的波动干扰对温度、液位的变化缓慢的被测参数有良好的滤波效果、缺点:对流量、速度等快速变化的参数不宜。3、算术平均滤波法优点:适用于对一般具有随机干扰的信号进行滤波这样信号的特点是有一个平均值,信号在某一数值范围附近上下波动缺点:对于测量速度较慢或要求数据计算速度较快的实时控制不适用比较浪费RAM 。 4、递推平均滤波法(又称滑动平均滤波法)。B、优点:对周期性干扰有良好的抑制作用,平滑度高适用于高频振荡的系统 ,缺点:灵敏度低 对偶然出现的脉冲性干扰的抑制作用较差不易消除由于脉冲干扰所引起的采样值偏差不适用于脉冲干扰比较严重的场合比较浪费RAM。5、中位值平均滤波法(又称防脉冲干扰平均滤波法)优点:融合了两种滤波法的优点对于偶然出现的脉冲性干扰,可消除由于脉冲干扰所引起的采样值偏差、缺点:测量速度较慢,和算术平均滤波法一样比较浪费RAM。6、限幅平均滤波法比较浪费RAM。7、一阶滞后滤波法 。优点:对周期性干扰具有良好的抑制作用适用于波动频率较高的场合 C、缺点:相位滞后,灵敏度低 滞后程度取决于a值大小不能消除滤波频率高于采样频率的1/2的干扰信号。8 .卡尔曼滤波 ,卡尔曼滤波比维纳滤波有以下优点:①在卡尔曼滤波中采用物理意义较为直观的时间域语言,而在维纳滤波中则采用物理意义较为间接的频率域语言。②卡尔曼滤波仅需要有限时间内的观测数据,而维纳滤波则需要用过去的半无限时间内的全部观测数据。③卡尔曼滤波可使用比较简单的递推算法,而维纳滤波则需要求解一个积分方程。④卡尔曼滤波可以推广到非平稳随机过程的情况,而维纳滤波只适用于平稳随机过程。⑤卡尔曼滤波所需数据存储量较小,便于用计算机进行实时处理,而维纳滤波的计算复杂,步骤冗长,不便于实时处理。在相同条件下,卡尔曼滤波能得出与维纳滤波相同的结果。在实用上,卡尔曼滤波比维纳滤波功能强,用途广。卡尔曼滤波已在航天技术、通信工程、工业控制等领域中得到比较广泛的应用。卡尔曼滤波的局限性表现在只能用于线性的信号过程,即状态方程和观测方程都是线性的随机系统,而且噪声必须服从高斯分布。虽然不少实际问题都可满足这些限制条件,但当实际系统的非线性特性稍强或者噪声特性偏离高斯分布较大时,卡尔曼滤波就不能给出符合实际的结果。
最终系统采用卡尔曼滤波器,虽然卡尔曼滤波器也比较耗RAM ,但是我们用软件在线仿真的到得滤波数值大大优于其他软件滤波方法。 3电机控制模块:
方案一:采用分立元件组成的H桥驱动电路,整个系统对对电机驱动电路要求比较严格,用分立元件设计电机驱动电路不管是驱动能力还是稳定性都理想,还有系统用到两路电机,还有电机驱动变向的时候电机的速度不能改变,(因为驱动电桥输入端只有两个用高低电平可以控制电机正反转,加入我们以一路为PWM 输入端另一路作为电机方向控制端,这样我们控制电机的正反转就会出现比较致命的问题。(假如我们电机PWM 此刻为80%,另一路输入高电平 这时候电机以顺向旋转。但系统在运动过程中变相是随时的,假如我们变相成逆向旋转,在另一路输入低电平,这时候 电机就会以4倍顺向的速度逆转旋 因为占空比是%80的高电平时间 )为了使正反转得到相同速度我们不仅要修改方向控制端的电平值,而还有修改占空比的值,我们单片机输出的PWM是不具有反向功能用软件处理也是比较耗程序执行时间,这样分立元件设计的电路就必须增加其他逻辑芯片来组合控制,这样我们就整体增大成本和电路设计的复杂性和稳定性。
方案二:采用L298驱动直流电动机,L298N 为 SGS-THOMSON Microelectronics 所出产的双全桥步进电机专用驱动芯片Dual Full-Bridge Driver ) ,内部包含 4 信道逻辑驱动电路,是一种二相和四相步进电机的专用驱动器,可同时驱动 2 个二相或 1 个四相步进电机,内含二个 H-Bridge 的高电压、大电流双全桥式驱动器,接收标准 TTL 逻辑准位信号,可驱动 46V 、 2A 以下的步进电机和直流电机。考虑到LM298 内部输出端集成了两路与非门,这样我们就可以通过控制ENA 使能端随时关闭任何一路驱动桥的输入,这样我们就接着这个使能端口来输入PWM ,这样我们就可以在两个输入端间 输入高低电平来控制我们电机的正反转从而又能达到正反相同的速度。方便我们控制电机。考虑到LM298有两组电源和电机正反转的反向电动势的影响,为了系统稳定考虑我们在LM298前级输入加入光耦隔离器,把电机电源和电机反向电动势隔离,防止回流影响主控制芯片的稳定。后级输出四个通道各反向接入两个二极管使到正反转电机回流的保护。
二、车体运动分析
利用牛顿定律、能量守恒(拉格朗日方程)都可以建立两轮小车的模型,但各自有优缺点:能量守恒不需要考虑系统中各个力的相互作用,他们之间的联系,不易分析系统在实际控制中内部力对系统的影响;牛顿定律需要分析每一步中力的相互作用,这样在建模过程中变得复杂,但对实际控制来容易分析每个变量对系统构成的影响,便于分系统。本质不稳定小车大致运动方式如下:

图3 :车体运动平面图

图4:车体运动方式
当车体做直线运动,其中为小车偏离X轴角度,若果做直线运动一直不变。小车某一时刻运动的位移为,则小车的速度为V=,速度在X、Y方向的分量为:

三、单元电路设计
1、 单片机微控制器电路设计

ATMEGA16 控制板
2、 LM298电机驱动电路设计

LM298电机驱动电路

3、 角度传感器电路设计


SCA61T角度传感器模块电路图

四、软件系统及算法设计
1、软件系统设计流程图

2、算法设计
  
方案一:
采用模糊控制算法, 模糊控制具有良好控制效果的关键是要有一个完善的控制规则。但由于模糊规则是人们对过程或对象模糊信息的归纳,对高阶、非线性、大时滞、时变参数以及随机干扰严重的复杂控制过程,人们的认识往往比较贫乏或难以总结完整的经验,这就使得单纯的模糊控制在某些情况下很粗糙,难以适应不同的运行状态,影响了控制效果。常规模糊控制的两个主要问题在于:改进稳态控制精度和提高智能水平与适应能力。在实际应用中,往往是将模糊控制或模糊推理的思想,与其它相对成熟的控制理论或方法结合起来,发挥各自的长处,从而获得理想的控制效果。由于模糊规则和语言很容易被人们广泛接受,加上模糊化技术在微处理器和计算机中能很方便的实现,所以这种结合展现出强大的生命力和良好的效果。对模糊控制的改进方法可大致的分为模糊复合控制,自适应和自学习模糊控制,以及模糊控制与智能化方法的结合等三个方面。(1)模糊控制是一种基于规则的控制,它直接采用语言型控制规则,出发点是现场操作人员的控制经验或相关专家的知识,在设计中不需要建立被控对象的精确的数学模型,因而使得控制机理和策略易于接受与理解,设计简单,便于应用。(2)由工业过程的定性认识出发,比较容易建立语言控制规则,因而模糊控制对那些数学模型难以获取,动态特性不易掌握或变化非常显著的对象非常适用。(3)基于模型的控制算法及系统设计方法,由于出发点和性能指标的不同,容易导致较大差异;但一个系统语言控制规则却具有相对的独立性,利用这些控制规律间的模糊连接,容易找到折中的选择,使控制效果优于常规控制器。(4)模糊控制是基于启发性的知识及语言决策规则设计的,这有利于模拟人工控制的过程和方法,增强控制系统的适应能力,使之具有一定的智能水平。(5)模糊控制系统的鲁棒性强,干扰和参数变化对控制效果的影响被大大减弱,尤其适合于非线性、时变及纯滞后系统的控制。
方案二:
PID自动控制算法,当今的自动控制技术都是基于反馈的概念。反馈理论的要素包括三个部分:测量、比较和执行。测量关心的变量,与期望值相比较,用这个误差纠正调节控制系统的响应。这个理论和应用自动控制的关键是,做出正确的测量和比较后,如何才能更好地纠正系统。PID(比例-积分-微分)控制器作为最早实用化的控制器已
有50多年历史,现在仍然是应用最广泛的工业控制器。PID控制器简单易懂,使用中不需精确的系统模型等先决条件,因而成为应用最为广泛的控制器。PID控制器由比例单元(P)、积分单元(I)和微分单元(D)组成。其输入e (t)与输出u (t)的关系为   u(t)=kp(e(t)+1/TI∫e(t)dt+TD*de(t)/dt) 式中积分的上下限分别是0和t。因此它的传递函数为:G(s)=U(s)/E(s)=kp(1+1/(TI*s)+TD*s) ,其中kp为比例系数;TI为积分时间常数;TD为微分时间常数 比例(P)控制。比例控制是一种最简单的控制方式。其控制器的输出与输入误差信号成比例关系。当仅有比例控制时系统输出存在稳态误差(Steady-state error)。积分(I)控制,在积分控制中,控制器的输出与输入误差信号的积分成正比关系。对一个自动控制系统,如果在进入稳态后存在稳态误差,则称这个控制系统是有稳态误差的或简称有差系统(System with Steady-state Error)。为了消除稳态误差,在控制器中必须引入“积分项”。积分项对误差取决于时间的积分,随着时间的增加,积分项会增大。这样,即便误差很小,积分项也会随着时间的增加而加大,它推动控制器的输出增大使稳态误差进一步减小,直到等于零。因此,比例+积分(PI)控制器,可以使系统在进入稳态后无稳 态误差。微分(D)控制,在微分控制中,控制器的输出与输入误差信号的微分(即误差的变化率)成正比关系。自动控制系统在克服误差的调节过程中可能会出现振荡甚至失稳。其原因是由于存在有较大惯性组件(环节)或有滞后(delay)组件,具有抑制误差的作用, 其变化总是落后于误差的变化。解决的办法是使抑制误差的作用的变化“超前”,即在误差接近零时,抑制误差的作用就应该是零。这就是说,在控制器中仅引入 “比例”项往往是不够的,比例项的作用仅是放大误差的幅值,而目前需要增加的是“微分项”,它能预测误差变化的趋势,这样,具有比例+微分的控制器,就能 够提前使抑制误差的控制作用等于零,甚至为负值,从而避免了被控量的严重超调。所以对有较大惯性或滞后的被控对象,比例+微分(PD)控制器能改善系统在 调节过程中的动态特性。
由于PID 算法的可调整性比模糊算发容易有规律,是一套比较稳定的闭环控制的算法,因此我们最终采用PID 代替模糊控制算法 。五、系统测试
1、 测试使用的仪器
1 2 3
示波器 TDS1002B 数字万用表 DY2103 品胜镍氢电池4节
2、测试结果
小车在通电状态下,能保持平衡,能达到一分钟以上。小车在平衡状态时,如果加一外力(注意:不是很大的力),小车仍然能通过自动调节达到保持平衡的状态。能通过无线遥控控制其行走,旋转180°和360°,并继续保持平衡。但在行走的过程中小车有些抖动,但最终能保持平衡状态。
六、总结
本设计制作完成了题目要求的基本部分和发挥部分的大部分,基本达到了设计的要求。本设计有点复杂,比起用水银开关来做难度增加了很多。虽然大部分基本达到要求,但还是有缺陷,比如小车虽然能保持平衡直立状态,但在行走的过程中仍会抖动。而且本设计的调试也很麻烦,需要经过反复地调试后才能达到平很状态。这些都是我们掌握的知识还不够广泛。当然如果设备齐全,时间允许,比如用自动编码的电位器代替手动的,相信会达到更好的效果和节省很多的时间。
在设计过程中我们遇到了很多困难,最终得以解决使小车能站起来,源于我们团队的密切合作和平时资料的收集,知识的积累。当然更重要的是持之以恒的精神!

获奖情况:

第十二届“挑战杯”省赛作品 省赛三等奖
作品在海南省电子设计竞赛中获得省一等奖

作品视频

作品图片