基于PLC的柴油机燃油系统运行环境仿真装置的开发

作者:东风康明斯发动机有限公司 孙卫军 杨 光 郑国世 李 卓 王立军 文章来源:AI《汽车制造业》 发布时间:2016-10-18
分享到
本文介绍了车用电控柴油机燃油系统运行环境仿真装置的开发结果,包括硬件组成和软件结构,重点阐述了PLC程序对仿真模型中的模拟量采集、二维表和三维表的查询以及加速度的模拟等关键技术的设计思路。

在车用柴油机燃油系统的开发和研究过程中,并不总是需要通过燃烧燃油来驱动发动机以获得试验数据,如果发动机在外力的拖动下按要求的转速运转,也可以获得相关的试验数据,因此,开发一套发动机燃油系统的运行环境仿真装置就成为十分必要的。本文重点介绍了发动机燃油系统运行环境仿真装置的PLC(可编程逻辑控制器)程序的开发结果。

硬件组成

发动机燃油系统运行环境仿真装置的硬件由PLC、伺服驱动系统、人机交互系统和发动机组成。PLC接收到油门和发动机转速信号后,向伺服驱动器发出新的转速指令,伺服驱动器驱动伺服电动机按新的转速指令运转,伺服电动机拖动发动机同步运转。试验人员根据需要随时调整发动机转速,完成燃油系统的各种试验。

PLC程序

发动机燃油系统运行环境仿真模型存放在PLC中。PLC程序包含了仿真模型的控制逻辑以及各种表格的查询算法,仿真模型中的外特性表、转速—车速表、车速—阻力表等二维表以及转速—油门—转矩表等三维表则存放在PLC的DB块中。DB块是PLC内存的一个专门用于存贮数据的区块。

PLC程序采用模块化设计,每个通用功能都对应一个子功能模块,主程序在需要时重复调用这些功能模块。这些功能模块包括模拟量数据采集模块、数据定位模块、读二维表模块、读三维表模块、插值运算模块、转加速度计算模块和转速计算模块。伺服驱动器从伺服电动机读取转速脉冲信号并把它转换成转速值反馈给PLC。油门踏板把油门电压信号也发给PLC。PLC调用模拟量数据采集模块,将油门电压信号转换为油门开度。通过调用读二维表模块和读三维表模块,再经过计算,得到转速指令值。PLC把转速指令发给伺服驱动器,伺服驱动器将控制信号放大后驱动伺服电动机运转。伺服电动机再拖动发动机同步运转。下面介绍上述的功能模块。

1.模拟量数据采集模块

模拟信号以电压的形式传递给PLC,由PLC的A/D转换器转换为数字量,PLC程序再将该数字量还原为电压值。模拟信号电压值与其所代表的物理量呈线性关系。以油门开度为例,设定油门开度为y,油门电压为x,则y=ax+b,其中a和b为常数。在调用此功能模块时,只需要输入a、b和x,就可以求出y。

2.读二维表功能模块

某发动机的二维表(见表)可以看作由发动机转速和转矩限值组成的二维数组,编号是为编程的需要而增加的。这张表的数据存放在PLC的一个DB块中。给二维表中的每个元素按顺序编号,通过数组元素编号得到数组元素的地址偏移量,通过地址偏移量和数组指针得到该元素在DB块中的地址,通过间接寻址得到该元素的数值。调用该功能模块时,输入某个元素在二维表中的位置(数组指针和元素编号),就可以查到这个元素的数值。

3.数据定位功能模块

二维表中的元素是不连续的,且元素个数也有限,而仿真模型中的参数却是在一定范围内连续变化的,如何把变化的参数在某一时刻的数值定位于二维表的第一维的某个区间,需要调用数据定位模块来实现。

本文的仿真模型规定,二维表的第一维元素数值必须随元素编号的增加而增加。把一个第一维的自变量数值与第一维的元素从小到大逐一比较,就可以确定这个自变量数值在第一维的元素编号区间,即这个数值前后两个相邻元素的编号。

该功能模块适用于所有参数表的自变量数组元素的定位,对于二维表,自变量数组是第一维数组;对于三维表,自变量数组是第一维和第二维数组。

在二维表中,第二维数组中某个元素的编号与第一维数组的对应元素有相同的元素编号。在查二维表时,通过调用数据定位模块,由第一维数组元素的数值查到该元素的编号区间,再由元素编号区间和第二维数组的指针,通过调用读二维表模块以及后面要介绍的插值运算模块,就可以查到第一维数组某个数值对应的第二维的数值。

在查三维表时,需要调用读三维表模块。

4.读三维表模块

可以把三维表看成一个三维数组,第一、第二维数组为自变量,第三维为应变量。第三维数组的每一行又可看作一个一维数组,其组号为该行的第一维数组的元素编号,元素号为第二维数组的元素编号。与二维表类似,三维表的数据放在一个DB块中。

已知第一维和第二维的数值,通过调用数据定位模块,可以得到它们的编号区间及区间两端对应的数值。而查寻第三维某个元素的数值,需要第三维第一行数组的指针、该元素对应的第一维和第二维元素的编号。通过第一维和第二维的元素编号计算出各自的元素地址偏移量。通过第三维第一行数组指针、第一维和第二维元素的地址偏移量,可以得到第三维某元素在DB块中的地址。通过间接寻址,就可得到第三维元素的数值。

如果第一维和第二维的元素数值刚好都在三维参数表中,可以直接调用读三维表功能模块查到对应的第三维元素数值。但如果第一维或第二维的元素数值不在三维表中,就需要进行插值运算,以获得第三维的数值。

5.插值运算模块

在仿真模型中,二维表的每个数组的两个相邻元素之间、每个元素的两个相邻元素之间都是线性关系。如果一个自变量的数值处在二维表第一维数组的两个相邻元素之间,且已知这两个相邻元素数值和对应的第二维两个相邻元素的数值,通过比例插值运算,就可以得到第二维中对应的应变量的数值。类似地,已知三维表的第一维和第二维的两个自变量数值,通过数据定位模块、读二维表模块和读三维表模块得到第一维自变量数值相邻的两个元素的数值、第二维自变量数值相邻的两个元素的数值以及第三维中与它们对应的元素数值。第三维的元素数值分别与第一维和第二维进行插值运算,可以得到第一维和第二维自变量对应的第三维应变量的数值。

6.转加速度计算模块和转度计算模块

在仿真装置中,PLC只能给伺服驱动器发出转速指令,不能发出转加速度指令。

为了控制转加速度,可以把1 s分成50个时间间隔,每个时间间隔20 ms,每个时间间隔内增加的转速=转加速度/50。一个时间间隔后的转速=前一时刻的转速+一个时间间隔内转速变化量。当实际转速与设定转速的差值小于等于设定值,加速过程结束。要想使加速曲线更平滑,可以适当缩短时间间隔。

通过调用PLC自带的时间中断程序,每隔20 ms更新一次转速指令。

结语

该基于PLC的柴油机燃油系统运行环境仿真装置已应用于6 L发动机燃油系统的试验中,转速控制精度为±1 r/s,满足设计要求。该装置不烧燃油,经济性好。程序采用模块化设计,有利于仿真模型的扩展。

收藏
赞一下
0