电磁组铜陵学院领路人队技术报告.docx
《电磁组铜陵学院领路人队技术报告.docx》由会员分享,可在线阅读,更多相关《电磁组铜陵学院领路人队技术报告.docx(61页珍藏版)》请在冰豆网上搜索。
电磁组铜陵学院领路人队技术报告
第七届“飞思卡尔”杯全国大学生
智能汽车竞赛
技术报告
学校:
铜陵学院
队伍名称:
领路人
参赛队员:
杨爱迪
杜天坦
朱郑
带队教师:
臧大进
关于技术报告和研究论文使用授权的说明
本人完全了解第七届“飞思卡尔”杯全国大学生智能汽车竞赛关保留、使用技术报告和研究论文的规定,即:
参赛作品著作权归参赛者本人,比赛组委会和飞思卡尔半导体公司可以在相关主页上收录并公开参赛作品的设计方案、技术报告以及参赛模型车的视频、图像资料,并将相关内容编纂收录在组委会出版论文集中。
参赛队员签名:
带队教师签名:
日期:
摘要
本文介绍了一套智能车直立磁导航设计方案,该智能车以MC56F8013作为整个系统信息处理和控制的核心。
采用硬件滤波的方式由陀螺仪采集倾角速度以及积分出倾角度,再通过加速度计采集倾斜角度来进行角度补偿,从而得出准确的角速度及倾角度来控制车模的直立。
通过互感线圈采集赛道信息,提取出导线的位置,进而求的小车偏离导线的程度,进一步处理通过控制电机差速实现小车的转向。
再通过速度传感器获得实时速度信息来实现速度闭环反馈控制。
Abstract
Thisarticlehasintroducedasetofintelligentcarnavigationdesignschemeofmagneticupright,theintelligentvehicleinthewholesystemMC56F8013asthecoreoftheinformationprocessingandcontrol.ThehardwareofthefilterbythegyroscopeacquisitionspeedandpointsoutthedipAngle,againthroughtheaccelerometeracquisitiontiltAngleAnglecompensate,thusdrawsaccurateangularvelocityandAngletodrawoutofthecontrolofupright.Throughthemutualinductancecoilacquisitioncircuitinformation,extractthepositionofthewire,andthenthecarfortheextentofthedeviationfromwires,andfurtherprocessingthroughthecontrolmotorcartorealizethedifferential.Thenthroughthespeedsensorsgetreal-timespeedinformationtorealizespeedclosed-loopfeedbackcontrol.
第一章引言
这份技术报告中,我们小组通过对整体方案、电路、算法、调试、车辆参数的介绍,详尽地阐述了我们的思想和创意,具体表现在电路的创新设计,以及算法方面的独特想法,而对单片机具体参数的调试也让我们付出了艰辛的劳动。
这份报告凝聚着我们的心血和智慧,是我们共同努力后的成果。
在准备比赛的过程中,我们小组成员涉猎控制、模式识别、传感技术、汽车电子、电气、计算机、机械等多个学科,这次磨练对我们的知识融合和实践动手能力的培养有极大的推动作用,在此要感谢清华大学,感谢他们将这项很有意义的科技竞赛引入中国;也感谢铜陵学院相关学院对此次比赛的关注,我们的成果离不开学校的大力支持及指导老师悉心的教导;还要感谢的是和我们一起协作的队员们,协助,互促,共勉使我们能够走到今天。
第二章控制原理
2.1车模直立控制
车模有两个轮子着地,车体只会在轮子滚动的方向上发生倾斜。
控制轮子转动,抵消在一个维度上倾斜的趋势便可以保持车体平衡了。
如图2.1
图2.1
通过对比单摆模型来说明保持车模平衡的控制规律。
重力场中使用细线悬挂着重物经过简化便形成理想化的单摆模型。
直立着的车模可以看成放置在可以左右移动平台上的倒立着的单摆。
如图2.2
图2.2
当物体离开垂直的平衡位置之后,便会受到重力与悬线的作用合力,驱动重物回复平衡位置。
这个力称之为回复力,其大小为
F=mgsinθ≈mgθ
在偏移角度很小的情况下,回复力与偏移的角度之间大小成正比,方向相反。
在此回复力作用下,单摆便进行周期运动。
在空气中运动的单摆,由于受到空气的阻尼力,单摆最终会停止在垂直平衡位置。
空气的阻尼力与单摆运动速度成正比,方向相反。
阻尼力越大,单摆越会尽快在垂直位置稳定下来。
图1.3显示出不同阻尼系数下,单摆的运动曲线
图1.3
总结单摆能够稳定在垂直位置的条件有两个:
(1)受到与位移(角度)相反的恢复力;
(2)受到与运动速度(角速度)相反的阻尼力。
如果没有阻尼力,单摆会在垂直位置左右摆动。
阻尼力会使得单摆终停止在垂直位置。
阻尼力过小(欠阻尼)会使得单摆在平衡位置附件来回震荡。
阻尼力过大(过阻尼)会使得单摆到达平衡位置时间加长。
因而存在一个临界阻尼系数,使得单摆稳定在平衡位置的时间短。
式中,由于θ很小,所以进行了线性化。
假设负反馈控制是车轮加速度a与偏角θ成正比,比例为k1。
如果比例k1>g,(g是重力加速度)那么回复力的方向便于位移方向相反了。
此外,为了使得倒立摆能够尽快地在垂直位置稳定下来,还需要增加阻尼力。
虽然
存在着空气和摩擦力等阻尼力,相对阻尼力比较小。
因此需要另外增加控制阻尼力。
增加的阻尼力与偏角的速度成正比,方向相反。
因此式可变为
F=mgθ=mkθ
车模控制两个系数作用,在上面简单分析中,通过类比倒立摆得到了车模直立的控制方案。
下面对倒立车模进行简单数学建模,然后建立速度的比例微分负反馈控制,根据基本控制理论讨论车模通过闭环控制保持稳定的条件。
假设倒立车模简化成高度为L,质量为m的简单倒立摆,它放置在可以左右移动的车轮上。
假设外力干扰引起车模产生角加速度x(t)。
沿着垂直于车模地盘方向进行受力分析,可以得到车模倾角与车轮运动加速度a(t)以及外力干扰加速度
x(t)之间的运动方程。
这与前面通过分析所得出的结论是一致的。
在角度反馈控制中,与角度成比例的控制量是称为比例控制;与角速度成比例的控制量称为微分控制(角速度是角度的微分)。
因此上面系数k1,k2分别称为比例和微分控制参数。
其中微分参数相当于阻尼力,可以有效抑制车模震荡。
通过微分抑制控制震荡的思想在后面的速度和方向控制中也同样适用。
总结控制车模直立稳定的条件如下:
(1)能够精确测量车模倾角θ的大小和角速度θ'的大小;
(2)可以控制车轮的加速度。
电机运动分为两个阶段:
第一个阶段是加速阶段;第二个阶段为恒速阶段。
如图2.4
图1.4
其中,在加速阶段,电机带动车模后轮进行加速运动,加速度近似和施加在电机上的电压成正比,加速阶段的时间长度取决于时间常数T1。
该常数由电机转动惯量、减速齿轮箱减速比、车模的转动惯量决定,一般在十几到几百个毫秒。
在恒速阶段,电机带动车模后轮进行恒速运行,运行速度与施加在电机上的电压成正比。
调整车模角度的控制周期很短,时间一般是几个毫秒,远小于时间常数T1。
电机基本上运行在加速阶段。
计算所得到的加速度控制量a再乘以一个比例系数,即为施加在电机上的控制电压,这样便可以控制车模保持直立状态。
2.2车模速度控制
对于直立车模速度的控制相对于普通车模的速度控制则比较复杂。
由于在速度控制过程中需要始终保持车模的平衡,因此车模速度控制不能够直接通过改变电机转速来实现。
下面先分析一下引起车模速度变化的原因。
假设车模在上面直立控制调节下已经能够保持平衡了,但是由于安装误差,传感器实际测量的角度与车模角度有偏差,因此车模实际不是保持与地面垂直,而是存在一个倾角。
在重力的作用下,车模就会朝倾斜的方向加速前进。
利用控制单片机的计数器测量在固定时间间隔内速度脉冲信号的个数可以反映电机的转速。
第二个问题可以通过角度控制给定值来解决。
给定车模直立控制的设定值,在角度控制调节下,车模将会自动维持在一个角度。
通过前面车模直立控制算法可以知道,车模倾角终是跟踪重力加速度Z轴的角度。
因此车模的倾角给定值与重力加速度Z轴角度相减,便可以决定车模的倾角。
第三个问题分析起来相对比较困难,远比直观进行速度负反馈分析复杂。
首先对一个简单例子进行分析。
假设车模开始保持静止,然后增加给定速度,为此需要车模往前倾斜以便获得加速度。
在车模直立控制下,为了能够有一个往前的倾斜角度,车轮需要往后运动,这样会引起车轮速度下降(因为车轮往负方向运动了)。
由于负反馈,使得车模往前倾角需要更大。
此循环,车模很快就会倾倒。
原本利用负反馈进行速度控制反而成了“正”反馈。
图2.5车模角度和速度控制框图。
图2.5
角度控制需要两个控制参数,分别是比例控制参数PANGLE和微分控制参数D。
速度控制同样也有两个参数,分别是比例控制参数PSPEED和微分控制参数ANGLED。
在这两个控制中都使用了微分控制,目的是增加车模的角度和速度的稳定性,SPEED防止控制超调。
这个经验在后面车模方向控制中仍然适用。
下面对于图的控制方案再进两点的改进。
第一点,图1.5给出的控制方案对于速度误差没有进行积分控制,这样最终速度不会严格等于设定值。
比如要求车模在原地停止,速度为0。
但是由于采用的是比例控制,如果此时陀螺仪有漂移,或者加速度传感器安装有误差,终车模倾角不会终调整到0,车模会朝着倾斜的方向恒速运行下去。
注意此时车模不会像没有速度控制那样加速运行了,但是速度不会终为0。
为了消除这个误差,可以将车模倾角设定量直接积分补偿在角度控制输出中,这样就会彻底消除速度控制误差。
第二点,由于加入了速度控制,它可以补偿陀螺仪和重力加速度的漂移和误差。
所以此时重力加速度传感器实际上没有必要了。
因此可以将该传感器去掉,但是比例负反馈回路仍然保留,它用于克服陀螺仪的积分漂移。
综合上两点的改进,图2.5可以进行如下图2.6所示的改进。
图2.6
2.3车模方向控制
实现车模方向控制是保证车模沿着竞赛道路比赛的关键。
直立车模所在的电磁组的道路中心线铺设有一根漆包线,里面通有100mA的20kHz交变电流。
因此在道路中心线周围产生一个交变磁场。
通过道路电磁中心线偏差检测与电机差动控制实现方向控制,从而进一步保证车模在赛道上。
将在下面分别进行介绍。
(1)道路电磁中心线的偏差检测道路电磁中心线检测简单的方法可以通过安装在车模前方的两个电磁感应线圈实现线圈一般采用10mH的工字型电感。
(2)电机差动控制利用电磁线偏差检测信号分别与车模速度控制信号进行加和减,形成左右轮差动控制电压,使得车模左右轮运行角速度不一致进而控制车模方向。
如图2.7所示。
图2.7
(3)方向控制算法方向控制算法根据车模检测到电磁感应电压来生成电机差动控制量。
通过左右电机速度差驱动车模转向消除车模距离道路中心的偏差。
通过调整车模的方向,再加上车前行运动,可以逐步消除车模距离中心线的距离差别。
这个过程是一个积分过程,因此车模差动控制一般只需要进行简单的比例控制就可以完成车模方向控制。
但是由于车模本身安装有电池等比较重的物体,具有很大的转动惯量,在调整过程中会出现车模转向过冲现象,如果不加以抑制,会使得车模冲出赛道。
根据前面角度和速度控制的经验,为了消除车模方向控制中的过冲,需要增加微分控制。
微分控制就是根据车模方向的变化率对电机差动控制量进行修正的控制方式,因此需要增加车模的转动速度检测传感器。
可以使用陀螺仪传感器进行检测,陀螺仪在车模倾角检测中也使用。
检测车模转动速度的陀螺仪由于电磁导引线的磁场强度与检测线圈的距离和方向都有关系。
当车模的方向偏差很大的时,比如在车模前方出现急转弯的时候,检测线圈中轴线与电磁导引线不再垂直,出现一个很大的角度偏差。
此时两个检测线圈的感应电动势都下降。
为了更能准确反映车模重心距离电磁线缆的距离差别,避免角度的影像,在进行方向控制时,使用左右两个线圈感应电动势之差除以左右两个线圈感应电动势之和,使用该比值进行方向控制。
这样可以消除检测线圈角度的影响。
综上所述,得到车模方向控制算法框图。
其中方向微分控制部分可以根据情况省略,这样可以进一步降低控制的复杂度。
综上所述,得到车模方向控制算法框图,如图2.8所示。
其中方向微分控制部分可以根据情况省略,这样可以进一步降低控制的复杂度。
图2.8
2.4车模控制算法总结
为了实现车模直立行走,需要采集如下信号:
(1)车模倾角速度陀螺仪信号,获得车模的倾角和角速度。
(2)重力加速度信号(z轴信号),补偿陀螺仪的漂移。
该信号可以省略,有速度控制替代。
(3)车模电机转速脉冲信号,获得车模运动速度,进行速度控制。
(4)车模电磁偏差信号(两路),获得车模距离中心线的位置偏差,进行方向控制。
(5)车模转动速度陀螺仪信号,获得车模转向角速度,进行方向控制。
上面采集信号中,可以简化掉重力加速度信号和车模转动速度陀螺仪信号。
在车模控制中的直立、速度和方向控制三个环节中,都使用了比例微分(PD)控制,这三种控制算法的输出量终通过叠加通过电机运动来完成。
(1)车模直立控制:
使用车模倾角的PD(比例、微分)控制;
(2)车模速度控制:
使用PI(比例、微分)控制;
(3)车模方向控制:
使用PD(比例、微分)控制。
可通过单片机软件实现上述控制算法。
在上面控制过程中,车模的角度控制和方向控制都是直接将输出电压叠加后控制电,机的转速实现的。
而车模的速度控制本质上是通过调节车模的倾角实现的,由于车模是一个非小相位系统,因此该反馈控制如果比例和速度过大,很容易形成正反馈,使得车模失控,造成系统的不稳定性。
因此速度的调节过程需要非常缓慢和平滑。
上述控制框图中只是原理性说明了控制关系。
在软件实现过程中,还需要考虑到各个采集量的比率和零点值以及信号的极性。
信号的极性与传感器的安装有关系,比如在车模转向控制中使用的车模转向陀螺的Z轴朝上和朝下,对应的车模转向角速度的极性相反,从而影响车模方向控制微分控制量与比例控制量之间的加减关系。
其它部分的加减关系也与此相同。
详细的框图
第三章电路设计
3.1整体电路设计
设计车模控制系统的电路,首先需要分析系统的输入、输出信号,然后选择合适的核心控制嵌入式计算机(单片机),逐步设计各个电路子模块,最后形成完整的控制电路。
系统的输入输出包括:
(1)AD转换接口(至少4路)
a)电磁检测:
左右两路,用于测量左右两个感应线圈电压。
b)陀螺仪:
两路。
一路用于检测车模倾斜角速度,一路用于检测车模转动角速
度。
c)加速度计:
一路,测量加速度z轴输出电压。
(2)PWM接口电路(4路)
a)控制左右两个电极双方向运行。
由于采用单极性PWM驱动,需要四路()PWM
(3)定时器接口(2路)
a)测量两个电机转速,需要两个定时器脉冲输入端口。
(4)通讯接口(备用)
a)一路,用于程序下载和调试接口;
图2.1
3.2电源模块
电源模块是整个硬件电路的基石,在设计中我们通过实验比较了几种不同型号的芯片最终我们选择了LM1117-5.0作为整个系统的5v电源,
LM1117提供电流限制和热保护。
电路包含1个齐纳调节的带隙参考电压以确保输出电压的精度在+/-1%
以内。
ASM1117-3.3作为单片机最小系统的3.3v电源考虑到单片机供电的稳定性,采取对单片机独立供电的方案。
原理图如下:
3.3单片机最小系统
单片机选择飞思卡尔公司DSCMC56F8013,它体积小(32PINTQFP),功耗低(3.3V工作电压),运算速度快(32MIPS,DSP结构),具有丰富的外设模块,非常适合控制它的主要外设包括:
(1)AD转换器:
6通道,12bit;
(2)定时器:
16bit,4通道;
(3)丰富的外部串行接口:
SCI,I2C,SPI;
(4)IO口:
᳔多可以提供26路,可以与5V器件直接相连。
此外,内部还集成了时钟电路、电源检测电路以及看门狗电路等。
内部存储器资源包括:
16k程序Flash,4k数据RAM。
最小系统的电路图:
程序下载JTAG接口:
我们使用的DSC专用的BDM下载器通过JTAG接口和MC56F8013连接,方便下载程序。
复位电路:
复位电路用于单片机复位。
3.4姿态控制电路
此模块集成了电源电路、硬件滤波计算姿态电路和转向陀螺仪电路。
根据不断的摸索和吸取教训,我们将姿态计算电路的和转向陀螺仪单独做成一个小板,可以插拔,方便更换。
下图是此模块PCB图:
倾角传感器电路主要是将陀螺仪信号进行放大滤波。
加速度传感器采用是车模低g值的传感器MMA7260,陀螺仪采用大赛指定的型号ENC-03系列陀螺仪,这里我想提醒一下,经过我们的尝试和失败的教训,我们最终选择了ENC-03MB这款芯片而不是ENC-03RC。
3.4.1电源电路
3.4.2姿态计算电路
我们采用了硬件滤波的方案对车模的角速度和角度进行计算。
通过LMV358运放对陀螺仪ENC-03输出的角速度信号进行积分便可以得到车模的角度。
为了抑制角速度信号的漂移以及积分电路的漂移,需要根据加速度传感器给出的Z轴信号进行角度信号矫正。
本方案选择了MMA7260加速度计,其具有低g,灵敏度很高的特点。
满足比赛要求。
下图是根据前面介绍的信号处理框图获得角度信号处理电路。
该电路包括角度积分以及重力加速度补偿电路两部分。
调节电位器P2大小可以改
变角速度的比例系数。
通过实验的调节能够得到很好角度跟踪效果。
满足稳定直立的效果。
3.4.3转向陀螺仪电路
为了提高转向控制的稳定性本方案为转向控制增设了转向陀螺仪,配合电磁传感器信号实现转向PD控制,通过TLV2211运放将转向陀螺仪的信号调理得到车模转动的角速度。
3.5速度控制电路
速度控制电路包括编码器速度采集接口和拨码开关设定速度电路。
3.5.1速度控制电路
速度采集通过光电编码器实现。
电机转动带动编码器转动,编码器输出TTL脉冲通过DSC的脉冲采集计数器进行间断计数经过换算得到车模的速度。
下图是编码器的接口电路:
编码器的脉冲输出和MC56F8013的T0和T2口连接
编码器的脉冲输出和MC56F8013的T0和T2口连接。
3.5.2速度设定电路
智能车是一项竞速比赛,比赛就要讲究策略,通过拨码开关可以改变速度的设定,从通过制定速度的策略,让比赛达到最好的成绩。
拨码开关与DSC单片机的硬件连接如下图示:
3.6电磁线检测电路
检测路径的传感器是两个10mH的工字电感。
通过集成运放电磁放大检波。
没有使用三级管电磁放大检波电路,虽其简单实用,已经在比赛中得到了广泛的使用。
但是三极管放大检波电路存在着一些缺点:
(1)工作点电压调整比较复杂;
(2)电路的放大倍数依赖于三极管的电流放大倍数和基极导通阻抗等,比较分散;
(3)由于检波二极管的正向导通电压的存在对于非常弱的电磁信号无法进行检波。
采用集成放大电路可以简化电路设计,提高电路的性能。
下面给出了一种基于输出
满电压量程(Rail-to-Rail,轨对轨)运算放大器的电磁放大检波电路。
在该电路中有意将运放的中点设置在0V,因此运放只对输入信号的正半周信号进行放大,负半周的信号则无法放大。
运放对信号进行了放大的同时也完成了与检波(半周检波)。
检波后的信号经过RC滤波后得到信号的直流分量,送到单片机进行检测。
图为电路放大检波后的波形。
3.7电机驱动电路
电机是整个控制系统的执行元件,电机驱动模块的好坏也直接关系到系统的性能。
这里我们通过实验比较选择选择了BTS7970这款芯片,四片BTS7970构成了两个H桥电机驱动,由于整个系统中电机驱动模块是用电大户,大的电流也会对周围的电路产生电磁干扰,经过第一版本的教训,最终确定将电机驱动模块和主板独立出来,在每个模块上分别放置了一个470UF的电解电容起到滤波作用,有效的防止了大电流对系统稳定的影响。
下图是驱动一个电机电路,另外一个电机驱动电路一样。
通过查阅芯片资料实验总结和前人的经验我们得到了上图电路原理。
充分发挥了芯片的最佳性能。
3.8调试通讯电路
调试的选择工具对车模调试效率起到举足轻重的低位。
由于MC56F8013具备串行异步通讯SCI模块,能很简单的和上位机连接,也可以通过无线数传模块和上位机连接我们设计了通信接口通过无线蓝牙串口模块实现DSC和上位机的数据交换,大大地提高了调试的效率。
第四章软件的设计
我们使用了思卡尔公司56800/E系列080单片机应用程序可以使用Codewarrior集成开发环境。
与其它版本的Codewarrior一样,DSC版也提供了ProcesseorExpert功能模块,可以通过工程配置非常方便的生成单片机的各个外设的出事化代码和接口程序,使我们把更多的经历放在应用程序上。
开发软件主要任务包括:
(1)建立软件工程,配置资源,初步编写程序的主框架;
(2)编写上位机监控软件,建立软件编译、下载、调试的环境;
(3)编写实现各个子模块,并测试各个子模块的功能正确性;
(4)通过程序初步调试,验证控制电路板的正确性。
4.1软件功能与框架
软件的主要功能包括有:
(1)各传感器信号的采集、处理;
(2)电机PWM输出;
(3)车模运行控制:
直立控制、速度控制、方向控制;
(4)车模运行流程控制:
程序初始化、车模启动与结束、车模状态监控;
(5)车模信息显示与参数设定:
状态显示、上位机监控、参数设定等。
上述功能可以分成两大类:
第一类包括1-3功能,它们属于需要精确时间周期执行,因此可以在一个周期定时中断里完成。
第二类包括4-5功能。
它的执行不需要精确的时间周期。
可以放在程序的主程序中完成。
这两类任务之间可以通过全局变量实现相互的通讯。
主程序框架如图4.1
图4.1主程序框
中断程序框架如图4.2所示。
图4.2中断服务程序
图4.2中,使用DSC的一个定时器,产生一毫秒的周期中断。
中断服务程序的任务被均匀分配在0-4的中断片段中。
因此每个中断片段中的任务执行的周期为5毫秒,频率为200Hz
将任务分配到不同的中断片段中,一方面防止这些任务累积执行时间超过1毫秒,扰乱一毫秒中断的时序,同时也考虑到这些任务之间的时间先后顺序。
当然也可以将所有的中断任务都合并在一起,使用一个5毫秒的中断来完成。
这些任务包括:
(1)电机测速脉冲计数器读取与清除。
累积电机转动角度。
累积电机速度,为后面车模速度控制提供平均数;
(2)启动AD转换。
进行20次模拟量采集,然后计算各个通道的模拟量的平均值。
这个过程是对于模拟信号进行低通滤波。
(3)车模直立控制过程。
包括车模角度计算、直立控制计算、电机PWM输出等。
(4)车模速度控制:
在这个时间片段中,又进行0-19计数。
在其中第0片段