双轮自平衡车设计报告审批稿.docx

上传人:b****7 文档编号:23311373 上传时间:2023-05-16 格式:DOCX 页数:13 大小:690.42KB
下载 相关 举报
双轮自平衡车设计报告审批稿.docx_第1页
第1页 / 共13页
双轮自平衡车设计报告审批稿.docx_第2页
第2页 / 共13页
双轮自平衡车设计报告审批稿.docx_第3页
第3页 / 共13页
双轮自平衡车设计报告审批稿.docx_第4页
第4页 / 共13页
双轮自平衡车设计报告审批稿.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

双轮自平衡车设计报告审批稿.docx

《双轮自平衡车设计报告审批稿.docx》由会员分享,可在线阅读,更多相关《双轮自平衡车设计报告审批稿.docx(13页珍藏版)》请在冰豆网上搜索。

双轮自平衡车设计报告审批稿.docx

双轮自平衡车设计报告审批稿

YKKstandardizationoffice【YKK5AB-YKK08-YKK2C-YKK18】

 

双轮自平衡车设计报告

双轮自平衡车设计报告

学院…………..........

班级……………………

姓名………………..手机号…………………..

姓名………………..手机号…………………..

姓名………………..手机号…………………..

一、双轮自平衡车原理

 

二、总体方案

 

三、电路和程序设计

 

四、算法分析及参数确定过程

一.双轮自平衡车原理

1.控制小车平衡的直观经验来自于人们日常生活经验。

一般的人通过简单练习就可以让一个直木棒在手指尖上保持直立。

这需要两个条件:

一个是托着木棒的手掌可以移动;另一个是眼睛可以观察到木棒的倾斜角度和倾斜趋势(角速度)。

通过手掌移动抵消木棒的倾斜角度和趋势,从而保持木棒的直立。

这两个条件缺一不可,让木棒保持平衡的过程实际上就是控制中的负反馈控制。

图1木棒控制原理图

2.小车的平衡和上面保持木棒平衡相比,要简单一些。

因为小车是在一维上面保持平衡的,理想状态下,小车只需沿着轮胎方向前后移动保持平衡即可。

图2平衡小车的三种状态

3.根据图2所示的平衡小车的三种状态,我们把小车偏离平衡位置的角度作为偏差;我们的目标是通过负反馈控制,让这个偏差接近于零。

用比较通俗的话描述就是:

小车往前倾时车轮要往前运动,小车往后倾时车轮要往后运动,让小车保持平衡。

4.下面我们分析一下单摆模型,如图4所示。

在重力作用下,单摆受到和角度成正比,运动方向相反的回复力。

而且在空气中运动的单摆,由于受到空气的阻尼力,单摆最终会停止在垂直平衡位置。

空气的阻尼力与单摆运动速度成正比,方向相反。

图4单摆及其运动曲线

类比到我们的平衡小车,为了让小车能静止在平衡位置附近,我们不仅需要在电机上施加和倾角成正比的回复力,还需要增加和角速度成正比的阻尼力,阻尼力与运动方向相反。

5平衡小车直立控制原理图

5.根据上面的分析,我们还可以总结得到一些调试的技巧:

比例控制是引入了回复力;微分控制是引入了阻尼力,微分系数与转动惯量有关。

在小车质量一定的情况下,重心位置增高,因为需要的回复力减小,所以比例控制系数下降;转动惯量变大,所以微分控制系数增大。

在小车重心位置一定的情况下,质量增大,因为需要的回复力增大,比例控制系数增大;转动惯量变大,所以微分控制系数增大。

二.总体方案

■小车总框图

三.电路和程序设计

1.主要元器件选型

A.STM32F103RCT6最小核心板

■小容量增强型,32位基于ARM核心的带16或32K字节闪存的微控制器USB、CAN、6个定时器、2个ADC、6个通信接口功能。

■内核:

ARM32位的Cortex-M3CPU

最高72MHz工作频率,在存储器的0等待周期访问时可达MHz。

单周期乘法和硬件除法。

■存储器

从16K到32K字节的闪存程序存储器。

从6K到10K字节的SRAM。

■时钟、复位和电源管理

~伏供电和I/O引脚。

上电/断电复位(POR/PDR)、可编程电压监测器(PVD)。

4~16MHz晶体振荡器。

