第十讲 9S12单片机在汽油发动机控制中的应用
监控程序下载方法 连接电路板电源和串口
监控程序下载方法 用codewarrior 4.6打开一个工程,并选择编译目标为TBDML.
监控程序下载方法 点”debug”按钮,打开调试界面.
监控程序下载方法 在 HC12 TBDML中选择load,并找到监控程序目录bin下的S12SerMon2r1.sx文件,点打开,监控程序则自动通过BDM下载.
建立监控程序目标的工程 在选择编译目标时加入HCS12 serial monitor
使用监控程序调试 选择编译目标时注意,其他和使用BDM一样.
监控程序模式下的存储器分配 P32 重新定位后 $0000-$03ff 1K寄存器空间 $0800-$0fff 2K EEPROM $2000-$3fff 8K RAM $4000-$7fff 16K固定FLASH $8000-$bfff 16K页窗 $c000-$ffff 16K固定FLASH
本讲主要内容 汽车结构 发动机及汽缸结构 汽车发动机工作状态切换 发动机的启动控制 发动机的怠速控制 发动机的加减速控制 发动机的停机控制
1、汽车结构
各系统介绍 排气系统(Exhaust system) 负责排除尾气 还包括消声器、氧传感器(排气歧管附近) ,三元催化器(将CO,HC,NOx转化成无害气体) ,EGR废气再循环系统。
各系统介绍 悬架系统(Support system) 发动机(Engine) 悬架是车架(或承载式车身)与车桥(或车轮)之间的一切传力连接装置的总称。一般由弹性元件、减震器和导向机构三部分组成。 发动机(Engine) 汽车所有能源的来源。一般汽车采用点燃式的汽油发动机,目前发动机有3-6缸,排量0.8-4升,汽缸排列分直列横置、V型排列、W型排列、水平对置、星型排列等。
各系统介绍 转向系统(Steering system) 传动系统(Power train) 主要负责转向,转向轴承和前轮相连,高档轿车还采用助力转向系统。 传动系统(Power train) 包括发动机(提供动力)、离合器(切断和结合动力)、变速箱(改变速比和扭矩和实现倒车)、传动轴(传递动力)、中央传动器(实现减速和差速)、半轴(传递动力)、驱动轮(实现行走)。
各系统介绍 电气系统(Electrical system) 冷却系统(Coolant system) 燃油系统(Fuel system) 包括供电(蓄电池)、输电(线束、电缆)、汽车电器(空调、头灯)等。 冷却系统(Coolant system) 包括冷却循环系统、冷却风扇、散热器等。 燃油系统(Fuel system) 包括燃油存储(油箱)、传导(燃油管、油泵)、喷射(喷油嘴)等。 制动系统(Brake system) 包括刹车系统和ABS系统等等。
2、发动机结构图 排气管 凸轮轴 进气阀 汽缸\活塞 节气门 排气阀 进气管 喷油嘴 火花塞 曲轴 发电机
汽缸结构
3、发动机状态切换 停机 启动 怠速 加减速
发动机状态 停机 启动 怠速 加减速 系统处于上电状态,但是发动机不工作。 发动机处于启动状态。 发动机处于稳定怠速的状态。 节气门动作,使发动机转速不断加速和减速。
4、启动状态 发动机启动分为冷启动和热启动 启动时的喷油脉冲都比较大,加浓的燃油有利于发动机从零速开始转动 启动时喷油脉冲宽度会逐渐减小
启动程序控制 if(AverageSpeed>StartSpeed && Mode==STOP) { LastMode=Mode; //保存状态 Mode=START; //更新状态为启动状态 DisableMap(); //禁止使用喷油表 CalculateStartInjectionWidth(AverageSpeed , WaterTemp); //计算启动喷油宽度 StartInjection(); //开始喷油 } 启动程序是这样工作的,首先判断转速条件和模式条件,当发动机处于停止模式并且转速由启动机带动到一定值时,ECU才认为发动机进入启动过程。开始启动后,程序会自动保存状态并更新当前状态,然后开始喷油。
启动程序控制 void StartControl(void) { if(!OilPumpWork) OilPumpWork=TRUE; OpenOilPump(); } AdjustStartIACV(WaterTemp); 在程序中,如果油泵没有打开,则打开油泵供油。程序会自动根据冷却水温度控制怠速控制阀的位置,它的开度是跟温度成反比的,温度低时,怠速阀开大以增加进入气缸的空气量,使启动顺利进行;反之则不需要大空气量,减小阀门的开度即可。良好的怠速阀控制程序可以减小启动发动机时的转速超调量,并使发动机尽快地进入怠速状态。这个程序在启动状态时循环执行。
5、怠速控制 怠速工况 怠速工况就是不踩油门时维持发动机正常运转时的发动机状态,怠速指发动机在此工况下的转速,单位为转/分钟(rpm)。 发动机运行在怠速工况时,可以在短时间内使汽车加速行驶而不用再重新启动发动机。汽车必须有怠速工况,才可以使用空调和助力转向系统等高级汽车电器。
怠速控制 发动机的怠速转速一般在700-1200rpm之间,怠速转速的高低与发动机的类型、缸数、冷却水温度和电器负载大小等因素有密切的关系。通常,低怠速转速意味着更低的燃油消耗,有利于提高汽车的经济性,但是过低的怠速转速影响发动机运行的稳定性。 怠速分为高怠速和低怠速,当汽车冷启动时,由于环境温度和自身的冷却水温度比较低,所以发动机必须运行在高怠速下进行暖机。
怠速控制阀 怠速控制阀是一个空气阀门,它可以通过增大或减小怠速空气道的截面积来改变进入发动机空气量的大小,从而控制发动机的怠速转速。怠速控制阀只能提供较少的空气量,使发动机运行在较低的转速之下。 怠速控制阀的主要部分是一个步进电机,通过对步进电机的控制,就可以改变怠速空气道的截面积,从而改变进入发动机空气量的大小以控制怠速
怠速控制阀 空气滤清器 节气门 怠速阀 旁通空气道 通往汽缸 空气流向
怠速阀的步进电机控制 步进电机只可以沿某个方向转动,以驱动阀的前进和后退,可以通过两个相位差±90度的脉冲序列来控制步进电机的动作。如果相差+90度,步进电机正转,相差-90度,步进电机则反转。步进电机的转动使怠速空气道截面积变化,从而改变进气量。
怠速转速的PID控制 比例、积分、微分控制简称PID控制。PID控制以其稳定性好,工作可靠,调整方便而工业控制的主要技术之一。在汽车电子领域,可以使用PID控制怠速转速,也就是使怠速转速以较小的误差稳定在期望的目标转速附近。仅仅使用PID控制难以把转速精确地保持在目标转速附近,必须同时配合其他控制方法配合,比如点火提前角的调整等等。
发动机转速的检测 发动机的转速值只有唯一一个来源,就是信号盘的齿轮信号。ECU通过检测曲轴位置传感器得到齿轮信号。信号盘和曲轴是同步转动的,得到了信号盘的齿轮信号,就得到了曲轴的转速,从而可以计算出发动机的转速。 对于齿轮信号的捕捉,是通过MC9S12系列单片机中的ECT模块完成的。首先要对ECT模块进行初始化,然后设置好中断服务程序和中断向量,通过中断服务程序对齿轮信号进行计数,得到计数值后,就可以计算出瞬时转速和平均转速。
ECT初始化 void ICOCInit(void) { DDRT = 0xfc; //设置PORTT的方向寄存器 TSCR2 = 0x04; //设置分频因子为16 MCCTL = 0x03; //设置减法计数器 DLYCT = 0x03; //控制延迟计数 ICSYS = 0x02; //启用保持器 TIOS = TIOS & 0xfe; //TC0设置为输入比较 TCTL4 = 0x02; //TC0下降沿触发 TIE = 0x01; //TC0中断允许 TSCR1= 0x90; //TEN=1,标志位快速清除 CFORC=0x00; //设置强制输出比较 }
中断服务程序 interrupt void IC0_ISR(void) { nIC0Counter = TC0; //获得当前IC0的计数值 nIC0 = nIC0Counter - nIC0LastCounter; //用当前计数值减上个齿计数值得到计数值差 nIC0LastCounter = nIC0Counter; //当前计数值作为上个齿计数值保存,下次使用 nStopCounter = 0; //有齿轮信号,曲轴停转计数值归零 nGearCounter++; //齿计数,可以得到上止点位置和当前齿号等信息 cCrankGearIndex++;//计数值数组序号自加,用于计算n个齿平均转速 if(cCrankGearIndex >= 20) cCrankGearIndex = 0; //在这里计算20齿平均转速,计数到20后归零 unCrankGearWidth[cCrankGearIndex] = nIC0; //存储计数差到数组以计算平均转速 /* 以下放置其他代码 */ } //原理就两个字---求差。和智能车的测速大同小异。
使用PID控制怠速控制阀 首先通过对于发动机转速的检测明确当前转速(一般使用平均转速)和怠速目标转速,然后通过PID公式计算出怠速控制阀的目标位置,再调用怠速电机运动函数IACVMove实现对怠速控制阀开度的控制。PID控制程序是周期性调用的,这个周期称作PID控制周期,最佳周期、三个参数kp、ki、kd的确定来源于大量的实验数据。
6、加减速控制 节气门是一个空气阀门,它控制着直接进入汽缸的空气量。 当驾驶员启动汽车并进入怠速后,如果需要汽车行驶,那么就要踩下油门让发动机输出更大的功率以带动汽车运动,当汽车达到一定的速度,驾驶员可以松开油门使汽车滑行,发动机则重新回到怠速状态。
加减速控制 发动机加减速的程序实现 对于缓、急加速的判断是通过节气门位置的变化率实现的,首先定义一个变量dThrottleAccGate为变化率的门限值,如果变化率大于此值即为急加速,反之则为缓加速。而缓、急加速采用了不同的控制策略。 对于缓加速而言,由于对气量要求并不很大,所以依然可以按照怠速脉谱查询喷油量,最多只需要进行喷油量的修正;而急加速则不然,如果不进行处理的话,发动机突然接受一个较大的空气量会因为油量未及时跟进而熄火。所以必须在检测到急加速状态的一开始,就对燃油进行加浓操作。
加减速控制 对于缓、急减速的判断也是类似的,只是控制策略有所不同。当缓减速时,控制策略与缓加速正好是相反的过程;当急减速时,由于节气门在很短的时间内就处于全关状态,在喷油量需要减少的同时,必须把怠速阀打开到一定的位置,以免发生缺气熄火现象。
停机控制 发动机的停机控制在发动机控制中也是很重要的一个环节,良好的停机控制,可以使发动机的启动更加顺畅。在停机控制中,必须关闭所有的汽车电器,并把怠速阀打开到一定的位置上,以提供下次启动时的气量或者减少启动时的行程。 发动机的停机检测必须非常可靠,绝对不能够在正常的行驶过程中进入到停机控制中,否则可能会发生交通事故。对于停机状态的检测,一般还是使用转速来判断,如果转速在一段短时间(毫秒级)内一直为0,则认为是停机了,从而进行停机控制
停机控制 熄火保护 正常停机