鍩轰簬椋炴濆崱灏斿崟鐗囨満鐨勬櫤鑳借溅鎺у埗绯荤粺璁捐 - 鐧惧害鏂囧簱 联系客服

发布时间 : 星期三 文章鍩轰簬椋炴濆崱灏斿崟鐗囨満鐨勬櫤鑳借溅鎺у埗绯荤粺璁捐 - 鐧惧害鏂囧簱更新完毕开始阅读a1848c616ad97f192279168884868762cbaebb59

东北大学秦皇岛分校毕业设计(论文) 第12页

图2.6第五种直道情况

在右转大弯后,出弯时最可能出现的前后排传感器检测到黑线时的组合情况。适用于右转转 90°弯、180°弯。提前得到出弯信息,舵机向右转动较小角度,并在此时采取加速动作,起到弥补前瞻不足的作用。在赛道的s弯出现时,不满足直道的第二种识别方式,故不会加速。

(2)直道识别,程序辅助确认

进入弯道后,随着小车的行进,会发生振荡,致使出弯时不一定满足上述5种情况。为了提高直道的识别成功率,增加第二种直道判别方法。两者同时起作用,满足第一种后经过最多15ms确认是直道。

程序是循环执行,我们的程序执行频率是2KHz。采用定时中断(15ms)的方式,对前排中间3个传感器(编号为3、4、5)使用3个计数器分别计数,每次执行程序若是其中一个检测到黑线,相对应的计数器加1。经过计算,15ms内所能计数的最大值为31。我们设定计数的最大值,若在15ms内达到所要求的计数值,就认为是直道,切换直道程序并将计数器清零;若15ms内没有达到所要求的计数值,计数器清零,重新计数。例如小车为2m/s的速度,小车行进3cm。我们只要判断2~2.5cm内为直道即可。所以设最大计数值为20~25即认为是直道,跳出弯道程序。

当然也可以采用更严格的方法来判断,只需调整定时中断的时间和计数值即可。此条件在进入直道后总能满足,所以作为第一种直道判别方式的补充,保证直道的稳定可靠识别[7]。

东北大学秦皇岛分校毕业设计(论文) 第13页

2.2.4 直线稳定控制策略

小车出弯后,由于舵机的反应不灵敏,智能车会发生振荡,随后才能达到稳定,为了尽早减小振荡,采用如下方式控制小车出弯后的动作:

在弯道策略中设置标志位,进入直线程序后,识别标志位,对控制舵机转向的公式采取修正设置。公式为:q=K1q1+K2q2;其中q为最终送给舵机的控制量,q1为前排光电传感器的返回转角值,q2为后排红外返回转角值。K1、K2分别为前后排传感器的加权比例值。通常情况下K1、K2为定值1,需要时则改变赋值。

当小车从弯道进入直道并成功识别出直道后,减小K1的值,由于后排传感器距离小车的前轮(转向轮)很近,小车中心偏离黑线时,不会在后排传感器横向位置产生很大位移(相对于前排传感器),故小车在直线上舵机调整的次数就会明显减少,直线的稳定性会好。同时,根据前后排不同传感器的组合,给出不同的转角策略(在程序中以列表的方式体现),近一步提高直线的稳定控制能力。 2.2.5 弯道控制策略

PID算法在上述直道控制中效果很好,控制简单,在起跑加速时可设置前馈控制器,先全力加速到一个速度值,在加上PID调节,形成一个类似于分段的控制,即可较快地达到规定的速度。

但实验证明,双排光电控制时单纯用PID算法,智能车在大S弯上会出现抖动,降低车速,造成智能车在通过此类弯道时间的大大延长。为此,想出了5种解决方法:

(1)延长控制周期:这样,智能车舵机的反映灵敏度降低,减少了在大S弯上会出现抖动的次数,缺点是延长控制周期,造成软件对车体控制延时的加长,最明显的劣势在于长直道加速后转大弯反应不及时,冲出赛道,为了不冲出赛道,只有降低直道最大速度,间接影响了智能车的速度性。

