第十届飞思卡尔智能车大赛报名表Word文件下载.docx
《第十届飞思卡尔智能车大赛报名表Word文件下载.docx》由会员分享,可在线阅读,更多相关《第十届飞思卡尔智能车大赛报名表Word文件下载.docx(18页珍藏版)》请在冰豆网上搜索。
手机
学校邮箱
所在院系
队长
队员
*备注:
可以优先选择这两位老师作为指导老师
关胜晓
邮箱:
guanxiao@
办公室:
电二楼417
邵长星
飞思卡尔计划书(电磁组)
第三章硬件部分
第1章队伍分工
确定队内的各个人员分工,保证任务能够按时完成,分工需要包含仿真,电路设计、程序编写调试和机械安装等这几个部分。
此处重点解释仿真部分,其它部分队员自己参考有关资料。
仿真部分:
通过仿真可以理解物理模型,了解影响因素,从而从根本上解决问题,提高速度和稳定性。
仿真可以减少调试的时间,降低车模的磨损,节约成本,提高效率,是一种科学的研究方法。
在车模的运行过程中需要考虑的因素有电池电压的变化,车轮的摩擦力,赛道的曲率,车模的运行速度,加速度,车模自身的质量等等。
可以从电机的模型,车模的运动学模型,倒立摆的运动模型,现在就倒立摆的数学模型做一简单仿真,抛砖引玉。
自平衡小车是一典型的倒立摆模型,建立一个简化的模型可以帮助我们分析和理解这个系统。
于是我们采用牛顿动力学方法建立了单级倒立摆的数学模型。
简化示意图如图所示。
图1.1直立车模示意图
其中:
M:
轮子质量;
m:
车体质量;
l:
轴心到车体质心的长度;
I:
车体的转动惯量;
F:
施加在车体上的力;
x:
小车的位置;
θ:
小车与垂直向上方向的夹角;
N和P分别为摆杆与小车之间相互作用力的水平和垂直方向的分量;
于是,可以建立如下的微分方程
由于θ较小,可近似sinθ=θ,cosθ=1,于是
取状态变量X=[θ;
θ’;
x;
x’],Y=X,可得状态方程
于是可在matlab中建立如下的系统框图模型。
通过仿真模拟可以得出一组比较满意的反馈增益K的值,使得系统稳定,通过仿真的手段,我们可以得到一个比较合适的范围,在这个基础上再进行参数的微调,可以大大的减少工作量,节约调试时间,取得事半功倍的效果。
图1.2Simulink仿真控制
我们使用线性二次最优调节器LQR最优控制的方法来寻找控制参数k_f。
寻找一状态反馈控制律u=-KX,使得控制性能指标达到最小。
其中,Q和R为正定或实对称矩阵,Q和R分别表示了对状态变量和输入变量的加权值。
这里取,,可通过matlab里的LQR函数计算出反馈增益K的大小。
调用LQR函数计算得到k_f为
[-0.6068-41.2508-0.5285-3.6574]。
当参数k_f设定为[-0.6068-41.2508-0.5285-3.6574]时,可得到如下的仿真结果:
图1.3Simulink仿真结果
由图可以看出取得了较好的控制效果,为我们的调试节约了宝贵的时间。
第二章机械结构部份的设计及调整
智能车的核心是控制策略和算法,但是,机械结构也是限制赛车速度的巨大瓶颈,如果一辆赛车的程序架构很好,但是机械部分做的不好的话,其速度也会被大大的限制。
2.1整车布局
(1)车模底盘降低,主板低放,以降低重心。
(2)舵机竖直放置,方便控制。
(3)用轻便坚固的碳纤杆作为前端传感器的支撑材料。
(4)电感安装在最前方,碳纤杆的长度大概是50cm,为了能够提前检测到,以至车体能够及时反映。
(5)电池后移,从而使智能车重心能够尽量位于车体中间偏后,这样才能保证智能车在高速行进时的稳定性,减少甩尾现象。
图2.1整车图
2.2转向舵机的安装
舵机转向是整个控制系统中延迟较大的一个环节,为了减小此时间常数,通过改变舵机的安装位置,而并非改变舵机本身结构的方法可以提高舵机的响应速度。
通过分析舵机控制转向轮转向的原理可以发现,在相同的舵机转向条件下,转向连杆在舵机一端的连接点离舵机轴心距离越远,转向轮转向变化越快。
这相当于增大力臂长度,提高线速度。
针对上述特性,本设计采用“长连杆”方式将舵机竖直放在前面,大大的增加了舵机的力臂,如图2.1所示。
图2.2转向舵机安装示意图
上述安装方式的优点主要有:
(1)改变了舵机的力臂,使转向更灵敏;
(2)舵机安装在了正中央,使左右转向基本一致,避免了多级传动可能带来的空程和死区;
(3)增加前轮下压力,从而提高了前轮的抓地力,当然这样也加重了舵机的负载;
2.3传感器的安装
电感传感器安装的高度以及碳纤杆的长度共同决定了前瞻的大小。
在本设计中,最终选取的碳纤杆的长度为50cm,碳纤杆的长度超过60cm后,在过弯的时候容易内切,而且转弯时盲区比较多。
而且我们在保证信号足够的前提下,应尽量前端电感放高,这样能检测的范围更广。
碳纤杆的一段用热熔胶固定在车模的前面,再用连杆连接到舵机上,保障其固定牢固。
如图2.3.1、2.3.2.
图2.3.1
图2.3.2
2.4测速传感器的安装
为实现车速的闭环控制,需使用光电编码器测量车速。
光电编码器安装主要考虑的问题是与齿轮的咬合,太紧会使电机转动吃力并且会发出很大的噪声,太松有时候会丢齿。
因此最好使得安装的编码器松紧程度能够调整最好,我们采用的是500线的编码器,每转一圈会产生500个脉冲。
光电编码器的安装如图2.4所示。
图2.4光电编码器安装示意图
2.5车底盘的调整
根据总结的智能车机械结构的设计原则,智能车底盘必须足够低。
车模底盘的高度主要由赛道中的坡道以及减速带决定,在顺利过坡的前提下,底盘越低越好.
此外,适当增大底盘的刚度有利于提高车体走直线的稳定性。
通过增加垫片来增大弹簧的预紧力或调整弹簧的另一个支点的位置来改变预紧力可以提高底盘的刚度。
第三章硬件部分
3.1硬件设计概述
以单片机为核心,配有传感器电路、测速电路,执行机构以及它们的驱动电路构成了智能车的硬件系统,硬件系统结构如图3.1所示。
图3.1
图3.1中,MC9S12XS128是本系统的核心控制器,满足智能车设计的要求。
信号转接板用来获取前端信息,从而测出偏移量;
舵机是用来控制车身的转向;
电机驱动与控制模块是用来控制电机的转动,包括加减速与正反转;
测速传感器用来获取电机转速,以实现电机的闭环控制。
键盘显示用于系统参数的设定和系统运行状态的获取。
电源管理模块用来为各个模块供电。
起跑线检测模块就是干簧管电路,用来检测起跑线的。
从功耗和工作方式角度可将系统电路分为功率电路和数字电路。
从供电电压角度可以将电路分为7.2V、6V、5V、12V电路。
本系统中,电压分配如下:
为保证驱动芯片正常工作,将7.2V经过升压电路到12V;
舵机稳压后的6V供电;
人机接口模块、编码器电路和电感传感器模块由一片5V电源芯片供电,只是主控芯片的5V电源单独供给。
3.2MC9S12XS128单片机的选定
根据电磁组的任务进行需求分析,选定XS128作为处理器,原因如下:
1、电磁组主要是检测电磁信号,相对摄像头组来说,数据量相对较小,计算任务较轻。
XS128的SRAM大小和外设能够满足要求。
2、XS128在往届比赛中使用较多,资料丰富,易于学习。
3、有成品核心板出售,成本较低。
3.3电感传感器电路设计
组委会规定本次电磁组竞赛车模需要能够通过自动识别赛道中心线位置处由通有100mA交变电流的导线所产生的电磁场进行路径检测。
可首先讨论赛道上的直道部分(弯道可以看作很多小直道微元的积分,故只要直道研究透彻,弯道就可以迎刃而解),如图:
图3.3.1无限长直导线周围的磁场
利用毕奥-萨伐尔原理可计算得到:
无限长直导线通以恒定电流I的时候周围的磁场为:
下面在计算放置在无限长直导线周围的电感线圈能感应出的电动势:
图3.3.2导线周围磁场分布
根据法拉第定律:
将线圈内部小范围内磁场近似认为是均匀分布的,将会得到
即导线周围放置的线圈感应出来的磁场与导线到线圈的直线距离成反比。
因此根据此种特性即可制作出电磁感应传感器。
本设计采用LC谐振放大整流的方法来得到最终的信号。
首先通过一级LC的谐振,达到一个初步的选频滤波功能,即只感应20KHZ的电流产生的交流磁场,感应信号为正弦波,其幅值随着导线到传感器的距离而变化。
在查询资料后,我们摘选出了4中方案,方案1:
两级放大电路,通过INA129初级放大后,再经NE5532二级放大,通过滤波后得到信号。
方案2:
LMV358一级放大电路后再接一级RC滤波稳定纹波后得到最终的输出。
方案3:
LM386一级放
大电路。
方案4:
三极管放大电路。
电路原理图见图3.3.3、3.3.4、3.3.5、3.3.6。
经过试验,我们发现方案2比方案3和方案4数据更稳定,而且相对于方案1电路更加简洁.考虑到这些因素,我们最终选择LMV358的放大电路作为电感信号的处理电路。
图3.3.3电路原理图
图3.3.4电路原理图
图3.3.5电路原理图
图3.3.6电路原理图
3.4直流电机驱动模块设计
电机驱动电路板为一个由分立元件制作的直流电动机可逆双极型桥式驱动器,其功率元件由四支N沟道功率MOSFET管组成,额定工作电流可以轻易达到100A以上,大大提高了电动机的工作转矩和转速。
由于C车电机为双电机,所以,我们用两路相同的驱动器分别驱动两个电机。
该驱动器主要由以下部分组成:
PWM信号输入接口、逻辑换向电路、死区控制电路、电源电路、上桥臂功率MOSFET管栅极驱动电压泵升电路、功率MOSFET管栅极驱动电路、桥式功率驱动电路、缓冲保护电路等,电路如图3.8所示。
电路中肖特基二极管IN5819保证了电平VB_1、VB_2低于12V,VB_1高于MOTOR_A,VB_2高于MOTOR_B。
电路如下图示,首先使能端为高时,驱动桥这时才会起作用。
PWM0为某一占空比,PWM1为低时,使得IR2104驱动输出分别为低电平和相应的电压值。
驱动桥电路左边上方IRLR7843与右边下侧的IRLR7843导通,另外的两个MOS管不导通,此时电机正转。
因此,一个电机是由两路PWM控制,显然当PWM输出状态与上述相反则为反转。
转速的大小取决于占空比的大小。
图3.8电机驱动电路原理图
3.5测速模块设计
为了精确控制智能车的速度,需要设计速度反馈电路检测智能车运动速度,同时获取车模运动的里程信息。
本设计采用的是单片机控制编码器的方法来检测小车的电机转速。
编码器选用的是一款旋转编码器,其引出红、黑、白三根线。
红色是电源线,黑色是地线,白色是信号线。
编码器的工作电压为5~12V,可直接将编码器的电源线接到5V电源上。
编码器的地线要和单片机的地线连在一起。
每转一周,白色信号线就输出500个脉冲,将信号线接到单片机的PTA10和PTC15口,进行脉冲累加,再用单片机定时器定时,每5ms记一次PCANT数据,作为小车速度的参考值,然后清空脉冲累加器,再定时计数。
编码器接口电路如图3.5所示。
图3.5编码器接口电路
第四章控制算法
软件是存在于单片机内一系列指令的集合,是智能车设计的核心部分,需要花费很多的精力去设计编写。
优秀的软件运行在良好的硬件平台上,将使智能车能够平稳高速地行驶。
4.1路径识别算法分析及选定
智能车的路径识别算法是智能车设计的关键部分,智能车设计的大部分工作都是围绕它来展开的。
经过分析,利用电感传感器识别路径一般有两种不同的方法:
(1)数字型寻线算法。
利用多个水平放置的电感传感器,将整个赛道分为多个区域,感应电动势最大的电感是最靠近导线的电感,来判断电磁线的位置。
这种查询方式的优势在于算法简单,易于实现。
但是这种方法采集到的信息是离散的点,不利于精细控制;
且要用到多个电感,会加重车头重量,增大小车的转动惯量,造成小车在高速行驶时发生甩尾;
且多个电感“一”字排布,不得不考虑离得太近时相邻电感的互感作用。
(2)模拟型寻线算法。
使用少数传感器,直接使用感应电动势的模拟量精确值来进行赛道的精确定位。
该方式可以达到赛道精确定位的目的,同时可以利用归一化的方法来解决每个电感线圈不完全相同的问题。
这种方法的特点是用了较少个数的传感器进行道路识别,而且充分利用MCU里的ADC功能。
最终我们选择了方案二,即模拟型寻线算法。
我们利用对称电感的差值斜率方法来解算车体相对于导线偏离的距离。
这种方法简单直观,对于MCU的负担较小,但是其两端线性度不高,且其是基于无限长直导线周围的磁场来拟合的,所以误差较大,但是经过分析,误差在我们可以接受的范围内,所以选用此方案。
4.2起跑线识别程序设计
起跑线的识别决定着智能车能否正确停车。
起跑线处埋有磁铁的产生静磁场,检测时可直接使用干簧管。
当干簧管在磁铁上方时,干簧管导通,从而产生低电平,在本系统中,我们使用的是单片机查询方式,即每次大循环开头时查询相应IO口是否为低电平,如果是低电平就停车。
此外,为了防止误判,起跑线识别并不是在单片机刚上电时就进行,而是在发车后10s后才进行。
4.3转向舵机控制程序设计
本智能车系统的舵机控制采用的是基于位置式PID的方向控制算法。
通过对模拟控制系统PID控制规律表达式的离散化,可得数字式PID表达式如下:
对于本智能车系统,u(k)即为舵机转角,e(k)为车体相对于导线的偏移量。
本算法响应时间快,稳态误差低,由于舵机本身就是一个延时较大的环节,而积分项会导致相应更加滞后,所以为了使舵机的响应速度加快,只使用PD算法。
4.4电机控制程序设计
4.4.1基于增量式PID的电机控制算法
本智能车系统的电机控制采用的是基于增量式PID的方向控制算法。
对于本智能车系统,u(k)即为输给电机的PWM占空比,e(k)即为目标速度与实际速度之差。
由于微分项会导致电机振荡,故只是用PI算法。
4.4.2速度分配
赛道分为直道,弯道,十字弯,坡道部分,在直道部分需要加速,在入弯之前需要提前减速,在十字弯和坡道处适当减速。
由于侧滑现象和舵机反应速度的限制,弯道上存在所谓的极限速度,而转弯半径越小,此极限速度越小。
所以如果在弯道里全部采取匀速,那么这个速度因为受到最小转弯半径的约束会比较小,非常不利于提升小车的速度。
所以在弯道里,我们采取的策略是:
设置弯道最低与最高速度,再根据偏差大小的不同来设置速度,偏差最大时采用弯道最小速度,偏差最小时采用弯道最大速度。