闽南师范大学平衡小车毕设最终1.docx

上传人:b****3 文档编号:5055666 上传时间:2022-12-12 格式:DOCX 页数:36 大小:1.57MB
下载 相关 举报
闽南师范大学平衡小车毕设最终1.docx_第1页
第1页 / 共36页
闽南师范大学平衡小车毕设最终1.docx_第2页
第2页 / 共36页
闽南师范大学平衡小车毕设最终1.docx_第3页
第3页 / 共36页
闽南师范大学平衡小车毕设最终1.docx_第4页
第4页 / 共36页
闽南师范大学平衡小车毕设最终1.docx_第5页
第5页 / 共36页
点击查看更多>>
下载资源
资源描述

闽南师范大学平衡小车毕设最终1.docx

《闽南师范大学平衡小车毕设最终1.docx》由会员分享,可在线阅读,更多相关《闽南师范大学平衡小车毕设最终1.docx(36页珍藏版)》请在冰豆网上搜索。

闽南师范大学平衡小车毕设最终1.docx

闽南师范大学平衡小车毕设最终1

闽南师范大学

毕业论文(设计)

基于STM32单片机的双轮小车近静态动平衡控制统

TheDesignofTheNearlyStaticDynamicBalanceTwoWheeledCarControlSystemBasedonTheSTM32

姓名:

陈国文

学号:

1105000232

系别:

物理与电子信息工程学院

专业:

电气工程及其自动化

年级:

2011级

指导教师:

李忆

2014年12月28日

 

摘要

本文介绍以STM32F103RCT6单片机为核心的智能自平衡小车技术的研究,本系统分为单片机最小系统,PID自动反馈调节,驱动控制电路。

通过MPU-6050传感器采集到姿态感知信号传给STM32F103RCT6单片机,经单片机PID反馈调节,发出命令控制驱动模块L298N,驱动2台直流电动机进行相应的动作,最终使得小车能够平稳站立。

为了提高平衡效果,本文引入了卡尔曼滤波器,在调试中应注意初始角度的矫正和PID的参数调节。

本设计现能实现小车在正负2度内平衡,时超超过4S,在小车的控制方面还有待改进。

关键词:

STM32F103RCT6单片机姿态检测卡尔曼滤波PID控制电机驱动

Abstract

Inthispaper,weintroduceSTM32F103RCT6single-chipmicrocomputerasthecoreofintelligentsincethebalanceofthecartechnologyresearch,thissystemisdividedintosinglechipmicrocomputerminimumsystem,PIDautomaticfeedbackadjustment,thedrivecontrolcircuit.ByMPU-6050sensorcollectedpostureperceptiontoSTM32F103RCT6MCUsignals,themicrocontrollerPIDfeedbackcontrol,acommandcontrolL298Ndrivemodule,drivetwodcmotorforthecorrespondingaction,eventuallymakingthecarcanstandsteadily.Inordertoimprovetheeffectofequilibrium,thispaperintroducedtheCalmanfilter,inneedingattentionindebuggingtheparametersinitialanglecorrectionandPIDregulation.Thisdesignistoachievecarinthepositiveandnegativebalancewithin2degrees,superthan4S,incontrolofthecarhastorequireimprovement.

KeyWord:

STM32F103RCT6single-chipmicrocomputerPostureperceptionKalmanfilterPIDcontrollermotordrive

目录

中英文摘要1

1引言1

1.1选题背景及实际意义1

2整体方案设计1

2.1系统整体设计1

2.2姿态检测模块选型方案比较2

2.3项目设计要求2

2.4平衡小车的总体框图2

3各单元模块的硬件设计3

3.1STM32F103RCT6单片机系统3

3.2稳压模块选型3

3.3姿态检测模块4

3.3.1加速度计模块5

3.3.2陀螺仪模块7

3.4电机驱动模块选型7

3.5电机选型8

3.6电路接线表9

3.6.1电源接口解析9

3.6.2器件I/O口连接表9

4理论分析与计算10

4.1自平衡小车数学模型10

