自动控制综合设计——无人驾驶汽车计算机控制系统指导老师:学校:姓名:目录一设计的目的及意义二智能无人驾驶汽车计算机控制系统背景知识三系统的控制对象四系统总体方案及思路1系统总体结构2控制机构与执行机构3控制规律4系统各模块的主要功能5系统的开发平台6系统的主要特色五具体设计1系统的硬件设计2系统的软件设计六系统设计总结及心得体会一设计目的及意义随着社会的快速发展,汽车已经进入千家万户。汽车的普及造成了交通供需矛盾的日益严重,道路交通安全形势日趋恶化,造成交通事故频发,但专家往往在分析交通事故的时候,会更加侧重于人与道路的因素,而对车辆性能的提高并不十分关注。如果存在一种高性能的汽车,它可以自动发现前方障碍物,自动导航引路,甚至自动驾驶,那将会使道路安全性能得到极大提高与改善。本系统即为实现这样一种高性能汽车而设计。二智能无人驾驶汽车计算机控制系统背景知识智能无人驾驶汽车是一个集环境感知、规划决策、多等级辅助驾驶等功能于一体的综合系统,它集中运用了计算机、现代传感、信息融合、通讯、人工智能及自动控制等技术,是典型的高新技术综合体。目前对智能汽车的研究主要致力于提高汽车的安全性、舒适性,以及提供优良的人车交互界面。近年来,智能车辆已经成为世界车辆工程领域研究的热点和汽车工业增长的新动力,很多发达国家都将其纳入到各自重点发展的智能交通系统当中。通过对车辆智能化技术的研究与开发,可以提高车辆的控制与驾驶水平,保障车辆行驶的安全通畅、高效。对智能化的车辆控制系统的不断研究完善,相当于延伸扩展了驾驶员的控制、视觉和感官功能,能极大地促进道路交通的安全性。智能车辆的主要特点是以技术弥补人为因素的缺陷,使得即便在很复杂的道路情况下,也能自动地操纵和驾驶车辆绕开障碍物,沿着预定的道路轨迹行驶。三系统的控制对象(1)系统中心控制部件(单片机)可靠性高,抗干扰能力强,工作频率最高可达到25MHz,能保障系统的实时性。(2)系统在软硬件方面均应采用抗干扰技术,包括光电隔离技术、电磁兼容性分析、数字滤波技术等。(3)系统具有电源实时监控、欠压状态自动断电功能。(4)系统具有故障自诊断功能。(5)系统具有良好的人性化显示模块,可以将系统当前状态的重要参数(如智能车速度、电源电压)显示在LCD上。(6)系统中汽车驱动力为500N时,汽车将在5秒内达到10m/s的最大速度。四系统总体方案及思路1系统总体结构整个系统主要由车模、模型车控制系统及辅助开发系统构成。智能车系统的功能模块主要包括:控制核心模块、电源管理模块、路径识别模块、后轮电机驱动模块、转向舵机控制模块、速度检测模块、电池监控模块、小车故障诊断模块、LCD数据显示模块及调试辅助模块。每个模块都包括硬件和软件两部分。硬件为系统工作提供硬件实体,软件为系统提供各种算法。2控制机构与执行机构智能车主要通过自制小车来模拟执行机构,自制小车长为34.6cm,宽为24.5cm,重为1.2kg,采样周期为3ms,检测精度为4mm。控制机构中,主控制核心采用freescale16位单片机MC9S12DG128B。系统在CodeWarrior软件平台基础上设计完成,采用C语言和汇编语言混合编程,提供强大的辅助模块,包括电池检测模块、小车故障诊断模块、LCD数据显示模块以及调试辅助模块。在路径识别模块,系统利用了freescaleS12系列单片机提供的模糊推理机。3控制规律因为系统电机控制模块控制小车的运动状态,其在不同阶段特性参数变化很大,故采用数字PID控制器,该控制器技术成熟,结构简单,参数容易调整,不一定需要系统的确切数字模型。4系统各模块的主要功能控制核心模块:使用freescale16位单片机MC9S12DG128B,主要功能是完成采集信号的处理和控制信号的输出。电源管理模块:对电池进行电压调节,为各模块正常工作提供可靠的电压。路径识别模块:完成跑道信息的采集、预处理以及数据识别。后轮电机驱动模块:为电机提供可靠的驱动电路和控制算法。转向舵机控制模块:为舵机提供可靠的控制电路和控制算法。速度检测模块:为电机控制提供准确的速度反馈。电池监控模块:对电池电量进行实时监控,以便科学的利用,保护电池。小车故障诊断模块:对小车故障进行快速、准确的诊断。LCD数据显示模块:显示系统当前状态的重要参数。调试辅助模块:使得小车调试更加方便。5系统的开发平台系统软件开发平台采用CodeWarriorforS12,CodeWarrior是Metrowerks公司的,专门面向Freescale所有的MCU与DSP嵌入式应用开发的软件工具,CodeWarriorforS12是面向以HC12或S12为CPU的单片机嵌入式应用开发的软件包。包括集成开发环境IDE、处理器专家库、全芯片仿真、可视化参数显示工具、项目工程管理器、C交叉编译器、汇编器、链接器以及调试器。6系统的主要特色(1)系统中引用了模糊推理机模糊推理机是freescaleS12单片机一个重要的内部资源,利用模糊推理的三个步骤——模糊化、模糊逻辑推理、反模糊化,可以从路径传感信号,推理出精确的控制量。(2)系统中采用了数字滤波技术数字滤波技术可靠性高、稳定性好、具有很强的灵活性、可以根据不同的干扰情况,随时修改滤波程序和滤波方法。五具体设计1系统的硬件设计系统硬件系统框图如下:以下按各模块来分别设计本硬件电路:(1)电源管理模块电源管理模块的功能对电池进行电压调节,为各个模块正常工作提供可靠的工作电压。电源管理模块采用7.2V、2000mAh镍镉电池以及LM2576(5V),LM317(6V)稳压芯片构成。(2)微处理器微处理器是freescale公司推出的S12系列增强型的16位单片机MC9S12DG128,该系列单片机在汽车电子领域有着广泛的应用。(3)路径识别模块路径识别模块是智能车系统的关键模块之一,其设计的好坏直接影响到智能车控制系统的性能。目前能够用于智能车辆路径识别的传感器主要有光电传感器和CCD/CMOS传感器。本设计红外发射管和红外接收管以及达林顿管ULN2803A作为路径识别的传感器。采用双排传感器的策略,第一排传感器专门用于识别路径以及记忆路径的各种特征点,第二排传感器专门用于识别起始位置与十字交叉路口,由于不同传感器的功能不一样,因此它们的布置与安装位置也是不同。传感器的设计主要包括传感器布局,传感器间隔距离,径向探出距离,信号的采集几部分构成。(4)后轮驱动和速度检测模块智能车前进的动力是通过直流电机来驱动的,本设计的驱动直流电机的型号为RS—380SH,输出功率为0.9W—40W。在实际生活中,我们可能遇到弯道,为了能使模型车在过弯道的时候能快速地把速度减下来,电机驱动部分采用了两块MC33886组成的全桥式驱动电路,可以控制电机的反转以达到制动的目的。在闭环控制系统中,速度指令值通过微控制器变换到驱动器,驱动器再为电机提供能量。速度传感器再把测量的小车的速度量的实际值回馈给微控制器。以便微控制器进行控制。因此要对控制系统实行闭环控制,必须要有感应速度量的速度传感器。常用的有轴编码器,它主要用来测量旋转轴的位置和转速。(5)转向舵机模块凡是需要操作性动作时都可以用舵机来实现。本设计采用的舵机型号为HS—925(SANWA),尺寸为39.4*37.8*27.8,重量56kg,工作速度0.11sec/60(4.8V),0.07sec/60(6.0V),堵转力矩6.1kg。一般来讲,舵机主要由以下基本分组成:舵盘、减速齿轮组、位置反馈电位计、直流电机、控制电路板等。其中,直流马达提供了原始动力,带动减速齿轮组,产生高扭力的输出,齿轮组的变速比愈大,输出扭力也愈大,越能承受更大的重量,但转动的速度也愈低。在设计中,为了提高舵机的响应速度和工作力矩,采用6.0V工作电压。(6)电源电压检测模块智能车采用镍镉电池供电,由于镍镉电池具有记忆效应,对电池的不完全放电会认为降低电池的电容量,同时深度放电又会导致电池内部结构变化,造成对电池的永久损害,因此,在智能车控制系统中加入电源监控模块,当电池电压低于6V时及时自动报警,并切断电路,用来保护电池。本模块用到的主要器件为光电耦合芯片TLP521—2以及运算放大器LM324。(7)液晶显示模块为了完善智能车控制系统的功能,使其更加人性化,同时为了方便测试,在设计中,加入液晶显示模块,把智能车系统当前状态的一些重要参数显示出来。本模块用到的器件为LCD控制器HD44780。(8)辅助调试模块(红外遥控)在智能车调试阶段,小车经常出现启停的情况,例如高速行驶的小车有时因为异常情况冲出跑道,以这样的速度碰到周围的障碍物上,势必损坏小车的部件,这个时候就需要小车立刻停下来。为此,在智能车系统上添加红外遥控模块,当想启动小车或者想让小车停止时,只需要按下遥控器上的按键,就可以很方便实现小车的启停。本模块主要用红外接收器HS0038A和红外遥控器来进行遥控控制。(9)故障诊断模块小车的故障诊断模块原理很简单,就是利用单片机的SCIO口,通过RS—232接口与上位机连接起来,通过软件编程,小车不断的向上位机发送代码,通过故障代码就可以马上诊断出故障源。2系统的软件设计在智能车系统中,软件系统主要有以下几个部分:路径识别算法、后轮驱动电机控制算法、转向舵机控制算法、速度检测等。单片机系统需要接收路径识别电路的信号、车速传感器的信号,采用某种路径搜索算法进行巡线判断,进而控制转向伺服电机和直流驱动电机。控制策略的选择对于小车的行驶性能是非常重要的,控制小车的最终目的就是要使小车在平稳行驶的前提下,尽可能地以最快速度和最短的路线行驶。下面简要介绍各模块的软件算法。(1)后轮驱动电机控制算法电机控制算法的作用是接受指令速度值,通过运算向电机提供适当的驱动电压,尽快尽量平稳地使电机转速达到速度值,并维持这个速度值。换言之,一旦电机转速达到了指令速度值,即使遇到各种不利因素的干扰下,也应保持速度值不变。因此我们采用数字控制器的连续化设计技术PID控制算法来控制本部分电路。①数学模型的设定我们设定系统中汽车车轮的转动惯量可以忽略不计,并且认为汽车受到的摩擦阻力大小与汽车的运动速度成正比,摩擦阻力的方向与汽车运动方向相反。这样,我们就可以用以下模型来仿真之。根据牛顿运动定律,该系统的动态数学模型可表示为:mabvuyu我们对系统的参数进行设定,设汽车质量m=1000kg,比例系数b=50N*s/m,汽车驱动力u=500N。根据系统的设计要求,系统中汽车驱动力为500N时,汽车将在5秒内达到10m/s的最大速度。同时我们可以将系统的最大超调量设计为10%,静态误差设计为2%。②系统的开环阶跃函数表示为了得到系统的传递函数,我们进行拉普拉斯变换。假定系统的初始条件为零,则:()()()()()msVsbVsUsYsVs所以系统的传递函数为:()1()YsUsmsb运用MATLAB编程实现该传递函数模型:m=1000b=50u=500num=[1]den=[mb]sys=tf(num,den)step(u*sys)title('系统开环节跃响应曲线')从图上我们看出,系统不符合5秒的上升时间要求,故需要加上合适的控制器。③PID控制器的设计PID控制器的传递函数为:2()1()(1)()DpIIpDpDIKsKsKKUsDsKTsKKsEsTsss我们运用凑试法来确定PID的各参数。首先我们确定采样周期。采样周期的选择既不能过大也不能过小,过小会使采样频率较高,一方面会加重单片机的负担,另一方面两次采样值的偏差变化太小,数字控制器的输出值变化不大。同时采样周期也不能太大,太大会降低PID控制器的准确性,从而不能正常发挥PID控制器的功能。综上所述,我们首先选择T=0.2s来进行实验,如果效果不好,我们在对其进行微调。然后我们进行比例控制器的设计。比例控制器一般将加快系统的响应,在有静差的情况下有利于减小静差。我们首先设定Kp=100,则程序与仿真图为:nc=100;dc=1;dd=tf(n