刘洋,张文彬,华伦,张云龙,帅石金
(清华大学汽车安全与节能国家重点实验室,北京 100084)
车载诊断系统(On-Board Diagnostics,OBD)是发动机管理系统(Engine Management System,EMS)的重要组成部分,其主要功能为监测发动机控制相关的电子元器件以及部件系统的各类故障,在发动机电子控制单元(Electronic Control Unit,ECU)中记录相应的故障代码,并通过外部的故障指示灯(Malfunction Indicator Lamp,MIL)对驾驶员进行提醒[1-2]。为进一步减少排放,根据《轻型汽车污染物排放限值及测量方法(中国第六阶段)》的要求,汽油车采用三效催化转化器(Three-Way Catalytic Converter,TWC)和汽油机颗粒捕集器(Gasoline Particulate Filter,GPF)集成后处理系统作为标准配置,其复杂程度对OBD开发工作提出了更高的要求,需要改进传统的单一阈值、单一工况诊断策略,引入更完善的诊断模型[3-5]。近年来,基于快速原型的开发模式在汽车控制系统上得到了广泛应用[6-8],通过将模型下载到实时硬件上运行,考察设计的ECU功能模块在嵌入式环境中的实际表现,完成逻辑验证、性能评估以及模型优化等工作。相比于传统的嵌入式开发流程,该方法在提高模型完整性和实用性的同时,减少了相应的开发周期和成本。
OBD系统的基本功能是监测部件的状态并诊断故障的类型。监测部件状态的基础是按照一定的频率采集相应的传感器信号。在后处理系统中, GPF前后的温度和压力传感器独立于原有的ECU线束额外安装,通过采集电压信号转换得到具体的物理量数值。GPF前后的温度传感器主要用来监测GPF工作过程中的温度变化,防止温度过高损坏堇青石载体,起到辅助诊断的作用;GPF前后压力传感器信号则作为诊断的主要输入量。对于已经安装在TWC上下游的氧传感器,信号不便于外部采集,必须设计相应的调制电路,通过与ECU通信获取。诊断故障类型主要通过实时诊断模型实现,模型以部件相关的模拟量作为输入,具体的故障模式作为输出。在明确故障类型后,还需要设计故障响应和消除的机制,使其反映在MIL上。
OBD系统的总体设计见图1。待测对象为TWC和GPF集成后处理系统,GPF前后温度传感器和前后压力传感器与实时控制器的I/O通道进行连接,发动机的工况信息和TWC前后氧传感器信号由CAN总线实现与实时控制器的通信。实时控制器内部运行编译完成的模型,将模型的输入与控制器采集的数据进行匹配和映射,模型实时地计算出诊断的结果并进行相应的决策。上位机与实时控制器进行数据交互,系统的所有变量和环节均通过用户界面进行实时监控,改变模型的标定参数能够观测不同的运行结果。
图1 OBD系统总体设计
OBD系统的硬件结构(见图2)分为下位机和上位机两个部分。下位机以PXI平台为基础,根据后处理OBD的测试要求定制相应的模块搭建而成。所用的PXI平台集成了最新的PCI Express开关和英特尔多核处理器,处理速度快且结构紧凑,有利于现场测试。选用PXIe-1078机箱,容纳板卡和控制器,并将其连接至提供定时和同步功能的高性能背板;选用PXIe-8821控制器运行PharLab实时操作系统,为各板卡提供驱动支持;选用PXIe-4353温度输入模块搭配TB-4353等温接线盒进行GPF前后温度信号采集;选用PXIe-6341多功能I/O模块搭配SCB-68A抗噪屏蔽I/O接线盒进行GPF前后压力信号采集;选用CAN OBD-II电缆连接NI PXI-8512与汽车的OBD接口实时获取ECU测量参数。上位机选用一台PC,运行Windows操作系统并安装VeriStand软件环境,通过TCP/IP协议与下位机实现连接,对实时端进行模型部署和数据传输。
图2 OBD系统硬件设计
OBD系统的软件设计主要分为算法开发和交互界面开发两部分,其中算法开发的主要任务是搭建故障诊断模型,涵盖了OBD系统的主要功能,是整个开发流程的核心环节。算法开发选择Matlab/Simulink作为主环境,通过Simulink代码生成工具将搭建完成的模型转化为C代码并编译成dll动态链接库文件,导入VeriStand中进行配置[9]。OBD系统的Simulink故障诊断模型(见图3)包含诊断条件判断、神经网络诊断和故障决策3个子模型。
图3 Simulink故障诊断模型
诊断条件判断模型是一个在ECU上电后就立刻被激活的前置模型,将实际的诊断工况与理想的诊断工况进行比较,判断在某个时刻是否激活后置的神经网络诊断模型。一般情况下,OBD诊断可以在较为稳定的工况下取得良好表现。以“GPF诊断条件判断”模型为例,它的输入是车速和进气量,输出为标志位CDN_DIAG_GPF,在车速和进气量同时满足要求时置为1,其他情况均置为0。在模型内部,进气量的设计条件为“大于150 kg/h”,判断过程容易实现;而车速的设计条件为“较为稳定”,即判断在当前诊断时刻前的一段时间内,车速是否接近匀速。由于Simulink库中常用的模块较难实现该判断逻辑,通过自定义的Matlab Function模块编写算法。首先在处理器中预留一块缓存区域,大小可以容纳5 s左右的车速数据,对每个模型运行周期进行数据存储并滚动覆盖旧数据,实现在每次进行诊断条件判断前读取前5 s内的所有车速;查询所有车速中的最大值和最小值,并作差比较,如果差值不超过5 km/h则判断此时的车速波动较小,满足诊断条件。
OBD需要诊断的TWC故障主要是由高温、催化剂中毒等原因导致的老化。对于新鲜的TWC,当发动机的工作状态偏离理论空燃比时,催化剂中的铈氧化物将发生对应的储氧和释氧反应,使TWC后端的排气始终保持在理论空燃比左右,此时TWC的转化效率最高;随着TWC逐渐老化,其储氧能力不断下降,此时TWC后的排气不再维持在理论空燃比,而是产生一定程度的波动,TWC转化效率降低;当TWC老化达到临界状态时,催化剂基本丧失储氧能力,直观表现为后氧传感器电压信号产生剧烈波动。
传统的TWC老化诊断策略主要采用振幅模型化法和响应时间判断法[10]。振幅模型化法通过大量试验建立TWC老化的经验模型或储氧量动态模型,将实际的后氧传感器信号与模型预测的信号进行对比,结合阈值判断TWC是否达到临界状态。该诊断策略的问题在于动态模型建模复杂,标定工作量大。响应时间判断法在诊断区间内主动控制发动机空燃比,使TWC储氧量达到饱和后释氧。TWC的老化程度越高,后氧传感器电压从最小值跳变到设定值所需的时间越短,通过标定临界TWC确定诊断阈值。该方法的主要缺点在于需要改变发动机原有的控制策略,导致诊断过程中的排放恶化。
OBD需要诊断的GPF故障按照影响排放和影响发动机性能分为两类。其中影响排放的故障有人为移除载体、封装不当导致载体破损、再生温度过高导致孔道烧熔泄漏等;影响发动机性能的故障有炭烟沉积过多、润滑油灰分造成的过滤体堵塞等[11]。排气流经GPF时受到阻力作用,直观表现为GPF两端具有压力差,且随排气流量增大而增大。当GPF发生各种故障时,其两端压差将产生相应变化,以此作为GPF诊断的基本依据。
传统的壁流式过滤体故障诊断方法以压差-排气流量模型为基础[12],模型基于线性回归拟合建立,考虑温度对于压差的影响以及温度、压力传感器本身的测量误差,在符合诊断条件的排气流量下标定合理的GPF压差范围,如果超过这个范围则认为故障发生。该方法在大排气流量范围内的故障诊断精度较低,如果限定若干点或者小区间作为诊断工况,虽然诊断精度提高,但难以满足OBD法规的故障诊断频率要求。
神经网络诊断模块由神经网络模型发展而来,本质是一种非参数模型。对于OBD诊断问题,神经网络模型因其良好的非线性特性,具有建模简便、标定工作量小、不影响原有控制策略、诊断精度高、诊断范围大等优势[13-15],能较好地弥补上述传统诊断方法的不足。神经网络诊断模型包含GPF诊断和TWC诊断两个独立模块,建模使用的故障标准样件均根据法规要求制备,并进行标签化处理。其中GPF诊断模块输入发动机转速、扭矩、GPF前压力及GPF后压力,输出GPF处于正常、移除、泄漏、过载和堵塞状态的概率;TWC诊断模块输入诊断时刻前1 s内的进气流量、前氧传感器电压值和后氧传感器电压值,输出TWC处于新鲜或临界老化状态的概率。由于GPF和TWC的诊断模块采用了统一的神经网络架构,开发流程相似,故重点介绍TWC老化诊断的应用,而不再赘述GPF相关内容。
TWC神经网络诊断模型开发的重点是模型的离线训练,此过程确定了神经网络模型的重要参数。以1 s为单位对WLTC循环采集到的新鲜TWC及临界TWC原始数据(100 Hz采样频率)加时间窗分段处理,每一段作为一个样本,每个样本中包含三类特征输入,共300个。加窗的起点在整个WLTC循环内任意选取,加窗范围覆盖整个循环,保证样本的随机性,最终得到共4 000个样本的数据集,包含两种TWC老化状态各2 000组。按神经网络训练的常用比例划分训练集为3 000个,测试集为1 000个,同样保证两种TWC老化状态的样本数量均等。由于本例特征值维度较高,传统的反向传播神经网络(Back Propagation Neural Network,BPNN)在应用时有一定局限性,故选择深度置信网络(Deep Belief Network,DBN)作为TWC诊断模型的基本框架[16-17]。经过大量试验,神经网络训练参数设置见表1。训练过程中网络各节点的权值和偏置按误差最小的原则不断被调整和优化。
表1 神经网络训练参数设置
最终,得到TWC诊断训练集准确率为94.77%(2 843/3 000),测试集准确率为94.30%(943/1 000),证明网络训练参数设置合理,不存在过拟合现象,泛化性能良好。离线训练完毕后,在Simulink中使用Matlab Function编写DBN的基础框架并调用训练中确定的网络结构和参数。
故障决策模型的作用是在故障诊断模型输出每种故障可能发生的概率后,确认驾驶循环内后处理部件存在的故障及类型,并激活MIL。由于故障并非总在循环内持续发生,所以决策模型还应当体现故障发生和消除状态之间的互相转化。根据描述的功能特点,使用Simulink中的Stateflow模块进行决策模型的编写。Stateflow是一种基于状态机原理的图形化编程工具,对较为复杂的逻辑有良好的实现效果[18]。故障决策模型见图4,其中每一个矩形块都代表一种状态,块之间的连线则代表状态的互相转化。设计一个故障计数器CTR_OBD,初始值为0。当故障的输出概率超过设定的阈值P_OBD_LIMIT后,计数器进行累加,达到设定的上限CTR_OBD_LIMIT_MAX后确认故障发生,标志位ERR_OBD置为1;当故障概率小于设定的阈值时,计数器进行递减,达到下限CTR_OBD_LIMIT_MIN后,标志位ERR_OBD置为0。计数器的累加或递减始终根据故障与阈值的实时比对情况进行动态切换,在整个故障决策的过程中,如果出现诊断条件不满足的情况,则退出模型,保存计数器当前值作为下次模型激活后的初始值。实际上,无论故障是否发生,只要计数器达到了设定的上限或者下限,就
图4 Stateflow故障决策模型
判断该次循环已经完成诊断,标志位END_DIAG置1,在本次驾驶循环ECU下电前都不再改变,相当于法规中定义的在用监测频率(In-Use Performance Ratio,IUPR)分子计数器增加了1。
VeriStand是一款基于LabVIEW内核的实时应用程序配置软件,相比于传统的上位机软件,VeriStand具有操作简单、规范性强、自动化程度高等优势。在VeriStand中设计交互界面有两个主要步骤:配置系统定义文件和布置控件。系统定义文件包含了运行模型所需的软硬件信息,根据需求进行离线修改,使用时与模型一同被下载到实时控制器中,相当于一个初始化函数。其中,控制器频率决定了模型的最高运行频率和模拟量的采集频率,考虑与真实ECU的可比性,设置为100 Hz;系统自动识别I/O硬件后,设置采集方式为单点采集,输入配置为差分输入,对采集到的电压进行转换计算,得到温度和压力的具体数值;使用NI ECU Measurement and Calibration Toolkit中的CCP master工具,以自定义设备的形式添加,导入.a2l数据库文件,通过CCP协议建立与ECU的通信。从数据库中导出车速、转速、扭矩、空燃比、进气温度、水温等发动机工况参数,设置读取速率为10 ms;将模型的各输入通道与上述物理通道进行映射(mapping),完成系统定义文件的配置工作。
交互界面设计在VeriStand工作界面中进行,常用的控件有模型控制、图表、数值显示、参数标定、布尔等。从系统文件中导入需要的参数以激活控件,当模型下载完毕后,启动界面进行实时监控。模型控制控件的作用是在线运行或停止模型,用以手动刷新模型内部的各个初值;对于较为重要的参数,如车速、转速、故障标志位等,导入图表控件以进行随时间变化的趋势观测;对于次级重要的参数,如油门踏板开度、水温、故障发生概率等,导入数值显示控件进行阶段性监控;对于模型中定义的标定参数,如故障概率阈值、计数器最大值等,导入参数标定控件进行实时修改。在布尔控件中导入ERR_OBD变量,通过指示灯亮灭直观地表现故障的发生与持续时间。基于VeriStand的OBD系统交互界面见图5。
图5 OBD系统VeriStand交互界面
台架试验的主要目的是通过更换不同故障模式的后处理样件,考察所开发的OBD系统在稳态工况点下的诊断效果,对系统基本的诊断功能进行验证。试验用发动机为2.0T缸内直喷(Gasoline Direct Injection,GDI)发动机,使用CJ250电力测功机进行转速和扭矩的精确控制。试验装置见图6。
图6 GDI发动机台架
在GPF诊断模型建模阶段,通过台架的采集端与主控PC对神经网络训练所需的GPF前后压力进行采集。在各稳态工况点下,观察到的压力波动很小;在验证阶段,模型的输入来自于OBD系统采集卡的实时电压信号,将其转换为压力值后,观察到波动较大,最大可达±1 kPa。为有效控制因采集设备不同而导致的模型输入误差,对系统采集的电压信号进行实时预处理,经过一阶低通滤波后,求取每2 s的平均压力值作为最终的GPF前后压力输入量。经过修正,稳态工况下的GPF前后压力曲线保持平稳,且数值与台架端偏差小于0.1 kPa,认为此时模型的表现具有评估价值。
在台架试验过程中,为进一步验证故障诊断模型在实际噪声环境中的诊断性能,需要尽量选用不同于离线训练时的工况点。图7示出GPF移除故障的诊断结果。试验中,原有的GPF载体被完全移除,用一根排气直管替代。交互界面中的显示控件GPF1~GPF5分别显示GPF正常、GPF移除、GPF泄漏、GPF过载和GPF堵塞5种状态的概率。可见,在随机选取的转速为3 500 r/min,扭矩为252.4 N·m的工况点下,GPF移除状态的概率达到了100%,其他状态均为0。更换不同故障模式的GPF样件,在满足诊断条件的情况下,模拟故障指示灯被正确点亮,且故障发生概率的最大值始终大于90%,证明各故障不容易混淆,OBD诊断结果准确且稳定。
图7 GPF移除诊断结果
与台架试验相比,整车转鼓试验的转速和扭矩无法精确控制,工况大多趋于瞬态。进行试验的主要目的在于验证OBD系统诊断条件判断模型和故障决策模型的逻辑正确性,进一步确保系统功能完整。
试验采用搭载台架同型号发动机的某SUV整车,为有效控制测试环境不同导致的系统输入误差,对整车的后处理系统管路布置进行改造,使各部件、传感器的安装位置与台架端保持一致。整车转鼓试验装置见图8。根据法规规定,各种OBD诊断均要求能在WLTC循环下至少进行一次,运行WLTC驾驶循环。以TWC老化诊断为例,将原车的新鲜TWC替换为临界TWC,完整的诊断过程见图9。对比车速曲线和诊断条件判断标志位CDN_DIAG_TWC的变化曲线,可见TWC的老化诊断条件“车速大于60 km/h且稳定”在WLTC循环的中速、高速和超高速段被正确识别,诊断频率较高;由故障诊断完成标志位TWC_END_DIAG的变化可见,由于计数器在诊断过程中曾经达到过极值,TWC_END_DIAG被置1并一直持续到ECU下电,说明在本次驾驶循环内诊断已经完成;由故障发生标志位ERR_TWC_OBD的变化可见,在诊断条件满足时,TWC的临界老化故障在大多数时间内可以被正确诊断,偶尔会在驾驶循环尚未结束时出现故障消除的状态,这是诊断模型本身的误差造成的。由于法规定义的故障确认计数器在单次循环中一旦有故障发生就会累加,连续3个循环都累加MIL即被激活,所以这种故障偶然消除的情况不会影响最终的诊断决策,对驾驶员产生误导。整车转鼓试验表明,所开发的OBD系统可以在WLTC循环下满足设定的诊断条件,正确地诊断出后处理部件的故障并顺利激活MIL,满足法规的要求。
图8 整车转鼓试验台
图9 WLTC循环临界TWC诊断过程
基于快速原型开发了汽油车TWC与GPF集成后处理OBD系统。系统的硬件以PXI平台为基础,根据测量要求选配各种I/O和通信板卡搭建而成;系统软件的算法部分在Matlab/Simulink环境中开发,包含了基于神经网络的诊断模型和基于状态机的故障决策模型,下载到实时控制器运行;系统软件的交互界面基于VeriStand进行设计,在PC端实现与实时控制器的数据传输、状态监测和参数修改。
通过台架试验对后处理OBD系统的基本诊断功能进行了验证,试验表明所开发的系统在稳态工况下具有良好的故障诊断性能;通过整车转鼓试验对后处理OBD系统的诊断条件判断模型和故障决策模型进行了逻辑验证,试验表明所开发的系统可以在WLTC循环中识别设定的诊断工况,做出正确的故障决策,满足轻型汽油车国六法规的OBD技术要求。
后处理OBD系统结构紧凑,建模方便,效果直观,提高了ECU OBD模块的开发效率,降低了测试成本。基于快速原型的开发思路在未来更复杂的发动机系统中具有良好的应用前景。