4.2PID控制器设计11

4.2.1PID控制器原理11

4.2.2PID控制器设计11

4.3基于卡尔曼滤波的数据融合12

4.4本章小结14

5系统软件设计14

5.1软件系统总体结构15

5.2单片机初始化软件设计15

5.3姿态检测系统调试15

5.3.1角度矫正15

5.3.2卡尔曼滤波调试16

5.3.3控制系统PID参数整定18

6系统测试19

6.1平衡度测试19

6.2站立时间测试20

7器件清单20

7.1元器件清单20

7.2平衡小车实物图21

8总结与展望21

8.1总结21

8.2展望22

参考文献22

附录i

致谢vii

1引言

两轮自平衡小车是一种特殊轮式移动机器人,其动力学系统具有多变量、非线性、强耦合、参数不确定等特性。

由于具有广泛的应用背景和研究价值,时下对两轮移动机器人的理论和应用研究日益受到国内外控制界的重视。

本文研究的本质不稳定两轮自平衡机器人是一种复杂的研究性实验装置,已成为理想的控制理论和控制方法研究的实验平台[1]。

1.1选题背景及实际意义

移动机器人是机器人学的一个重要分支,对于机器人的研究,包括轮式、腿式、履带式以及水下式机器人等,可以追溯到20世纪60年度。

移动机器人得到快速发展有两个方面的原因:

一是其应用范围越来越广泛;二是相关领域如计算、传感、控制等技术得到快速发展。

双轮自平衡机器人概念就是在这样的背景提出来的。

双轮自平衡小车是一个高度不稳定的两轮机器人,是一种多变量、非线性、强耦合的系统,是检验各种控制方法的典型装置。

同时由于它体积小、运动灵活、零转弯半径等特点,将会在军用和民用领域有着广泛的应用前景。

2整体方案设计

2.1系统整体设计

本设计的整体思路是:

小车采用STM32F103RCT6单片机和各种传感器的组合,构成了自平衡小车系统。

其系统主要由以下几个部分组成:

STM32单片机控制系统、陀螺仪和加速度计组成的姿态检测模块、稳压模块、电机驱动等模块组成。

它的工作过程大致上可把它分三个阶段,三个阶段分别是输入采样、程序执行和输出处理。

当系统执行完以上的三个阶段就可以被称为一个扫描周期。

在单片机的整个运行周期内,CPU会以固定的扫描速度重复执行以上的三个阶段[2]。

输入采样:

给小车通电,平衡放在地上,系统进入输入采样后,当小车开始倾斜时,陀螺仪及时地采集的小车倾斜角度数据传给单片机,而加速度计将车子倾斜的瞬时加速度和小车每一时刻的角度采集后也传给单片机存到I/O口映象区中的所对应得单元中。

程序执行:

单片机系统收集到以上两组数据,对数据进行量化处理后,在PID平衡算法的控制下,计算出使车模保持直立的PWM。

输出处理:

当程序执行后,单片机进入到输出处理状态。

输出的PWM给电机驱动模块控制电机,使车子在一个小角度范围内做平衡地来回摆动,使得车子保持平衡不倒。

2.2姿态检测模块选型方案比较

方案一:

使用飞思卡尔的加速度传感器MMA7260模块和陀螺仪ENC-03模块自行组合模块。

MMA7260三轴加速度传感器具有灵敏度可选高稳定性,低功耗特点,适合场合倾角检测,跌落检测等诸多方面。

ENC-03主要通过角速度原理,将外界偏移产生的位移转换成电流送给主控IC,然后再调整位移,以达到产品稳定,主要应用于照相机,飞机模型。

但两模块需要使用者搭电路组合。

方案二:

采用MPU-6050模块作为姿态检测模块。

MPU-6050为全球首款整合性6轴运动处理组件相较于多组件方案,免除了组合陀螺仪与加速器时之轴间差的问题,减少了大量的包装空间。

并且由主要的I2C端口以单一数据流的形式,向应用端输出完整的9轴融合演算技术的运动处理库,可处理运动感测的复杂数据。

