APP下载

智能循迹小车的设计与实现

2014-10-10许思维强俊

电脑知识与技术 2014年24期
关键词:PID算法控制

许思维 强俊

摘要:针对大学生学科竞赛的热点项目,设计了一款速度快、运行稳定、循迹精度高的基于光电传感器的智能小车。通过对整体硬件结构设计,PID算法设计,实现了对智能小车的路径控制,速度控制和稳定性控制。实验表明,该设计方案能结合赛道的实际情况,高速、稳定、准确的完成比赛。

关键词:智能循迹小车;光电传感器;PID算法;控制

中图分类号:TP18 文献标识码:A 文章编号:1009-3044(2014)24-5746-04

循迹小车的设计与制作是现在大学生学科竞赛的一个热点项目。智能循迹小车实际上是智能机器人的另一种表现形式,轮子相当于机器人的双腿,虽然它在机械设计和电路方面以及控制系统都比智能机器人较为简单,但是其对行车速度和行驶方向的配合则要求较严格,通常在比赛中要求小车能沿着与地面具有明显对比度的黑色或白色引导线前进,通过传感器获取目标道路信息,然后结合智能小车当前的行驶状态做出决策,对其行驶方向与行车速度进行调整,从而达到准确快速跟踪道路的目的。本系统是由12V铅酸蓄电池供电,7路光敏电阻传感,后两轮驱动,STC51单片机控制的自主循迹机器人系统。

1 智能循迹小车硬件结构设计

机器人通过STC51单片机的AD转换功能实现数据采集,通过STC单片机的PCA/PWM实现控制电机转度,通过执行存储在用户程序区的程序实现对采样数据的后续加工以及对电机的控制,从而对车体的实时控制。

整体硬件结构设计主要包括输入输出模块、电机驱动模块、通信模块、传感器模块和电源。

1.1 输入输出模块

1.4 传感器模块

LED支路为光敏电阻的探测过程提供了光源,光敏电阻与一个33kΩ的定值电阻串联构成另一支路;LED发出的光线经赛道表面反射后会有相当一部分照射在光敏电阻表面;因而光敏电阻的阻值会随赛道表面的反光程度的变换而变化。单片机 A/D转换 引脚接在光敏电阻与定值电阻之间,因此能够实时测得光敏电阻所分得的电压值(A/D转换的返回值并非电压值,而是一个和电压成正比例关系的8位或10位整数值)。所以,单片机就能够实时提取赛道表面信息。

1.5 电源

图中电源驱动为LM7805, 接口对应关系:J9为电源开关,J10为电源插头。LED D6为电源指示灯。

2 算法设计

控制系统角度分析,机器人系统共有7个输入(7路传感器返回值)2个输出(两个电机的PWM)。只需完成将7路传感器返回值处理为黑线的位置值,系统即转即变为1个输入2个输出。而该位置信息经PID算法计算可得一个输出值,只需实现PID算法输出到两电机PWM的转换,即可实现控制程序。并加入无线控制,可以实现无线启动。

2.1 状态集定义

程序中涉及三种状态:传感器状态(Sensor State),采样状态(Sample State),赛道状态(Line State)。每次采样,由每个传感器的返回值即可判断出传感器状态;由本次采样的7个传感器的返回值能够判断出采样状态;由相邻两次采样状态就能判断出赛道状态。

enum SampleState { // 采样状态

SS_MISS, // 丢失,miss

SS_NORM, // 正常,normal

SS_HORI, // 横线,horizontal

SS_UNKNOW

} state, // 当前采样状态

last_state; // 上次采样状态

enum LineState { // 黑线状态

LS_NORMAL,

LS_TRUN_L,

LS_TRUN_R,

LS_UNKNOW

}ls_state;

2.2状态信息提取

传感器状态(Sensor State)只有两种(黑或白),所以程序中并没有定义相应的数据类型。由于不同传感器具有差异,直接用A/D转换的结果计算状态(固定阀值)的误差较大。为了避免传感器差异造成的影响,我们采用了相对阀值法,具体过程为:

在DEBUG状态编译后,让每个传感器在赛道上进行扫描,分别记录每个传感器输出的最大值max(对应读到黑线中心的情况)和最小值min(对应远离黑线读到白色赛道的情况),写入程序Sb[],Sw[]数组中;调试选项改为OL_DEBUG重新编译,程序运行时,用每个传感器的当前值sense[i]减去最小值Sw[i]的差除以最大值Sb[i]减去Sw[i]的差,即传感器的相对值rat[i] = (sense[i] - Sw[i])/(float)(Sb[i]-Sw[i]);这样就把7路传感器的返回值处理为7个相对值,再与一个总结出的相对值阀值做比较即可判断出每个传感器的状态值。

