基于光电传感器的智能汽车系统的跟踪控制算法

更新时间:2024-01-21 18:23:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

2009年第四届国际会议计算机科学与教育的报告

基于光电传感器的智能汽车系统的跟踪控制算法

作者:郝先伟 厦门大学自动化系 厦门,中国

孙鸿飞 厦门大学自动化系 厦门,中国

摘要—本文对目标识别和轨迹技术进行了分析。在光电传感器的基础上,人们提出了跟

踪控制算法。该算法利用了地点的误差和路线的信号作为输入的参数,来规范舵机输出角。这种智能车系统包括直线的轨迹控制算法,弯曲的轨迹控制算法和S型根据不同特征的轨迹式的轨迹控制算法。实验表明,利用该算法,智能车可以沿着直线轨迹顺利地移动,弯曲的轨迹和S 型轨迹的准确性令人感到满意。 索引术语—光电传感器,黑色轨迹,智能车 1.导言

一个智能车系统是由电源模块,传感器模块,直流(DC)驱动电机模块,路径识别模块,通讯和调试模块和单片机模块组成[4].。为了使智能车以合理的速度沿着轨道移动,路径的信息检测,直流伺服电机控制和驱动电机控制必须连接在一个单片机上。如果传感器的数据是不正确地采集和识别,并且转向伺服电机控制有一个错误的操作,智能车将严重地摇动或者甚至偏离跑道。如果直流驱动电机控制是无效的,它也可能导致智能车在直线运行时速度较慢或者在弯道处速度较快。从图1,我们可以看到的智能车的运行系统

图1. 智能车的总控制程序

对于一个智能车来说,跟踪控制就是意味着设计一个算法来识别黑色条状的标示线以至于智能车可以沿着规定的轨迹顺利移动。对于智能车的跟踪控制算法已经得到了很多的关注。有些方法已经在一些参考文献中得到采用,例如,电荷耦合器件(CCD)图像处理,模糊控制和视觉模糊控制方法[1,2,3]。CCD图像处理方法的优点是像素密集和高精度。它的缺点是信号的采集和数据处理周期长。CCD图像处理方法容易受到周围环境的光线干扰。视觉模糊控制方法的优点是控制规则的自由,对象明确的模型有完全的独立性,适应性强和较强的鲁棒性[3]。其缺点是精度低,适应能力不足和高频振荡。在本文中,我们采用光电传感器来检测智能车参考轨迹信息的跟踪。为了实现智能车能够又好又平稳地沿着参考轨迹运行,我们提出了一个解决方案,该方案是针对智能车主功能控制系统的,该系

统包括黑线的信息的识别,舵机角度的控制以及驱动电机调速的控制。在整个智能汽车系统中,作为智能车的眼睛,光电传感器必须找准路径信息,使智能车系统运行稳定。跟踪控制策略包括直线算法,弯曲的线算法,S型线算法和误差处理机制算法分别。这种跟踪算法具有以下优点:对离散信号采集点少,对外界光照的抗干扰的能力强,反应时间短,成本低。仿真结果表明,如果光电传感器的布局安排适当的话,跟踪控制算法与那些带有CCD的智能车具有相同的效果。 二.跟踪控制算法的实现 1.光电传感器布局

光电传感器是由一系列的光发射和光接受二极管组成。一条黑色轨迹的跑道。黑色轨迹上的光照强度与白色轨迹上的光照强度的反应是不同的。我们提出了一个基于上述原则为基础的共同的方法,该方法是离散识别算法。二极管的电压值将通过I / O端口被发送到微控制器[5?6]。中央处理器根据输入端口电压来决定传感器是否是在标记线的顶部。智能车系统能检测出那些传感器在黑色轨道顶部之上。目前,智能车系统能够确定智能车的相对位置和路径信息。

光电传感器的数量和间隔的布局都与控制算法密切相关。为了预测更远的距离,实现更高的效率,我们采用的解决方案如图2所示的类型1。这种类型使用10个光电传感器,安排光电传感器的间距是不平等的。这种非线性的形式有优越性和科学性。黑点代表光电传感器的安装位置,是对称分布在两侧的。相邻两个光电传感器之间的距离设置分别为22,16.5,16.5,16.5,10,16.5,16.5,16.5和22,单位为毫米。该电路板是通过螺丝固定在U型支架上的。整个光电传感器是固定在智能车前面的。

图2. 光电传感器的布局

由于电路板在车子上不能扩展的太远,为了达到更好的效果我们可以调整电路板的倾斜度,如图3所示。最终智能车系统将有一个良好的前瞻性的作用[4]。

