当前位置:首页 > 光电 - 第四届 - 天津工业大学一队技术报告 - 图文
第四章 系统控制算法
collect_num==0? Y N 开启新的一轮采集; PTS_PTS7=1; collect_num ==D? N Y Y coll=PORTA_PA0; sen_flag[1]+=coll; coll=PORTA_PA3; sen_flag[7]+=coll; 关闭改组: PTS_PTS2=0; 开启下组: collect_num==(D+15)? N 以5为一个单位执行一次 采集: coll=PORTA_PA0; sen_flag[1]+=coll; coll=PORTA_PA3; sen_flag[7]+=coll; 采值: sen_flag[1]=PORTA_PA0; sen_flag[7]=PORTA_PA3; collect_num ==(D+n*5)? Y N collect_num++ 图4.3 循环采集流程图(D代表每组发射管的开始采值的相对时间变量)
33
第四届全国大学生智能汽车邀请赛技术报告
4.1.3 舵机角度控制 1.加权求和法:
(1)将每个传感器进行加权处理,给相应各个传感器的权重值,如下图所示。
图4.4 传感器的位置
(2)当传感器检测到黑线时相应的传感器返回所在的权重值,并计算所有传感器的平均加权值,即偏离程度。计算公式为:
Sen_Jiaquan? hi[i]?Sen_Flag[i]?Sen_QuanZ?Sen_Flag[i] 公式(4 .1)
式中,Sen_Flag[i]为对应传感器的状态值,Sen_QuanZhi[i]为对应传感器的权重值,Sen_Jiaquan为传感器的加权平均值。 for(i=0;i<13;i++) {
Sen_Jiaquan+=(Sen_Flag[i]*Sen_QuanZhi[i]); Sen_FlagCount+=Sen_Flag[i]; }
Sen_Jiaquan= Sen_Jiaquan /Sen_FlagCount;
由上程序段即可以计算出此时模型车传感器的加权平均值,由此可以得到模型车的状态,为下一步控制决策提供必要的信息。
(3)建立偏离程度和舵机转动角度所对应的PWM脉宽关系的模型,拟合二者的函数关系曲线。
在这里我们认为舵机转动的角度是和PWM脉宽成线性的正比关系,因此以一次函数来唯一确定PWM脉宽与舵机转动角度之间的关系。 建立的一次函数方程为:
34
第四章 系统控制算法
angle?PWMMiddle?Sen_JiaquanFactor 公式(4 .2)
式中,TurnAngle为舵机应转的角度,PWMMiddle为车轮摆正是舵机PWM脉宽应赋的PWMDTYx的值,Sen_Jiaquan为由传感器状态求得的偏离程度,Factor 为转角比例因数。由此,我们求出了在不同的传感器状态下舵机应转的角度。 2.黑线段的求取
该方案中我们采用的是利用跳变沿来检测黑点出现的位置,并且记录相关的信息。
1>检测当前采集所得序列中的跳变沿,记录上升沿的传感器的位置up_point与相邻的下降沿的传感器的位置down_point,并得到相应的黑线起始值; 2>通过检测及计算得到采集序列中的每段黑点值的宽度,记录进black_long[i];
3.通过每段黑线的up_point与down_point得到相应黑线的准确位置,并利用转角与该位置的关系确定舵机所需调整的角度。 因为采集到的信号为纯数字量的,黑线为1,白区为0。 赛车在正常情况下传感器的识别状态:
black_long[0 ]
up_point down_point
当出现干扰或因电流不够而造成某些激光管识别瞬间失效时,采用该种算法也可以滤掉此类干扰:
black_long[0black_long[1
] ]
up_point down_point down_point up_point 1>当第一部分的up_point+down_point>line,并且第一部分与第二部分的间隔比较大时,选用第一段黑线为有效线段,略去第二部分黑线;
2>当第二部分的up_point+down_point 35 第四届全国大学生智能汽车邀请赛技术报告 比较大时,选用第二段黑线为有效线段,略去第一部分黑线; 3>当两部分的间隔比较小时,不能略去任何一段,因为在进出窄道的三角标志处会出现此类情况,此时需要对两段综合处理。 ? 起跑线 black_long[0 ] up_point 在起跑线处传感器序列会出现如上图的图形,出现三段的黑线值,在该种 black_long[1] black_long[2] down_point down_point up_point down_point up_point 情况下我们只需对各段黑线的长度进行辨析来判断是否为起跑线。 ? 空白区域 当赛车进入白区后,传感器序列上将不再存在上升沿与下降沿,通过与上次黑线所在位置判断该次是从赛车的哪侧进入的白区,在白区内启动白区变量,随着白区变量的变化,赛车在白区的转角也是连续变化的,而并非为一定值。这样可以将传感器所对应的角度值缩小,改善大前瞻所带来的弊端,在小S弯会出现滞后的现象,而在识别大S与圆时会出现较长时间的白区,这样人为的添加角度的优势就会显现出来。 经过实际的验证,通过对准确性等因素的比较,我们选用第二种方案作为赛车的黑线识别算法。 36
共分享92篇相关文档