《关于直立平衡和智能循迹的小车控制系统结构设计》由会员分享,可在线阅读,更多相关《关于直立平衡和智能循迹的小车控制系统结构设计(35页珍藏版)》请在金锄头文库上搜索。
1、关于直立平衡和智能循迹的小车控制系统结构设计第一章 引言1.1 智能车的发展历史智能车的研究始于20世纪50年代初美国 Barrett Electric 公司开发出的世界上第一台自动引导车辆系统(Automated Guided Vehicle System,AGVS)。1974年,瑞典的Volvo Kalmar轿车装配工厂与Schiinder-Digitron公司合作,研制出一种可装载轿车车体的AGVS,并由多台该种AGVS组成了汽车装配线,从而取消了传统应用的拖车及叉车等运输工具。20世纪80年代,伴随着与机器人技术密集相关的计算机、电子通信技术的飞速发展,国外掀起智能机器人研究热潮,其中
2、各种具有广泛应用前景和军用价值的移动式机器人受到西方各国的普遍关注。 全国大学生智能汽车竞赛是在统一汽车模型平台上,使用飞思卡尔半导体公司的8位、16位微控制器作为核心控制模块,通过增加道路传感器、设计电机驱动电路、编写相应软件以及装配模型车,制作一个能够自主识别道路的模型汽车,按照规定路线行进,以完成时间最短者为优胜。该竞赛涵盖了控制、模式识别、传感技术、电子、电气、计算机、机械等多个学科交叉的大学生课外科技创意性比赛。 1.2 智能车竞赛内容和主要研究 全国大学生智能汽车竞赛已经成功举办了七届,比赛规模不断扩大、比赛成绩不断提高。该竞赛涵盖了控制、模式识别、传感技术、电子、电气、计算机、机
3、械等多个学科交叉的大学生课外科技创意性比赛。通过比赛培养大学生的综合知识运用能力、基本工程实践能力和创新意识,激发大学生从事科学研究与探索的兴趣和潜能,倡导理论联系实际、求真务实的学风和团队协作的人文精神。赛车采用飞思卡尔32位微控制器MK60作为核心控制单元,由学生自主构思控制方案及系统设计,包括传感器信号采集处理、控制算法及执行、动力电机驱动、直立转向控制等,完成智能车工程制作及调试。为完成本系统,主要做得内容分为以下几部分:(1)对车模机械部分进行详细的分析和调整; (2)分析控制电路各模块的要求,计算出各模块器件的参数,设计完成 硬件控制电路; (3)通过CCD传感器采集赛道信息; (
4、4)对数据进行分析,设计控制算法并编写控制程序。 第一章 总体方案设计 赛车的性能主要由机械结构、硬件和软件三部分决定。机械结构是赛车能够行驶的根本,赛车有了一定的机械结构,再加上相应的硬件和软件,就构成了一个完整的系统。 2.1 机械方面的总体设计 智能车的机械调整作为最基础的硬件其重要性是首位的,由于本届的车模只用后轮保持直立行走,车模没有舵机控制,所以机械结构比较简单,可以改动的地方不多,以往有关于调整车模的经验对于今年的比赛来说也是至关重要的,所以我们首先仔细阅读了往年的技术报告作为参考,我们车模的机械调整主要分为:编码器的安装;CCD支架的安装;CCD位置的调整,主控板驱动电路板的安
5、装固定;加速度陀螺仪板的安装调整。2.2 硬件总体设计 1)主控使用飞思卡尔公司的144引脚的Mk60芯片,因为其引脚IO多,可以控制的外围较多的外围设备。系统控制结构图如图2.1所示。图2.1 系统控制结构图2)电源模块,通过7.2伏的总电源根据不同的模块采用不同的稳压方案,用到了线性稳压,由于7.2V较低我们采用低压差线性稳压。 单片机3.3V供电用线性稳压;CCD采用5V供电,采用低压差线性稳压; 3)电机驱动,由于电机电流较大,工作电流3-5A,所以电机驱动模块采用BTS7970和H桥配合4)输入模块采用按键调节 5)通过CCD采集赛道上128个像素点,对于不同点的值进行处理,可以检测
6、赛道的情况 6)通过三轴加速度和陀螺仪对角度实时采集处理,使小车保持直立以及加减速此外还有码盘等测速器件。2.3 软件总体设计 软件控制分为直立控制、速度控制和转向控制。其中直立闭环控制如图2.2所示,速度闭环控制如图2.3所示,转向闭环如图2.4所示。图2.2 角度控制 图2.3 速度控制 图2.4 转向控制软件除了三个闭环还包括各种控制策略。策略应用简单的根据寻线来改变速度值,从而良好的解决十字交叉、起跑线、障碍等问题,保证赛车的全局稳定运行。 第三章 赛车车体机械结构设计3.1 编码器的安装 作为反馈的提供者,编码器安装的精度直接影响到测速的准确和对速度控制的准确度。今年的车模所留下的安
7、装编码器的空间有限,所以对编码器的选型提出了更高的要求。最终我们选择了龙邱产的光电编码盘100p/r的增量型编码器,此光电编码器比一般的编码器灵敏度精确度要高,但是由于没有齿轮传动部分,所以不便于安装,鉴于以上情况,我们将螺丝柱粘在电机齿轮上,在螺丝柱上固定编码盘,然后在车架上固定红外计数器,来记录码盘转速。编码器的安装如图3.1所示。 图3.1 编码器的安装3.2 CCD支架的安装 在测试CCD时,发现CCD视角较小,最佳可视距离较大,但车模的高度不够高,为了让CCD扫描视线和赛道夹角尽量的大点,使CCD处于最佳采集位置,给车模加装了碳纤竿,加高了CCD,效果比较理想。CCD安装如图3.2所
8、示。 图3.2 CCD的安装3.3 主控驱动电路板的安装 固定由于车底盘空间较小,而且空间比较复杂,如果想完全放到底盘上难度较大,所以将电机主控电路和驱动电路分开放置,便于合理利用小车空间安装。将其放到了电机的上面。虽然提高了重心但经过再三观察,由于电路板太大,再加上降低重心,只能将其放到电机上方,不过接口等方便明了,提高了我们的调试效率。主控驱动电路的PCB如图3.3所示。图3.3 主控驱动电路的PCB图3.4 加速度陀螺仪板的安装加速度陀螺仪主要用于检测小车倾角,放置的位置对于所测数据有很大的影响,所以放置时要将其放置水平。放置位置如图3.4所示。图3.4 陀螺仪板的安装第四章 赛车硬件系
9、统设计 4.1 核心板的设计 32位Kinetis系列列单片机MK60是硬件系统的核心部分,用于赛车的整体控制,包括信息的采集处理和输出,其最小系统如图4.1所示。图4.1 MK60最小系统4.2 电源模块的设计系统的正常工作要有稳定可靠的电源保障。系统中需要的电压值主要有:7V,5V,3.3三种。7V电压主要为电池接入口处,一路为直接为电机驱动供电,另一路经过两片LM2940芯片分别产生两个5V电压值。5V电压有两路,其中一路为光电码盘供电,另一路为1117供电,为主控、CCD、三轴加速度陀螺仪提供3.3V电压,。这种两路5V供电的设计,可以减小直流电机开启瞬间电压变化影响,避免了单片机因电
10、压值减小引起的复位及CCD接受电压变化。电源电路如图4.2所示。 图4.2 电源电路4.3 电机驱动模块的设计电机驱动模块采用BTS7970和H桥配合:74HC244驱动MOS管,MOS管驱动电机,这样不但满足电机驱动需求,而且驱动散热好,避免了温漂带来的影响。电机驱动通过IN1和IN2引脚输入PWM波形,以此调节驱动OUT1,OUT2引脚输出电压,调节电机转动速度,以及正反转和拐弯,达到不同的控制效果。电机驱动板如图4.3所示。图4.3 电机驱动板4.4 输入模块的设计 输入采用按键,加防抖电容,编程简单,通过给按键设置不同的功能,用于设置不同的参数,以此来更改智能车行车模式,适应各种情况。
11、 4.5 光电编码器的安装光电编码器,反馈当前速度,使整个系统形成一个闭环系统。我们应用的是龙邱的光电编码器,由于两路电机分别控制,所以要用两个光电编码器。该编码器电源电压为3.3V-5V,接线方式:红色电源线,黑色接地线,两根黄色为信号线。我们一组黄色线接单片机P66和P81口。另一组黄色信号线接P73和P88口捕捉信号。4.6 CCD的安装 CCD应采用官方规定的Texas Advanced Optoelectronic Solution公司的TSL1401系列的线性CCD。从龙邱和蓝宙购买的CCD由于都已经做成了成品,只需引出接口接到单片机就可以了,使用方便,拍摄的线阵还是比较清晰的。本
12、次我们用的CCD接口如图4.4所示。 图4.4 CCD接口电路第五章 系统软件设计 5.1 寻起跑线的软件设计 由于CCD可以识别黑色赛道线,通过对比可以得到黑色线的宽度,以及位置,由此情况来检测起跑线。当CCD检测到起跑线部分时,若按照正常的检测赛道算法此时得到的左右偏差近似相等且都很小。左右偏差相等能保证车在运行方向上不会出现抖动现象,然后抓住其都很小这一特征,再加上方向控制很小、CCD检测到左右各有特定的10个点为黑等条件。当同事满足时则认为赛车检测到了起跑线,运行起跑线处理程序。采用2个CCD传感器对赛道进行信息采集,上下CCD对赛道的可视距离不同,上边的CCD可视距离近,主要进行路况
13、检测和转向控制;下边的CCD可视距离远,主要进行赛道类型判断和加减速判断。当远距CCD检测到弯道或障碍时,可以及时提前减速,安全通过,当遇到直道时,可以加速通过。同时双CCD可以加大赛道起跑线的检测率。两个CCD采用不同的阈值和阈值算法,采集和处理同时进行互不影响。大大加强了整车的稳定运行。5.2 速度控制策略 5.2.1 速度PID控制速度控制采用增量式PID算法 ,所谓增量式PID是指数字控制器的输出只是控制量的增量uk. 。当执行机构需要的控制量是增量,而不是位置量的绝对数值时,可以使用增量式PID控制算法进行控制。其中5.2.2 速度改变策略 为了使得小车跑的平均速度最大,不能在全程使
14、用一个速度。在转弯的时候应当适当的减速,在直道的时候加速。怎么识别直道和弯道。我们可以根据CCD采集赛道黑白边界不同来识别,从而及时增减速度。 Speed_Curr = (Right_Speed + Left_Speed) / 2;速度值等于左轮和右轮的速度值得平均值。5.2.3 小车转向的算法实现 直立车的转向是通过两个轮子的转速差来实现的,故控制转向就是控制两个轮子的速度差。ZUO=ccd_move_aver_filt(DL_DB,Dist_Left ,DIRE_NC);YOU=ccd_move_aver_filt(DR_DB,Dist_Right,DIRE_NC);ee = (int)(
15、ZUO - YOU);偏差经过PD运算后得到转向控制的改变量。 Dire_Out = (ee*DIRE_P+gyro_hor*DIRE_D)*0.1; 5.3 障碍识别策略在小车行进过程中,CCD不断地进行检测,当CCD采集到的数据,全部是黑色部分时,就判断为障碍,从而及时减速,安全通过。5.4 坡度识别策略车在上坡的时候,CCD采集数据会出现盲区,数据采集不稳定,通过处理将其按直道行走,并通过三轴加速度计和陀螺仪检测其下坡,从而减速行驶。5.5 起跑线识别策略由于CCD的前瞻较大,通过CCD采集黑道的情况来作为起跑线的识别,当检测到中间有间断的黑道时起跑线如图所示,CCD会看到黑白间隔的以此进行判定。起跑线示意图如图5.1所示。 图5.1 起跑线示意图5.6 抗干扰性滤波算法对于C