降低了运动处理对操作系统的负荷,并为应用开发提供了架构化的API。

综上所述:

在姿态检测模块的选择上使用MPU6050模块,免除了组合陀螺仪和加速度器时的轴间差问题,提供了平衡小车工作的可靠性和系统工作的稳定性。

2.3项目设计要求

(1)熟悉STM32单片机的应用方法和学会怎样使用各种传感器。

(2)使车子在小角度范围内做平衡来回摆动,摆动角度范围为:

正负0~2度。

(3)使得小车保持平衡不倒的衡量指标为:

小车平衡站立2分钟及以上。

2.4平衡小车的总体框图

图2-1总体框图

3各单元模块的硬件设计

3.1STM32F103RCT6单片机系统

本设计中控制平台采用STM32F103RCT6微型控制器,STM32系列是一款性价比极高的嵌入式应用专门设计的ARMCORTEX-M3内核,其最主频72MHz,在满足平衡控制的调节频率的同时又更多的CPU资源,工作电压为3.3V。

晶振电路为STM32单片机处理器提供8M频率的时钟脉冲,并串联两个10PF电容保证电路提供稳定的频率脉冲,设置PLL倍频为9的话,使得处理器工作频率为72M。

STM32单片机系统原理图如图3-1所示:

图3-1单片机系统原理图

3.2稳压模块选型

可靠的电源方案是整个硬件电路稳定可靠运行的基础。

电源模块由若干相互独立的稳压电路模块组成。

这样做可以减少各模块之间的相互干扰,另外为了进一步减小单片机的电源噪声,可以单独划分一个稳压支路作为驱动大电流直流减速电机的电路。

具体电路如图3-2所示。

图3-2稳压模块原理图

整个系统需要3种电源:

平衡小车由+12V电池作为总电源。

系统采用ASM1117-3.3V模块为单片机系统及其他外设提供稳定电压。

同时系统采用LM7805稳压模块为姿态检测模块提供稳定工作电压。

而电机采用Namiki-22CL-3501PG的9V直流减速电机,故系统同时采用LM7809稳压模块为驱动电路提供工作电压,并通过PWM实时控制电机的电压大小。

具体电路原理图如图3-2。

其中电路中的电解电容C1、C4、C5、C7起到滤波稳压作用,而瓷片电容C2、C3、C6、C8起到辅助滤波,去除电压中的波动毛刺电压。

3.3姿态检测模块

本设计中所采用的姿态检测模块为MPU6050模块,之所以选择这个模块,是因为其有以下优点:

(1)集角度测量与加速度测量于一体。

(2)其那同时测量三轴上的角度与加速度测量。

(3)其输出为数字信号,便于处理于存储与传输。

(4)测量范围大,反应快。

MPU-6050整合了3轴陀螺仪、3轴加速器,并含可藉由第二个I2C端口连接其他厂牌之加速器、磁力传感器、或其他传感器的数位运动处理(DMP:

DigitalMotionProcessor)硬件加速引擎,由主要I2C端口以单一数据流的形式,向应用端输出完整的9轴融合演算技术。

实物引脚图如图3-3。

图3-3MPU6050实物图

3.3.1加速度计模块

加速度具有合成定理,可以理解为是重力加速度可分解在X,Y,Z三个方向上的加速度。

加速度传感器实际上是用MEMS技术检测惯性力造成的微小形变,由此加速度计可以测量某一时刻x,y,z轴三个方向上的的加速度值。

而自平衡小车利用加速度计测出重力加速度在x,y,z轴的分量,然后利用各个方向的分量与重力加速度的比值来计算出小车大致的倾角。

其实在自平衡小车上非静止的时候,加速度计测出的结果并不是非常精确。

物体时刻都会受到地球的万有引力作用产生一个向下的重力加速度,而小车在动态时,受电机的作用肯定有一个前进或者后退方向的作用力,而加速度计测出的结果是,重力加速度与小车运动加速度合成得到一个总的加速度在三个方向上的分量。

