云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 光电 - 第四届 - 天津工业大学一队技术报告 - 图文

光电 - 第四届 - 天津工业大学一队技术报告 - 图文

  • 62 次阅读
  • 3 次下载
  • 2025/6/15 0:05:33

第四章 系统控制算法

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

  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

第四章 系统控制算法 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_n

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com