【《运用Keil MDK软件的平衡车控制系统软件设计案例》2400字】_第1页
【《运用Keil MDK软件的平衡车控制系统软件设计案例》2400字】_第2页
【《运用Keil MDK软件的平衡车控制系统软件设计案例》2400字】_第3页
【《运用Keil MDK软件的平衡车控制系统软件设计案例》2400字】_第4页
【《运用Keil MDK软件的平衡车控制系统软件设计案例》2400字】_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

运用KeilMDK软件的平衡车控制系统软件设计案例目录TOC\o"1-3"\h\u32470运用KeilMDK软件的平衡车控制系统软件设计案例 1146581.1系统总体软件设计思路 1189651.2以蓝牙模块为核心的遥控器选择 3248401.3本章小结 425308第二章实物与分析 5247162.1实物搭建 562472.2PID控制参数调试 6283542.1.1直立PD控制调试结果与参数 6327372.1.2速度PI控制调试结果与参数 797642.1.3方向P控制调试结果与参数 891942.1.4小车负载测试 81.1系统总体软件设计思路本设计运用KeilMDK软件来编写平衡车控制程序,keilMDK是KEIL公司开发的一款一体化程序开发软件,及代码调试、编译、烧录等功能于一体,支持Cortex的M和R型号等一系列芯片。软件设计思路:当处理器检测到有定时中断产生时,开始通过陀螺仪和加速度计传感器读取平衡车的姿态数据,获得数据后经过卡尔曼滤波算法进行修正,然后利用PID算法进行角度和角速度的控制,通过电机控制小车的平衡。程序设计总思路如图4-1所示,按照流程中的各个阶段依次进行,有各模块初始化程序,运动状态检测程序,运动控制程序和遥控器的设计等。为了使每一个环节都处于时时收发数据的状态,一定要先将所有组件进行初始化,初始化完成后,经过角度加速度传感器(包含陀螺仪和加速度计)读取平衡车的角度和角速度数据。利用卡尔曼滤波算法进行数据修正,经PID算法计算得到电机角度和角速度,然后通过驱动模块控制电机运动实现平衡车各项功能。图4-1程序流程图在进行PID程序设计时,速度PI的C语言实现如图4-2所示,其中10000是积分限幅,由于积分是不断累加的,当积分过大时会影响小车稳定,所以我们需要对积分值设置一个合适的上限,避免小车出现向一个方向不断加速。图4-2速度PI控制部分代码1.2以蓝牙模块为核心的遥控器选择蓝牙引脚有STATE、TXD、RXD、GND、VCC等,TXD是数据发送端,蓝牙模块传输数据给其他设备,RXD为接收端,接收其它设备的数据。HC-06支持多种蓝牙协议,并且不必特意学习协议内容。遥控器可以更加直观、快速、准确地操控小车的移动状况,让平衡车根据要求实时改变运动状态。根据实际需求我们选择了一款适用范围广的蓝牙小车手机应用。其软件遥控器主界面如图4-3和4-4所示,可以通过自定义功能给小车的运动方向和状态进行编码。图4-3控制界面图4-4自定义编码界面1.3本章小结本章主要完成了软件设计,介绍了程序开发软件KeilMDK,以程序流程图表达了程序设计的整体思路,对PID算法和卡尔曼滤波算法的作用进行了介绍,讲述了小车控制程序的实现和蓝牙遥控软件的使用方法。

第二章实物与分析2.1实物搭建平衡小车实物搭建所需的元器件型号及个数如表5-1所示。表5-1元器件名称型号数量单片机STM32F103C8T6核心板1角度加速度陀螺仪MPU6050-6DOF三轴1电机驱动模块TB6612FHG1降压模块LM2596S1OLED显示屏0.96寸7针1电解电容220uF1陶瓷电容0.1uF1金属膜电阻10k50k各一个按键2引脚1按钮开关4引脚自锁1电机MG513P30-12V2铜柱M3双通4电池186501.7V3由于条件有限,50k电阻可以用47k电阻代替,小车电机底盘直接运用东莞市微宏智能科技搭建好模块。然后在打好的PCB板子上焊接各个元器件,电路焊接完成后在底盘的基础上用六角单头铜柱支撑焊接的电路板,这里的铜柱不宜过高,过高的话因为会干扰小车平衡的效果,电机线路注意和车轮保持距离并尽量贴着小车,防止运行时产生钩挂,还要注意尽量保持MPU-6050模块的水平安装减轻不稳定因素。图5-1平衡小车底盘图5-2搭建好的平衡小车2.2PID控制参数调试在整定PID的参数时,平衡小车直立控制使用PD控制。PD控制能够预测小车倾斜方向并快速做出相应的反应,维持小车直立。其中微分D相当于增加了阻尼,可以预测下一刻的偏差。增大kd可以增大震荡频率,减小震荡幅度,微分系数kd取值应该适当大一点。平衡小车速度控制使用PI控制,PD控制只能保持小车直立,小车可能会一直向某个方向运动,PI控制则可以在小车直立运动时增大小车速度,小车由于惯性会后仰,然后在通过PD控制使小车后退,如此快速反复响应可以维持小车直立静止。小车转向控制使用P控制。对于一般控制,P控制完全可以满足要求。速度越快对于转向环的反应快速性的要求越高,P值过小会造成转弯不及时,P过大会造成大幅抖动。2.1.1直立PD控制调试结果与参数关于直立PD控制调试结果与参数,确定kp的极性和大小如表5-2所示,确定kd的极性和大小如表5-3所示。表5-2确定kp的极性和大小Kp取值-200200350550Kd取值0000小车状态小车往倾斜方向加速倒下,极性是反的有直立趋势小车可以保持短暂直立小车可以保持较长时间直立表5-3确定kd的极性和大小Kp取值0000Kd取值-0.50.511.5小车状态轮子转动方向与小车倾斜方向相反,极性是反的轮子转动方向与小车倾斜方向相同,有大幅抖动抖动频率低幅度较大出现高频抖动比较理想由于PWM设置为7200时占空比最大,取kp=720时,小车在正负10度时便满转,所以kp取值范围大致在0~720之间,kd取值范围在0~2之间。PD直立控制中kp=550,kd=1.7。接下来我们在直立控制PD参数调试完成的数据上来进行速度控制PI参数的调试。2.1.2速度PI控制调试结果与参数关于速度PI控制调试结果与参数,确定kp,ki的极性和大小如表5-4所示表5-4确定kp,ki的极性和大小Kp取值-50506080120Ki取值-0.20.20.30.40.6小车状态左右两轮转向相反,电机逐渐加速到最大平衡时速度没有减缓趋势速度有减缓进本保持静止由于经过对偏差进行积分而得到积分项,所以kp与ki的极性是一致的,的只需确定一个即可。Kp取-50时左右两轮转向相反我们可以确定极性是正的。最后确定PI速度控制中kp=120,ki=0.6。2.1.3方向P控制调试结果与参数方向P控制调试结果与参数,确定kp的极性与大小如表5-5所示表5-5确定kp的极性与大小Kp取值-0.20.20.61.01.6小车状态用外力可以很容易旋转小车用外力旋转小车,小车出现抵抗小车行走不能保持直线轨迹小车基本保持直线轨迹小车基本保持直线轨迹但有抖动用外力可以很容易旋转小车,说明是正反馈,极性相反。用外力旋转小车,小车出现抵抗说明是负反馈,kp的极性是正的。最后确定方向P控制参数kp=1.02.1.4小车负载测试调试完成后我们用装有500ml左右水(大约0.5k

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论