




已阅读5页,还剩10页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
双轮自平衡车设计报告学院.班级姓名.手机号.姓名.手机号.姓名.手机号.目录一、 双轮自平衡车原理二、 总体方案三、 电路和程序设计四、 算法分析及参数确定过程一. 双轮自平衡车原理1.控制小车平衡的直观经验来自于人们日常生活经验。一般的人通过简单练习就可以让一个直木棒在手指尖上保持直立。这需要两个条件:一个是托着木棒的手掌可以移动;另一个是眼睛可以观察到木棒的倾斜角度和倾斜趋势(角速度)。通过手掌移动抵消木棒的倾斜角度和趋势,从而保持木棒的直立。这两个条件缺一不可,让木棒保持平衡的过程实际上就是控制中的负反馈控制。图1 木棒控制原理图2.小车的平衡和上面保持木棒平衡相比,要简单一些。因为小车是在一维上面保持平衡的,理想状态下,小车只需沿着轮胎方向前后移动保持平衡即可。图2 平衡小车的三种状态3.根据图2所示的平衡小车的三种状态,我们把小车偏离平衡位置的角度作为偏差;我们的目标是通过负反馈控制,让这个偏差接近于零。用比较通俗的话描述就是:小车往前倾时车轮要往前运动,小车往后倾时车轮要往后运动,让小车保持平衡。4.下面我们分析一下单摆模型,如图4所示。在重力作用下,单摆受到和角度成正比,运动方向相反的回复力。而且在空气中运动的单摆,由于受到空气的阻尼力,单摆最终会停止在垂直平衡位置。空气的阻尼力与单摆运动速度成正比,方向相反。图4 单摆及其运动曲线类比到我们的平衡小车,为了让小车能静止在平衡位置附近,我们不仅需要在电机上施加和倾角成正比的回复力,还需要增加和角速度成正比的阻尼力,阻尼力与运动方向相反。 5 平衡小车直立控制原理图 5.根据上面的分析,我们还可以总结得到一些调试的技巧:比例控制是引入了回复力;微分控制是引入了阻尼力,微分系数与转动惯量有关。在小车质量一定的情况下,重心位置增高,因为需要的回复力减小,所以比例控制系数下降;转动惯量变大,所以微分控制系数增大。在小车重心位置一定的情况下,质量增大,因为需要的回复力增大,比例控制系数增大;转动惯量变大,所以微分控制系数增大。二. 总体方案小车总框图 三电路和程序设计1.主要元器件选型A. STM32F103RCT6最小核心板小容量增强型,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振荡器。 产生CPU时钟的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常用的电机驱动 功能够用 切资料也很好找。C.传感器MPU6050模块此六轴模块采用先进的数字滤波技术(卡尔曼滤波),能有效降低测量噪声,提高测量精度。模块内部集成了运动引擎DMP,获取四元数得到当前姿态。姿态测量精度0.01度,稳定性极高,性能甚至优于某些专业的倾角仪!采用高精度的陀螺加速度计 MPU6050通过IIC协议输出保证数据的准确性。电压:3V6V 。电流:10000) Encoder_Integral=10000; /积分限幅if(Encoder_Integral-10000) Encoder_Integral=-10000; /限制遥控最大速度Velocity=Encoder*kp+Encoder_Integral*ki; /速度控制if(Turn_Off(Angle_Balance,Voltage)=1) Encoder_Integral=0; /电机关闭后清除积分return Velocity;关于这个包括了遥控前进后退的速度控制函数,做如下解析:1.在 usart3.c 中的串口 3 接收中断函数,改变 Flag_Qian 和 Flag_Hou,进而遥控小车。2.Encoder_Integral=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 值应该在 02 之间。先设定 kp=-0.6,我们可以看到,当我们把小车摁在地上旋转的时候,我们可以很轻易的转动小车,说明目前小车没有通过负反馈把目标角速度控制在零附近,而是通过正反馈帮助我们旋转小车,说明了这个时候小车的转向系统是正反馈的。然后我们设定 kp=0.6,这个时候我们把小车摁在地上旋转会发现使用很大的力也难以转动小车,小车会反抗我们,并通过电机保持角速度为零,这就是典型的角速度负反馈效果,也是我们需要看到的效果。确定 kp 的大小下面我们进行平衡小车转向控制 kp 值的整定,此时需要打开直立环和速度环。 首先设定 kp=0.2,这个时候我们可以看到,小车的转向控制比较弱,走直线的偏差非常大。设定 kp=0.6,这个时候我们可以看到,小车的角速度控制的响应有所加快,但是走直线还不是特别理想。设定 kp=1,这个时候我们可以看到,小车走直线的效果已经很不错了,我们接下来尝试加大 kp 值看一下效果。设定 kp=1.6 这个时候我们可以看到,小车虽然走直线的效果更好了,但是小车在急停的时候有剧烈的抖动。所以这组参数不可取。我们可以确定得到 kp=1是转向控制 P 参数的理想值。至此,转向控制调试部分就告一段落了,如果要加入遥控转功能的话,转向控制函数应该改成如下所示(其中加粗部分为是实现遥控功能的代码):int turn(int encoder_left,int encoder_right,float gyro)float Turn,Kp=1,Bias;if(1=Flag_Left) Turn_Amplitude=1100;else if(1=Flag_Right) Turn_Amplitude=-1100;else Turn_Amplitude=0;Bias=gyro-0;Turn=-Bias*Kp;Turn+=Amplitude;return Turn;关于这个包括了遥控左右转向的转向控制函数,做如下解析:1.在 usart3.c 中的串口 3 接收中断函数,改变 Flag_Left 和 Flag_Right,进而遥控小车。1. Turn+=Amplitude; 转向遥控叠加在转向控制里面。附录1.双轮自平衡车物料清单:部分名称个数价格底 座铝合金底座1电 机带编码器和减速器电机带轮胎2电机驱动L298N双直流电机驱动1传感器模块MPU6050传感器 GY-871超声波模块HC-SR04超声波模块2降压模块LM2596 D
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论