二轮自平衡车的设计与制作毕业设计说明书.doc_第1页
二轮自平衡车的设计与制作毕业设计说明书.doc_第2页
二轮自平衡车的设计与制作毕业设计说明书.doc_第3页
二轮自平衡车的设计与制作毕业设计说明书.doc_第4页
二轮自平衡车的设计与制作毕业设计说明书.doc_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

北京林业大学本科毕业论文(设计)二轮自平衡车的设计与制作摘要随着科学技术的发展,人们的交通出行工具越来越多样化。近几年来,二轮自平衡车越来越多的出现在人们的视线里。人们对二轮自平衡车的研究也越来越深入,研究成果也在不断问世,进而也推动了二轮自平衡车的迅猛发展。本文结合二轮车现有技术,设计了一种二轮自平衡车的制作方案。整个系统采用飞思卡尔16位单片机MC9S12XS128位核心控制器,采用MEMS加速度传感器MMA7260和陀螺仪ENC-03搭建二轮车姿态检测装置,结合卡尔曼滤波完成加速度计数据和陀螺仪数据的融合,实现车身控制、传感信号处理和人机交互等功能。整个小车设计制作完成后,在各个模块的协调配合下,可以实现自平衡,同时,在遇外界干扰时小车可以自主调整并快速恢复平衡稳定状态,在此基础之上,实现小车的前进、后退、拐弯和爬坡等基本功能。关键词: 二轮自平衡,陀螺仪,加速度计,卡尔曼滤波 Two self-balancing vehicle design and productionAbstractWith the development of science and technology, people increasingly diverse traffic travel tool. In recent years, two self-balancing vehicle more and more in peoples line of sight. Study of two-wheeled self-balancing people are increasingly car-depth research has also been published, and thus also contributed to the rapid development of two-wheel self balancing vehicles. In this paper, two-wheeled vehicle prior art, the design of a two self-balancing vehicle production program. The system uses the Freescale 16-bit microcontroller MC9S12XS128 core controller, using MEMS acceleration sensor MMA7260 and gyroscope ENC-03 to build two-wheeled vehicle attitude detection means complete Kalman filter data accelerometer and gyroscope data integration, to achieve body control, sensor signal processing and interactive functions.After the design is completed the entire car, in coordination with the various modules can achieve self-balance, while, in the case of external interference can independently adjust the car and quickly restore equilibrium steady state, on this basis, to achieve the car forward and backward , turning and climbing and other basic functions.Keywords: two self-balancing, gyroscopes, accelerometers, Kalman filter目录二轮自平衡车的设计与制作I1绪论11.1研究背景11.2研究意义21.3二轮自平衡车的关键技术21.3.1系统设计21.3.2姿态检测系统31.3.3控制算法31.4本文主要研究目标与内容32 系统原理分析32.1控制系统分析32.2平衡控制原理分析42.3 PID控制器原理设计62.3.1 PID控制器原理62.3.2 PID控制器设计62.4姿态检测系统82.4.1加速度计82.4.2陀螺仪82.4.3基于卡尔曼滤波的数据融合92.5本章小结93 系统硬件电路设计103.1单片机最小系统设计103.2 电源管理模块设计123.3倾角传感器信号调理电路133.3.1加速度计电路设计133.3.2陀螺仪放大电路设计133.4电机驱动电路设计143.4.1驱动芯片介绍143.4.2 驱动电路设计153.5速度检测模块设计163.5.1编码器介绍163.5.2 编码器电路设计173.6本章小结174 系统软件部分设计174.1软件系统部分总体结构174.2单片机系统初始化软件设计184.2.1锁相环初始化184.2.2模数转换模块初始化184.2.3ECT中断捕捉模块初始化194.2.4串行通信模块初始化194.2.5测速模块初始化194.2.6PWM模块194.3姿态检测系统软件设计204.3.1陀螺仪与加速度计输出值转换204.3.2 卡尔曼滤波器的软件实现204.4平衡PID控制软件实现214.5二轮车的运动控制224.6本章小结245 车体设计安装245.1 车体造型的设计245.2 平衡车完成图256 总结26致谢27参考文献28111绪论1.1研究背景伴随着信息化、智能化时代的到来,电子技术不断发展壮大,特别是移动机器人行业的发展,现如今已然成为了最活跃的科学领域之一。再加之人们对智能产品的追求越来越多,要求越来越高,使得机器人行业的应用越来广泛,当然,这样也导致了智能机器人行业面临的任务和环境更加复杂,面对的挑战也更大,特别是智能移动机器人行业。比如,户外智能移动机器人需要能够平稳的行走在凹凸不平的路面,当遇上交通拥堵时,能够像行人一般行走在比较狭窄的道路之上。如何解决这样的问题,逐渐成为了人们关注的问题。在这样的背景下,二轮自平衡车应运而生。所谓二轮自平衡车,不同于现有的自行车、摩托车等传统二轮车。这种智能移动机器人最显著的特点在于:采用了两轮共轴的设计,采用差分式驱动方式(两个轮子独立驱动)工作,这样就导致了车体重心位于车轮轴上方,通过轮子的左右、前后运动以保持车身的平衡,最终实现直立行走的目的。二轮自平衡车自问世以来,一直受到全世界各国智能机器人爱好者的追捧和研究者的关注。究其原因,在于二轮自平衡车具有独特的结构和造型,其次在于二轮车本身的不稳定性和非线性使之成为很好的验证控制方法和控制理论的平台,具有很高的研究价值。二轮自平衡机器人的概念,最早是在1987年由日本电信大学教授山藤一雄提出来的。这个概念就是用数字处理器来检测平衡状态的改变,然后以平行双轮来保持机器的平稳12。现如今,二轮自平衡车发展已经相当成熟,以美国人狄恩卡门与他的DEKA研发公司研发的并且可以用于载人的二轮自平衡车为代表,被命名为赛格威(Segway),已大量投放市场,如图1-1所示。由于其活动灵敏方便,采用电能绿色能源无污染等优点,已被广泛应用于奥运、世博会、广场巡逻、园区、小区等场合。图1.1 二轮自平衡车1.2研究意义从社会发展角度看,现代社会自动化水平越来越高,人们迫切需要更智能化的工具代替人工,提高效率,所以本设计顺应时代潮流。从环境保护的角度看,当今世界环境污染、能源危机问题越来越严重,二轮车有节能、灵活方便、无污染的优势,所以研究它有很好的市场导向。从学术研究上来看,二轮自平衡车是一个复杂的动态控制过程,具有多变量、非线性、强耦合等特点,对实践要求较高。作为电子信息科学与技术专业的本科毕业生,学习过这方面的科学知识,研究它可以提高我的分析、设计、动手能力,开阔我的眼界。综上所述,该设计及值得为之努力。1.3二轮自平衡车的关键技术1.3.1系统设计二轮自平衡车的系统设计分为三个部分,分别是:车体机械结构设计、硬件系统结构设计和软件系统结构设计。在硬件系统上,采用自平衡所需要的所以电子系统和电气设备,通过软件系统控制车体结构小车重心的稳定性。1.3.2姿态检测系统二轮自平衡车在运动过程中,需要实时检测车身姿态和运动状态,这些靠姿态检测系统来完成。然后根据检测的数据及时的对小车进行控制。所以,获得小车的姿态信息是实现对小车平衡有效控制的关键所在。采用MEMS陀螺仪和加速度计等惯性传感器构成的姿态检测系统,不仅可以实现对小车姿态信息的实时、准确的检测,而且经济性和实时性也够理想。但是,由于惯性传感器自身存在不同程度的漂移和噪声,直接获得的数据误差较大,为此,必须使用一些滤波算法,对加速度计和陀螺仪的数据进行滤波融合,进而减小数据误差,提高车身姿态检测的准确性。1.3.3控制算法二轮自平衡车实现的是一种动态平衡,其本身是一个不稳定系统。在遇到外界干扰情况下,如何快速恢复稳定状态,是控制算法需要解决的核心问题。PID控制算法应用比较广泛,可以实现小车的控制系统要求。初次之外,像基于状态空间的LQR、模糊控制、神经网络3等比较先进算法也可以考虑。1.4本文主要研究目标与内容本论文设计并制作一款简易两轮自平衡车,探究了小车姿态检测中加速度计和陀螺仪的互补特性,结合其特性,选择和设计滤波算法。主要内容如下:(1) 二轮车车体设计:机械、重心调整、电子电气设计等。(2) 信号调理及控制部分电路设计:设计信号调理电路,对陀螺仪输出的信号进行进一步的滤波和放大。此外,还需要设计主控单元电路,从而构建相关输入和输出模块以及人机交互设备。(3) 点机驱动电路设计:本系统采用直流电机,为此,还需要设计直流电机驱动电路。(4) 控制算法设计:采用PID控制算法,包含两路闭环控制。分别是直流电机的速度闭环控制和二轮车姿态倾角的闭环控制。(5) 软件控制设计:软件系统负责对小车的车身重心进行控制,包括对小车运动的控制。2 系统原理分析2.1控制系统分析二轮自平衡车,不仅要实现自身的平衡,而且还需要在保持平衡的基础上,实现前进、后退和拐弯等功能。经分析可知,保持车身平衡和运动所需要的动力都来自于由两个直流电机独立驱动的两个轮子。所以,控制好两个轮子的速度是控制系统的关键。据此,可将整个控制系统划分为三个部分:平衡控制系统、车速控制系统和方向控制系统。(1)平衡控制系统:以小车倾角为输入量,通过控制两个电机的正反转保持小车平衡,实现姿态稳定。(2)车速控制系统:在保持平衡的基础上,通过改变小车姿态倾角信息实现对小车电机的控制,进而实现对小车速度的的控制。(3)方向控制系统:当两个电机的速度相同时,小车直行,若两电机速度不同,则小车会发生拐弯。所以可以通过控制两个电机间的转速不同实现转向。由于三个子系统最终控制的都是小车的电机,所以三个子系统在独立工作的同时,彼此之间存在耦合。其中,平衡控制系统是控制系统的核心和基础,也是整个控制系统的难点。在分析各个子系统时,便于分析,可以假设其他控制系统都已经达到稳定状态。小车同时受到三个系统的控制,从平衡的角度看,其他两个系统就是干扰。据此,为了减少对平衡控制系统的干扰,速度控制和方向控制系统应尽量保持平滑。2.2平衡控制原理分析我们来看一个生活中的例子:小时候,我们都玩过用手指保持木棍直立的游戏,谁保持的时间长,谁就获胜。这种游戏很简单,通过简单训练就能实现。从科学的角度看,要完成这个游戏,有三个必要条件:一是可以自由移动的手指,二是大脑,另一个是眼睛。手指可以拖着木棍自由移动,二眼睛需要观察木棍的倾角与倾斜趋势,说的科学点就是角度和角速度。眼睛观察木棍的倾角和倾斜趋势,通过大脑讲这些信息传给手指,然后通过手指来移动木棍,以减小倾角和请教趋势。从控制理论讲,这实际上就是一种负反馈机制,其反馈机制如图2-1所示。图2-1 保持木棍直立的反馈控制系统二轮自平衡车的平衡控制正是在此基础之上得来的,而且与之比较则相对要简单些。二轮车上安装的姿态检测系统能够实时获得小车的姿态倾角信息,然后通过控制车轮的转动,进而减小或抵消小车在这个维度上的倾斜力矩,进而维持小车的平衡。原理图如下图2-2所示。自平衡车的平衡控制也是通过负反馈调节来实现的,不过与在指尖保持木棍直立平衡想比较则简单。原因在于小车只依靠两个车轮着地,依靠车轮与地面会发生相对滚动使得小车倾斜。然而小车上装载的姿态检测系统能够对小车的倾斜角度和倾斜趋势进行实时检测,进而通过控制器控制车轮转动,从而抵消在这个维度上的倾斜力矩,这样便可以保持小车平衡,如图2-2所示。图2-2 二轮车动态平衡原理2.3 PID控制器原理设计2.3.1 PID控制器原理现如今的自动控制技术基本上都是基于反馈设计的。所谓反馈,是指将系统的输出送入到输入端并以某种方式改变输入,进而影响系统功能的过程,即将输出量通过恰当的检测装置返回到输入端并与输入量进行比较的过程4。在工程的实际应用中,最广泛的调节器控制为比例、积分和微分控制,这种调节叫做PID调节,简称PID控制。因其具有结构简单、工作可靠、稳定性好、调整方便的特点,已然成为工业控制的主要技术之一,当然,使用PID控制器实现二轮自平衡车的控制是可行的。PID控制器由比例单元(P)、积分单元(I)和微分单元(D)三部分组成。其输入e (t)与输出u (t)的关系为: (式2-1) 为比例系数;为积分时间常数;为微分时间常数。2.3.2 PID控制器设计 由小车静止时其运动方程可得到系统输入输出传递函数: (式2-2) 此时系统具有两个极点:。其中一个极点位于s平面的右半平面。根据奈奎斯特稳定判据可知系统不稳定,因此小车在静止状态不能保持平衡56。从力学角度分析,小车平衡的条件是由地面与车轮的摩擦力提供额外的回复力和阻尼。车轮的加速度大小是根据姿态检测系统获得的倾角和倾角趋势反馈得出的,即由倾角及角速度的反馈调得到的,所以,有必要在控制系统中加入角度及角速度构成比例微分反馈环节,假设控制系统中车轮加速度与倾角成正比关系,比例系数为,为阻尼系数,则引入比例微分反馈环节后的控制系统结构图如图2-3所示。图2-3 加入比例微分环节后的控制系统结构图加入比例微分反馈后的系统传递函数为: (式2-3) 此时,解得系统的两个极点。根据奈奎斯特稳定判据7可知,系统稳定需要两个极点都位于s平面的左半平面。要满足这一点,需要g, 0。从控制理论看,在反馈环节中,与倾角成比例的控制量又称为比例控制,与角速度成比例的控制量又称为微分控制。所以,又可以分别称为比例控制参数和微分控制参数。控制系统的输出量为电机控制量,因而小车平衡控制的PID控制器的输出方程可写为:OUT=Kp*Angle+Kd*Angle_dot (式2-4)OUT:PID的控制输出;Angle:反馈倾角值;Angle_dot:反馈角速度;Kp:比例系数;Kd:微分系数。2.4姿态检测系统二轮自平衡车,其本身是一种不稳定的非线性系统,有别于传统的前后轮的小车。二轮车需要实时调整自身的角度姿态,从而维持一种动态平衡。MEMS惯性器件,体积小、寿命长、可靠性高、成本低,适于构建微型惯性导航系统。所谓惯性导航,依据的是牛顿惯性原理,利用惯性原件测量本身的加速度,通过积分运算获得速度和位置信息,从而达到姿态检测的目的。采用MEMS加速度计和陀螺仪来构建二轮自平衡车的姿态检测系统,是可取的。2.4.1加速度计加速度计,其原理是利用检测质量(也称敏感质量)块的惯性力来测量载体本身加速度的装置。根据加速度的种类不同,又分为线加速度计和角加速度计。本系统采用的是加速度计MMA7260,它是一种具有低g值,且小量程线性的加速度传感器。检测范围在06g之间,其不受重力作用或者不运动时的输出电压为1.65V,且灵敏度高达800mV/g。实物图如下图2-5。图2-5 加速度计MMA7260加速度计通过反三角函数计算可以直接获得小车倾斜角度,但是误差较大,不能直接使用。因为其对震动比较敏感,再加之有大量噪声干扰,除此之外,其输出值是小车重力加速度和运动加速度的混合数据。2.4.2陀螺仪所谓陀螺仪,是一种用高速回转体的动量矩敏感壳体相对惯性空间正交于自转轴的一个或两个轴的角运动检测装置。本二轮自平衡车使用的是单轴陀螺仪ENC-03。具有体积小、功耗低、响应快等优点。其原理是利用旋转坐标系中的物体会受到科里奥利力的作用,在器件中利用压电陶瓷做成振动单元。当器件旋转时会改变振动频率,从而映射出物体旋转的角速度。陀螺仪直接输出角速度,检测范围可达正负300度每秒,将角速度进行积分便可以得到角度。陀螺仪输出数据噪声较少,短时间误差小。但是陀螺仪及其放大电路有温漂存在,而且是通过积分进行运算,故存在时间积累,最终会导致误差累积,致使检测结果误差较大。所以也不能利用陀螺仪的积分结果直接作为可以使用的角度89。2.4.3基于卡尔曼滤波的数据融合从以上分析可知,依靠单一的惯性传感器可以直接进行姿态角度检测,但是其准确性取决于惯性器件的精度,这样就会增大了设计成本,并且系统误差会随时间累积,不适合用于长时间姿态检测。由于利用单一传感器(陀螺仪或加速度计)难以获得相对真实的小车姿态角度,但是可以将多个传感器件测出的数据进行整合,彼此数据想互补充,进而减小系统误差,基于对系统测量姿态角度准确性的考虑,二轮自平衡车系统采用多传感器信号进行数据融合,以获得最佳姿态角度910。依靠多传感器进行数据融合是一项非常重要的研究课题,但是其关键是采用最适合的融合方法才能获得最佳的效果。加权平均法,神经网络法等都是常用数据融合的方法。就加权平均法而言,其本身是一种简单的融合方法,其缺点是运算精度很差;而神经网络算法,虽然具有很好的非线性和有效的自学能力,但是其参数优化、模型构建相当复杂,不适用于二轮车自平衡系统。考虑到本系统成本较低,本系统最终采用了卡尔曼滤波算法。卡尔曼滤波器与大多数滤波器不同,在于其是一种纯粹的时域滤波器,不需要像低通滤波器等频域滤波器那样,需要在频域设计后再转换到时域实现。卡尔曼滤波器的广泛应用在机器人导航,控制,传感器数据融合等方面,甚至在军事方面也有应用,像雷达系统以及导弹追踪等等。 卡尔曼滤波器的操作主要包括两个阶段:预估与更新。在预估阶段部分,滤波器根据上一时刻的状态,估算出当前时刻的状态;在更新阶段部分,滤波器利用当前时刻的观测值优化在预估阶段获得的测量值,以获得一个更准确的新估计值。2.5本章小结本章主要阐述了二轮自平衡车系统原理分析,主要包括控制系统、平衡控制原理以及PID控制器的原理等的分析。3 系统硬件电路设计二轮自平衡车的硬件电路主要由以下几部分构成:主控制器、倾角传感器信号调理电路、电源、电机驱动电路以及速度检测电路。其中,主控制器为MC9S12XS128单片机最小系统。系统整体硬件设计图如下:图3-1 硬件设计总体框图基于可靠性的系统要求考虑,需要对电路设计中的所有环节进行电磁兼容性设计,并且做好各个部分的接地、滤波和屏蔽工作,讲模拟电路和数字电路分开,进而提高系统工作的可靠性。3.1单片机最小系统设计该二轮自平衡车的核心控制器采用飞思卡尔公司16位单片机MC9S12XS128,最小系统原理图如下图3-2所示。图3-2 单片机最小系统原理图 包括了单片机供电、复位、时钟和BDM接口电路。其中时钟电路使用的外部晶振频率范围是在216MHz,并且可以利用MCU内部的5位可编程分频因子,做264分频,这样,可以产生频率稳定的时钟信号。对于S12XS芯片,允许使用的最高总线频率为40MHz。本设计中采用的外部晶振为16MHz,电容C11和C12为外部时钟的起振电容。基于经济角度考虑,本系统的外部复位电路采用了电阻电容构成的简易复位电路。其电路设计图如图3-4所示。图3-4 复位及BD M接口电路通电之后,由于电容的充电时间,RESET始终保持低电平,单片机复位;一段时间后,当电容电量充满,RESET端输出高电平,此时单片机运行,从而实现了开启自动复位的功能。当然,也可以实现手动复位,当按下复位按钮,RESET端保持低电平,此时单片机受到复位;释放复位按钮后,RESET端输出高电平,单片机开始工作。对于BDM接口,它的作用是S12单片机用来连接BDM调试器的。3.2 电源管理模块设计基于环保的角度,本设计采用镍氢可充电电池为系统的电源方案。整个电源模块由若干的相互独立的稳压电路构成。可靠的电源方案是整个硬件电路稳定可靠运行的基础。电源模块由若干相互独立的稳压电路模块组成。这样做可以减少各模块之间的相互干扰,另外为了进一步减小单片机的5V电源噪声,可以单独使用一个5V的稳压芯片,与其它接口电路分开。整个系统需要3种电源:(1) 5V电源,为单片机及相关外设供电。 (2) 7.2V电源,为驱动电机供电。 (3) 3.3V电源,为陀螺仪及加速度计供电。整个二轮自平衡车系统电源来自7.2V镍氢电池,由LM2940转换后提供5V电源。LM2940是一种线性低压差三端稳压器件,因其输出纹波较小,所以适合为单片机供电。3.3V电源来自AMS1117。整个电机供电直接采用电池供电,电路图如图3-5所示。图3-5 电源模块电路图3.3倾角传感器信号调理电路3.3.1加速度计电路设计本系统采用的加速度计是飞思卡尔公司三轴加速度计MMA7260。它是一种低g值的传感器,输出信号足够大,没有必要对其再进行放大。本系统设置其灵敏度为800mv/g,通过GSEL1和GSEL2管脚也可以进行选择灵敏度。电路如图3-6所示。图3-6 加速度计接口电路图3.3.2陀螺仪放大电路设计本系统采用的陀螺仪ENC-03,出自村田公司。其成本较低,输出为0.67mv/deg/sec。主控单片机的ATD模块采集精度最高为12bit,而AD基准电压为3.3V,经计算得到的最小分辨电压为0.8mv,因此不能直接对陀螺仪输出信号进行采集,需要设计放大电路。系统采用LM358(图3-8 U1B)设计负反馈放大电路,放大倍数为,计算可知需放大10倍。同时,由于陀螺仪输出存在温漂,影响系统倾角检测精度,为抑制陀螺仪温漂,需要在放大电路中设计零点偏置电压调整电路。本二轮自平衡车系统中利用LM358构成电压跟随器,输出的电压通过电位器进行调节,使零点偏置电压保持在陀螺仪工作电压的一半(1.65V),这样可以有效抑制陀螺仪的温漂,放大电路10如下图3-7所示。图3-7 放大电路3.4电机驱动电路设计由于二轮自平衡车在平衡过程中通过不断前后运动来调整自身姿态,因此需要电机能够实现双向转动的功能。基于此,系统采用两片专用半桥驱动芯片BTS7960构成全桥式驱动电路。单片机的PWM模块产生驱动波形,通过改变PWM占空比实现直流电机的调速功能。3.4.1驱动芯片介绍BTS7960 是英飞凌(Infineon)公司一款针对电机驱动应用的完全集成的大电流半桥芯片,封装集成了一个N通道的低边场效应管和一个P通道的高边场效应管以及一个集成控制电路。由于上桥臂采用的是P通道开关,所以电磁干扰减至了最小。由于内部集成控制电路具有逻辑电平输入功能,因此与单片机的接口电路就比较简单。基本特点如下: (1)在时导通电阻的典型值为; (2)低静态电流,在时的典型值仅为; (3)与主动续流相结合的脉宽调制能力高达25kHz; (4)开关电流限制降低功耗的过流保护; (5)最大驱动电流可达到43A; (6)具有电流检测能力的状态标志诊断; (7)具有锁定行为的过热关断功能; (8)具有过压锁定功能; (9)具有欠压关断功能; (10)带有逻辑电平输入的驱动电路; (11)用于优化电磁干扰的可调节转换率。3.4.2 驱动电路设计由于电机启动瞬间电流很大,会将整个系统电压拉低,造成其他设备如单片机的工作不正常,因此要在电池电源输入侧加上较大滤波电容。采用两片BTS7960构成的全桥式电机驱动电路11图如图3-8所示。如图3-8所示,PWM1和PWM2分别为两个半桥的控制端口。当PWM1为高电平,PWM2为低电平时,MOTOR1口即输出高电压,MOTOR2输出低电压,此时控制电机正转;反之,当PWM1为低电平而PWM2为高电平时,MOTOR1口即输出低电压,MOTOR2输出高电压,此时控制电机反转。通过改变PMW1和PWM2端口的驱动波形占空比改变输出端电压,从而实现电机调速的目的。图3-8全桥电机驱动电路3.5速度检测模块设计两轮自平衡小车的原理是利用地面对车轮的摩擦力抵消车受到的重力,在本系统的控制环节中有两路闭环控制,即倾角闭环控制以及速度闭环控制。为实现速度的闭环控制,必须加入速度检测装置实现速度闭环控制中的反馈环节。本系统测速模块采用OMRON(欧姆龙)公司500线增量式旋转编码器。3.5.1编码器介绍编码器(encoder)是将信号(如比特流)或数据进行编制、转换为可用以通讯、传输和存储的信号形式的设备。编码器内部为一个中心有轴的光电码盘,其上有环形刻线,通过光电发射和接收器件读取,获得四组正弦波信号组合成A、B、C、D四相正弦波,每个正弦波相差90度相位差,将C、D信号反向,叠加在A、B两相上,可增强稳定信号;另外每转输出一个Z相脉冲以代表零位参考位。由于A、B两相相差90度,可通过比较A相在前还是B相在前,以判别编码器的正转与反转,通过零位脉冲,可获得编码器的零位参考位如图3-9。图3-9 编码器A、B相输出波形3.5.2 编码器电路设计由于编码器采用集电极开路输出,输出波形为矩形波,因此编码器外围电路较为简单。需要在信号输出端接入一个上拉电阻,即可将信号提供给单片机采集数据12。如图3-10所示,为编码器接口电路。编码器A相为PULSE引脚,接单片机的脉冲计数口,通过单片机的PACNT模块对输入脉冲进行计数从而获取电机转速。编码器B相输出则为DIR引脚,接单片机的I/O口,依靠A、B之间的相位差进行软件鉴相,从而判断电机转动方向。图3-10编码器接口电路3.6本章小结本章主要阐述了二轮自平衡车的硬件部分的设计,包括各个模块的设计以及速度的检测和速度的闭环控制等内容。4 系统软件部分设计4.1软件系统部分总体结构本章将介绍两轮自平衡小车的软件设计,软件设计是两轮自平衡小车设计中的关键。根据系统要求,需要完成的总体软件设计包括五部分:单片机系统初始化,姿态信息采集,卡尔曼滤波,速度检测,直流电机PID控制算法。系统软件流程14如图4-1所示。图4-1系统总体软件流程图4.2单片机系统初始化软件设计单片机系统初始化主要包括以下模块:锁相环模块、模数转换模块、ECT中断捕捉、定时器、串行通信模块及PWM模块等。4.2.1锁相环初始化本系统控制核心采用MC9S12XS128,其工作频率为40MHz。其总线频率可以通过PLL模块设置,最高可至96MHz。但是过高得频率可能导致单片机工作性能不稳定,考虑到本系统需要进行卡尔曼滤波,其递归过程很占系统资源,因此,在本系统中将单片机工作频率设定为64MHz。4.2.2模数转换模块初始化 本系统涉及到多传感器的数据采集及控制,传感器输出信号为模拟量信号,因此需要通过模数转换为数字量后交与单片机处理,而且对模数转换单元有着较高的要求。MC9S12XS128单片机内部自带模数转换模块,其最高精度为12比特,其最快转换时间3us,完全可以满足本系统对传感器信号采集的要求。设置模数转换模块精度12位,4通道连续采样,采样时间4MHz,非中断触发。4.2.3 ECT中断捕捉模块初始化初始化设置:MC9S12XS128的ECT内部有十六位的计数器,而且计数器的时钟频率可通过总线时钟分频13,依靠设置寄存器TSCR2而得到。ECT不仅可以用来产生控制信号,也可以作为一个时钟产生定时中断。4.2.4 串行通信模块初始化SCI模块主要用来设置串口的波特率,工作模式以及中断允许标志位,进而实现与上位机的通信,辅助系统调试。4.2.5 测速模块初始化在本二轮自平衡车系统中,通过旋转编码器来获取小车速度。编码器的反馈脉冲个数正比于二轮车所移动的距离。根据编码器反馈脉冲数来测量小车转速,其具体方法是在规定时间内测量产生的脉冲个数来获得车速。该方法法测速需要对脉冲进行过计数,同时利用定时器产生定时中断。在本系统中,MC9S12XS128单片机的ECT模块可以对外部脉冲产出定时中断。4.2.6 PWM模块MC9S12XS128内部集成了8路独立的PWM通道,没路八位,并且每个通道都有专门的计数器,也可以设置PWM的输出极性和对齐方式。8个通道被分成了两组,共被四个时钟控制,每组两个时钟控制。通道0、1、4、5为其中一组,由时钟ClockA或者ClockSA来控制;通道2、3、6、7为另外一组,由时钟ClockB或ClockSB来控制。而时钟A和B的周期是通过设置PWMPRCLK寄存器对总线分频控制,时钟SA与SB的周期可通过PWMSCLA和PWMSCLB寄存器对时钟A和时钟B分频得到。PWM输出信号的占空比和周期由寄存器PWMDTYx和PWMPERx分别设置。8路通道可通过对PWMCTL寄存器设置合成4路,没路十六位,从而达到提高控制精度的目的。PWM初始化流程图如图4-2所示。图4-2 PWM模块初始化4.3姿态检测系统软件设计4.3.1陀螺仪与加速度计输出值转换本系统采用的惯性传感器为模拟量输出式,进行模数转换后,检测出传感器的输出电压。除此之外还需要对加速度和陀螺仪的输出进行转换运算,使最终送入卡尔曼滤波器的为陀螺仪检测的角速度以及加速度计检测的角度。4.3.2 卡尔曼滤波器的软件实现通过查阅卡尔曼滤波原理资料可知,卡尔曼滤波器本质上是一种高效率的递归滤波器,也称作自回归滤波器。卡尔曼滤波器的工作流程如图4-3。图4-3 卡尔曼滤波器预估-更新流程图4.4平衡PID控制软件实现PID控制器主要P、I、D三部分组成。P代表比例单元,I代表积分单元,D代表微分单元,其输入与输出之间存在一种非线性关系。在两轮平衡车系统中,以车身在重力方向的倾角作为输入量输入PID控制器,而输出则为电机控制量,本二轮自平衡车系统使用的是直流电机,采用调压调速的方法,输出量为PWM驱动占空比15。在控制占空比很小的时候,电机电枢通电,但是由于静摩擦力的存在,电机产生的牵引力无法克服静摩擦力时,转子无法转动。基于此考虑,我们需要加上一个死区电压常量以平衡掉小车与地面的静摩擦力,以此提高系统静态稳定性。图4-4显示了电机死区补偿关系。图4-5显示了二轮自平衡车PID控制软件流程图。图4-4 电机死区补偿图4-5 二轮自平衡车PID控制软件流程图4.5二轮车的运动控制在二轮车保持平衡基础上,让其实现前进、后退、左右转向等功能。当小车重心前倾或者后仰导致其倾角发生改变时,此时若要使二轮车继续保持平衡,控制系统则会控制电机向二轮车车身倾斜的方向运动,减小倾角的改变,通过二轮车运动所产生的惯性力与重力的分力相抵消。这样小车就完成了前进或者后退的动作。为了能够对小车速度进行快速稳定的控制,本二轮自平衡车系统加入了编码器来进行速度反馈,形成速度的闭环控制环节16。系统的速度控制策略采用了PID控制。系统的输入为车速的偏差,而系统的输出为倾角,通过平衡控制实现控制车速的目的。保持平衡是平衡车的首要任务,所以对系统的速度控制,本质上对平衡控制来说是一种干扰,将二轮自平衡车系统速度控制周期设定为50ms,以达到降低干扰,提高速度控制力度的目的。在速度实际的控制中,我们用了带死区的PID算法17。其目的是为了防止调节过于频繁,继而会导致系统振荡。车速PID控制伪代码如下:方法名(参数:期望车速) 变量1:实际车速 变量2:车速偏差=|期望车速-实际车速| 变量3:车速偏差允许范围 IF(变量2变量3&变量2!=0) 车速偏差=0; 不做任何改变ELSE 改变车速,然后继续比较车速偏差=|期望车速-实际车速|当期望车速与实际车速偏差不大时将偏差设为零,以此保持系统的稳定性。如果PID控制器的输出值超过了保持平衡可控角的范围时,控制系统则将此时的输出改为最大可控角,从而使输出值在可控角的范围之内。而二轮自平衡车的转弯功能实现起来则较为简单。在速度控制周期内。要使小车在平衡的基础之上实现转向功能,只需对两个电机实现差速输出即可。即当左轮车速高于右轮时,车子右拐,反之,车子左拐。自平衡运动控制伪代码如下:方法名(参数1,参数2)SWITCH(参数1) CASE 0: 直行;BREAK;CASE 1: 后退;BREAK;CASE 2: 右转;BREAK;CASE 3: 左转;BREAK;通过电机控制子函数给电机设定速度,而通过参数1的设置进行选择是直行、后退、右转或是左转。4.6本章小结本章主要阐述了二轮自平衡车的软件部分的设计,包括各个模块的设计以及速度的检测和速度的闭环控制等内容。5 车体设计安装5.1 车体造型的设计基于成本以及造型本着美观的考虑,车体较小,材料也较轻,目的是减小摩擦,更有利于平衡。根据设计,车体的造型选用较大车轮,在轻量化的基础上更巧妙的把电机安装在两车轮之间,如图5.1;电源模块安装在了最底部,也使得小车重心下移,更稳定,如图5.2;车顶端选用方形木板,把电路板与电源放置其中,十分美观,如图5.3。图5.1图5.2图5.35.2 平衡车完成图整个设计完成后,两轮自平衡车实物如图5.5所示。图5.56 总结经过这一学期的努力,在老师的指导和帮助下,实现了二轮自平衡车的设计与制作。通过相应的软硬件结合,实现了对二轮自平衡车的运动控制。虽然还有很多不足,但是基本上实现了小车前进、后退以及左右转弯的功能。致谢四年的学习生活即将结束,回首往事,难以忘怀在这四年的学习和生活中给予我关怀和支持的老师和同学们。我能够顺利地完成本科阶段的学习,首先要感谢贾鹏霄老师,为我提供各种参考资料,并给我参考意见,及时督促我完成毕设,最终使我按时完成了毕业设计。参考文献1张培仁.基于16/32位DSP机器人控制系统设计与实现M.北京:清华大学出版社, 2006:911.2He Kezhong,Sun Haihang,Guo Mtthe ed allResearch of intelligent mobile robot key techniquesJ. IEEE International Conference on IndusIrial Technology,1996:503507.3霍亮.两轮自平衡电动车的关键技术研究D.哈尔滨:哈尔滨工程大学,2010.4好搜百科./doc/5384190-5620599.html5谢克明.自动控制原理M.北京:电子工业出版社,2009.6屠运武,徐俊艳,张培仁.自平衡控制系统的建模与仿真J.系统仿真学报.2004(04).7陈建民.自动控制理论M.北京:电子工业出版社,2009.7.18 Ren Yafie,Ke Xizheng,Liu Yijie.MEMS Gyroscope Performance Estimate Based on Allan VarianceA.In Proceedings of 2007 8th International Conference on Electronic Measurement & InstrumentsC. Xian China.Vol.1, 260-263.9吉训生,王寿荣.MEMS陀螺仪随机漂移误差研究J.宇航学报.2006(04).10童诗白.模拟电子技术基础第四版M.北京:高等教育出版社,2006.5.11吴红星.电机驱动与控制专用集成电路及应用.北京:中国电力出版社,2006.6.12刘勇.数字电路M.北京:电子工业出版社,2007.07.13丁坚勇.电力系统自动化.北京:中国电力出版社,2006.05.14谭浩强.C程序设计M.北京:清华大学出版社,2005.15T. Boksasp, E. Utnes. Android Apps and Permissions: Security and Privacy Risks. Trondheim: Norwegian University of Science and Technology, 2012.16K. Karra, Wireless Distributed Computing on the Android Platform. Virginia: Virginia Polytechnic Institute and State University, 2012.17I. Njunjic, Development Techniques for Android Platform Mobile Device Application. Michigan: Eastern Michigan University, 2012.3.系统电路原理图 系统核心源代码#include #include derivative.hvoid main(void)/* put your own code here *DDRB=0xff;PORTB=0xff;Sys_Configuration();DisableInterrupts; EnableInterrupts; while(1) extern Sys_Configuration(void) PLL_Configuration(); SCI_Configuration();ATD_Configuration();ECT_Configuration(); PIT_Configuration(); PWM_Configuration(); static void PLL_Configuration(void) CLKSEL=0X00; PLLCTL_PLLON=1; SYNR =0xc0 | 0x07; REFDV=0x80 | 0x01; POSTDIV=0x00; _asm(nop); _asm(nop); while(!(CRGFLG_LOCK=1); CLKSEL_PLLSEL =1; static void SCI_ Configuration (voi

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论