由此可见,由加速度计测得的角度必定含有很多干扰因素,所以需要经过滤波器的处理,得到更稳定合理的波形。

下边我们就开始分析从加速度得到角度的方法。

把MPU6050安装在自平衡车上时也是这样的水平安装在小车底盘上的,当车子运动时,分析如下图3-4所示。

图3-4加速度计分析图

Sina=Sind=gx/g

角度较小的情况下,角度的正弦与角度对应的弧度成线性关系。

如图3-5所示:

图3-5小角度时sin(x)、弧度、0.92*弧度曲线图

 这个图x轴是角度,取值范围是0~90度,有三个函数曲线,分别是:

   Y=sinx 正弦曲线

   Y=x*3.14/180 弧度

   Y=0.92*x*3.14/180  乘以一个0.92系数的弧度

   从图上可以看出,当角度范围是0~29度时:

   sinx=x*3.14/180

   对于自平衡车来说,小车的摆动范围在-29~29度之内,如果超过这个范围,小车姿态也无法调整,所以对于自平衡  小车sinx=x*3.14/180基本上是成立的。

当然有时候也会担心-29~29度的摇摆范围还是无法满足需求。

那可以给上边的公式乘一个系数。

得到如下公式:

   Sinx=k*x*3.14/180

从上边的函数对比图可以看出,当系数取0.92时,角度范围可以扩大到-45~45度。

经过这一系列的分析,终于得到角度换算方法:

   Sind=gx/g

   Sind=k*d*3.14/180

   得到:

   gx/g=k*d*3.14/180

   那么角度就可以通过如下公式计算出:

   a=d=180*gx/(k*g*3.14)

而gx可以从加速度计里读出来,所以MPU6050与水平面的夹角就可以实时获得。

而之前也说过这个角度不是很精确,但是至少可以反映出角度变化的趋势。

不过可以通过卡尔曼滤波等算法把加速度计读出的角度和陀螺仪读出的角度结合起来,使小车的角度更加准确。

程序中通过IIC方式获取小车实时加速度,代码如下:

Accel_x=GetData(ACCEL_XOUT_H)+25;//获取X轴加速度

获得加速度后,通过转化公式,将实时加速度转化为小车的实时角度。

//Angle_ax=(Accel_x-570)/16384;//去除零点偏移,计算得到弧度。

//Angle_ax=Angle_ax*1.2*180/3.14;//弧度转化为度

Angle_ax=Accel_x*0.004196468;//代替以上公司,得到最终角度

3.3.2陀螺仪模块

陀螺仪模块是实时记录小车摆动时的角速度。

由此通过卡尔曼滤波将加速度计得到的角度结合陀螺仪获得的角速度可以更以更好地实现PID调节。

程序中通过IIC方式获取小车实时加速度,代码如下:

//Gyro_y=Gyro_y*0.01098633;

//Gyro_y=-Gyro_y/16.4;

Gyro_y=-Gyro_y*0.06097561;//去除零点偏移,得到最终角速度值

通过以上方式获得小车的实时姿态,由此可得到小车的角度和角速度,将这两个参数传给卡尔曼滤波函数。

3.4电机驱动模块选型

由于电机工作电压与单片机的不同,且单片机本身带负载能力不强,电机工作需要较大电流等因素,无法用单片机直接驱动电机运转,因此需要电机驱动模块来驱动电机。

具体资料如下:

L298N是SGS公司的产品,内含4通道逻辑驱动电路,是一种二相和四项电机的专用驱动器,即内含二个H桥的高电压大电流双全桥式驱动器,接收TTL逻辑电平信号,驱动46V、2A以下的电机。

它具有以下优点:

(1)负载能力强

(2)能实现高电压强电流的输出

(3)控制简单方便

综上所述:

由于本项目小车需要驱动两个直流减速电机实时调整运动状态,需要较大的输出电流1A和较高的输出电压9V,并且为了留有裕量,所以选择驱动L298N作为本次的电机驱动。