内嵌经出厂调校的8MHz的RC振荡器。

产生CPU时钟的PLL

带校准功能的32kHzRTC振荡器

■低功耗

睡眠、停机和待机模式

VBAT为RTC和后备寄存器供电

■2个12位模数转换器,1μs转换时间(多达16个

输入通道)

转换范围:

0至

双采样和保持功能

温度传感器

■DMA:

7通道DMA控制器

支持的外设:

定时器、ADC、SPI、I2C和USART

■多达80个快速I/O端口

26/37/51个I/O口,所有I/O口可以映像到16个外部中断;几乎所有端口均可容忍5V信号

B.L298N双直流电机驱动模块

■板载一个L298N马达控制芯片和一个7805稳压芯片。

■模块可以同时驱动2个直流电机或者一个五线四相式步进电机。

■模块输入电压6~12V

■常用的电机驱动功能够用切资料也很好找。

C.传感器MPU6050模块

■此六轴模块采用先进的数字滤波技术(卡尔曼滤波),能有效降低测量噪声,提高测量精度。

模块内部集成了运动引擎DMP,获取四元数得到当前姿态。

姿态测量精度度,稳定性极高,性能甚至优于某些专业的倾角仪!

采用高精度的陀螺加速度计MPU6050通过IIC协议输出保证数据的准确性。

■电压:

3V~6V。

电流:

<10mA。

体积:

X重量:

■测量维度:

加速度:

3维,角速度:

3维,姿态角:

3维

■量程:

加速度:

±16g,角速度:

±2000°/s。

■分辨率:

加速度:

,角速度:

°/s。

■稳定性:

加速度:

,角速度°/s。

■数据输出频率100Hz(波特率115200)/20Hz(波特率9600)。

■波特率115200kps/9600kps。

蓝牙主从一体模块

■供电电压~;

■支持AT指令集配置模块;

■采用CSR主流蓝牙芯片,蓝牙协议标准;

■波特率最高为1382400bps;

■配对以后当全双工串口使用,无需了解任何蓝牙协议,但仅支持8位数据位、1位停止位、无奇偶校验的通信格式,这也是最常用的通信格式,不支持其他格式。

2电路设计

■STM32核心板原理图

■电机驱动原理图

■MPU6050原理图

■蓝牙模块原理图

四.算法分析及参数确定

■小车直立环使用PD(比例微分)控制器,其实一般的控制系统单纯的P控制或者PI控制就可以了,但是那些对干扰要做出迅速响应的控制过程需要D(微分)控制。

直立控制的PD代码

intbalance(floatAngle,floatGyro)