2.3 黑线定位(PID输入)

为了保证控制精度,黑线的定位必须有足够的精度。

这里采用相邻比例法,即用两个相邻传感器相对值的比例表示黑线到两相邻传感器距离值的比例方法,具体流程为:

① 当黑线在两个传感器之间(相邻的两个rat[i]>SPOT)时,用两传感器相对值的比例表示黑线距离两传感器的距离值的比例;

② 当黑线在边缘时(rat[0]

2.4 PID算法及PID输出适配器

我们的程序选择了成熟的PID控制,用黑线位置值黑中心位置值(3.0)的差作为PID输入,用PID输出控制两轮驱动电机的PWM差值,实现小车的循迹跟随。

如下所示:

PID输出适配器,即实现从PID输出到两电机PWM值的转换的一个配接器。示意图及PID输出到两电机PWM输出关系图如下(负值表示反向):

3 实验结果

根据硬件设计方案及相关算法设计,我们对智能小车进行了多次实验

采用了三种定位方法进行测试:

1) 利用以最大的rat[i]为中心的三个相邻传感器的相对值rat[i-1], rat[i], rat[i+1]带入二次函数求对称轴的方法;

2) 利用以最大的rat[i]为中心的三个相邻传感器的相对值rat[i-1], rat[i], rat[i+1], 用(rat[i]-rat[i-1] ) : (rat[i]-rat[i+1]) 近似表示黑线偏离传感器i的比例;

3) 利用7个传感器相对值与编号的加权平均值表示位置;

实验表明几种方法都能解决得到相对连续的位置值,但是都存在问题,结果存在一定的跳跃性。同时针对黑白交界位置不稳定的问题,将黑线定位改为由相邻两个传感器的相对值计算,引入采样状态,只有一或两个检测到黑是,状态记为SS_NORM;发现一次又多个检测到黑线时,状态记录为SS_HORI,并判断如果之前不为SS_HORI,就算作黑线。这种方法能够得到相对连续、稳定的位置值,解决了位置值的跳跃问题。小车的稳定性得到很大的提升,速度自然也就得到了提高。在各类比赛场地的适应中都未出现漂移和偏离轨道的现象。

4 总结

循迹智能小车的设计,精度和稳定性都是决定小车最终成绩的重要因素。该文详细介绍了硬件设计和控制算法设计,以及在实验的调试过程。在黑线定位方法调整为对相邻两个传感器的相对值计算之后,小车的灵敏度和准确性得到了极大的提高,同时PID算法的加入,小车的稳定性也得到了提高。

参考文献:

[1] 何用辉.复杂场地环境下机器人光电循迹系统研究与设计[J].重庆理工大学学报:自然科学,2012(10):46-50.

[2] 朱涛.基于STC89C52单片机的智能循迹小车设计[J].电脑知识与技术,2011(31):7751-7753,7758.

[3] 高月华.基于红外光电传感器的智能车自动循迹系统的设计[J].光电技术应用,2009(2):1-5.

[4] 何立民.基于HCS12的小车智能控制系统设计[J].单片机与嵌入式系统应用,2007(3):51-53,57.

[5] 李维军,韩小刚,李晋.基于单片机用软件实现直流电机PWM调速系统[J].机电一体化,2004,10(5):49-51.

[6] 郭天祥.51单片机C语言教程[M].北京:电子工业出版社,2011.

[7] 扬兴友,朱宏辉.单片微型计算机原理及接口技术[M].北京:中国水利水电出版社,2002.

[8] 王秋爽,曾兆龙.单片机开发基础与经典设计实例[M].北京:机械工业出版社,2008.

猜你喜欢

PID算法控制
基于LabVIEW的旋转倒立摆系统设计
基于STM32的风力摆控制系统
社会转型期行政权控制的路径探索
浅析应收账款的产生原因和对策
会计预算控制现状及方法
浅谈高层建筑沉降监测关键环节控制
保险公司财务风险管理及控制研究
风力摆控制系统
基于K60的智能循迹小车系统实现
基于嵌入式系统的智能水循环控制装置研究