双轮自平衡小车项目设计报告.docx

上传人:b****2 文档编号:11525766 上传时间:2023-06-01 格式:DOCX 页数:49 大小:1.77MB
下载 相关 举报
双轮自平衡小车项目设计报告.docx_第1页
第1页 / 共49页
双轮自平衡小车项目设计报告.docx_第2页
第2页 / 共49页
双轮自平衡小车项目设计报告.docx_第3页
第3页 / 共49页
双轮自平衡小车项目设计报告.docx_第4页
第4页 / 共49页
双轮自平衡小车项目设计报告.docx_第5页
第5页 / 共49页
双轮自平衡小车项目设计报告.docx_第6页
第6页 / 共49页
双轮自平衡小车项目设计报告.docx_第7页
第7页 / 共49页
双轮自平衡小车项目设计报告.docx_第8页
第8页 / 共49页
双轮自平衡小车项目设计报告.docx_第9页
第9页 / 共49页
双轮自平衡小车项目设计报告.docx_第10页
第10页 / 共49页
双轮自平衡小车项目设计报告.docx_第11页
第11页 / 共49页
双轮自平衡小车项目设计报告.docx_第12页
第12页 / 共49页
双轮自平衡小车项目设计报告.docx_第13页
第13页 / 共49页
双轮自平衡小车项目设计报告.docx_第14页
第14页 / 共49页
双轮自平衡小车项目设计报告.docx_第15页
第15页 / 共49页
双轮自平衡小车项目设计报告.docx_第16页
第16页 / 共49页
双轮自平衡小车项目设计报告.docx_第17页
第17页 / 共49页
双轮自平衡小车项目设计报告.docx_第18页
第18页 / 共49页
双轮自平衡小车项目设计报告.docx_第19页
第19页 / 共49页
双轮自平衡小车项目设计报告.docx_第20页
第20页 / 共49页
亲,该文档总共49页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

双轮自平衡小车项目设计报告.docx

《双轮自平衡小车项目设计报告.docx》由会员分享,可在线阅读,更多相关《双轮自平衡小车项目设计报告.docx(49页珍藏版)》请在冰点文库上搜索。

双轮自平衡小车项目设计报告.docx

双轮自平衡小车项目设计报告

双轮自平衡小车项目设计报告

 

电子与信息工程学院

 

项目设计报告

 

项目名称双轮自平衡小车设计

学生姓名戴磊103621015

廖崎107221046

李旭103621045

王思然103522024

专业电子信息科学与技术

班级103622

指导教师李东京万青赵东

 

一自平衡小车的总体方案设计3

1、自平衡小车的设计方案3

2、自平衡小车的总体框图3

二系统的具体设计与实现4

1、单片机控制模块4

2、陀螺仪加速度计模块4

3、光码盘测速模块6

4、稳压模块7

5、电机驱动模块8

6、LCD1602显示模块11

三软件系统设计16

1、设计思想16

(1)PID技术16

(2)应用现状16

(3)PID调节规律17

(4)极点配置18

(5)极点配置条件18

(6)极点配置控制器21

2、程序流程图22

3、程序代码23

 

摘要

随着科技进步,生活水平的提高,人们追求智能与舒适的愿望也日益强烈。

从而催生了许多智能化的产品。

如智能电视、智能小车等。

如何实现小车的小车的自动快捷驾驶,也成为人们心中的向往与疑问,基于这种趋势与需求,着眼于实际情况。

本文介绍了基于STC90C51单片机的自平衡小车系统的设计。

系统基于陀螺仪等传感器,利用PID平衡算法,对小车的速度倾斜角度平衡状态来进行检测,并通过单片机来控制电机来实现双轮小车自如平衡地运动。

从而实现小车智能自主控制的目的。

关键词:

STC90C51自平衡PID算法

 

一自平衡小车的总体方案设计

1、自平衡小车的设计方案

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

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

单片机控制系统、陀螺仪加速度检测模块、光码盘测速模块、稳压模块、电机驱动模块、LCD1602显示模块组成。

本设计的自平衡小车工作原理:

给小车通电,平衡放在地上,当小车开始倾斜时,陀螺仪及时地采集的小车倾斜角度数据传给单片机,而加速度计将车子倾斜的瞬时加速度采集后也传给单片机,同时,光码测速仪也将车子的实时速度采集后传给单片机。

单片机系统收集到以上三组数据,对数据进行量化处理后,在PID平衡算法的控制下,控制电机及时地做出前进或后退或加速或减速的反应,使车子在一个小角度范围内做平衡地来回摆动,以保持车子的不倒。

2、自平衡小车的总体框图