其电路如下图3-6所示。

图3-6L298N原理图

OUT1、OUT2、OUT3、OUT4之间分别接两个2个电动机。

IN1、IN2、IN3、IN4引脚从单片机输入控制电平,控制电机的正反转,ENA,ENB接控制使能端,控制电机的停转。

L298的逻辑功能表如下表3-1所示:

表3-1

对于电机的调速,我们采用PWM调速的方法。

其原理就是开关管在一个周期内的导通时间为t,周期为T,则电机两端的平均电压U=Vcc*(t/T)=a*Vcc.其中,a=t/T(占空比),Vcc是电源电压。

电机的转速与电机两端的电压成比例,而电机两端的电压与控制波形的占空比成正比,因此电机的速度与占空比a成正比。

3.5电机选型

平衡车需要实时检测姿态,实时通过电机调整小车的状态。

由于步进电机是将电脉冲信号转变为角位移或线位移的开环控制元步进电机件,不利于对轮子的平滑控制,使得车子更加容易抖动造成不平稳,不作为本项目使用。

由于直流减速电机可是通过PWM脉冲调制波控制电机转速,所以可以很好地配合CPU使得车子保持平衡稳定。

关于直流电机选型方法是采用参数对比法,该地方选取参考对象为思维翼都市款电动自平衡车体感代步车的相关参数。

由说明书得该平衡代步车电机负荷重量(包括车体)为100kg,代步车的电机扭矩为95N,时速可达8km每小时。

由于本项目的平衡小车车体重量约为0.5kg,由以下比例公式可得:

(式中x为平衡小车电机扭矩)

由上式解得,平衡小车的扭矩大小为x=0.475N,所以本项目在电机选型可选择大于0.475N扭矩的电机,如下表,为本次所选电机型号的相关参数。

直流减速电机相应的参数如下表3-2所示:

表3-2

结合理论分析,电机扭矩0.5Nm可以满足本项目要求,输出转速120转可以很好的保障车子保持平衡。

而且,结合市场,该款电机性价比高,方便维护和使用,更加增加了产品的使用保障。

3.6电路接线表

3.6.1电源接口解析

将稳压电源模块的地与系统板、MPU6050、驱动L298N模块的地共地,输出的+3.3V与系统板的+3.3V相接,为系统提供工作电源。

将输出的+5V与系统板上的+5V接口对接,为MPU6050提供电源,最后将电源模块的+9V与驱动L298N的+V口对接,为电机驱动提供稳定可靠的电源。

最后将MPU6050、L298N模块按下面图7-1所示位置放置安装好。

3.6.2器件I/O口连接表

几个模块的I/O接口连接表如表3-3所示:

 

表3-3

STM32系统板

接口

MPU6050接口

驱动L298N

接口

PB6|P58

SCL|P3

PB7|P59

SDA|P4

PA4|P20

IN1

PA5|P21

IN2

PA6|P22

IN3

PA7|P23

IN4

PB0|P26

ENA

PB1|P27

ENB

4理论分析与计算

4.1自平衡小车数学模型

假设自平衡车高度为

,质量为

,将其抽象为一级倒立摆,并将倒立摆至于可水平移动的小车上。

假设其受外力干扰引起的车体角加速度为

,沿垂直于车体方向进行受力分析如图4-1,可以得到自平衡车倾角与车轮移动加速度为

以及外力干扰带来的加速度

之间的运动方程。

图4-1外力干扰条件下的小车受力分析

小车运动微分方程表达式如式(4-1):

(式4-1)

当倾角

很小的时候,可以进行线性化处理:

,运动微分方程可简化为:

(式4-2)

自平衡车静止时

其运动微分方程为:

(式4-3)

4.2PID控制器设计

4.2.1PID控制器原理

当今的自动控制技术都是基于反馈的概念。

反馈理论的要素包括三个部分:

测量、比较和执行。

测量系统需要控制的变量,与期望值相比较,用这个误差纠正调节控制系统的响应。

