发动机控制通信软件的建模

时间:2022-10-11 02:36:50

发动机控制通信软件的建模

本文作者:解振兴 刘波澜 戴筱妍 黄 英 单位:北京理工大学机械与车辆工程学院

前言

在发动机电控系统开发过程中,通常采用单线程编程方法和结构化的软件开发方法。该方法无论从理论上还是从工程实践方面都比较成熟,也取得了一定的成果。而随着柴油机电控系统控制要求的提高,其软件系统变得越来越复杂,开发时间也变得较长[1]。传统方式在通用性上不能令人满意,且开发周期长、难度大。引入面向对象方法开发软件可很好地解决这一问题。CAN总线通信已发展成为发动机进行数据标定和通信的主流总线,并有基于CAN总线通信协议的CCP、KWP2000和SAEJ1939等应用层通信标准[2]。国内对如何有效简洁地表达CAN通信协议的内容进行了有针对性的研究,取得了一些成果[3]。本文中采用统一建模语言(unifiedmodelinglanguage,UML)分析和设计遵循CCP协议的CAN通信软件,并探索面向对象软件开发方法在发动机控制领域的应用。

1CCP协议和UML建模

1.1CAN总线和CCP协议CAN即控制器局域网,主要用于汽车控制系统,它拥有诸多优点,是发动机控制系统通信的主要总线之一。发动机的动力性、燃油经济性和排放的改善,都依赖于大量预先存储在控制单元软件中的控制和调节参数(如特征值、曲线、脉谱等,统称标定参数)[4]。CCP协议就是用于发动机电控系统参数标定、数据采集和实时监控的CAN通信应用层协议。CCP协议有两个数据流向,一个是命令接收对象(CRO),其报文格式如图1所示;另一个是数据传输对象(DTO)。DTO又分为两种报文:命令返回报文(CRM)和数据采集报文(DAQ),其帧格式如图2和图3所示。CRM用于反映指令执行是否成功。在这些帧中,CMD表示指令代码,CTR表示指令计数器,PID表示数据包号码,ERR表示错误代码[5]。根据CCP协议,数据标定可分为两种模式,一种是DAQ模式,可对一块数据进行采集、监控和标定;另一种是查询(POLLING)模式,只能对单独的数据进行采集、监控和标定。CCP协议有一套复杂的指令代码和较高的实时性要求。开发基于CCP协议的CAN通信软件须考虑到这两个方面。

1.2UML建模方法UML是一种绘制软件蓝图的标准建模语言[6],其目的是对面向对象的系统进行可视化、详细和完整地描述。UML可运用于软件开发过程各个阶段的建模活动,尤其是分析与设计。将UML运用于面向对象的软件系统建模时,为了体现系统的静态和动态模型,可运用UML的用例图、类图、协作图、顺序图和状态图5类图形[7]进行描述。这5类图是相互联系的,从不同角度来描述系统,实际上往往只需3~4种图即可精确地定义需求。(1)用例图用于表达系统对外部提供的服务,它描述了系统的功能模型。(2)类图用于表示系统内部的静态结构,它表示出所有对象的属性、特征和操作,同时体现了类之间的关系。(3)协作图和顺序图一般用于描述系统的动态行为和可视化对象间的通信。协作图关注对象交互的结构方面。顺序图表示以时间顺序安排的对象交互,能更加清晰地显示控制流和事件顺序。(4)状态图通过状态和迁移,描述实体的动态行为及组成实体元素的状态条件、响应和动作。在系统的静态和动态模型中,用例图模型是系统建模的核心[8]。运用UML软件的建模过程如下。(1)进行系统需求分析,在分析的基础上建立系统的用例图。(2)建立系统的静态模型,将系统功能需求分解到各个对象类,确定各个对象类的作用。(3)建立系统的动态模型,确定系统各个状态的转换过程和各个动作的时序,最终完成整个建模活动。

2发动机CAN通信软件的UML建模

2.1系统介绍通过燃烧分析仪了解气缸内燃烧情况,电子控制单元通过传感器获取发动机当前状态,并通过CAN总线上传到上位机,上位机则根据这些信息对控制参数进行标定。发动机标定系统组成见图4。