自平衡小车主要由以下模块组成:

单片机控制系统、陀螺仪加速度检测模块、光码盘测速模块、稳压模块、电机驱动模块、LCD1602显示模块,以下是自平衡小车系统方框图。

单片机控制模块

陀螺仪加速度模块

光码盘测速模块

稳压模块(电源)

电机驱动模块

LCD1602显示模块

 

自平衡小车系统框图

二系统的具体设计与实现

1、单片机控制模块

单片机最小系统原理图如下:

单片机最小系统

单片机最小系统由复位电路以及晶振电路组成,它是保证单片机能正常工作的最基本条件,在此不作过多介绍。

2、陀螺仪加速度计模块

本设计中所采用的陀螺仪加速度设模块为MPU6050,之所以选择这个模块,是因为其有以下优点:

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

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

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

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

以下是MPU6050相关资料

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

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

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

InvenSense的运动处理资料库,可处理运动感测的复杂数据,降低了运动处理运算对操作系统的负荷,并为应用开发提供架构化的API。

MPU-6000的角速度全格感测范围为±250、±500、±1000与±2000°/sec(dps),可准确追緃快速与慢速动作,并且,用户可程式控制的加速器全格感测范围为±2g、±4g±8g与±16g。

产品传输可透过最高至400kHz的I2C或最高达20MHz的SPI。

MPU-6000可在不同电压下工作,VDD供电电压介为2.5V±5%、3.0V±5%或3.3V±5%,逻辑接口VVDIO供电为1.8V±5%。

MPU-6000的包装尺寸4x4x0.9mm(QFN),在业界是革命性的尺寸。

其他的特征包含内建的温度感测器、包含在运作环境中仅有±1%变动的振荡器。

引脚图实物图

3、光码盘测速模块

此模块有以下优点:

(1)测速精度高,反应快,因为其一圈有高达60个栅格

(2)能测正反转

此模块详细资料如下:

对管厂家:

美国惠普HP原装

供电电压:

5V

接线方式:

红5V         黑GND

输出信号:

5Vp-p 两相信号输出(见下图)。

两根信号线,一根黄色的一根蓝色的(由于生产批次不同,有时候信号线可能为绿色,不影响使用),黄色和蓝色分别是2个TTL电平(可以直接接单片机)信号 (注:

测正反转就是靠这两个电平区分是正转还是反转)

(设A B 为信号线)

A先有脉冲,证明是正转

B先有脉冲,证明是反转

重要说明:

长时间挡住或者不挡均没有输出,作为相位检测,只有在对射的上升沿和下降沿才会有波形输出,所以转动码盘或者用不透明物体来回切换状态的时候才会有方波输出,高速状态下,类似正弦波或者锯齿波,详见下面视频演示。

万用表测试一直表现为0.1V左右,是无效的!

测试请用示波器或者单片机的采集口。

测速原理示意图

测速原理演示图

4、稳压模块

之所以要设计稳压模块,是因为平衡小车不同模块所需电压值不同,比如电机的工作电压在9V,而单片机控制系统、LCD1602显示模块及测速模块工作电压在5V;但同时陀螺仪加速度模块工作电压却在3.3V,因此有必要设计一稳压模块,能够同时稳定地提供这三组电压值。

稳压模块的原理图如下:

稳压模块原理图

其中用到两个稳压芯片LM7805及LM1117,LM7805能够将7V到12V之间的输入电压转化为5V的输出输出电压,同时LM117以LM7805V的输出电压为输入电压,将其转化为3.3V输出以供陀螺仪加速度模块使用。

图中,LED为测试电路是否正常,正常时灯亮;反之,灯灭。

D1为普通二极管,在LM7805的输入与输出之间起滤波作用。

图中电容也均为滤波作用。

使用时,两稳压芯片均要用散热片,否则会导致温度过高而烧坏。

相应的PCB布线图如下:

稳压模块PCB图

5、电机驱动模块

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

在此设计中所选用的电机驱动为L298N模块。

它具有以下优点:

(1)负载能力强

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

(3)控制简单方便

具体资料如下:

L298N是ST公司生产的一种高电压、大电流电机驱动芯片。

该芯片采用15脚封装。

主要特点是:

工作电压高,最高工作电压可达46V;输出电流大,瞬间峰值电流可达3A,持续工作电流为2A;额定功率25W。

内含两个H桥的高电压大电流全桥式驱动器,可以用来驱动直流电动机和步进电动机、继电器线圈等感性负载;采用标准逻辑电平信号控制;具有两个使能控制端,在不受输入信号影响的情况下允许或禁止器件工作有一个逻辑电源输入端,使内部逻辑电路部分在低电压下工作;可以外接检测电阻,将变化量反馈给控制电路。