图3. 光电传感器检测与斜坡路径

2. 系统稳定运行的算法

跟踪控制算法常用于调节电动机的速度和舵机的角度。当3号和6号之间的光电传感器总是低电平有效的时候,可以得知,光电传感器检测到直轨迹。这时,智能车将全速运行。在这种情况下,智能车可以达到最大速度。当0号和3号或者6号和9号之间的光电传感器总是低电平有效的时候,可以得知,光电传感器检测到S型或弯曲型的轨迹。在这种情况下,智能车应当提前减速来左转或者右转。这时智能车的速度不应太快,以避免冲出轨道。我们应当采取限速策略,来解决这个问题..当光电传感器的牵引距离是22毫米的时候,最大速度为3米/秒。当光电传感器的牵引距离是16.5毫米的时候,最大速度为3.3米/秒。

图4是系统稳定运行的流程图。

智能车的位置是由光电传感器的反馈值来决定的。光电传感器将检测到的黑线的模拟信号值转化为数字信号值。这些值是在0和255之间的。然后,智能车系统作出判断,决定哪个传感器的值小于80。值较小的表明,该传感器检测到的是黑线的位置。然后它的标志位用C + +程序被设置成0。而且根据标志位CPU来计算坐标。智能车系统将发出相应的PWM波形给舵机并且通过坐标给智能车一个需要的角度。例如,如果0,1,2,7,8,9号传感器检测黑线,我们可以得出结论,智能车将偏离直线轨迹。当智能车沿着弯曲的轨迹前进的时候,智能车系统将让智能车提前减速并给予必要的速度和角度。当4,5号传感器检测黑线的时候,可以得知智能车是沿直线轨迹运动。因此,智能车将加速运行。

图4. 跟踪控制算法流程图

3. 智能车跟踪控制算法

1)直轨迹控制算法:直线运行对智能车来说是一个基本和重要的要求。在这种情况下,智能车能达到最大速度和最大加速度。最大速度大约是9m/s-10m/s或更快。如图5所描述的那样可以实现直线算法。

智能车系统是根据光电传感器检测路径信息和调用相应的程序去控制电机的速度和转向角度,来决定直线控制算法的。

2)弯曲型轨迹和S型轨迹的控制算法:当智能车系统检测到弯曲轨迹的时候,智能车在该方式下是以便捷的方式运行的。换句话说,智能车是沿着轨道内侧运行而不是跟着轨道运行。图6表明,为了让智能车提前拐弯,当光电传感器3号发现黑线时,智能车系统可能

将标志位S设成1并且2号标志位的S设成0。

图5. 直线轨迹控制策略

图6. 黑线和光电传感器的位置

当中心点是偏斜时,智能车将出现跑偏现象。智能车系统为智能车在弯曲轨迹中离轨道内部运行奠定了基础。在智能车系统记录了第一圈信息之后,当智能车跑第二圈的时候,它可以直接辨别出下一个弯道是左转还是右转,然后,他可以通过半径小的地方穿过弯曲轨迹,来减少距离和节省时间。图7是弯曲轨迹控制策略。

图7. 弯曲轨迹控制策略

当智能车正沿着S型轨迹运行时,如果不能有效地控制他的速度,它有可能冲出跑道。图8和图9显示了S型控制策略。

智能车系统记录了AD模块中的数字信号的值并且与数255进行比较,如果右侧传感器的值小于255,设置A1=1;如果中间传感器的值小于255,设置A2=1;如果左侧传感器的值小于255,设置A3=1。如果A1,A2和A3都是1,可以得知传感器检测到的是S型轨迹。 3)可能的情况及其相应的算法:由于智能车是后轮驱动,如果智能车加速穿过一条弯曲轨迹时,它有可能出现过度转向的现象。智能车系统需要精确控制舵机。如果10个光电传感器都无法检测到黑色轨迹,这意味着智能车冲出跑道。在这种情况下,智能车系统应进行如下图10中的控制策略。

图8. 判断跑道是弯曲型还是S型的子程序

如果10个光电传感器都无法检测到黑色轨迹,智能车系统能通过中断模式确定黑色轨迹的位置。然后,智能车系统确定是否智能车出跑道。如果是,智能车系统工作在误差处理机制下。如果不是,智能车系统继续操作跟踪控制算法。误差处理机制是智能车系统从绘制表中度最新的历史数据并将其发送给中央处理单元。然后CPU确定最后一个检测到黑线的传感器并且控制舵机,以至于智能车可以回转。 4. PID控制系统的智能汽车

