双轮自平衡车设计报告

上传人:ali****an 文档编号:119271883 上传时间:2020-01-10 格式:DOC 页数:14 大小:1.09MB
返回 下载 相关 举报
双轮自平衡车设计报告_第1页
第1页 / 共14页
双轮自平衡车设计报告_第2页
第2页 / 共14页
双轮自平衡车设计报告_第3页
第3页 / 共14页
双轮自平衡车设计报告_第4页
第4页 / 共14页
双轮自平衡车设计报告_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《双轮自平衡车设计报告》由会员分享,可在线阅读,更多相关《双轮自平衡车设计报告(14页珍藏版)》请在金锄头文库上搜索。

1、双轮自平衡车设计报告学院.班级姓名.手机号.姓名.手机号.姓名.手机号.目录一、 双轮自平衡车原理二、 总体方案三、 电路和程序设计四、 算法分析及参数确定过程一. 双轮自平衡车原理1.控制小车平衡的直观经验来自于人们日常生活经验。一般的人通过简单练习就可以让一个直木棒在手指尖上保持直立。这需要两个条件:一个是托着木棒的手掌可以移动;另一个是眼睛可以观察到木棒的倾斜角度和倾斜趋势(角速度)。通过手掌移动抵消木棒的倾斜角度和趋势,从而保持木棒的直立。这两个条件缺一不可,让木棒保持平衡的过程实际上就是控制中的负反馈控制。图1 木棒控制原理图2.小车的平衡和上面保持木棒平衡相比,要简单一些。因为小车

2、是在一维上面保持平衡的,理想状态下,小车只需沿着轮胎方向前后移动保持平衡即可。图2 平衡小车的三种状态3.根据图2所示的平衡小车的三种状态,我们把小车偏离平衡位置的角度作为偏差;我们的目标是通过负反馈控制,让这个偏差接近于零。用比较通俗的话描述就是:小车往前倾时车轮要往前运动,小车往后倾时车轮要往后运动,让小车保持平衡。4.下面我们分析一下单摆模型,如图4所示。在重力作用下,单摆受到和角度成正比,运动方向相反的回复力。而且在空气中运动的单摆,由于受到空气的阻尼力,单摆最终会停止在垂直平衡位置。空气的阻尼力与单摆运动速度成正比,方向相反。图4 单摆及其运动曲线类比到我们的平衡小车,为了让小车能静

3、止在平衡位置附近,我们不仅需要在电机上施加和倾角成正比的回复力,还需要增加和角速度成正比的阻尼力,阻尼力与运动方向相反。 5 平衡小车直立控制原理图 5.根据上面的分析,我们还可以总结得到一些调试的技巧:比例控制是引入了回复力;微分控制是引入了阻尼力,微分系数与转动惯量有关。在小车质量一定的情况下,重心位置增高,因为需要的回复力减小,所以比例控制系数下降;转动惯量变大,所以微分控制系数增大。在小车重心位置一定的情况下,质量增大,因为需要的回复力增大,比例控制系数增大;转动惯量变大,所以微分控制系数增大。二. 总体方案小车总框图 三电路和程序设计1.主要元器件选型A. STM32F103RCT6

4、最小核心板小容量增强型,32位基于ARM核心的带16或32K字节闪存的微控制器USB、CAN、6个定时器、2个ADC 、6个通信接口功能。 内核:ARM 32位的Cortex-M3 CPU 最高72MHz工作频率,在存储器的0等待周期访问时可达1.25DMips/MHz(Dhrystone2.1)。 单周期乘法和硬件除法。 存储器 从16K到32K字节的闪存程序存储器。 从6K到10K字节的SRAM。 时钟、复位和电源管理 2.03.6伏供电和I/O引脚。 上电/断电复位(POR/PDR)、可编程电压监测器(PVD)。 416MHz晶体振荡器。 内嵌经出厂调校的8MHz的RC振荡器。 产生CP

