[工学]电磁组北京联合大学电磁二队技术报告.doc_第1页
[工学]电磁组北京联合大学电磁二队技术报告.doc_第2页
[工学]电磁组北京联合大学电磁二队技术报告.doc_第3页
[工学]电磁组北京联合大学电磁二队技术报告.doc_第4页
[工学]电磁组北京联合大学电磁二队技术报告.doc_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

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

文档简介

第七届“飞思卡尔”杯全国大学生 智能汽车竞赛 技技 术术 报报 告告 基于电磁传感器的两轮自平衡智能 车路径识别控制系统 学 校:北京联合大学 队伍名称:北京联合大学电磁二队 参赛队员:李俊、刘佳鑫、郑川 指导教师:潘峰、曲金泽 关于技术报告和研究论文使用授权的说明 本人完全了解第七届全国大学生“飞思卡尔”杯智能汽车竞赛关保留、使 用技术报告和研究论文的规定,即:参赛作品著作权归参赛者本人,比赛组委 会和飞思卡尔半导体公司可以在相关主页上收录并公开参赛作品的设计方案、 技术报告以及参赛模型车的视频、图像资料,并将相关内容编纂收录在组委会 出版论文集中。 参赛队员签名: 带队教师签名: 日 期: 1 目录目录 第一章 引言 2 1.1 概述2 1.2 技术报告结构3 第二章 设计方案概述说明 3 2.1 设计思路及方案的总体说明3 2.2 系统各模块实现简介.4 第三章 机械及硬件电路设计 5 3.1 机械设计5 3.1.1 电磁传感器的安装 5 3.1.2 PCB 主板的固定.6 3.1.3 测速电路模块的安装 7 3.1.4 差速的调节 7 3.1.5 加速度计与陀螺仪的安装 7 3.1.6 液晶与按键的安装 8 3.2 硬件电路设计9 3.2.1 电磁传感器的设计 9 3.2.2 PCB 主板的设计.13 3.2.3 电源管理模块 14 3.2.4 电机驱动 14 3.2.5 陀螺仪电路 15 第四章 软件设计 .16 4.2 主要算法及实现18 4.2.1 算法框图与控制函数关系 18 4.2.2 主要控制函数说明 21 4.3 速度 PID 控制算法及其改进形式28 第五章 开发调试过程及主要参数 .30 5.1 开发工具.30 5.2 制作调试过程说明.30 5.3 智能车主要技术参数32 5.4 存在问题及改进方法32 参考文献.34 参考程序:.35 2 第一章第一章 引言引言 1.1 概述概述 在本届智能模型车竞赛中,根据组委会要求的具体要求,本队采用了标准 的汽车模型、直流电机和可充放电电池制作出了一个能够自主识别电流为 20KHz,50150mA 导线线路的智能车,能够在比赛跑道上自主识别道路方向, 能够稳定行驶、保持较高的速度。在为比赛准备的很长的一段时间里,我们深 入学习、应用了嵌入式软件开发工具软件 codewarrior 和在线开发手段,自行设 计了智能汽车自动识别路径的方案,自主设计了电机的驱动电路、模型车的电 磁传感电路,在官方程序的基础上编写了基于微控制器 MC9S12XS128 的智能 车的控制程序。在智能车的设计过程中,我们利用了如下知识:传感器原理、 自动控制、汽车电子、机械设计等。尤其是机械设计方面,我们花费了大量时 间。在对这些知识的综合运用过程中,我们对这些知识有了更深入的认识和理 解,并能将所学的知识运用于实践中。 在设计的过程中,我们参考了很多文献资料。在组装车模和电路设计等过 程中,我们的实践动手能力得到了极大的培养和提高。在设计智能车控制算法 过程中,我们设计使用了多种控制算法,如自平衡车直立 PD 算法和速度控制 的 PI 算法以及转向控制的 PD 算法。期间进行了无数次的实践和尝试,形成了 最后的比赛方案。在思考控制算法的过程中,我们一直在追求稳、快的目标, 在这个过程中我们的创造能力和实践能力得到了很大的提高。 车模直立行走比赛是要求仿照两轮自平衡电动车的行进模式,让车模以两 个后轮驱动进行直立行走。近年来,两轮自平衡电动车以其行走灵活、便利、 节能等特点得到了很大的发展。国内外有很多这方面的研究,也有相应的产品。 在电磁组比赛中,利用了原来 C 型车模双后轮驱动的特点,实现两轮自平衡行 走。相对于传统的四轮行走的车模竞赛模式,车模直立行走在硬件设计、控制 软件开发以及现场调试等方面提出了更高的要求。 3 1.2 技术报告技术报告结构结构 本技术报告的正文分为四个部分。第一部分是对整个系统实现方法的概要 说明;第二部分是对机械结构的说明和对硬件电路的说明;第三部分是对系统 软件设计部分的说明;第四部分是对开发工具、制作、安装、调试过程等所做 的一些说明,以及模型车一些主要技术参数的说明。 关键字关键字:路径识别,智能车,PD,电磁传感器,自平衡 第二章第二章 设计设计方案方案概述概述说明说明 由于本电磁智能车模型采用 C 型车模,通过电磁传感器阵列来采集电流约 为 20KHz、100mA 的导线的电磁场强度来检测和识别路径,以及利用加速度计 读取角度,陀螺仪读取加速度,然后两者融合在一起得到滤波后的角度和角速 度,然后对电机进行直立控制;通过速度传感器读取速度,形成闭环,对两轮 小车进行速度控制;通过电感读取磁场强度值,进行中心线的提取,而后通过 电机的差速调节进行转向控制。 2.1 设计思路及方案的总体说明设计思路及方案的总体说明 根据电磁车循迹的要求,电磁车设计包括赛车的设计。 根据电磁传感器方案设计,赛车共包括五个部分:传感器部分、人机接口 部分 、MC9S12XS128 模块,执行机构、电源部分。 4 2.2 系统各模块实现简介系统各模块实现简介 1.传感器部分 负责感知外部世界的环境信息和车模自身的状态信息,为小车完成赛道的 检测与跟踪以及实现小车的运动控制提供所需的信息。传感器部分包括电磁传 感器、速度传感器和加速度传感器和陀螺仪传感器 利用增量式光电编码器进行速度的测量,反馈给单片机,构成速度的闭环。 光电编码器线数越多,同等速度下单位时间内所能检测到脉冲数也越多,因而 速度检测的分辨率也更高。另一方面,线数增多后,相邻脉冲间的持续时间会 变短,脉冲检测的可靠性会因相邻脉冲的干扰而受到影响。 2.MC9S12XS129 模块 构成系统的控制器 5 3.电机驱动模块(执行机构) 通过 MC9S12XS128 单片机输出的 PWM 控制,功率放大用来驱动电机, 要求驱动电流足够大,要考虑到大电流对整个系统的影响。 4.电源管理模块 制作相应的电源电路,针对个模块的输入信号要求。利用稳压芯片将电源 稳成 5V,供单片机、传感器等供电,而电机则利用电源直接供电。 5.人机接口部分 人机接口主要用于单片机与调试者之间的交互,8 位 LED 可以显示简单的 工作状态,液晶可以用于参数的设定与显示,4 位拨码开关可以用于简单的模 式设置,无线模块用于少量数据的收发(注:在实验室测试的时候用,现场并 不用) 。 第三章第三章 机械及硬件电路设计机械及硬件电路设计 3.1 机械设计机械设计 电磁 C 型车模的机械设计部分包括电磁传感器电路的安装,PCB 主板的固 定和连接,测速电路模块的安装,差速的调节,加速度传感器和陀螺仪的安装 等,在机械设计过程中遵循以下原则:重心位于车子的底部位置,加速性能良好,车 本身摩擦小,车与地面摩擦大。 3.1.1 电磁传感器的安装电磁传感器的安装 电磁传感器电路,如图所示放大器部分和电源、主板固定在一起,电感单 独引出来。这样便于安装和拆卸,而且使整个车的力矩往前拉近,实物图如下: 6 3.1.2 PCB 主板的固定主板的固定 考虑到模型车的重心的高度和位置,主板放在模型的的前半部分,主板重 心 离车前 11.5cm,距离赛道高 3.5cm,PCB 主板长 13cm,宽 5cm,这样讲重心固定 在车的重心偏前,对于车的摩擦和加速性能有很好的效果。如下图所示: 7 3.1.3 测速电路模块的安装测速电路模块的安装 测速模块才用增量式编码器,增量式编码器的安装于车的最后部分,如下 图所示: 3.1.4 差速的调节差速的调节 差距决定了转弯时的性能,差速调节时应该不能太松和太紧,而且要避免 和电机齿轮的间隙。 3.1.5 加速度计与陀螺仪的安装加速度计与陀螺仪的安装 考虑到陀螺仪安装要求,陀螺仪安装必须水平。安装实物图如下所示: 8 3.1.6 液晶与按键的安装液晶与按键的安装 9 3.2 硬件电路设计硬件电路设计 3.2.1 电磁传感器的设计电磁传感器的设计 考虑到电流的大小,方向和频率,依据经可靠、稳定、经济的要求, 我们选择 10mH 的电感,然后进行滤波、放大、检波;其电路图如下: 在音频功放 LM386n 放大之后加入倍压检波电路,可以得到与交流的峰 峰值成正比的直流信号,调整 R1 的阻值,可使三极管集电极的电压约为 2.5V 左右,此时的三极管处于较好的放大状态,用示波器测量,可得到集 电极和检波输出波形如下图所示: 33mH R1 1M 10 集电极输出波形 检波输出波形 根据电磁传感器中电感的方向与磁场的关系,采用垂直方向放置时,其测 量的磁场大小为 Bx,且根据比奥沙法尔定义可知: 其特性如下图所示: 图 3.2.1 垂直方向传感器测量理论图 11 垂直方向传感器测量出的电压大小为: 根据实验测定的数据,利用 MATLAB 可得下图: 可得出以下结论:实验数据与理论基本相同。 采用水平方向放置时,其测量的磁场大小为 By,且根据比奥沙法尔定义可 知: 12 水平方向电磁传感器测出的电压大小为: 其特性如下图所示: 图 3.2.2 水平方向传感器测量理论图 根据车与导线的位置关系如图: 13 其中: AE = lA ; h 为传感器距赛道的高度; 根据实验测得的数据,我们采用了垂直位置的传感器,根据电磁传感器采集出 的电压的大小,两相邻的传感器的距离去 35cm 左右,我们采用相邻的两传 感器间距为 4cm。 3.2.2 PCB 主板的设计主板的设计 要求主板的面积小,质量轻,其 PCB 如图所示: 14 3.2.3 电源管理模块电源管理模块 把电压为 7.2V 的电池经 LM2940 稳压后,其电路图如下: 稳压后可以完成如下功能: 经过稳压芯片 LM2940 稳压后,输出 5V 电压以驱动单片机工作; 经过稳压芯片 LM2940 稳压后,输出 5V 电压以对传感器供电; 3.2.4 电机驱动电机驱动 利用 BTS7960 构成双极性 H 桥,使电流更大,驱动能力更强,再结合逻 辑电路,使其使用更安全,更稳定,电路图如下图所示:(实际比赛中,我们 用了 4 个 BTS7960) 15 3.2.5 陀螺仪电路陀螺仪电路 实物如下: 16 第四章第四章 软件设计软件设计 为了体现程序的模块性和可移植性,我们把程序分成各个模块进行分别处 理,而各模块也有相应的形参做为接口,可以做到可移植性,通用性。下面就 这些模块的设计与实现分别进行详细阐述。 程序中用到的硬件资源有 PWM 模块、AD 模块、脉冲累加器、普通 I/O 口, 主程序流程图如下: 17 程序上电运行后,便进行单片机的初始化。初始化的工作包括有两部分, 一部分是对于单片机各个应用到的模块进行初始化。这部分代码是自己写的。 第二部分是应用程序初始化,是对于车模控制程序中应用到的变量值进行初始 化。 初始化完成后,首先进入车模直立检测子程序。该程序通过读取加速度 计的数值判断车模是否处于直立状态。如果一旦处于直立状态则启动车模直立 控制、方向控制以及速度控制。程序在主循环中不停发送监控数据,在通过串 口发送到上位机进行监控。同时检查车模是否跌倒。跌倒判断可以通过车模倾 角是否超过一定范围进行确定,或者通过安装在车模前后防撞支架上的微动开 关来判断。一定车模跌倒,则停止车模运行。包括车模直立控制、速度控制以 及方向控制。然后重新进入车模直立判断过程。 车模的直立控制、速度控制 以及方向控制都是在中断程序中完成。通过全局标志变量确定是否进行这些闭 环控制。 中断程序框架如图 5.2 所示。 图 5-2 中,使用 xs128 的一个定时器,产生一毫秒的周期中断。中断服务程序的任 务 18 被均匀分配在 0-4 的中断片段中。因此每个中断片段中的任务执行的周期为 5 毫秒,频 率为 200Hz。 将任务分配到不同的中断片段中,一方面防止这些任务累积执行时间超过 1 毫秒,扰乱一毫秒中断的时序,同时也考虑到这些任务之间的时间先后顺序。当然也可以 将所有的中断任务都合并在一起,使用一个 5 毫秒的中断来完成。 这些任务包括: (1)电机测速脉冲计数器读取与清除。累积电机转动角度。累积电机速度,为后面车模 速度控制提供平均数; (2)启动 AD 转换。进行 20 次模拟量采集,然后计算各个通道的模拟量的平均值。这个 过程是对于模拟信号进行低通滤波。 (3)车模直立控制过程。包括车模角度计算、直立控制计算、电机 PWM 输出等。 (4)车模速度控制:在这个时间片段中,又进行 0-19 计数。在其中第 0 片段中,进行速 度 PID 调节。因此,速度调节的周期为 100 毫秒。也就是每秒钟调节 10 次。 (5)车模转向控制:根据前面读取的电磁场检波数值,计算偏差数值。然后计算电机差 模控制电压数值。 19 4.2 主要算法及实现主要算法及实现 4.2.1 算法框图与控制函数关系算法框图与控制函数关系 图 5-4 与控制相关的软件函数包括: 1. AngleCalculate:车模倾角计算函数。根据采集到的陀螺仪和重力加速 度传感器的数值计算车模角度和角速度。如果这部分的算法由外部一个运放实 现,那么采集得到的直接是车模的角度和角速度,这部分算法可以省略。该函 数是每 5 毫秒调用一次。 2. AngelControl:车模直立控制函数。根据车模角度和角速度计算车模电 机的控制量。直立控制是 5 毫秒调用一次。 3. SpeedControl:车模速度控制函数。根据车模采集到的电机转速和速度 设定值,计算电机的控制量。该函数是 100 毫秒调用一次。 20 4. SpeedControlOutput:速度输出平滑函数。由于速度是每 100 毫秒进行 一次计算。为了使得速度控制更加平滑,该函数将速度输出变化量平均分配到 20 步 5 毫秒的控制周期中。 5. DirectionControl:方向控制函数。根据车模采集到的左右两个电磁传感 器的数值计算出角度控制的量。该函数每 10 毫秒调用一次。 6. DirectionControlOutput:方向控制函数输出平滑函数。将方向控制的输 出变化量平均分配到 2 步 5 毫秒的控制周期中。 7. MotorOutput:电机输出量汇集函数。根据前面的直立控制、速度控制 和方向控制所得到的控制量进行叠加,分别得到左右两个电极的输出电压控制 量。对叠加后的输出量进行饱和处理。函数调用周期 5 毫秒。在此请大家注 意速度控制量叠加的极性是负。 8. MotorSpeedOut:电机 PWM 输出计算函数。根据左右两个电极的输出 控制量的正负极性,叠加上一个小的死区数值,克服车模机械静态摩擦力。函 数调用周期 5 毫秒。 9. SetMotorVoltage:PWM 输出函数:根据两个电机的输出量,计算出 PWM 控制寄存器的数值,设置四个 PWM 控制寄存器的数值。函数调用周期 1 毫秒。 以上 9 个函数都是在 1 毫秒中断服务中进行被相互调用的。下图显示了这 些函数之间的调用与参数传递关系。在个函数附近也表明了调用的周期。 21 4.2.2 主要控制函数说明主要控制函数说明 1. AngleCalculate:角度计算函数 本程序读取 xs128 的 AD 采用数值,然后计算车模的倾角。 对于读取的陀螺仪和加速度计的数值需要减去零偏值。这个数值需要通过 实验确定。在车模保持直立静止时,读出两个通道的数值,便是相应的零偏值。 这个数值会带有一定的误差,往往会使得车模往一个方向加速行驶。这个误差 可以通过后面的速度控制加以消除。 对于加速度计所得到的数值,通过一个比例系数 (GRAVITY_ANGLE_RATIO)将它归一化到-90 至 90 之间,这个宏定义请大家 阅读工程文件中的头文件。同样,后面的陀螺仪的读出的数据也需要通过一个 比例系数进行归一化。这个数值也是通过实验确定的。具体的方式为参见后面 的调试过程。 由于本函数调用的时间周期为 5ms。详细程序请参见程序-1 代码: 22 2、AngleControl:直立控制函数 将车模角度和角速度乘以各自相应的系数就可以得到直立控制输出量。算 法参见程序-2 的内容。 23 3、SpeedControl:速度控制函数 速度控制周期为 100 毫秒。读取两个电极的光码盘脉冲进行累加,利用 100 毫秒的脉冲数量可以反映车模的电机的转速。车模速度采用两个电极速度 的平均值。 为了减少速度控制对于车模直立控制的影响,速度控制输出量的变化被函 数 SpeedContorlOut 均匀分配在 20 个角度控制函数周期内,这样可以保证车模 的稳定性。 24 25 4、DirectionControl:方向控制函数 车模方向控制利用左右两个感应电磁线圈的电压差值来计算车模电机 差值驱动电压。根据前面控制原理介绍,具体程序实现参见程序-4。该函数调 用周期为 10ms。 同样为了减少对直立控制的影像,方向控制量的变化也被均 匀分配在 2 个直立控制周期内。通过函数 DirectionControlOut 来实现。 5、MotorOut:电机输出函数 电机输出函数非常简单,只是将前面直立控制、速度控制、方向控制的输 出量进行叠加形成左右两个电机的驱动控制量。参见程序-5 电机输出函数。 26 6、MotorSpeedOut:电机 PWM 计算函数 该函数是对左右两个电极的输出量增加死区常量和输出饱和处理。 由于车模传动机构存在这静态摩擦力,增加一个死区常量可以提高车模在 静态下的稳定性。这个数值需要通过实验来确定。图 5-7 显示了死区补偿的关 系。 27 PWM1 = PWM1_stand - PWM1_speed - PWM1_turn; PWM2 = PWM2_stand- PWM2_speed - PWM2_turn; if (PWM13750) PWM1=3750; if (PWM13750) PWM2=3750; if (PWM2= CONTROL_PERIOD) g_n1MSEventCount = 0; GetMotorPulse(); 读取两个电极脉冲计数值 28 else if(g_n1MSEventCount = 1) for(i = 0; i = SPEED_CONTROL_COUNT) SpeedControl(); g_nSpeedControlCount = 0; g_nSpeedControlPeriod = 0; else if(g_n1MSEventCount = 4) g_nDirectionControlCount +; DirectionVoltageSigma(); if(g_nDirectionControlCount = DIRECTION_CONTROL_COUNT) DirectionControl(); g_nDirectionControlCount = 0; g_nDirectionControlPeriod = 0; 中断服务程序 4.3 速度速度 PID 控制算法及其改进形式控制算法及其改进形式 PID 控制是工业过程控制中历史最悠久,生命力最强的控制方式。这主要 是因为这种控制方式具有直观、实现简单和鲁棒性能好等一系列的优点。 位置式 PID 算式连续控制系统中的 PID 控制规律是 4.1 0 0 )(1 )()(x dt tde Tde T teKtx t d i p 其中是偏差信号为零时的控制作用,是控制量的基准; 0 x 29 利用外接矩形法进行数值积分,一阶后向差分进行数值微分,当选定采样 周期为 T 时,式 4.1 可离散为下面的差分方程 4.2 0 0 1 )()()(xee T T e T T teKtx k j kk d j i p 增量式 PID 算式。 根据式 4.2 得出 4.3 0 0 2111 )(xee T T e T T eKx k j kk d j i kpk 于是 4.4 )2( 2111 kkk d k i kkpkkk eee T T e T T eeKxxx 式 4.3 的计算结果,反映了第 k 和第 k1 次输出之间的增量,所以称为 增量算式。这个算式的结果是可正可负的。利用增量算式控制执行机构,执行 机构每次只增加一个增量,因此执行机构起了一个累加的作用。 对于整个系统来说,位置和增量式两种算式并无本质区别,只是将原来全 部由计算机完成的工作,分出一部分由其他元件去完成。然而,虽然增量式算 式只是算法上的一点改进,却带来了不少优点:算式只与最近几次采样值有关, 不需要进行累加,不易引起误差累积,因此容易获得较好的控制效果。计算机 只输出增量,误动作时影响小,必要时可加逻辑保护,限制或禁止故障时的输 出。手动于自动切换时,由于步进电机具有保持作用,所以容易实现无扰动切 换,机器故障时,也可以把信号保持在原位。由于增量算式有上述优点,在实 际控制中,应用得比位置式更为广泛。 30 第五章第五章 开发调试过程及主要参数开发调试过程及主要参数 经过我们组队员的共同开发,设计,验证,我们依据所学的知识从入门到 提高,经历的了开发工具的应用、方案的设计、调试过程如下。 5.1 开发工具开发工具 采用了 USB 接口的 HCS12 BDM 下载工具,是支持 Freescale MC9S12 系列 16 位单片机的 BDM 调试工具。 软件上采用的是 CodeWarrior for HCS12,经过源程序的编写,连接,通过 BDM 下载至 MC9S12XS128,完成单片机的开发过程。CodeWarrior 是 Metrowerks 公司专门面向 Motorola(Freescale)设计的嵌入式应用开发的软件 工具,包括集成开发环境 IDE,处理器专家库,全芯片仿真,可视化参数显示 工具,项目管理器,C 交叉编译器,汇编器,链接器以及调试器,支持在线编 程和调试,给我们的开发,设计工作带来了很大的方便。 5.2 制作调试过程说明制作调试过程说明 本系统采用 MC9S12XS128 作为主控制器,结合 20KHz,100mA 的恒流源, 构成了智能路径识别系统。 各硬件部分我们通过制作 PCB 电路板安装在智能车的相关部位。在车头我 们制作了寻迹用的电磁传感器电路板,只要输入激励电源后,即可获取磁场强 度。通过杜邦线,连接到安装在车身中央的 MC9S12XS128 上 。主控电路板包 括了电源管理电路、单片机接口电路等,留有电磁传感器信号输入接口、速度 传感器信号输入接口、电源输入接口、电机接口等输入输出端口。 车的重心问题一直是困扰我们的地方,车的重心上下方向调整,对智能车 行驶性能有很大影响。按照车辆运动学理论,车身重心上移,相当于头重脚轻, 31 降低了后轮的抓地力;重心下移,会增大转向灵敏度,后轮抓地力也会增加, 同时对防止速度过大,车体侧翻有很好的效果。试验中,我们进行了多次尝试, 最后选定了最终的方案,使车体重心下移,达到了很好的额效果。因而调整合 适的车体重心,让智能车更加适应跑道是很关键的。 电机驱动是最脆弱的地方,有时会出现短路或起火的现象,可能是由于两 端接错线,或者电机长时间堵转有很大的关系。 现公布一张我们为了解决重心问题而采取的方案,实测可以很清楚地知道 比没有采用此方案的额小车速度可以增加 0.2m/s。现在车速一般稳定在 1.8m/s。 32 5.3 智能车主要技术参数智能车主要技术参数 模型车的外形如下图所示: 主要技术参数如下: 33 改造后智能车的主要技术参数如表所示:改造后智能车的主要技术参数如表所示: 项目项目 参数参数 路径检测方法(赛题组)路径检测方法(赛题组) 电磁组电磁组 车模几何尺寸(长、宽、高)车模几何尺寸(长、宽、高) (毫米)(毫米) 395、245、110 车模轴距车模轴距/ /轮距(毫米)轮距(毫米) 200 车模平均电流(匀速行驶)车模平均电流(匀速行驶)( (毫安毫安) ) 5000 电路电容总量(微法)电路电容总量(微法) 1500 左右 传感器种类及个数传感器种类及个数 10mh 电感 2 个、陀螺仪 2 个、 7361 加速度计 1 个、157 线 编码器 2 个 新增加伺服电机个数新增加伺服电机个数 0 赛道信息检测空间精度(毫米)赛道信息检测空间精度(毫米) 1 赛道信息检测频率(次赛道信息检测频率(次/ /秒)秒) 100 主要集成电路数量主要集成电路数量 3 车模重量(带有电池)车模重量(带有电池) (千克)(千克) 1kg 左右 5.4 存在存在问题问题及改进方法及改进方法 虽然经过这么长时间的调试,毕竟这是第一次基于电磁车直立的比赛,存 在的问题还很多,下面我们想说说存在的问题及改进方向。 34 首先,电磁传感器的方案中,输出电压与输入的磁场强度不成正比,这导 致了测量时存在误差,可以采用补偿的方法加以消除,可以进行硬件和软件的 补偿,还有一点就是前瞻问题,由于是刚开始接触电磁,我们组根据测得的数 据和推测,电磁的前瞻应该能有约 2535cm 的前瞻,可从不同方向的放置电 磁传感器,如水平方向、Y 轴方向上的,亦可成 45放置,这样可以大概检测 出弯道的曲率半径,从而更好的控制转向和速度。 然后,由电磁传感器测得的电压来计算相对偏移量的算法中,可以大幅改 进,根据理论推导和实验测得数据,开发更稳定、更精确地算法,如拟合直线, 二次曲线等方法,更精确的得出相对位置的大小。使控制更快、稳、准。 然后,电机驱动的改进很有发展,目前电机驱动由于电流的限制,使加减 速不是很明显,严重影响了快速性和灵活性,可以采用电流更大的电力电子装 置来加大电流,是加减速性能得到提高。 最后,谈一下限制速度的因素。通过几个月的调车经验,我总结一下限制 速度的原因。一、重心。二、转向控制。三、速度 pi 参数的整定。由于小车 的硬件不同,各个参赛队遇到的原因不尽相同。传感器的高低也有一定影响, 个人感觉确实有些影响,一般 10-15cm 范围内,线性度还是蛮高的。当然了, 由于各个参赛组所用到的放大器不一样,这个高度也不尽相同。对于以上的几 个因素,我采用了不同的方案。对于重心的调节,我们一般改变电池的位置还 有主板的布局可以解决。对于转向控制,这个主要看放大器给力不给力,好的 放大器出来的数特别准,不好的放大器出来的值一直跳动,不利于差速控制。 35 参考文献参考文献 1 宋文绪,杨帆传感器与检测技术M第 1 版,北京:高等教育出版社,2004.1。 2 贾伯年,俞朴传感器技术M第 2 版,南京:东南大学出版社,2000.8。 3卓晴.黄开胜.邵贝贝.学做智能车挑战“飞思卡尔”杯.北京:北京航空航天大学 出 版社,2007.3. 4邵贝贝.单片机嵌入式应用的在线开发方法.北京:清华大学出版社,2004. 5李仕伯.马旭.卓晴.基于磁场检测的寻线小车传感器布局研究 ,清华大学,2009.12 6 李发海,王岩智电机与拖动基础M第 1 版,北京:清华大学出版社,2005.8。 7竞赛组秘书处.路径检测设计参考方案.2010.1。 8竞赛组秘书处 技术组.20KHz 电源参考设计方案 。 9竞赛组秘书处 技术组. 第七届全国大学生“飞思卡尔”杯智能汽车竞赛 电磁组直立 行车参考设计方案 (版本 2.0) 。 10 竞赛组秘书处 DSC 工程目录与文件说明 36 参考程序:参考程序: 注:此自平衡车是主要参照官网制作而成。程序同官网基本一致。 现将我 们的程序完整公布如下,希望大家一起探讨: #include #include “derivative.h“ #include “xslcd.h “ #include “Balance_Kalman.h“ #include “math.h“ #define SPEED_CONTROL_PERIOD 100 #define SPEED_CONTROL_COUNT 20 unsigned char keyscan_F=0; /按键扫描时间到标志,由 10ms 定时中断置位 unsigned char keyflag=0; /key 标志,0 无键按下,1 有键按下,2 有键按下且去 抖完成,3 按键处理完毕 unsigned char keycode=0; /扫描按键值 unsigned char keycode_last=0;/旧的扫描按键值 /70,7,0,50,0,100,2,250 /70,10,0,50,0,100,3,270 22.33s int parameter8=60,10,15,0,180,286,42,520; /60,10,15,0,220,273,42,480 /参数默认值,可自行修改 char * dispara8=“KP_ANGLE“,“KP_ANGLEDOT“,“SPEED_CONTROL_P“,“SPEED_CONTROL_I“,“DIR_ CONTROL_FP“,“ZeroData“,“DIR_CONTROL_D“,“CAR_SPEED_SETfDelta“; byte set_F=0; int Sensor8; int GetSensor8; float PreAngleDot; float PreAngle; 37 int g_nLeftMotorPulseSigma; int g_nRightMotorPulseSigma; float g_fCarSpeed; float g_fSpeedControlOutOld; float g_fSpeedControlOutNew; int DIR_CONTROL_D_VALUE; int ZeroData; int TimeCnt=0; int TimeCnt1=0; int g_nSpeedControlPeriod=0; int g_nSpeedControlCount=0; int g_nDirectionControlPeriod=0; int g_nDirectionControlCount=0; int KP_ANGLE;/参数 int KP_ANGLEDOT; int SPEED_CONTROL_P;/速度 P 控制参数 int SPEED_CONTROL_I;/速度 I 控制参数 int CAR_SPEED_SETfDelta;/设定的初始速度 float nFrontLeft, nFrontRight; float nBackLeft, nBackRight;

温馨提示

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

评论

0/150

提交评论