使用L298N芯片驱动电机,该芯片可以驱动一台两相步进电机或四相步进电机,也可以驱动两台直流电机。

简要说明:

一、尺寸:

80mmX45mm

二、主要芯片:

L298N、光电耦合器

三、工作电压:

控制信号直流5V;电机电压直流3V~46V(建议使用36伏以下)

四、最大工作电流:

2.5A

五、额定功率:

25W

特点:

1、具有信号指示。

2、转速可调

3、抗干扰能力强

4、具有过电压和过电流保护

5、可单独控制两台直流电机

6、可单独控制一台步进电机

7、PWM脉宽平滑调速

8、可实现正反转

9、采用光电隔离

使用直流/步进两用驱动器可以驱动两台直流电机。

分别为M1和M2。

引脚A,B可用于输入PWM脉宽调制信号对电机进行调速控制。

(如果无须调速可将两引脚接5V,使电机工作在最高速状态,既将短接帽短接)实现电机正反转就更容易了,输入信号端IN1接高电平输入端IN2接低电平,电机M1正转。

(如果信号端IN1接低电平,IN2接高电平,电机M1反转。

)控制另一台电机是同样的方式,输入信号端IN3接高电平,输入端IN4接低电平,电机M2正转。

(反之则反转),PWM信号端A控制M1调速,PWM信号端B控制M2调速。

可参考下图表:

电机

旋转方式

控制端IN1

控制端IN2

控制端IN3

控制端IN4

输入PWM信号改变脉宽可调速

调速端A

调速端B

M1

正转

/

/

/

反转

/

/

/

停止

/

/

/

M2

正转

/

/

/

反转

/

/

/

停止

/

/

/

其实物图如下:

   L298N电机驱动模块实物图

6、LCD1602显示模块

此模块主要用来显示自平衡小车的各种参数,如倾斜角、瞬时速度、瞬时加速度等。

同时也可以观察可调参数,这些参数可以用按键输入,通过LCD1602显示出来,方便自平衡小车参数的观察与更改,达到高效调速的目的。

其实物图如下:

LCD1602实物图

其与单片机系统组成的原理图如下:

单片机控制系统及1602显示模块

相应的PCB布线图如下:

其详细资料如下:

1602LCD分为带背光和不带背光两种,基控制器大部分为HD44780,带背光的比不带背光

的厚,是否带背光在应用中并无差别

1602LCD主要技术参数:

显示容量:

16×2个字符

芯片工作电压:

4.5—5.5V

工作电流:

2.0mA(5.0V)

模块最佳工作电压:

5.0V

字符尺寸:

2.95×4.35(W×H)mm

引脚功能说明

1602LCD采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如表10-13

所示:

编号符号引脚说明编号符号引脚说明

1VSS电源地9D2数据

2VDD电源正极10D3数据

3VL液晶显示偏压11D4数据

4RS数据/命令选择12D5数据

5R/W读/写选择13D6数据

6E使能信号14D7数据

7D0数据15BLA背光源正极

8D1数据16BLK背光源负极

表10-13:

引脚接口说明表

第1脚:

VSS为地电源。

第2脚:

VDD接5V正电源。

第3脚:

VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对

比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。

第4脚:

RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。

第5脚:

R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。

当RS和R/W

共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。

第6脚:

E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。

第7~14脚:

D0~D7为8位双向数据线。

第15脚:

背光源正极。

第16脚:

背光源负极。

LCD寄存器的选择

E

R/W

RS

功能说明

1

0

0

写入命令寄存器

1

0

1

写入数据寄存器

1

1

0

读取忙碌标志及RAM地址

1

1

1

读取RAM数据

0

X

 

不动作

LCD指令表

指令功能

控制线

数据线

RS

R/W

D7

D6

D5

D4

D3

D2

D1

D0

清除屏幕

0

0

0

0

0

0

0

0

0

1

清除屏幕,并把光标移至左上角

光标回到原点

0

0

0

0

0

0

0

0

1

x

光标移至左上角,显示内容不变

设定进入模式

0

0

0

0

0

0

0

1

I/D

S

I/D=1:

地址递增,I/D=0:

地址递减S=1:

开启显示屏,S=0:

关闭显示屏

显示器开关

0

0

0

0

0

0

1

D

C

B

D=1:

开启显示幕C=1:

开启光标B=1:

光标所在位置的字符闪烁

移位方式

0

0

0

0

0

1

S/C

R/L

x

x

S/C=0、R/L=0:

光标左移;S/C=0、R/L=1:

光标右移S/C=1、R/L=0:

字符和光标左移;S/C=1、R/L=1:

字符和光标右移

功能设定

0

0

0

0

1

DL

N

F

x

x

DL=1:

数据长度为8位,DL=0:

数据长度为4位N=1:

双列字,N=0:

单列字;F=1:

5x10字形,F=0:

5x7字形

CGRAM地址设定

0

0

0

1

CGRAM地址

将所要操作的CGRAM地址放入地址计数器

DDRAM地址设定

0

0

1

DDRAM地址

将所要操作的DDRAM地址放入地址计数器

忙碌标志位BF

0

1

BF

地址计数器内容

读取地址计数器,并查询LCM是否忙碌,BF表示LCM忙碌

写入数据

1

0

写入数据

将数据写入CGRAM或DDRAM

读取数据

1

1

读取数据

读取CGRAM或DDRAM的数据

 

图10-571602LCD内部显示地址

例如第二行第一个字符的地址是40H,那么是否直接写入40H就可以将光标定位在第二行,第一个字符的位置呢?

这样不行,因为写入显示地址时要求最高位D7恒定为高电平1所以实际写入的数据应该是01000000B(40H)+10000000B(80H)=11000000B(C0H)。

在对液晶模块的初始化中要先设置其显示模式,在液晶模块显示字符时光标是自动右移的,无需人工干预。

每次输入指令前都要判断液晶模块是否处于忙的状态。

1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,如图10-58所示,这些字符有:

阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”

实物图如下:

 

三软件系统设计

1、设计思想

其主要是通过PID技术对小车的状态进行实时地跟踪及调整。

现对PID算法作些介绍。

(1)PID技术

控制技术是运动控制的核心,各种先进控制技术的研究不断推动着运动控制的发展,比如自适应控制技术和以神经网络和模糊控制为代表的智能控制技术,但在实际生产实践中应用最普遍的还是各种以PID为代表的基本控制技术按照偏差的比例、积分和微分进行控制的调节器,简称为PD调节器,是连续系统中技术成熟且应用广泛的一种调节器。

本节将对系统用到的PID控制技术做相应的介绍和研究,传感器将车体的角度和运动速度等信息传递给系统控制器,控制器经分析处理运用PID控制技术,将目标命令传递给电机驱动器来完成系统的闭环控制

(2)应用现状

在电机伺服系统的控制中,经典的PID控制具有其结构简单、鲁棒性强以及现场对Pro的广泛使用积累了丰富的经验等优点,在无刷直流电动机的控制方面一直占有很重要的地位。

PID的引入保证了其系统响应的快速性,稳定了闭环控制器,补偿了由逆变器引起的控制误差[25][26]。

PID控制器就是将偏差的比例(Proportional)、积分(Integral)和微分(Differential)通过线性组合构成控制量,用这一控制量对被控对象进行控制。

PID算法是目前工业过程控制中应用最广泛的控制算法。

PID算法应用如此广泛,是因为它具有如下优点:

(1)算法较为简单,易于实现;

(2)基于线性控制理论,具备许多成熟的稳定性分析方法,有较高的可靠性;

(3)可以在很宽的操作条件内保持较好的鲁棒性,对于控制对象模型参数小范变化不敏感;

(4)不要求了解控制对象的精确数学模型。

利用许多成熟的参数整定方法,可以根据控制对象的实际响应曲线来计算PID控制器的参数;

(5)允许工程技术人员以一种简单直接的方式来调节控制系统,以达到希望得到的控制性能,如上升时间、最大超调量和稳态误差等。

当被控对象的结构和参数不能完全掌握,或得不到精确的数学模型时,系统

控制器的结构和参数必须依靠经验和现场调试来确定,这时应用PID控制技术最为方便。

即当我们不完全了解一个系统和被控对象,或不能通过有效的测量手段来获得系统参数时,最适合用PID控制技术。

(3)PID调节规律

 PID控制分为两大类,一个是模拟PID控制,一个是数字PM控制。

在模拟控制系统中,PID是最常用的控制方法。

图4.7所示为模拟PID控制系统原理框图。

比例系数Kp

积分系数Ki

微分系数Kd

被控对象

r(t)c(t)+

_++u(t)y(t)

+

 

图4.7模拟PID控制系统原理框图

 

计算机控制系统中,使用的是数字PID控制器。

将连续的模拟量进行离散化处理,则可得

(4-20)

在数字PID控制中,采样周期相对于系统的时间常数来说一般是很短。

因此其参数可按模拟PID控制器中的方法来选择。

由于要保持动态的平衡,则小车的倾角在一定的范围内要求可控。