5、U时钟的PLL 带校准功能的32kHz RTC振荡器 低功耗 睡眠、停机和待机模式 VBAT为RTC和后备寄存器供电 2个12位模数转换器,1s转换时间(多达16个输入通道) 转换范围:0至3.6V 双采样和保持功能 温度传感器 DMA: 7通道DMA控制器 支持的外设:定时器、ADC、SPI、I2C和USART 多达80个快速I/O端口 26/37/51个I/O口,所有I/O口可以映像到16个外部中断;几乎所有端口均可容忍5V信号B. L298N双直流电机驱动模块板载一个L298N马达控制芯片和一个7805稳压芯片。模块可以同时驱动2个直流电机或者一个五线四相式步进电机。模块输入电压612V

6、常用的电机驱动 功能够用 切资料也很好找。C.传感器MPU6050模块此六轴模块采用先进的数字滤波技术(卡尔曼滤波),能有效降低测量噪声,提高测量精度。模块内部集成了运动引擎DMP,获取四元数得到当前姿态。姿态测量精度0.01度,稳定性极高,性能甚至优于某些专业的倾角仪!采用高精度的陀螺加速度计 MPU6050通过IIC协议输出保证数据的准确性。电压:3V6V 。电流:10mA 。体积:17.8mm X 17.8mm 重量:1.1g测量维度:加速度:3 维,角速度:3 维,姿态角:3 维量程:加速度: 16g,角速度: 2000/s。分辨率:加速度:6.1e-5g,角速度:7.6e-3/s。稳

7、定性:加速度:0.01g,角速度 0.05/s。数据输出频率 100Hz(波特率 115200)/20Hz(波特率 9600)。 波特率 115200kps/9600kps。D.HC-05蓝牙主从一体模块供电电压3.3V3.6V;支持AT指令集配置模块;采用CSR主流蓝牙芯片,蓝牙V2.0协议标准;波特率最高为1382400bps;配对以后当全双工串口使用,无需了解任何蓝牙协议,但仅支持8位数据位、1位停止位、无奇偶校验的通信格式,这也是最常用的通信格式,不支持其他格式。2电路设计STM32核心板原理图电机驱动原理图MPU6050原理图蓝牙模块原理图四算法分析及参数确定 小车直立环使用 PD(

8、比例微分)控制器,其实一般的控制系统单纯的P 控制或者 PI 控制就可以了,但是那些对干扰要做出迅速响应的控制过程需要 D(微分)控制。 直立控制的PD代码int balance(float Angle,float Gyro)float Bias,kp=300,kd=1;int balance;Bias=Angle-0; /计算直立偏差balance=kp*Bias+Gyro*kd; /计算直立 PWMreturn balance; /返回直立 PWM 参数是平衡小车倾角和 Y 轴陀螺仪(这个取决于 MPU6050 的安装),调试过程包括确定平衡小车的机械中值、确定 kp 值的极性(也就是正负

9、号)和大小、kd 值的极性和大小等步骤。在调试直立环的时候,我们要在定时中断服务函数里面屏蔽速度环和转向环。确定平衡小车的机械中值把平衡小车放在地面上,绕电机轴旋转观察小车什么时候平衡 用量角器量大概中值在哪。本小车为2度。确定 kp 值的极性(令 kd=0)首先我们估计kp的取值范围。我们的PWM设置的是7200代表占空比100%,假如我们设定 kp 值为 720,那么平衡小车在10的时候就会满转。根据我们的感性认识,这显然太大了,那我们就可以估计 kp 值在 0720 之间,首先大概我们给一个值 kp=-200,我们可以观察到,小车往哪边倒,电机会往那边加速让小车到下,就是一个我们不愿看到

10、的正反馈的效果。说明 kp 值的极性反了,接下来我们设定 kp=200,这个时候可以看到平衡小车有直立的趋势,虽然响应太慢,但是,我们可以确定 kp 值极性是正的。具体的数据接下来再仔细调试。确定 kp 值的大小(令 kd=0)确定参数的原则是:kp 一直增加,直到出现大幅度的低频抖动。 定 kp=200,这个时候我们可以看到,小车虽然有平衡的趋势,但是显然响应太慢了。 定 kp=680,这个时候我们可以看到,小车的响应明显加快,而且来回推动小车的时候,会有大幅度的低频抖动。说明这个时候 kp 值已经足够大了,需要增加微分控制削弱 p 控制,抑制低频抖动。确定 kd 值的极性(令 kp=0)我

