基于16位单片机MC9S12DG128的智能车 控制系统设计与实现

时间:2009-12-09来源:网络

3 软件设计
本智能车控制系统的程序结构如图5所示。这是一个两层的分级控制系统。底层控制包括“转向控制系统”和“车速控制系统”,上层主控程序则可通过改变底层控制系统的设定值、控制参数和约束条件,来对整个控制系统进行调度。设计这种分层结构的控制系统是参照了集散控制系统DCS的结构特点,程序各部分功能明确、结构清晰,便于调试和维护。为了调试方便,同时在主控程序中添加了基于无线信道的MODBUS通讯协议,因而对智能车行驶参数的监视和调整提供了很大的便利。

本系统软件所实现的功能主要是初始化、数据采集和滤波处理、道路识别、电机控制和舵机控制等。其中初始化主要是设置系统默认参数。其次是数据采集及滤波处理。为了尽量减少引入的纯滞后时间,本文提出了一种独具创新性的视频信号采集方法。即用MC9S12DG128单片机提供的SPI口直接读取经过二值化处理的视频信号。由于大赛规则中指定了赛道上黑色引导线的宽度为2.5厘米,故摄像头中采集到的引导线宽度在正常情况下也应当落在一定范围内。设计时可以用实验的方法测得引导线对应的像素宽度,然后在滤波程序中对采集到的引导线线宽进行控制,如果超出正常范围即认为是无效数据。
实验证明,这种方法可以有效地滤除干扰。智能车分层控制系统的核心是赛道的识别。实际测试发现,由于CMOS摄像头的可视范围比较小而且视野范围呈梯形,且在快速运动中经常发生赛道部分可能全部脱离视野范围的情况,给赛道识别带来很大的困难,因此,完整赛道识别模式几乎是不可能的。为了简化问题,本方案只识别赛道中的直线段,并根据直线段的数量和长度将赛道分割成不同的区域,然后在一个区域中对控制参数进行优化。
至于电机控制。本系统是用单片机通过接收旋转编码器来检测智能车后轮转动所产生的脉冲数,然后采用位置式PID控制算法的递推形式对直流电机的转速进行快速准确地控制。位置式PID控制算法的递推形式如下:
△u(k)=Kp[e(k)-e(k-1)]+Kixe(k)+Kd[e(k)-2e(k-1)+e(k-2)],u(k)=u(k-1)+△u(k)
式中:u(k)为k时刻控制器的输出;e(k)为k时刻的偏差;Kp、Ki、Kd分别为位置式PID控制算法的比例系数、积分常数和微分常数。舵机控制也是用单片机通过CMOS摄像头来检测路径信息,然后采用不完全微分PD控制算法来控制舵机的转角,从而实现路径跟踪。


4 结束语
本文介绍了一种智能车控制系统的设计与实现方法。通过大量实验测试证明,该智能车能快速平稳地在制作的赛道上跟踪黑色引导线并行驶,而且寻迹效果良好,控制响应速度快,动态性能良好,稳态误差小,系统的稳定性和抗干扰能力强。用本设计制作的智能车在2008年举办的全国大学生“飞思卡尔杯”智能汽车竞赛中取得了华北赛区二等奖,充分证明了该设计方案的有效性和稳定性。

1 2 3

关键词: 电源 传感器 控制 单片机 MC9S12DG128 基于

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版