故本文选择系统的小车的倾角作为输出量,利用PID技术对其进行分析。

由上述理论分析可以看出:

其比例、积分、微分三者是彼此影响;同时要使其系统保持稳定,PID三参数必须满足上述关系;为了让系统能够实现其动态的平衡,需要通过反复试凑的方法来解决,而且整定的参数多导致反复试凑的次数极大的增加,控制器的参数较难选取[27]。

加之系统经过线性化处理,即使所选参数满足上述的关系式,仍需要根据系统的实际模型进行调整,这大大增加了调试的难度。

鉴于此我们考虑采用其极点配置的方法来考察分析其系统的稳定性。

(4)极点配置

所谓极点配置就是指利用状态反馈或输出反馈使闭环系统的极点位于所希望的极点位置。

由于系统的性能和它的极点位置密切相关,因此极点配置问题在系统中是很重要的。

控制系统的各种特性及其各种品质指标很大程度上由闭环系统的零点和极点位置决定。

零点和极点在复数平面中的分布状况决定了相应表达式中该函数前的系数大小。

一组零点和极点的分布就对应了一个系统的响应。

极点配置的问题,

就是通过选择反馈增益矩阵,将闭环系统的极点恰好配置在根平面上期望的位置,以获得所希望的动态性能。

极点配置决定了控制系统的动态性能和稳定性[28]。

对于系统的极点配置,需要解决两个问题:

一是建立极点可配置的条件;二

是确定其反馈增益矩阵。

(5)极点配置条件

状态能控性、状态能观性及其稳定性都是控制系统的重要属性。

要设计相应稳定的系统,必须先考察其能控性和能观性。

状态能控性问题只考察系统在u(t)作用下状态的转移情况,与输出量y(t)无

关。

对于线性连续定常系统

,如果存在一个分段连续的输入u(t),能在有限时间区间[t0,tf]内,使系统由某一初始状态x(t0)转移到指定的任一终端状态x(tf),则该状态就是能控的。

若系统的所有状态都是能控的,则称此系统是状态完全能控。

本文小车参数参考LEGO公司提供的主要机器人组建参数如下表:

 

小车的车轮质量(Mw)

0.03kg

小车的车轮半径(r)

0.04m

车轮的转动惯量(Iw)

车身的质量(Mp)

0.6kg

车轮中心到机器人的质心的距离(l)

0.072m

车身转动惯量(Ip)

电机惯量(Jm)

电机的电阻(Rm)

6.69Ω

反电动势常量(ke)

0.468Vsec/rad

电机转矩常量(km)

0.317Nm/A

该系统的能控性矩阵可表示为:

(4-21)

利用文献[27]中对系统能控性的判定定理,即线性非时变系统为完全能控系统的充分必要条件是能控判别矩阵满秩。

即若rank(Tc)=4,则系统能控。

利用MATLAB仿真工具,调用其中函数为Tc=ctrb(A,B)。

其代码及结果如下所示。

>>A=[0100:

0-56.5160:

0001:

0-525239.50]

>>B=[0:

483.2:

0:

44.9]

>>Ic=ctrb(A,B)%求系统的能控判别矩阵

Ic=

1.0e+008*

00.0000-0.00030.0154

0.0000-0.00030.0154-0.9125

00.0000-0.00250.1434

0.00000.00250.1434-8.7094

>>rank(Tc)%求矩阵的值,若此数值是4,则该系统完全可控

ans=

4

由上可以看出,其rank(Tc)=4,这说明两轮自平衡小车系统是完全能控的,只有在此基础才可以设计控制器,实现平衡控制。

状态能观性问题是指对于任意给定的输入u(t)在有限观测时间tf>t0,使得根据[t0,tf]期间的输出y(t)能唯一的确定系统在初始时刻的状态x(t0),则该状态x(t0)是能观测的。

若系统的每一个状态都是能观的,则称此系统是状态完全能观。

该系统状态可观性矩阵为:

(4-22)

线性非时变系统为完全能观系统的充分必要条件是能观判别矩阵满秩。

即若rank(To)=4,则系统能观。

同样利用MATLAB仿真工具,调用其中函数为To=obsv(A,C);其代码及结果如下所示。

>>A=[0100:

0-56.5160:

0001:

0-525239.50]:

>>C=[1000:

0010]:

>>To=obsv(A,C)%求系统能观判别矩阵

To=

1.0e+004*

0.0001000

000.00010

00.000100

0000.0001

0-0.00560.00160

0-0.05250.02390

00.3192-0.09040.0016

02.9663-0.84000.0239

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

当前位置:首页 > 解决方案 > 解决方案

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2