2.2系统需求分析在发动机标定过程中,每个信号量的变化率和对标定目标的影响是不同的。通常冷却液温度、进气温度和进气压力等数据在发动机运行过程中变化率较小,为降低系统开销,应降低数据采集和数据上传的频率。而对于转速和共轨系统轨压等高频信号,须有较高的采样频率,同时要采用适当的容错机制尽量避免总线仲裁机制的触发,提高传输速率。发动机标定参数可分为:敏感型参数和非敏感型参数。在进行发动机外特性曲线标定时,喷油提前角、喷油量及其修正系数、燃油温度及其修正系数和喷油延迟时间等,对发动机的动力性能影响较大,属于敏感型参数;而机油压力和燃油温度等对发动机的动力性能影响不大,属于非敏感型参数。总的来说,首先进行敏感型参数的标定,而后进行非敏感型参数的标定。在此过程中须根据个人需求,在数据采集功能中定义敏感型和非敏感型参数的范围。根据CCP协议,数据的标定有POLLING和DAQ两种模式。对于非敏感型参数建议使用DAQ模式,对于敏感型参数建议使用POLLING模式。这样既可提高标定效率,也可改善标定的质量。发动机的状态监控功能要实时反映其运行状态。在此功能中,上位机要对发动机的重要参数进行监控,确保其处在可控的运行状态下。

2.3系统用例建模总结系统需求和CAN的功能,上位机通过4个用例跟系统进行联系,即数据采集、数据分类、状态监控和数据标定,如图5所示。在数据采集功能下,系统根据设置,按照一定的条件对系统的数据进行采集并存放在上位机的存储空间内,以便离线诊断和数据分析。数据分类功能将数据进行分类,确定每种数据的优先级、属性和采取的数据标定模式。作为一种容错手段,该功能分离出数据库中的冗余数据,保证标定软件的稳定。此外,数据分类功能还将设置每种数据的正常变化和正常变化率范围的门限,超出门限的数据将被认为是错误的。若连续多次出现,也将以错误标志位的方式放入CAN通信数据库。在状态监测功能下,系统调用命令处理功能,解析上位机发送的指令代码进行数据的传输。传输模式可通过数据分类功能来设定。在数据标定功能下,系统首先解析上位机发送的命令指令选定标定模式,而后在数据库中寻找到需要标定的数据,最后按照上位机的要求更改数据,执行编程指令完成标定工作。系统自身有错误诊断功能(错误机制),其操作都在系统的监控之下,如果出现错误,系统将启动错误机制,以保证系统不会出现崩溃状态。同时,系统会以错误帧的形式向上位机告知当前错误状态。

2.4建立系统的静态模型图6为几种重要的类之间的关系。上位机类与数据标定类是使用关系(《use》)。数据标定类和系统是相关联的,1个系统只有1个数据标定类,1个数据标定类可对应多个系统。DAQ模式类和POLLING模式类是数据标定的子类,它们继承了数据标定类的所有特性,并有各自的特点。DAQ模式类和数据类通过对象描述表(ODT)相关联,1个DAQ模式类对应多个ODT,1个ODT对应多个数据。而POLLING模式类直接和数据联系,而且是多对多的。图7和图8分别为数据标定类和数据类的属性和操作。数据标定类是一种抽象类,没有直接的实例与之对应。作为父类,它允许子类继承该父类的所有属性和操作。该类属性中命令代码表征了符合CCP协议的标定命令,如CONNECT的代码是0x01;数据包号反映了数据发送模式,如PID为255表示从设备反馈给主设备的响应。不论是在DAQ模式还是POLLING模式下进行标定,都须包含与上位机建立逻辑连接、断开连接、接收CRO信息、发送DTO信息、命令解析和发送成功返回等操作。后文会介绍该类操作的一些应用。数据类是一种具体类,CAN数据库中待标定的数据都属于该类。数据的属性包括名称、首地址、数据类型、数量和该数据的正常范围,通过这些属性可确定该数据的所有特征。对数据类的操作包括数据滤波和合理性检查。在数据采集功能中,数据滤波可对采集到的不合理数据进行筛除。在状态监测功能中,若检查数据不在正常范围之内,则启动数据错误报警功能告知上位机。

