行,齿轮间的配合间隙要合适,过松容易打坏齿轮,过紧又会增加传动阻力 ;传动部分要轻松、顺畅,容易转动。 判断齿轮传动是否调整好的一个依据是 :听一下电机带动后轮空转时的声音。声音刺耳响亮,说明齿轮间的配合间隙过大, 传动中有撞齿现象;声音闷而且有迟滞,则说明齿轮间的配合间隙过小,咬合过 紧 ,或者两齿轮轴不平行,电机负载加大。调整好的齿轮传动噪音小 ,并且不 会有碰撞类的杂音。同时在电机传动齿轮上安装速度测试模块,我们采取的是42 齿光电编码器,通过编码器,MCU得到赛车的时时速度反馈,从而进一步地实行速度控制。由于今年是四驱驱动电机与中差速都在车模中央不利于编码器 的安装,所以我们使用定制的编码器,它的体积相对较小,可以减少占用的空间 。 我们将编码器安装 于电机的左下角,齿轮直接与电机齿轮啮合。 电机驱动原理图如图9:
图9.电机驱动原理图
电机电枢两端电压的极性影响电机的转向,电压的大小影响电机的转速。通过微控制器输出不同占空比的PWM信号来近似不同幅度的电压,以达到控制速度的目的。
5.速度控制PID算法 PID算法--速度控制
在控制系统中,控制器最常用的控制规律是PID控制。为了说明控制器的工作原理,先看一个例子。(如图10)所示是一个小功率直流电机的调速原理图。给定速度n1(t)与实际转速进行比较n(t),其差值e(t)=n1(t) – n(t),经过 PID 控制器调整后输出电压控制信号u(t),u(t)经过功率放大后,驱动直流电动机改变其转速。
N1(t) E(t) PID控制 直流电机
N(t) 图.10小功率直流电机调速原理图
常规的模拟PID控制系统原理框图(如图11)所示。该系统由模拟PID控制器和被控对象组成。图中,r(t)是给定值,y(t)是系统的实际输出值,给定值与实际输出值构成控制偏差e(t),e(t)=r(t)–y(t)。e(t)作为 PID控制的输入,作为PID 控制器的输出和被控对象的输入。所以模拟PID控制器的控制规律为u(t)=Kp[e(t)+???? 0?? ?? ????+????
1
??
????(??)????
]。
其中Kp :控制器的比例系数。Ti:控制器的积分时间(积分系数)。Td:控制器的微分时间(微分系数)。
r(t) + + _ e(t) 比例 积分 微分 + + + u(t) 被控对象 y(t) 图11.PID控制系统原理框图 比例部分:
比例部分的数学式表示是: Kp* e(t)。在PID控制器中,比例环节的作用是对偏差瞬间作出反应。偏差一旦产生控制器立即产生控制作用,使控制量向减少偏差的方向变化。控制作用的强弱取决于比例系数,比例系数越大,控制作用越强,则过渡过程越快,控制过程的静态偏差也就越小;但是越大,也越容易产生振荡,破坏系统的稳定性故而,比例系数Kp选择必须恰当,才能过渡时间少,静差小而又稳定的效果。 积分部分:
积分部分的数学表达式是:???? 0??(??)????。只要存在偏差,则它的控制作用就不断的增加;只有在偏差e(t)=0时,它的积分才能是一个常数,控制作用才是一个不增加的常数。可见, 积分部分可以消除系统的偏差。 积分环节的调节作用虽然会消除静态误差,但也会降低系统的响应速度,增加系统的超调量。积分常数Ti越大,积分的积累作用越弱,这时系统在过渡时不会产生振荡; 但是增大积分常数Ti会减慢静态误差的消除过程,消除偏差所需的时间也较长,但可以减少超调量,提高系统的稳定性。当Ti较小时,则积分的作用较强,这时系统过渡时间中有可能产生振荡,不过消除偏差所需的时间较短。所以必须根据实际控制的具体要求来确定Ti。
????
??
微分部分:
微分部分的数学式表示是:Kp?????
???? ?? ????
。实际的控制系统除了希望消除静态误差外,还要求加快调节过程。在偏差出现的瞬间,或在偏差变化的瞬间, 不但要对偏差量做出立即响应(比例环节的作用),而且要根据偏差的变化趋势预先给出适当的纠正。为了实现这一作用,可在PI控制器的基础上加入微分环节,形成PID控制器。微分环节的作用使阻止偏差的变化。它是根据偏差的变化趋势(变化速度)进行控制。偏差变化的越快, 微分控制器的输出就越大,并能在偏差值变大之前进行修正。微分作用的引入, 将有助于减小超调量,克服振荡, 使系统趋于稳定, 特别对髙阶系统非常有利, 它加快了系统的跟踪速度。但微分的作用对输入信号的噪声很敏感,对那些噪声较大的系统一般不用微分, 或在微分起作用之前先对输入信号进行滤波。微分部分的作用由微分时间常数Td决定。Td越大时,则它抑制偏差变化的作用越强;Td越小时,则它反抗偏差变化的作用越弱。微分部分显然对系统稳定有很大的作用。 适当地选择微分常数Td,可以使微分作用达到最优。 6.单片机
系统的核心控制采用比赛统一规定的16位HCS12系列单片机MC9S12DGl28。其主要特点是高度的功能集成,易于扩展,低电压检测复位功能,低电压低功耗,自带PWM输出功能等。系统I/O口具体分配如下:PORTA0、PTH0~PTH7共9位用于小车前面路径识别的输人口;PACN0用于车速检测的输入口;PORTB0~PORTB7用于显示小车的各种性能参数;PWM01用于伺服舵机的PWM控制信号输出;PWM23、PWM45用于驱动电机的PWM控制信号输出。 中断
S12默认中断处理状态:在进入中断服务程序时,I位自动置1,禁止其他可屏蔽中断。即使有优先级更高的中断请求,也必须等当前中断服务程序执行后才能响应。优先级的作用只有在多个中断源同时请求中断时在能体现无法实现中断嵌套。
在可屏蔽中断服务程序中:如果在进入中断服务程序时,手动对I位清零,任何其他可屏蔽中断都可以被响应,无论其优先级有多高。中断响应由时间控制,可以实现中断嵌套。对中断执行无法预测。
中断优先处理机制:在中断服务程序中,首先对I位清零。选择优先级更高的中断源可以进入响应中断。设置优先等级:1.两级:一个中断源为低优先级,其他为高优先级。在低优先级中断服务程序中,对I位清零。在高优先级中断服务程序中,不清零。2.多级:利用局部的中断屏蔽位。 四. 设计结果(包括必要的截图)
这次设计主要体现了激光传感器的检测前瞻距离远,受外界光影响小,检测信号数字化等优点,相比红外线传感器,在小车性能上有了进一步的提高。
激光传感器信号读取方式
激光接收管接收到反射光之后,以数字量的形式将反射光的强弱反映给单片机。此时,单片机只需要使用普通的 IO 口读取接受管传回来的0、1信号即可知道当前发射管照射到黑色中心线上,还是白色赛道上。其中,需要注意的是激光管的点亮方式,上文以及提到激光接收管不仅能够接受其正上(下)方的发射管的反射光,而且可以接收相邻发射管的反射光,如果距离太近的发射管同时发射,势必会产生互相影响,从而产生错误的检测结果。故采用循环点亮的方式,即每次只点亮一个发射管和其对应的接收管,从而需要试验获得每个激光管需要点亮的时间。这样,就避免了相近发射管互相干扰的情况,使检测结果正确。激光传感器首先要设计电路图,本次用protel2004来绘画激光传感器的原理图如图13所示:
图13.激光传感器电路图截图
五. 设计总结和体会
本论文主要介绍了可自主寻迹智能小车控制系统的设计,包括控制系统的硬件组成和软件控制算法,以及传感器的选择和驱动电路的选择。控制系统是一个双输入双输出的系统,其硬件主要包括:
1、赛道路径检测传感器,该传感器的选择可以是摄像头、光电管或者激光管,从光电车的角度考虑,远前瞻是提速的关键,所以选择了激光传感器;
2、舵机,从机械方面增大舵机左右转角的最大值,有利于转大弯,然后建立起舵机的数学模型,为后续调节舵机参数做铺垫;
3、摆头舵机,为了更好地跟上黑线并且保证尽量不丢黑线,以达到很好的获取赛道信息的目的,故采用了大赛统一的S3010舵机;
4、测速传感器,可以是自制的法兰盘直接测车轮转速,也可以是光电编码器测电机的转速然后转化为车轮转速,由于后者具有更好的安装位置, 所以定为本系统的测速方式;
5、电机控制模块中,由于BTS7960 驱动具有更好的加减速特性,所以定为本系统的驱动方式。
软件控制算法,最重要的是让小车能够得到正确的偏差 E,这是后续舵机控制和速度控制的基础,所以运用了数字滤波、条件判断等方法来得到正确的E,同时对不同的赛道类型进行识别,使小车能够稳定又快速的运行。舵机控制采用了 PD 控制,而电机控制采用了bangbang控制和 PID 控制相结合的方式。不管是舵机的 PD 参数,还是电机的 PID 参数,都需要试验反复调整,期间可以用到各种不同的调试工具。试验结果表明,小车能够达到平稳又快速行驶的设计目的。
附各部分初始化代码
#include
#include \int max1=0; int max2=0; int max3=0; int max4=0; int max5=0; int max6=0; int max7=0; int max8=0; int max9=0;
intAD_Value[9]; int a0[9]; int a1[9]; int a2[9];
// 倍频。。。。。。。。。。。。。。。。。。 voidbian() {
SYNR=0xC5;