毕业论文基于MSP430F149单片机的两轮自平衡小车的设计与研究.doc_第1页
毕业论文基于MSP430F149单片机的两轮自平衡小车的设计与研究.doc_第2页
毕业论文基于MSP430F149单片机的两轮自平衡小车的设计与研究.doc_第3页
毕业论文基于MSP430F149单片机的两轮自平衡小车的设计与研究.doc_第4页
毕业论文基于MSP430F149单片机的两轮自平衡小车的设计与研究.doc_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

摘要基于MSP430F149单片机的两轮自平衡小车的设计与研究摘 要两轮自平衡小车类似于传统的倒立摆,其本身是不稳定的,必须施加强有力的控制手段才能使之稳定,是研究各种控制方法的一个理想平台。其工作原理是系统通过陀螺仪和加速度传感器整合出当前车身较精确的与垂直方向的偏角和小车的运行加速度,利用光电编码器测得当前运行速度。依据运动学原理,通过微控制器计算出适当的数据,输出相应占空比的PWM波形驱动电机以适当的速度运行,从而来维持车体的平衡。本文选用MSP430F149单片机为控制器,光电编码器来测得车体当前速度,MPU-6050测得车体的角加速度和运行加速度,并通过带有减速器的直流电机实现小车的平衡控制。关键词:两轮自平衡小车,陀螺仪,加速度计,MSP430F149,光电编码器,PWM19ABSTRACTABSTRACTTwo-wheeled self-balancing car is similar to that of a traditional inverted pendulum, which itself is not stable whom must be exerted strong control to make .It is an ideal platform for the research of various control methods. Its working principle is through the system of gyro and acceleration sensor integrated operation of the body of vehicle acceleration accurately and the angle, measured its speed by the photoelectric encoder. Through the single-chip microprocessor to calculate the appropriate data based on kinematics, and output the corresponding PWM waveform to drive motor running at an appropriate rate in order to maintain body balance. This paper chooses MSP430F149 MCU as the controller, photoelectric encoder to measure the velocity, MPU-6050 as the gyro and acceleration sensor, and the DC motor with reducer to realize the control system of car.Keywords: gyroscope, accelerometer, MSP430F149, photoelectric encoder, PWM,self-balanced two-wheel vehicle目录目录2 自平衡小车自平衡设计原理12.1 自平衡小车直立控制12.2 自平衡小车速度控制32.3自平衡小车倾角的测量62.4总控制流程图83 自平衡小车硬件电路的设计83.1 MSP430F149单片机最小系统83.2电机驱动电路93.3 MPU6050电路103.4 供电电源电路114 自平衡小车软件分析设计114.1 系统程序结构分析114.2 IIC通信程序设计124.3 计数程序设计144.4 PID调节器程序设计154.4 卡尔曼滤波器程165 结论17参考文献18致 谢19泰山学院本科毕业论文(设计)1 引言近年来,两轮自平衡电动车以其行走灵活、便利、节能等特点得到了很大的发展。国内外有很多这方面的研究,也有相应的产品。两轮自平衡小车是仿照两轮自平衡电动车来设计的,它越来越受大学生、研究生所推崇。对于各大学设定的课程中,偏重于理论知识的学习,比如:自动化专业课程里设定的自动控制原理、电机拖动、现代控制理论、单片机原理与设计、计算机控制系统、电力拖动自动控制系统,微机原理等,过多理论知识的讲解,即使有相当一部分侧重于实用,但是仍然让大部分实践经验极度匮乏的大学生学习起来相当的困难,难以理解具体工程实践的运用,从而使越来越多的学生失去了对知识探索的兴趣。而两轮自平衡小车的制作和控制方案的设计,不仅能够提高学生的动手能力、创新能力和接受挑战的能力,还可以对课本上的理论知识进行系统、深入的理解与运用。对两轮自平衡小车的设计与研究的最主要问题还是对本质不稳东两轮小车自平衡控制问题的研究。同时也是对大学四年来自动化领域一部分理论知识的学习进行系统的总结与运用,为将来在控制领域继续很好的发展打下坚实的理论基础与实践基础。 本文的主要研究内容包括:(1) 两轮自平衡小车硬件电路的设计。(2) 小车运行时车速测量方法的选择。(3) 小车偏离平衡位置夹角最小误差测量方法的选择(4) 研究自平衡小车的控制策略。2 自平衡小车自平衡设计原理2.1 自平衡小车直立控制首先,让我们简单的分析一下普通单摆偏离平衡位置后能够自动恢复到平衡位置的原理,普通单摆受力分析如图2-1所示。 图2-1 普通的单摆受力分析当物体离开垂直的平衡位置之后,便会受到重力与悬线的作用合力,驱动重物恢复到平衡位置。这个力称之为回复力,其大小为: (2-1)在此回复力作用下,单摆便进行周期运动。在空气中运动的单摆,由于受到空气的阻力,单摆最终会停止在垂直平衡位置。空气的阻力与单摆运行时的速度成正比,方向相反。阻力越大,单摆越会尽快在垂直位置稳定下来。所以,单摆能够稳定在垂直位置的条件是受到与位移相反的回复力,并且受到与运行速度相反的阻力。当倒立摆稳定在平衡位置时,若受到外部扰动时是无法保持稳定的,分析倒立摆的受力,如图2-2所示。 图2-2 倒立摆模型车体受力分析倒立摆之所以不能像单摆一样可以稳定在垂直位置,就是因为在它的偏离平衡位置的时候,所受到的回复力与位移方向相同,而不是相反。因此,倒立摆便会加速偏离垂直位置,直到倒下。若想让倒立摆像单摆一样能够稳定在垂直位置,就得增加额外的受力,使得回复力与位移的方向相反。我们可以通过控制倒立摆底部车轮,使得它作加速运动。由于角很小的,所以可以把水平方向的力看作,这样倒立摆所受到的回复力为: (2-2) 式中,假设控制车轮加速度与偏角成正比,比例为,则恢复力为: (2-3)显然,若果(是重力加速度)那么回复力的方向便与位移方向相反。此外,为了使得倒立摆能够尽快的稳定在平衡位置,还需要增加与偏角的速度成正比且方向相反的阻力。因此,式(2-3)可变为: (2-4)由式(2-4)可知控制车轮加速的控制算法: (2-5)式中,为倒立摆倾角,为角速度,、均为比例系数,两项相加后作为倒立摆车轮加速度的控制量。只要保证在、0条件下,就能使倒立摆平衡。自平衡小车车模可以简化为倒立的单摆,所以,可以通过对倒立摆的平衡控制原理可以近似的用于控制自平衡小车的平衡。所以式(2-5)依然可以用于对自平衡小车车轮的控制,此时,为自平衡小车的倾角,为角加速度,、为比例系数。决定了自平衡小车是否能够稳定到垂直位置,它必须大于重力加速度;决定了自平衡小车回到直立位置阻力系数,选取合适的阻力系数可以保证自平衡小车尽快稳定在垂直位置。2.2 自平衡小车速度控制由于直流有刷电机的转动惯量相对可以做到很小,控制特性好,响应速度快,并且具有很宽的调速范围,速度快,满足两轮自平衡小车的灵敏性和快速性要求;当直流电机低速运转时,平稳性好,能够满足自平衡小车模型稳定性要求,所以我们选择直流电机作为小车模型车轮驱动装置,通过控制直流电机速度实现自平衡小车的平衡。根据直流电机转速方程: (2-6) 式中,为电机转速();电枢电压();电枢电流();电枢回路总电阻();励磁磁通();由电机结构决定的电动势常数。所以我们可以知道调节电动机转速,有三种方法,在自平衡小车上我们是通过改变电枢供电电压来调节电机转速的。供电电压是由MSP430F149单片机输出的PWM波形驱动电机驱动芯片而输出的: (2-7) (2-8) 式中,为PWM占空比;为PWM波形控制电机驱动芯片输出脉冲的最高的电压值();为脉冲高电平持续时间;为PWM输出周期(控制直流电机时我们一般选择10的) 。所以,我们是通过控制PWM占空比的大小,来控制直流电机转速的1。我们都会反问的大小到底是怎样确定的呢?由于额定励磁下的直流电动机是一个二阶线性系统,并且自平衡小车的直流电机上加有加速箱,所以可以将电动机模型简化成如下的一阶惯性环节。施加在电机上一个阶跃电压,电机的速度变化曲线为: = (2-9)式中,为电压;为单位阶跃函数;为惯性环节时间常数;为电机转速常数。对不同的电压,电机的速度变化曲线如图2-3所示。图2-3 电机在不同电压下的速度由图2-3可以看出,电机运动明显分为两个阶段:第一个阶段是加速阶段;第二个阶段为恒速阶段。其中,加速度阶段,电机带动小车后轮进行加速度运动,加速度近似和施加在电机上的电压成正比,加速阶段的时间长度取决于时间常数,该常数由电机转动惯量、减速箱、小车的转动惯量决定;在恒速阶段,电机电动小车后轮进行恒速运行,运行速度与施加在电机上的电压成正比。调整小车直立时间常数很小,此时电机基本上运行在加速度阶段。由上一节式(2-5)计算所得到的加速度控制量再乘以一个比例系数,即为施加在电机上的控制电压,再有式(2-7)便可以计算出。从而由MSP430F149输出相应占空比的PWM波形,这样便可以控制小车保持直立状态。要使的电机能够快速稳定在给定速度,必须要克服外部的扰动,就要引入带有PID调节器的反馈控制。式中,为电压;为单位阶跃函数;为惯性环节时间常数;为电机转速常数。对不同的电压,电机的速度变化曲线如图2-3所示2。图2-4 直流电机反馈控制方框图图2.4中,为直流电机的传递函数;ASK为PID调节器;为直流电输出的转速(rad/s);为给定的电压值。在系统硬件设计时,需要把直流电机运行速度作为反馈量反馈到输入端。由于数字测速具有测速精度高、分辨能力强、受器件影响小等优点,因此,这里我们就引入光电编码器作为电机测速装置。2.3自平衡小车倾角的测量在2.1节分析了自平衡小车直立控制的算法,通过测量小车的倾角和角速度控制小车车轮的加速的来消除小车的倾角。因此小车的倾角以及角速度的测量成为控制小车直立的关键。加速度传感计用于测量物体的线性加速度3,加速度计的输出值与倾角呈非线性关系,随着倾角的增加而表现为正弦函数变化。因此对加速度计的输出进行反正弦函数处理,才能得到其倾角值。测量数据噪声与宽带的平方根成正比,即噪声会随宽带的增加而增加。 = (2-10)式中,为传感器宽带(单位为HZ),如果要得到精确的倾角值,宽带就需要设置的比较小,而这时速度加速计动态响应慢,不适合跟踪动态角度运动,如果期望快速的响应,又会引入较大的噪声。再加上其测量范围的限制,使得单独应用加速度计倾角并不合适,需要与其他传感器共同使用。陀螺仪是用来测量角速度信号的,通过对角速度积分,便能得到角度值,陀螺仪本身极易受到噪声干扰,微机械陀螺仪不能承受较大的震动,同时由于温度变化、不稳定力矩等因素,陀螺仪会产生漂移误差,并会随着时间的推移而累加变大,通过积分会使得误差变得很大。因此,不能单独使用陀螺仪作为测量角度器件,我们引入了减速传感器,辅助陀螺仪工作。测量车模倾角和倾角加速度通过加速度传感器和陀螺仪共同实现,但是,在组合加速度传感器和陀螺仪的时候就会出现轴间差的问题,这就增加了设定给予的影响与感测器的漂移。所以我们就选用了MPU-6050。MPU-6050是全球首例9轴运动处理传感器。它集成了3轴MEMS陀螺仪、3轴MEMS加速计,以及一个可扩展的数字运动处理器DMP( Digital Motion Processor),可用I2C接口输出一个9轴的信号。MPU-6050对陀螺仪和加速度计分别用了三个16位的ADC,将其测量的模拟量转化为可输出的数字量。为了精确耿总快速和慢速的运动,传感器的测量范围都是用户可控的,陀螺仪可测范围为250,500,1000,2000/秒(dps),加速度计可测范围为2,4,8,16g。增加的数字运动处理引擎可减少复杂的融合演算数据、感测器同步化、姿势感应等的负荷。基本引脚图如图2-5所示。 图2-5 MPU-6050输出三个方向的加速度模拟信号,三个方向的加速度模拟信号,如图2-6所示。 图2-6 输出三轴方向通过卡尔曼滤波有效的补偿传感器漂移与测量噪声等因素对加速度计与陀螺仪的影响,从而有效的将加速度计与陀螺仪信号融合。从而能够得到准确的倾角值,然后通过一些算法,就可以控制电机转速,从而控制自平衡小车的平衡状态。2.4总控制流程图本系统结构的总控制流程图,如图2-7所示。图2-7 系统总控制流程图根据系统总流程图来设计自平衡小车的电路和程序来控制小车达到平衡状态。3 自平衡小车硬件电路的设计3.1 MSP430F149单片机最小系统单片机选择TI公司MSP430F149,它体积小(64PIN TQFP),超低功耗,系统工作稳定,有强大的处理能力,并且丰富的片上外围模块,使用起来非常的灵活,所以,很适合做一些较为复杂的控制系统。自平衡小车单片机最小系统电路如图3-1所示。所使用F149单片机的资源包括:l 电机转速脉冲接口:a) TA1(PIN14):右侧电机光电码盘脉冲;b) TA2(PIN15):左侧电机光电码盘脉冲。l 电机PWM驱动接口:a) PWM0-3(PIN37,38,39,40):电机驱动。l 程序下载接口:a) P1.1(PIN13);b) TCK(PIN56);c) REST(PIN57);d) P2.2(PIN22)。l 串口监控接口:a) UTXT0(PIN32);b) URXT0(PIN33)。l MPU6050模块接口a) SDA(PIN20);b) SCL(PIN33)。图3-1 MSP430F149最小系统电路图3.2电机驱动电路由于自平衡小车具有两个电机,因此需要两组电机驱动电路。图3-2选用了L298N驱动芯片组成的驱动电路。图3-2 电机驱动电路由于,MSP430F149单片机输出的高电平电压是+3.3V,可以作为L298N的输入信号。但是,+3.3V的电压不能够使本车模所选用的直流电机有一个较好的调速范围。整个自平衡小车的电路供电电压,不是单一的+3.3V,还要有+5V的供电电源。 为了提高电源的应用效率,驱动电机的PWM波形采用了单极性的驱动方式。也就是说在一个PWM周期内,施加在电机上的电压为一种电压。因此每一路电机为了能够实现正反转,都需要两个PWM信号,两个电极总共需要4路PWM信号。3.3 MPU6050电路图3-3 MPU6050模块电路由于,本系统选用的是MPU6050芯片,该芯片把加速度传感器(陀螺仪)和加速的传感器集成在了一个硅片上。另外,MPU6050输出的是数字信号,也就是说,MSP430控制器可以通过IIC通信方式直接从MPU6050的寄存器中读出平衡小车当前运行的状态。因此,适合本系统的整个MPU6050模块电路,设计起来比较的简单。MPU6050模块电路如图3-3所示。3.4 供电电源电路由于整个自平衡小车系统的控制器(MSP430F149)电路和MPU6050模块电路需要+3.3V电源供电、电机驱动电路需要+3.3V和+5V电源供电。因此,需要设计出两路电源。本系统是由六节5号电池提供电能的,电源电路如图3-4所示4。图3-4 电源电路图4 自平衡小车软件分析设计4.1 系统程序结构分析图4-1 系统程序结构图如图4-1所示,为使自平衡小车达到平衡的目的,主要需要5个子程序,分别是IIC通信程序(MSP430F149单片机从MPU6050读取数据)、PWM产生程序、PID调节程序、电平上升/下降沿触发计数程序(光电编码器输出波形个数的计数)、卡尔曼滤波器程序。由于外界扰动,使得直立静止的小车向着车轮的前/后方方向倾斜。此时,MSP430F149单片机会从MPU6050中读取小车摆动的角速度和水平方向上的加速度。测得两个数据通过卡尔曼滤波器,可输出准确的车体倾角。由此时得到的车体倾角使得控制器输出相应占空比的PWM波形控制电机的运转,而PID调节程序主要是调节直流电机的运转,使得电机有一个较好的运动特性和抗干扰性。应该明确的一点是,由于MSP430F149单片机自身的优越性。PWM波形的输出、计数程序,还有系统监控程序都是通过单片机内部的硬件模块的实现的,这些程序运行时是几乎不占用CPU的时间的。从而,大大的节约了CPU的资源,可以快速精确地执行数据的运算、读取MPU6050寄存器的数据及PID调节器程序。4.2 IIC通信程序设计IIC(Inter-Integrated Circuit)总线是一种由PHILIPS公司开发的两线式串行总线,用于链接微控制器及外围设备。IIC最主要的优点是其简单性和有效性。由于接口直接在组件之上,因此IIC总线占用的空间非常小,减少了电路板的空间和芯片引脚的数量,降低了互联成本。总线的另一个优点是支持多主控,其中任何能够进行发送和接收的设备都可以成为总主线。一个主控能够控制信号的传输和时钟频率。MSP430系列中目前只有MSP430F15/16中含有IIC模块,能够为MSP430和IIC兼容的设备互联提供接口。由于本系统使用的是MSP430F149单片机,在于MPU6050进行通信时,需要通过软件模拟IIC实现。因此,MSP430单片机进行读取MPU6050寄存器数据时,需要占用CPU的时间。IIC总线是有数据线SDA和时钟线SCL构成的串行总线,可发送和接收数据。该总线在传输数据的过程中共有三种类型信号,他们分别是开始信号、结束信号和应答信号。开始信号:SCL为高电平,SDA由高电平向低电平跳变,开始传送数据。结束信号:SCL为高电平,SDA由低电平向高电平跳变,结束传送数据。应答信号:接收数据的IC在接受到8bit数据后,想发送数据的IC发出特定的低电平脉冲,表示已收到数据。CPU向受控单元发出一个信号后,等待受控单元发出一个应答信号,CPU接收应答信号后,根据实际情况作出是否继续传递信号的判断。若未收到应答信号,判断为受控单元出现故障。IIC规程运用主/从双向通讯。器件发送数据到总线上,则规定为发送器,器件接收数据则定义为接收器。本系统MSP430与MPU6050通讯主要是单片机从MPU6050读取数据,则本系统的IIC通信是单向的,MSP430为接收端,MPU6050为发送端。总新必须由MSP430(主器件)控制,主器件产生串行时钟(SCL),由P1.6端口输出,来控制总线的传输方向,并产生起始和停止条件。SDA线上的数据状态仅在SCL为低电平的期间才能改变。SCL为高电平的期间,SDA状态的改变被用来表示起始和停止条件。SDA上的数据有高到低变化时被识别为起始位,由低到高变化是被识别为停止位。图4-2 IIC通信程序流程图因此,由单片机P1.6(SCL)和P1.7(SDA)模拟实现IIC通信的程序流程图如图4-2所示。4.3 计数程序设计本系统是采用M/T法来测得自平衡小车当前速度的,测速软件是由捕捉中断服务子程序和测速时间中断服务子程序构成,转速调节中断服务子程序中进行到“测速允许”时,开放捕捉中断,但是有到旋转编码器脉冲前沿到达时,进入捕捉中断服务中断子程序,旋转编码器脉冲计数器和高频时钟计数器才真正开始计数,同时打开测速时间计数器,禁止捕捉中断,使之不再干扰计数器计数。待测速时间计数器到达计数值,发出停止测速信号,再次开放捕捉中断到旋转编码器脉前沿再到达时停止计数。转速计算是在转速调节中断服务子程序中完成的。通过MSP430F149的TimeA模块的捕捉模式即可完成上述的整个过程。此过程软件框图如图4-3所示。图4-3 计数程序方框图 4.4 PID调节器程序设计PI调节器是电力拖动自动控制系统中最常用的一种控制器,因此,可以把PID中的微分环节省去。在微机数字控制系统中,当采样频率足够高时,可以先按模拟系统的设计方法设计调节器,然后再离散化,就可以得到数字控制器的算法。在控制系统中,为了安全起见,常须对调解器的输出实行限幅。在数字控制算法中,要对限幅,只须在程序内设置限幅值,当时,便以限幅值作为输出。在这里我们是利用位置式来分析的设计的,而位置式必须同时设积分限幅和输出限幅,缺一不可。若没有积分限幅,当反馈大于给定,使调节器退出饱和时,积分项可能仍很大,将产生较大的退饱和超调。带有积分限幅和输出限幅的位置式数字PI调节程序框图如图4-4所示5。图4.4 位置式数字PI调节器程序框图4.4 卡尔曼滤波器程卡尔曼滤波,是一种线性最小差估计,特点是考虑了系统的模型误差和测量噪声的统计特性。卡尔曼滤波的一般方程在许多文献中有详细讨论,本文直接引用其结论8。设随机线性离散系统的状态方程为: 观测方程为:式中为系统的状态向量,为系统的观测序列,为系统的过程噪声序列,为观测噪声序列,为系统控制输入,为状态转移矩阵,、为系统矩阵,为观测矩阵。 1) ,为零均值白噪声,满足和,其中为系统过程噪声的对称非负定型方差

温馨提示

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

评论

0/150

提交评论