{

floatBias,kp=300,kd=1;

intbalance;

Bias=Angle-0;中的串口3接收中断函数,改变Flag_Qian和Flag_Hou,进而遥控小车。

=Encoder_Integral-Movement;遥控的速度通过积分融入速度控制器,减缓了速度突变对直立控制的影响。

3.积分限幅是增加了遥控之后必不可少的,如果没有积分限幅,就无法限制小车的最大前进速度。

这样在遥控的过程中,小车很容易倒下。

换句话说积分的最大赋值决定了小车的最大前进速度,而Movement值决定了小车的给定速度。

■平衡小车转向控制调试

■小车转向环使用P(比例)控制器或者P(比例)D(微分)控制器,我们前面说过,一般的控制系统单纯的P控制或者PI控制就可以了,转向环就是这种“一般的控制系统”,对响应要求不高,所以我们只使用P控制即可。

其实转向信息可以通过编码器和陀螺仪获取,所以转向环有多种控制方式。

总结如下:

■用左右轮编码器数据之差的积分值作为偏差,以Z轴陀螺仪作为微分控制的输入进行PD控制,目标是保持转向角为设定值。

优点是算法比较科学,引入微分控制可以增大比例控制系数以提高系统的响应。

缺点是较复杂,积分项影响用户体验、编码器对车轮滑动无法检测、陀螺仪存在漂移。

■Z轴陀螺仪的数据积分得到转向角作为偏差,以Z轴陀螺仪作为微分控制的输入进行PD控制,目标是保持转向角为设定值。

优点是避免了编码器对车轮滑动无法检测现象,引入微分控制可以增大比例控制系数以提高系统的响应。

缺点是陀螺仪的漂移长时间积分导致系统误差增大。

■使用左右轮编码器数据之差作为转向速度偏差进行P控制,目标是保持转向速度为设定值。

优点是简单,缺点是编码器对车轮滑动无法检测,对编码器精度有较高要求。

■使用Z轴陀螺仪的数据作为转向速度偏差进行P控制,目标是保持转向速度为设定值。

优点是算法简单、避免了编码器对车轮滑动无法检测现象、陀螺仪漂移等问题,缺点是陀螺仪对高频信号采样失真。

我们本次调试使用了简单可靠的第4套方案。

在平衡小车里面,相比于直立环和速度环,转向环是最不重要的,如果缺少了直立环和速度环,小车无法长时间保持直立。

转向环的作用是使小车行驶的过程中,跟随我们给定的Z轴角速度,具体来说,如果我们设定的Z轴目标角速度为零,那么小车应该走一个直线,这也是我们本次实验需要完成的目标。

调试过程包括确定kp极性和大小。

■确定kp的极性

为了方便本小节的实验,我们先关闭之前调试好的直立环和速度环。

我们得到的MPU6050输出的陀螺仪的原始数据,通过观察数据,我们发现最大值不会超过4位数(正常应用在平衡小车上的时候),再根据7200代表占空比100%,所以我们估算kp值应该在0~2之间。

先设定kp=,我们可以看到,当我们把小车摁在地上旋转的时候,我们可以很轻易的转动小车,说明目前小车没有通过负反馈把目标角速度控制在零附近,而是通过正反馈帮助我们旋转小车,说明了这个时候小车的转向系统是正反馈的。

然后我们设定kp=,这个时候我们把小车摁在地上旋转会发现使用很大的力也难以转动小车,小车会反抗我们,并通过电机保持角速度为零,这就是典型的角速度负反馈效果,也是我们需要看到的效果。

■确定kp的大小

下面我们进行平衡小车转向控制kp值的整定,此时需要打开直立环和速度环。

首先设定kp=,这个时候我们可以看到,小车的转向控制比较弱,走直线的偏差非常大。

设定kp=,这个时候我们可以看到,小车的角速度控制的响应有所加快,但是走直线还不是特别理想。

设定kp=1,这个时候我们可以看到,小车走直线的效果已经很不错了,我们接下来尝试加大kp值看一下效果。

设定kp=这个时候我们可以看到,小车虽然走直线的效果更好了,但是小车在急停的时候有剧烈的抖动。

所以这组参数不可取。

我们可以确定得到kp=1是转向控制P参数的理想值。

至此,转向控制调试部分就告一段落了,如果要加入遥控转功能的话,转向控制函数应该改成如下所示(其中加粗部分为是实现遥控功能的代码):

intturn(intencoder_left,intencoder_right,floatgyro)

{

floatTurn,Kp=1,Bias;

if(1==Flag_Left)Turn_Amplitude=1100;

elseif(1==Flag_Right)Turn_Amplitude=-1100;

elseTurn_Amplitude=0;

Bias=gyro-0;

Turn=-Bias*Kp;

Turn+=Amplitude;

returnTurn;

}

关于这个包括了遥控左右转向的转向控制函数,做如下解析:

1.在中的串口3接收中断函数,改变Flag_Left和Flag_Right,进而

遥控小车。

1.Turn+=Amplitude;转向遥控叠加在转向控制里面。

附录1.双轮自平衡车物料清单:

部分

名称

个数

价格

底座

铝合金底座

1

电机

带编码器和减速器电机带轮胎

2

电机驱动

L298N双直流电机驱动

1

传感器模块

MPU6050传感器GY-87

1

超声波模块

HC-SR04超声波模块

2

降压模块

LM2596DC-DC降压可调

1

电源

12V可充电电池带充电器

1

核心控制板

STM32F103RCT6最小核心板

1

STM下载器

ST-LINKV2

1

蓝牙模块

A09HC-05主从机一体蓝牙模块

1

Wifi模块

ESP8266串口wifi模块CH-340

1

万能板

7*9万能版

3

电源座及插头

*

2

导线和杜邦线

导线母对母杜邦线

若干

铜柱及螺丝

普通

若干

附录2

摘要1、STM32F103RCT6芯片资料

2、买模块自带的资料。

3、飞思卡尔设计的方案。

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

当前位置:首页 > 高等教育 > 艺术

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

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