(2)改变PID参数:改变PID参数可以减小舵机在转弯时控制的PWM信号,即让车体转向变小,缩小了在大S弯上出现抖动的幅度,缺点是改变PID参数在缩小了在大S弯上出现抖动的幅度的同时,也缩小了智能车在于长直道加速后转大弯时的转向幅度,使车体在相同速度下,不能转过以往可转过的大弯,最后导致滑出赛道或直接冲出赛道,

东北大学秦皇岛分校毕业设计(论文) 第14页

也影响了智能车的比赛性能。

(3)做赛道标志位,对小S弯,大S弯,90°弯,180°弯,环弯进行数据采集,分类设成标志位,此后智能车运行时不断记录最近采集的5组数据,分析其符合那种弯道,进而加以控制。实验后知其缺点为标志位识别易出错误,可行性不高,这主要是因为双排光电传感器的前瞻不足(仅28cm),采集到的赛道信息也不像摄像头那样多,可以作出准确的识别。

(4)利用速度传感器返回的实际速度值,做标志位,变舵机PID参数对弯道进行分段控制:在软件中设一系列速度值,按智能车运行速度予以分段,在低速区(大S弯的情况多为低速),控制量给中等值,因车速不高,较小的控制量在控制周期相对多时可很好的调节车体,稳定过弯;在中速区(主要针对小S弯)。控制量给小,可在一定程度上实现S弯直线跑,节省时间,在大S弯之所以不这样跑,是由于双排光电的前瞻小和采集信息不足的缘故;在高速区(通常只在长直道车体加速后方速度值可达到此区域),控制量给大,防止高速时,转90°弯,180°弯不及时而冲出跑道。实验中,效果很好,但后发现当赛道结构(直道,各类弯道的不同组合)未考虑周全时,在两速度区衔接处会出现失控,例如直道直接接大S弯的赛道处,车体进入大S弯,而其速度尚未减下来,即在高速区,控制量给大,不能完成在大S弯上的正确控制,车体摆动2-3次后方可正常行进(此时是由于车速随摆动降低,符合低速区标准,控制量给的正确)。

(5)在(4)的基础上做类似(3)的标志位处理后以实验法确定给定参数值(主要是不同情况下改变舵机的控制量q大小与Kp值大小):在设计期间,曾试着在软件对速度区间做细分,由原先的低、中、高三段改进为5段、7段、9段,进行控制,根据实验结果,随着细分段数的增加,可以减少减弱区间衔接处的车体摆动,但不能完全解决问题,而且算法执行时间受到一定影响。继而做标志位,并以实验法确定给定参数值后,智能车可充分发挥其双排可识别前方赛道的优势,识别后再进行速度分段控制,使车体在弯道上的控制得到了保证,控制效果比较满意。 2.2.6 实测结果和现象分析

下图为我们使用上述算法前后小车行进的实际轨迹。

东北大学秦皇岛分校毕业设计(论文) 第15页

图2.7 两种算法小车行进的实际轨迹对比

图2.7 是使用实验法确定给定参数值前后小车在赛道上的实际轨迹,其中的红线是赛车行驶轨迹

注:这张图的绘制方法是这样的,先通过串口把误差值和速度通过无线串口发到上位机,然后通过在计算机上描点画出小车实际的轨迹,有偏差但是与实际情况非常近似。

可以非常明显的看到使用实验法确定给定参数值之后,小车虽然也有偏出赛道的情况存在,但是比用 Kp 参数恒定的算法情况就好多了。这主要是因为在弯道上 Kp 参数变大的缘故。Kp 变大时,一旦检测到偏差,系统就能更快的恢复到平衡位置。从表中可以看到小车偏差的方差实际减小了,因而小车走的实际距离也减小了,自然跑完赛道的时间也减小了。 2.3 车模参数

此次比赛选用的赛车车模采用1/10 的仿真车模。赛车机械结构只使用竞赛提供车模的底盘部分及转向和驱动部分。控制采用前轮转向,后轮驱动方案。具体车模数据如下: