第四章 软件算法部分
推荐给好友
打印
加入收藏
更新于2008-08-06 22:47:09

4.1 程序流程图
程序的流程图如图4.1。


图4.1

4.2PID算法工作原理
PID算法和控制器。PID算法,即比例——积分——微分三 模式算法,是早期就发展并得到广泛应用的一种控制法则。PID算法不一定要求很复杂的硬件。早期的PID控制器都用简单的模拟电路来实现。20世纪60年代初,由于数字技术的发展,PID 算法已能由计算机对多个控制回路进行分时采样和计算实现。发展到80年代,利用超大规模集成电路制成的控制器不但可以实现 PID控制,还可以实现其他的控制功能。
常规PID控制器系统原理框图如图4.2所示。


图4.2 PID控制器工作原理

系统主要由PID控制器和被控对象组成。PID控制器是一种线性控制器,它根据给定值r(t)与实际输出值y(t)构成控制偏差,将偏差按比例、积分和微分通过线性组合构成控制量,对被控对象进行控制,故称为PID控制器。其控制规律为:

公式1

式中:e(t) =r(t)-y(t),KP为比例系数、T1,为积分时间常数、TD为微分时间常数,它们是图中所示的三种校正环节对应的控制参数。

 设:P=KP 
         I = KP/ T1 
         D= KP/ TD
         PID是比例,积分,微分的缩写。

比例调节(P)作用:是按比例反应系统的偏差,系统一旦出现了偏差,比例调节立即产生调节作用用以减少偏差。比例作用大,可以加快调节,减少误差,但是过大的比例,使系统的稳定性下降,甚至造成系统的不稳定。

积分调节(I)作用:是使系统消除稳态误差,提高无差度。因为有误差,积分调节就进行,直至无差,积分调节停止,积分调节输出一常值。积分作用的强弱取决与积分时间常数Ti,Ti越小,积分作用就越强。反之Ti大则积分作用弱,加入积分调节可使系统稳定性下降,动态响应变慢。积分作用常与另两种调节规律结合,组成PI调节器或PID调节器。

微分调节(D)作用:微分作用反映系统偏差信号的变化率,具有预见性,能预见偏差变化的趋势,因此能产生超前的控制作用,在偏差还没有形成之前,已被微分调节作用消除。因此,可以改善系统的动态性能。在微分时间选择合适情况下,可以减少超调,减少调节时间。微分作用对噪声干扰有放大作用,因此过强的加微分调节,对系统抗干扰不利。此外,微分反应的是变化率,而当输入没有变化时,微分作用输出为零。微分作用不能单独使用,需要与另外两种调节规律相结合,组成PD或PID控制器。

考虑到在开车时,只关心将来的道路,所以,在本系统中,不采用I控制(积分控制),故将PID控制器简化成PD控制器。

4.3模糊算法工作原理
由于现实世界中某些事物的属性是很相近的,如果按照清晰的标准把它们分到不同的类别,可能会造成信息的丢失。例如:当“车载重量”低于100 时,认为是“轻”,而高于100低于200 时,则认为是“中”,那么当重量是临界值的时候,用模糊的方法更适合模糊理论是1965年由自动控制理论专家L.A.Zadeh首先提出的,他在论文《Fuzzy set》中用模糊集合(Fuzzy set)来描述模糊事物的概念。其基本思想是把经典集合中的绝对隶属关系模糊化。从特征函数方面讲就是:元素u对集合U的隶属程度可以取从0到1的任何一个数值,这一数值反映了元素u隶属于集合U的程度。综合评判是多重目标综合决策的一种特殊情形,主要用于模糊环境中,它考虑多种因素的影响,针对一定的目的对某些事物作出综合评价。模糊综合评判的过程包括:综合考虑各种属性,建立被评判对象的因素集;建立评判集,即评价的等级和评语;建立单因素评判,即对实际对象的因素集中的属性运用评判集进行评价;根据实际情况,赋予不同因素以不同的权重;根据权重和单因素评判结果得出综合评判的结果。模糊集定义:设U是论域,称映射ua: U->[0,1] u|->ua(u) 确定了U的一个模糊子集,简称模糊集,记为A。ua叫模糊集的隶属函数,ua(u)叫元素u隶属于A的程度,简称隶属度。上述定义表明,一个模糊集A完全由其隶属函数ua来刻画。ua的值越接近1,表明隶属于A的程度越高;ua的值越接近0,表明隶属于A的程度越低;当ua的值域ua(U)={0,1}时,ua便蜕化成一个cantor集合的特征函数,于是A便蜕化为一个cantor集合: A={u属于U|ua(u)=1} U中的模糊集的全体记为F(u),即:F(u)={A|A是U的模糊集}。