智能车系统根据PID算法使发动机的实际速度接近给定的速度[5]。在μC/ OS - II的系统中,数字PID控制算法分为立场式控制算法和渐进式控制算法。为了减少计算量,并得到一个稳定的结果,舵机控制将采取渐进式控制算法。公式是(1)如下。

?U(K)?Kp(En?En?1)?KiEn?Kd(En?2En?1?En?2)

(1)

由公式1,我们可以看到,增量 与误差 ,后一个误差 ,最后误差 有关系。因此,如果

CPU每时每刻都知道误差 的值,那么它就可以进行PID算法,输出舵机控制变量并且有效地控制转向角。图11是计算流程。

图9. S型轨迹目标速度的流程图

图10. 中断程序确定是否智能车跑出轨道

图11. 电机速度控制模块

智能车系统通过坐标法能很容易地控制转向角。例如,当0号传感器检测到了黑色轨迹时,智能车系统将相应的坐标设置为数-17。旁边的传感器是远离中心线的,有一个更大的坐标数字对应着传感器。表1显示,每一个光电传感器具有一个特定的坐标数字。

表一 与光电传感器相匹配的坐标

整个智能车系统有三个任务组成,该三个任务在μC / OS - II系统中[8]。它们分别是光电传感器的路径检测,速度检测和控制。控制任务是由PID子程序和P子程序以及测绘表还有路径识别子程序组成。我们必须根据它们的功能优先分配每个任务。由于光电传感器是智能车的眼睛,它需要有一个强有力的实时性。最高优先级是设置给AD光电传感器路径检测任务的。第二个优先级是设置给控制

任务的。最后,最低优先级设置给速度检测任务。表2是对每个任务的优先分配表。

表二. 任务优先级分配

智能车系统根据任务1确定路径信息。然后, CPU给任务2发送路径信息与此同时任务2给舵机和电机发送相应的PWM脉冲。图12是工作流程。

我们在CodeWarrior IDE软件中编译C + +程序[7]。下面的代码是主要的程序代码。 PID结构的定义: struct PID {

int Proportion; // Proportional Const int Integral; // Integral Const

int Derivative; // Derivative Const int LastError; // Error[-1] int PrevError; // Error[-2] int Outlimit;// Output limiter int Output; } speed1;

PID的计算:

double PIDCalc( PID *pp, double NextPoint ,double A,double Pup, double Pdown); 速度结构的初始化:

void init_pid(struct PID *pid,int p_gain,int i_gain,int d_gain, int le,int pe,int outlimit, int ot); 计算PWM占空比:

PWM=PIDCalc(&speed1,SetPoint,Speed); *MotorPWM =PWM;

图12.每个任务在μC / OS - II系统中的工作流程图

三.实验结果

通过仿真可以在如图13中那样看到结果,我们观察到通过使用改进后的算法智能车可以满足稳定性和更快的速度来跟踪规定的轨迹。

图13 智能车在仿真环境下的稳定运行

四.结论

在本文中,跟踪控制算法是基于光电传感器的基础上提出的。智能车能沿着规定的轨迹顺利地移动。仿真结果表明,跟踪控制算法使智能汽车更灵活,更稳定。然而,智能车系统仍然需要改进。例如,如何使智能汽车在更复杂的环境下顺利地运行还有如何使电机的速度更有效。我们将在以后来解决这些问题。

参考文献

[1] 郑监利,黄利嘉,葛鹏飞,刘向飞,―基于CCD自动跟踪的智能车‖。学报东华大学学报(自然科学),34卷,第6期,2008年12月,pp.728 – 731

[2] 贾用―基于模糊控制算法合成的智能车的转向控制‖。电脑知识与科技,第4卷第7期,2008年12月,pp.1877 – 1878 1899

[3] 刘进,齐晓辉,李勇科,―基于视觉‖自动测量和控制的智能车模糊PID控制算法,O.I。自动化,2008卷。 27日,10号,第67-69 68,69

[4] 卓青,黄开声和邵贝贝。学做智能车挑战―飞思卡尔‖杯。北京航空航天大学和宇航出版社,2007。

[5] 邵贝贝。嵌入式单片机的在线动态教学 清华大学出版社,北京2004年。

[6] 郑寇根,唐杰,和赫同能,嵌入式系统 - 设计和应用程序使用68HC12和HCS12,电子工业出版社,北京,2006。

[7] Stephen Prata 美国,C + +标准入门书,邮电出版社,2002。

[8] 陈师直,uC/OS-Ⅱ的内核分析,移植和驱动程序开发。邮电出版社,2007年2009年第四届国际会议计算机科学与教育学报

本文来源:https://www.bwwdw.com/article/rhro.html

Top