2.5建立系统的动态模型在系统动态建模的过程中一般使用状态图和顺序图。状态图能清晰地反映系统状态在迁移时实体元素的状态条件、响应和动作。顺序图可依据时间清晰地展示控制流的方向,适合描述系统的动态行为。经综合考虑,软件的初始化过程使用状态图描述,实际的通信实现使用顺序图。图9为从系统初始化到软件安装完毕所经历的整个状态过程。上电后,系统进入启动状态。如果系统启动失败,系统就会退出;如果系统启动成功,系统进入CAN驱动安装状态。安装完成后,系统进入CCP驱动安装状态。完成后,系统进入下一个装置的安装。图10为CAN驱动安装状态。在CAN驱动安装过程中,系统从初始化参数中获得ID信息,进入寄存器配置状态,配置完成CAN的控制寄存器并清除寄存器的所有标志位。完成后,进行CAN接收和传送功能的配置。配置接收功能的3个操作为:获取发送者的ID;将接收到的内容移至缓冲区和清除寄存器标志位,准备下一次接收。配置发送功能的3个操作为:配置发送寄存器的ID;将缓冲区的内容放入发送寄存器和发送成功校验。完成之后,CAN驱动安装完毕,进入下一个步骤。图11为CCP驱动安装状态。在CCP驱动安装过程中,系统首先建立命令处理环境。其主要功能是对接收到的信息进行解析。如果上位机要求数据采集采用DAQ模式,则系统开始建立DAQ环境。在这个过程中,要先安装DAQ相关组件,然后建立DAQ处理功能,最后完成命令代码和DAQ处理的链接。完成后,系统进入CCP初始化状态。该状态下,系统将建立版本检查函数、打开数据通道和所有CCP软件参数清零等功能。之后,系统连接底层驱动和CCP应用软件的接口,最终完成CCP驱动安装。如果上位机要求采用POLL-ING模式,则系统直接进入CCP初始化状态。图12为在CCP协议的DAQ模式下的通信过程,参与通信的主要有:上位机、命令处理模块、数据采集模块、DAQ模块和数据等。CCP协议在BAQ模式下的通信过程如下。(1)上位机与系统进行连接。上位机向系统的命令处理模块发送建立连接的请求,而后系统发送CRM(握手报文)。连接成功后,PC和系统以一问一答的方式进行获得版本号和交换ID的动作。(2)PC开始与系统正式通信。上位机发送控制信息给系统的命令处理模块。命令处理模块在接收完毕后,对控制信息进行解析。(3)命令处理模块会将解析后的上位机请求发送给数据标定模式模块,开始准备进行数据传输。(4)数据标定模式模块进行数据传输初始化。在这之前,数据采集用例会选择采用POLLING模式还是DAQ模式。在DAQ模式下,它会链接若干个DAQ列表,每个DAQ列表包含若干个ODT,ODT的每个字节都指向DAQ上需要的数据所对应地址。(5)链接完所有的DAQ列表后,DAQ模块会去数据类中获取相关的数据,将所得到的数据填入DAQ列表。DAQ模块会将该DAQ列表传递给数据标定模式模块,并准备发送。(6)当条件具备时,数据标定模式模块会发送上位机请求的数据。发送完毕后,数据标定模式模块会进行校验,以确保发送成功。然后才能再次接收上位机发送的命令请求,否则不作响应。

3发动机CAN通信软件的实现

本文中选择在MPC566硬件平台上开发应用于VxWorks嵌入式操作系统的通信软件。它是一种运用较为广泛的嵌入式操作系统,具有较高的实时性和可移植性[9]。在开发过程中,将面向对象的程序设计与应用程序框架完美结合起来,按照UML模型将原有的应用程序接口(API)函数进行重新封装,然后进行代码编程。该软件具有较高的通用性,只须更改底层硬件配置便可移植到不同的ECU上。图13为数据标定界面。试验显示,该软件可准确无误地对数据进行标定且实时性好。从图14可知,启动时PID参数中的Kp值越大,图15标定怠速启动脉宽启动时达到目标转速的时间越短,但超调量也随之增加。从图15可知,改变启动脉宽对发动机的启动状况并没有多大的影响,响应时间稍微变短,超调量稍微得到一些抑制。4结论(1)采用UML建模开发基于CCP协议的CAN通信软件,可在编程前就对整个标定系统有清晰地认识,及早发现软件在设计中的问题。(2)UML建模可清晰地反映软件的逻辑关系和流程,便于软件的升级和维护。(3)采用UML建立的模型具有较好的通用性,可适用于不同的软件平台。(4)采用UML方法来开发软件,大大提高整个系统的开发效率,同时软件的移植性得到了提高。

上一篇:换挡期间发动机转向距离控制 下一篇:建筑工程项目造价管控探讨