11、们得到的 MPU6050 输出的陀螺仪的原始数据,通过观察数据,我们发现最大值不会超过 4 位数(正常应用在平衡小车上的时候),再根据 7200 代表占空比 100%,所以我们估算 kd 值应该在 03 之间,我们先设定 kd=-0.5,当我们拿起小车旋转的时候,车轮会反向转动,并没有能够实现跟随效果。这说明了 kd的极性反了。接下来,我们设定 kd=0.5,这个时候我们可以看到,当我们旋转小车的时候,车轮会同向以相同的速度跟随转动,这说明我们实现了角速度闭环,至此,我们可以确定 kd 的极性是正的。具体的数据接下来再仔细调试。确定 kd 值的大小(令 kp=500)确定参数的原则是:kd 一

12、直增加,直到出现高频抖动。设定 kd=0.5,这个时候我们可以看到,低频大幅度频抖动已经基本消除。设定 kd=1,这个时候我们可以看到,整体性能已经非常棒。设定 kd=3.8,这个时候我们可以看到,小车开始出现剧烈抖动至此,我们可以确定得到 kp=500,kd=1.7 是 P、D 参数的最大值。然后我们进行最关键的一步,对每个系数乘以 0.6,取整得到 kp=680,kd=2,这就是最终我们需要的参数,这样做的原因是,我们之前得到的参数是 kp、kd 最对每个数据乘以 0.6 得到。这个时候我们可以看到,小车没有任何的抖动,非常平稳,但是依然无法保持长时间的直立,直立很短一段时间后会往一个方向

13、加速倒下。这个等我们下面加上速度环才能得到更好的性能。只有直立环是很难让小车达到很好的直立效果的。平衡小车速度控制调试平衡小车速度环使用 PI(比例积分)控制器,这也是速度控制最常使用的控制器。PI 控制器是一种线性控制器,它根据给定值与实际输出值构成控制偏差,将偏差的比例(P)和积分(I)通过线性组合构成控制量对被控对象进行控制。计算速度偏差根据公式偏差=测量值-目标值测量值我们使用左右编码器之和表示,我们没有必要纠结于是否要除以 2,因为这样就引入舍去误差,我们需要的其实是一个可以表示速度变化的变量。另外,我们的目标速度设置为零。所以,可以得到Encoder_Least =(Encoder

14、_Left+Encoder_Right)-0;然后,我们对速度值进行低通滤波,具体的系数由工程经验得到。这样做的目的是为了减缓速度值的变化,防止速度控制对直立造成干扰,因为平衡小车系统里面,直立控制是主要的,其他控制对于直立来说都是一种干扰。确定 kp 与 ki 值的极性为了调试方便,接下来我们先关闭之前已经调试好的直立控制部分,积分项由偏差的积分得到,所以积分控制和比例控制的极性是相同的。的平衡小车速度控制系统里面,一般我们可以把 ki 值设置为 ki=kp/200;这样,只要我们可以得到 kp 值的大小和极性,就可以完成速度控制部分的参数整定了。显然,这样大大缩短了 PID 参数整定的时间

15、。另外要说明的是,虽然这里的 PI 控制器是速度控制常用的一种控制器,但是和普通的调速系统不一样,这里的速度控制是正反馈的,当小车以一定的速度运行的时候,我们要让小车停下来,小车需要行驶更快的速度去“追”,小车运行的速度越快,去“追”的速度也就越快,所以这是一个正反馈的效果。如果使用常规的速度负反馈,当小车以一定的速度运行的时候,我们通过减速让小车慢下来,小车会因为惯性向前倒下。下面介绍一种确定速度控制是正反馈还是负反馈的方法。根据之前的估计,先设定 kp=-50,ki=kp/200,当我们拿起小车,旋转其中一个小车轮胎的时候,根据我们设定的速度偏差Encoder_Least =(Encoder_Left+Encoder_Right)-0;另

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号