在工程实际中,应用最为广泛的调节器控制规律为比例、积分、微分控制,简称PID控制,又称PID调节。

PID控制器问世至今已有近70年历史,以其结构简单、稳定性好、工作可靠、调整方便而成为工业控制的主要技术之一。

PID控制器由比例单元(P)、积分单元(I)和微分单元(D)组成。

其输入e(t)与输出u(t)的关系为:

(式4-4)

其中

为比例系数;

为积分时间常数;

为微分时间常数。

PID控制器具有原理简单、使用方便、适应性强、鲁棒性强、对模型依赖少等特点,因此使用PID控制器实现两轮自平衡车的控制是完全可行的。

4.2.2PID控制器设计

由小车静止时其运动方程可得到系统输入输出传递函数:

(式4-5)

此时系统具有两个极点:

其中一个极点位于s平面的右半平面。

根据奈奎斯特稳定判据可知系统不稳定,因此小车在静止状态不能保持平衡[3][4]。

由小车受力分析可知小车平衡的条件是提供额外的回复力及阻尼,其来源为车轮与地面的摩擦力。

由式2-7可知,车轮提供的加速度的大小是根据角度

及角速度

的反馈得出,因此需要在控制系统中引入角度

及角速度

构成比例(P)微分(D)反馈环节,如图4-2所示。

图4-2加入比例微分环节后的控制系统结构图

加入比例微分反馈后的系统传递函数为:

(式4-6)

此时,系统的两个极点为

根据奈奎斯特稳定判据可知,系统稳定需要两个极点都位于s平面的左半平面。

要满足这一点,需要

>g,

>0。

由此可得出结论,但

>g,

>0时,小车可以保持平衡,这也与上文中小车受力分析的结果相符。

在反馈环节中,与角度

成比例的控制量称为比例控制;与角速度成比例的控制量称为微分控制(角速度是角度的微分)。

因此上面系数

分别称为比例和微分控制参数。

其中微分参数相当于阻尼力,可以有效抑制自平衡车振荡。

控制系统的输出量为电机控制量,因而小车平衡控制的PID控制器的输出方程可写为:

PWM=(int)(Kp*(Angle)+Kd*Gyro_y);(式4-7)

式4-7中,PWM为PID控制输出量,Angle为反馈倾角值,Gyro_y为反馈角速度值,Kp和Kd分别为比例系数及微分系数。

4.3基于卡尔曼滤波的数据融合

虽然单一惯性传感器就可以单独进行姿态角度检测,但是其准确性主要取决于惯性器件的精度,单从改善硬件结构和生产工艺方面难以有很大幅度的提高,并且系统误差会随时间累积,不适用于长时间姿态检测。

由于利用单一传感器(陀螺仪或加速度计)难以获得相对真实的小车姿态角度,出于对系统测量姿态角度准确性的考虑,本系统采用多传感器信号进行数据融合,以获得最佳姿态角度[5][6]。

多传感器数据融合是一个非常重要的研究内容,只有采用最适合的融合方法才能获得最佳的效果。

常用数据融合方法有加权平均法,神经网络法等。

加权平均法是一种简单的融合方法,故其运算精度很差;神经网络法具有很好的非线性和有效的自学能力,但是其涉及的模型构建,参数优化非常复杂,不适用于本系统。

国外有研究者根据加速度计与陀螺仪的互补特点研究出互补滤波算法,其简单明了并且具有较好的实时性与稳定性,能够较好的融合出姿态角度。

考虑到本系统使用的惯性器件特性较差,互补滤波在本质原理上不能弥补器件特性缺陷,故本系统采用卡尔曼滤波算法作为数据融合方法。

卡尔曼滤波器是一种高效率的递归滤波器(自回归滤波器),能够从一系列的不完全及包含噪声的测量中,估计动态系统的状态。

卡尔曼滤波器不仅能估计信号的过去和当前状态,甚至能估计将来的状态。

卡尔曼滤波器解决离散时间控制过程的一般方法,首先定义模型线性随机微分方程。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 交通运输

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1