第十一章 软件系统与控制策略
推荐给好友
打印
加入收藏
更新于2008-08-04 10:25:28

        前面几章分别从硬件电路的设计和软件实现等方面阐述了各模块的功能以 及实现方法,那么对于小车这个系统而言,接下来最重要的就是如何将上述各模块整合在一起,高效合理地指挥小车快速前进了。本章将主要从S12单片机资源分配、赛道分析、舵机转向策略和电机闭环控制几个方面来说明整车的控制策略。

11.1 S12开发工具(环境)说明以及资源分配说明

        本次大赛统一使用MC9S12DG128B为主控制器,软件编译及调试平台如下: 

        (1)编译软件:Metrowerks,CodeWarrior4.5。 

        (2)调试工具:BDMforS12。 

        (3)调试系统:P42.4GHz,256RAM,WindowsXP。 

        MC9S12DG128B模块及端口使用如下: 

        (1)时钟模块产生实时中断。 

        (2)定时器模块 
        共使用了3个ECT中断,设置为输入捕捉模式。一个用于CMOS摄像头场中断信号检测,一个用于CMOS摄像头行中断信号检测,一个用于测速脉冲的检测。 
        (3)PWM模块 
        使用了3个通道。一个16位输出用于舵机控制,2个8位输出用于电动机双极性控制。 
        (4)ATD模块 
        使用了两个AD转换口,分辨率为8位,一个用于检测CMOS视频信号,一个用于检测MMA1260D的坡度信号。 
        (5)H端口、A端口、B口用于4*4键盘,LCD数据及控制端口。
        (6)串口模块 调试过程中用于向PC机传输数据。

11.2 软件系统流程图 
        小车的软件控制流程图,如图11.1所示。

11.3 赛道分析及优化 
        本次竞赛的赛道主要有包括以下几种情况,如表11.1所示。各种不同的赛道应有不同的速度以及方向控制策略。沿线走可以保证小车的行驶稳定性,但是这样并不是小车行驶的最优路径,没有优化的路径会使小车行驶的距离加大,复杂的弯道会严重影响小车的速度。 

11.4 舵机方向控制
        本系统采用中断的方式接受赛道信息并告知CPU黑线位置发生变化,为了保证小车有正确的转向并保证前行的稳定性,我们将采集到的黑线斜率分为三段,分别使用不同的转向系数来控制舵机。


        小车在行进中要不断的调整前轮的转向,在路径波动强度较低的时候,不能突然地改变方向太多,特别是高速的时候,这样会导致小车走蛇形线。为了避免在直道上走蛇形线,转弯控制中需要加上“柔性控制”。越是靠近小车的中心轴,角度改变的比例就越小。所以我们设置了三种转弯模式,其中舵机转向系数分别为21、33、37。 

 

11.5 速度闭环控制
11.5.1 方案论证


        ★ 方案一:PID控制 
        在控制领域中,PID算法是经典的闭环控制策略,其理论基础较为健全。基于反馈的控制的PID算法常包括三个部分:测量、比较和执行。即把测量到关心的变量与期望值相比较,然后用这个误差纠正调节控制系统的响应,如图11.2所示。

        其工作原理如下:

        以此算法为基础,很容易在CodeWarrior上,用C语言编写出控制算法。PID算法在控制的同时,结合加速度传感器传回去的速度,位置信息,将误差项也放到PID算法中进行消除。该方法的难点在于实验的调试,不通过大量的试验很难得到满意的比例,微分,积分三个参数,需要很长的调试周期。 
        ★ 方案二:采用Bang-Bang控制 
        电机在空载运行时,加减速特性较好,但是在负载运行时,响应特性较软,而控制周期相对于电机的响应特性较短,本设计可采用Bang-Bang控制方法来实现小车的速度闭环控制,相对于PID控制而言,该方法实现方便,效果良好。经过长时间调试比较,发现PID存在难以调试这个缺点,效果上与Bang-Bang控制方法相比没有特别大的优势,所以最终决定采用后者作为速度闭环控制的策略。

11.5.2 Bang-Bang速度控制 
        在每一个控制周期中,检测一次赛车的当前速度值。若速度值小于预定的速 度值,则将驱动电机PWM输入占空比设置为较大的值,比如90%;若速度值小于预定的速度值,则将驱动电机PWM输入设置为较低的值,比如40%。控制流程图如图11.3所示。


11.5.3 程序代码

11.6 赛道检测以及速度分配 
        要想取得较好的赛车速度成绩,一个非常重要的因素体现在对弯道,直道识别的前瞻距离上,有了较大的前瞻距离,进而实现安全过弯、快速通过直道,提高比赛成绩。比赛前期也曾做过光电传感器方案,但相比而言,摄像头有很大的优势:

        1)相对广光电传感器,可以获得更大的前瞻距离;

        2)不仅可以获得但行的黑线信息,还可以同时获得多行的黑线信息。根据图像采样模块的介绍,最终以8行信息作为弯道、直道的判断算法依据。在单行黑线边沿检测提取算法的基础上,我们可以根据8行的数据中每行黑线位置与10 行平均位置之相对位移,然后求8行相对位移之和(见公式 11.1)。最后根据该值的大小并且结合实际赛道实验数据,来确定弯道和直道之间的阀值大小,而且,随着弯道系数的增大,该位移之和也会相应增大。

        若xielv值越靠近20,说明前方道路越直,则可以用前文中所述的速度闭环将赛车控制在一个较高的速度。反之,xielv的值越偏离20,则应用速度闭环将赛车控制在较低的完全过弯速度。

 

第十章 坡度检测模块        第十二章 智能车的调试及人机交互模块

 




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