由于现场调试的时候,发现PID算法不能实时针对智能车偏移量给出最合适的角度,所以考虑采用模糊算法。通过建立模糊表,实时地根据偏移量来查表,并结合PID算法,做到很好的兼容,使智能车得到较好的进弯路线和进弯速度。

4.4 记忆算法
本次设计采用光电传感器与CCD各有利弊,为了弥补光电没有CCD探测距离远的缺陷,在智能车在第二圈的时候会调用recall()子程序,也就是记忆算法。在智能车行使的第一圈的时候,对道路的长度,曲率做记忆,第二圈在知道道路信息的情况下,能在直道上提速,进弯提前减速。

4.5 智能车控制算法的实现
本次设计采用12个传感器成一字型均匀地排列在智能车的前端, 光电传感器是通过把光强度的变化转换成电信号的变化来实现控制的。黑线吸收的光比白线多,所以,从黑线反射回来的光强度要比从白色区域反射回来的弱,接受管采用下拉电阻,所以传感器探测到黑线时的电压要比白线高的多。
 
我们在每次调试时都会对赛道进行采样,由于每一个管子的特性不同通过在接收管加可调电阻使电压输出一致,取出每组数据中的最大值和最小值,通过计算得到一个平均值,作为量化的标准。大于平均值就认定检测到黑线,反之就是白线 。

我们用一个16位的整数,来一次保存传感器采样的结果,1表示黑线,0表示白线。如:0000000000110000 来表示第5和第6个传感器检测到的是黑线,其余都是白线。

我们将得到的数据进行映射处理,譬如相邻2个为1表示中间量,这样偏移量的域值范围[-11,11]。另外考虑到过弯的时候会存在3个相邻的1,则这时候就取中间的1为基准。其他形式一律视为无效,保持上一个偏移量。

4.6 控制算法输出信号处理
我们对PID算法得出的转角进行了范围的限定[-40,40],当转角大于45时,轮胎和底盘,转向轴之间会卡死,导致智能车过弯速度慢甚至会停下来。

智能车的动力是通过给电机PWM波来驱动的,车的快慢和PWM波占空比基本成线形关系,具体的推算公式,由于系统的软件和硬件存在偏差,需要实际的调试得到。

为了使智能车能很好的适应直道和弯道的节奏,直道能保持很快的速度,弯道能很顺利地过去。设定Vmax,Vmin,当速度检测到小于Vmin时,就给出Vmax相应的占空比;当速度检测到大于Vmax时,就给出Vmin相应的占空比。这样智能车的速度一直控制在一个安全的范围内。

考虑到急弯的状态下,智能车的进弯速度会比较快,采用了刹车模式,具体实现方法是在直道上进行判断是否是一个很长的直道,是的话就在进弯一刹那采取刹车,详细流程图如图4.3

图4.3

 


上一章:控制系统与设计安装                                                   下一章:开发与调试




 
关于我们 | 诚邀加盟 | 客户服务 | 相关法律 | 网站地图 | 友情链接 | 服务信箱:service@eefocus.com
© 2006 与非门科技信息咨询(北京)有限公司 All Rights Reserved.