基于FPGA的柴油机电控单元HIL系统IO研究与实现

2022-11-10 06:02王贵勇邓冬荣肖雨寒何述超姚国仲
关键词:方波凸轮轴喷油

王贵勇,邓冬荣,赵 友,肖雨寒,何述超,姚国仲

(1.昆明理工大学 云南省内燃机重点实验室,云南 昆明 650224;2.柳州职业技术学院,广西 柳州 545006;3.昆明云内动力股份有限公司,云南 昆明 650200)

0 引 言

HIL仿真,是在数学和物理仿真的基础上进行开发的半物理模型,属于半实物仿真系统,用数学模型代替物理柴油机,以降低成本,减少排放.HIL系统采用实际的控制器来控制虚拟对象,也是系统模型在嵌入式硬件中的实现,用于开发和测试复杂的实时嵌入式系统[1-4].HIL仿真技术可用于控制器开发的V模式当中,能有效地缩短开发周期,特别是在发动机电控单元的开发测试中, HIL被广泛使用[5-7].高压共轨柴油机虚拟仿真模型信号I/O与ECU插接件I/O通过控制板卡I/O连接组成一个HIL仿真系统,该系统可降低开发和测试成本,且技术可重复性高[8],减少人力及物力,减少上台架测试次数.

HIL仿真系统中,柴油机仿真模型需要大量地输入信号,这些信号由采集的执行器反馈信号进行计算输入,并控制柴油机仿真模型,更新模型的输出.ECU的工作需要大量的传感器输出信号,这些信号可由软件以及硬件进行模拟.这两种信号均属于HIL仿真系统中的I/O信号.国内外的各个HIL实现的方案中因为技术机密或是模块集成等原因,都不会过多地描述系统I/O数据实现方法,大部分HIL系统仿真的实现常常会忽略整个系统I/O数据的走向[9-11],对HIL系统I/O数据流的阐述和具体I/O的实现方法不够具体[12-16],这导致对系统实现的整个过程以及对系统I/O数据在各个节点所代表的含义变得模糊,严重影响HIL仿真系统的技术可重复性.针对上述问题,为了明确HIL仿真系统的I/O数据流, 提出了基于FPGA可重配置I/O设备与自主设计的负载板相结合的硬件在环仿真系统方案,可实现纳秒级高速精准的信号发生、精确可靠的信号识别以及软硬件I/O自定义配置;通过梳理HIL仿真系统方案中的I/O数据,明确I/O数据流,并研究相关I/O数据的实现方法,设计相应的I/O数据逻辑,从而实现虚拟对象和实际控制器的闭环控制,为开发HIL仿真系统提供了清晰和明确的总体思路.

1 HIL系统简介

1.1 系统构架

HIL系统由PC上位机软件、NI Kintex-7 USB-7845R实时处理器以及ECU组成,如图1所示.PC机通过通用串行总线USB连接至FPGA,含发动机模型的上位机与FPGA底层程序通过FPGA I/O向待测ECU输出传感器信号,ECU工作之后将执行器反馈信号输入至上位机中,上位机通过处理后,将反馈信号通过模型信号I/O端的输入端输入至柴油机仿真模型当中,以达到实时更新模型输出的目的,进而更新ECU的工作.这样就形成了一个以柴油机仿真模型、控制板卡和ECU为主的HIL仿真系统.

图1 高压共轨柴油机HIL平台总体方案Fig.1 Overall scheme of HIL platform for high pressure common rail diesel engine

1.2 系统平台

系统采用USB-7845R多功能可重配置I/O设备,利用可编程的FPGA,实现板载信号处理以及灵活的系统定时及同步,特别是通过FPGA自定义I/O,能以纳秒级分辨率来模拟传感器的相应信号.可重配置I/O设备通过USB与PC上位机进行通讯.FPGA型号为Kintex-7 70T,最大采样率为 500 kS/s.表1为多功能可重配置I/O模块的I/O简介.

表1 Kintex-7 USB-7845R I/O简介

1.3 系统软件交互模式

HIL仿真平台软件系统采用基于LabVIEW编程 G语言开发.HIL仿真平台软件系统主要包括基于FPGA信号I/O接口的FPGA底层程序、HIL主程序、AVL/CRUISE M柴油机实时仿真模型三大模块组成.如图2所示,由LabVIEW FPGA模块编写底层程序编译后的BIT文件(用于配置终端FPGA的配置比特流)下载至终端FPGA中,实现与外部软硬件进行数据交互.

图2 HIL仿真平台软件交互模式基本构架Fig.2 The basic framework of software interaction mode of HIL simulation platform

1.4 系统I/O数据流

HIL仿真系统中,涉及到I/O信号的有传感器信号I/O、执行器信号I/O、模型信号I/O以及通信信号I/O.执行器信号I/O和传感器信号I/O主要是指可重配置I/O设备的输入和输出和上位机中调用的I/O;模型信号IO是指柴油机仿真模型的输入输出I/O,在上位机中实现;通信I/O信号指的是测试软件和ECU信号读写I/O.图3为I/O信号在多功能可重配置I/O设备中的数据流图.

图3 I/O闭环数据流Fig.3 I/O closed-loop data flow

根据提出的硬件在环系统方案和可重配置I/O设备的工作电压,负载板可将执行器的驱动电流信号转换成相同波形的电流电压信号,并可通过改变采样电阻大小,实现负载板采集到的信号的幅值大小在可重配置I/O设备的工作电压范围内.

基于FPGA的信号输出数据流如下:

1)模型通过端口输出物理值,上位机程序将该物理值进行信号处理得到该物理值对应的电压值;

2)该电压值在上位机中通过通用串行总线的串口总线标准,将数据发送至目标机7845R中;

3)目标机通过USB接口接收到该电压值后,将电压值通过FPGA底层BIT文件传入可重配置I/O设备,FPGA内部电路将该电压值转换为对应数值的电压信号;

4)电压信号输入至ECU中,ECU接收电压信号并驱动执行器工作.

基于FPGA的信号输入数据流如下:

1)可重配置I/O设备通过输入端口接收负载板采集的执行器电信号,通过FPGA内部电路将该电信号转换为对应的电信号值;

2)FPGA底层BIT文件对该电信号值进行相应的滤波等操作后, 目标机通过通用串行总线的串口总线标准将滤波后的电信号值传入上位机中;

3)上位机经过相应的信号处理后,通过软件线束将处理过后的信号传入至模型的输入端口,从而实现I/O数据流的闭环控制.

通过对系统I/O数据流的分析,针对HIL最小系统中所需的基本I/O信号进行信号解析,其中包括传感器I/O信号解析和执行器I/O信号解析,如表2和表3所示.

表2 传感器I/O信号解析

表3 执行器I/O信号解析

2 信号I/O实现

上位机通过计算处理柴油机仿真模型输出的信号,将该信号通过传感器信号I/O索引至FPGA中,FPGA根据底层传感器信号I/O的分配向ECU输出上位机传感器信号,ECU接收到信号后,判断当前发动机所处的工况,结合发动机控制策略,向执行器输出控制信号.

信号的识别主要是识别执行器信号,通过执行器信号I/O接口将执行器反馈信号输入到仿真模型中.输入之前需要进一步处理识别到的信号,以便于柴油机仿真模型识别.

2.1 曲轴凸轮轴传感器信号发生

曲轴凸轮轴传感器信号是ECU底层判缸和喷油驱动程序所需要的基本输入信号[17].而基于AVL/CRUISE M搭建的D30柴油机仿真模型是一台不带曲轴和凸轮轴传感器的发动机模型,只有将柴油机仿真模型与曲轴凸轮轴传感器信号联合运行,才能真正地实现模型的动态仿真.该传感器用于检测发动机曲轴转速大小和转角位置,以此获取曲轴转角位置和发动机转速位置.

曲轴和凸轮轴信号是柴油机发动机控制系统中最关键的输入信号之一[18-20].D30曲轴信号盘采用的是60-2齿的结构,凸轮轴为4+1齿轮结构.如图4所示为曲轴凸轮轴相位关系图.

图4 曲轴凸轮轴相位关系图Fig.4 The crankshaft and camshaft phase diagram

2.1.1 曲轴信号设计

根据曲轴凸轮轴的相位关系,进行信号的仿真.通过定义曲轴高脉冲脉宽角度θH、低脉冲脉宽角度θL、缺齿宽度θgap、缺齿偏移量θoff以及每时钟滴答生成角度θTick等输入参数,在板卡时钟频率fTick为 40 MHz 的定时循环里设计曲轴方波程序,进行360°曲轴方波信号的生成.其中每时钟滴答生成角度的计算公式如下:

(1)

式中:n为转速,单位为rad/min.

曲轴方波信号生成是按照FPGA时钟滴答的移动角度进行模拟.图5为曲轴方波信号生成的流程图.

图5 曲轴方波信号生成流程图Fig.5 Flow chart of crankshaft square wave signal generation

曲轴方波的程序设计主要分四个模块进行编写,图6为曲轴方波模块设计示意图.

图6 曲轴方模块设计示意图Fig.6 Schematic diagram of crankshaft square wave module design

设定在定转速的情况下,每时钟滴答生成角度时固定值,曲轴角度则线性增长.此设计在非定转速的情况下也能正常生成曲轴方波.

曲轴方波的设计主要分为:曲轴角度设计、缺齿位置设计、脉冲设计以及曲轴方波设计.

1)曲轴角度θCrank设计:通过每时钟滴答产生的曲轴角度,控制角度在0°~360°CA内循环模拟.曲轴角度θCrank的计算如下:

(2)

式中:θCrank为当前曲轴角度,单位为°CA;θTick为每滴答生成角度,单位为°CA;k为FPGA底层时钟滴答次数.

2)缺齿Bmt设计:通过将缺齿宽度和缺齿偏移量与当前曲轴角度进行对比,输出缺齿位置.缺齿计算如下:

Bmt(θCrank)=[θCrank>(θoff+θgap)]||(θCrank<θoff)

(3)

式中:θoff为曲轴缺齿偏移量,单位为°CA;θgap为缺齿宽度,单位为°CA;Bmt为输出的缺齿布尔值.通过逻辑或计算输出,确定缺齿位置;当Bmt为False时,θCrank处于缺齿位置.

3)脉冲Bout设计:将高脉冲脉宽角度θH、低脉冲脉宽角度θL以及当前曲轴角度θCrank进行逻辑对比,并结合FPGA时钟滴答的移动,输出360°CA的高脉冲信号和低脉冲信号Bout(k).脉冲的计算如下:

(1)当0°≤θCrank<θH时:

(4)

(2) 当θH≤θCrank<360°时:

(5)

(6)

式中:θP(k)为当前脉冲所在曲轴角度位置,单位为°CA;θH、θL分别为高脉冲脉宽角度参数和低脉冲脉宽角度参数,单位为°CA;Bout(k)为最终脉冲输出信号,以布尔值True或False表示.

图7为360°CA内曲轴方波高低脉冲Bout(k)设计流程图.

图7 360°CA曲轴方波高低脉冲设计流程图Fig.7 360°CA crankshaft square wave high and low pulse design flow chart

4)曲轴方波BCrank设计:通过对设计的缺齿信号和设计的高低脉冲信号进行逻辑与判断,输出曲轴方波信号.曲轴方波计算如下:

BCrank=Bout(k)&Bmt(θCrank)

(7)

式中:BCrank为最终输出的曲轴方波信号,以布尔值True或False表示.

ECU插接件接收的曲轴信号可看作成类正弦波的样式.利用LabVIEW FPGA模块中的Sine Wave Generator函数,同步曲轴方波信号模拟生成曲轴正弦波信号.图8为无偏移角度和偏移φ角度的曲轴正弦波随曲轴方波变化规律图.

(a)无偏移 (b)有偏移图8 曲轴正弦波随曲轴方波变化规律图Fig.8 Variation law of crankshaft sine wave with crankshaft square wave

为了实现曲轴的瞬态特性,上位机通过转速计算曲轴正弦波频率fCrank.曲轴正弦波频率的计算如下:

(8)

式中:n为转速,单位为rad/min;fTick为板卡时钟频率;fCrank为曲轴正弦波输出频率.

曲轴幅值设计如下:

(9)

式中:ACrank为曲轴幅值,单位为V;c为与曲轴传感器有关的系数;d为触发轮间隙.

上位机通过调用FPGA接口中的读取/写入函数,将fTick和fCrank信号写入FPGA底层中,从而实现不同转速下曲轴的瞬态特性.

2.1.2 凸轮轴信号设计

凸轮轴信号的生成与曲轴信号的生成方式基本相同.凸轮轴的相位关系通过曲轴生成的信号进行设计,并同步时钟生成的时钟角度,保证曲轴凸轮轴角度同步发生,避免产生时钟误差和信号偏移.D30为四冲程柴油机,凸轮轴和曲轴的传动比关系为1∶2.因此,需要以两倍的曲轴角度进行模拟凸轮轴角度,并根据曲轴位置来规定凸轮轴凸齿的起始度数,用以计算TDC的位置.图9为凸轮轴信号设计流程图.

图9 凸轮轴信号设计流程图Fig.9 Camshaft signal design flow chart

2.2 其他传感器信号发生

ECU工作主要是接收识别来自柴油机发动机传感器的模拟信号,并结合底层驱动程序以及控制策略来实现[19].

ECU主要的模拟输入信号有轨压传感器、加速踏板传感器、冷却液温度传感器、进气压力传感器以及进气温度传感器等[21].上述传感器信号的程序设计通过相应的传感器特征曲线进行插值实现.除加速踏板传感器外,其他传感器程序的输入参数是柴油机仿真模型输出的对应传感器的物理值,输出为对应传感器的电压值,如图10所示.

图10 传感器一维特性曲线插值流程图Fig.10 Interpolation flow chart of one-dimensional characteristic curve of sensor

加速踏板传感器在上位机进行编写程序设计,其输入参数为垂直指针滑动杆控件,可设置加速踏板的开度值,输出参数为对应开度的电压值.

上位机程序需要对FPGA底层曲轴凸轮轴参数进行初始化,初始化值可根据发动机飞轮上的各参数确定.曲轴凸轮轴参数可以根据不同柴油机型号进行配置以适应柴油机工作,从而实现传感器信号的通用性以及高效性.

2.3 执行器信号识别

执行器信号利用负载板采集,将需要的电信号通过线束连接至分线面板中,FPGA读取该电信号的值,底层BIT文件通过对数据进行信号处理后可直接将该电信号值索引分配至上位机,并通过模型信号I/O将该值传到柴油机仿真模型的输入端口.

执行器信号识别模块主要有喷油器信号和燃油计量单元信号的识别.

2.3.1 喷油信号识别

柴油机仿真模型需要喷油起始角和喷油持续角来计算喷油量.ECU喷油底层驱动采用的是“peak-hold”的控制方式.

喷油脉宽(喷油持续时间)可以从负载板采样电阻的电压信号波形采集,采样电阻得到小于 5 V 的电压信号,该电压信号波形与驱动喷油器的喷油大电流信号波形具有相同的喷油脉宽.图11为喷油器原始驱动电流信号与经负载板采集的反馈信号波形图.

图11 原始与采样电阻喷油脉宽波形图Fig.11 Waveform of the original and sampled resistor injection pulse width

对指定连接器的FPGA AI通道配置合适的逻辑电平,负载板采集的喷油脉宽波形图可通过FPGA AI输入端口接入FPGA中,FPGA底层接收到该波形数据后,进行相应的滤波等信号处理.图12为喷油信号识别流程图,该图逻辑在FPGA底层实现.

图12 喷油器喷油持续时间识别流程图Fig.12 Flow chart for identifying the fuel injection duration of the fuel injector

上位机通过FPGA底层得到的时钟滴答次数计算出当前的喷油脉宽,由喷油脉宽可计算出当前曲轴的喷油持续角.喷油持续角的计算如下:

θwidth=6n×10-9k0T

(10)

式中:θwidth为喷油持续角,单位为°CA;n为转速,单位为rad/min;T为一个时钟滴答的时间,单位为ns;k0为喷油脉宽的时钟滴答次数.

2.3.2 燃油计量单元信号识别

燃油计量单元是比例电磁阀,可实现对轨压大小的控制[22-23].ECU根据各传感器信号来判定当前柴油机的工况,然后通过控制PWM波占空比来调节燃油计量单元线圈电压,控制线圈有效电流,从而控制燃油计量单元的开度,进而控制进入燃油计量单元中的燃油流量.

HIL系统识别的反馈信号为线圈有效电流通过负载板转换的电压信号.图13为燃油计量单元原始驱动电流信号和PWM信号与经负载板采集的反馈信号波形图,上位机识别到该信号后,将当前电流电压信号通过模型信号I/O输入至模型,FPGA终端通过端口识别负载板采集到信号后,通过FPGA底层BIT程序对识别到的反馈信号进行相应的信号处理.上位机读取信号值后,通过模型信号I/O将该信号值输入至模型中.

图13 燃油计量单元原始驱动电流信号和PWM与采样电阻反馈信号波形图Fig.13 The original drive current signal of the fuel metering unit and the waveform diagram of the feedback signal of PWM and sampling resistance

3 HIL信号I/O试验

图14为仿真试验台架.HIL仿真系统中,分为上位机和下位机,图中左侧为下位机以及分线板,右侧是用于观测和操作的人机界面.

图14 HIL仿真系统试验台架Fig.14 HIL simulation system test bench

上位机程序通过FPGA 取FPGA底层曲轴凸轮轴信号生成模块的输入参数,按照表4中的参数,进行曲轴、凸轮轴信号生成的相应参数进行初始化.初始化完成后,FPGA底层曲轴凸轮轴信号发生程序根据初始值生成正弦波信号,并传至FPGA I/O端的输出端口.最终将生成的仿真信号通过线束传送至ECU,用以验证ECU底层判缸驱动程序和控制策略.

表4 D30柴油机曲轴、凸轮轴传感器仿真参数

3.1 曲轴、凸轮轴传感器信号I/O试验

图15为转速在 800 rad/min 时的曲轴凸轮轴仿真信号和台架真实信号对比图,其中(a)为程序编写发生的曲轴凸轮传感器模拟信号,(b)为台架上测得的曲轴凸轮轴传感器原始信号.

(a)仿真信号 (b) 实际信号图15 曲轴、凸轮轴传感器信号对比图Fig.15 The comparison diagram of crankshaft and camshaft sensor signals

图16为放大加速踏板传感器信号I/O开度的加速过程,加速过程满足发动机正常工作的曲轴瞬态特性,该瞬态特性的仿真信号与ECU底层判缸程序联合运行,实现了发动机的启动及全转速范围运行.

图16 曲轴仿真信号随速度变化的瞬态特性图Fig.16 Transient characteristic diagram of crankshaft simulation signal changing with speed

系统设计的曲轴凸轮轴传感器信号I/O、加速踏板传感器信号I/O合理,能满足发动机的瞬态特性.

3.2 执行器信号I/O试验

3.2.1 喷油信号I/O

接入曲轴、凸轮轴及各种传感器仿真信号后给ECU商店,ECU在发动机模型启动后进入闭环控制状态,喷油执行器也正常工作.FPGA底层通过喷油信号识别程序开始捕捉喷油信号,并将捕获到的喷油波形、喷油脉宽数据上传至上位机.

在不同工况下测试短、中、长三种喷射波形,如图17所示.其中包括预喷喷油脉宽、适中的喷油脉宽以及偏长喷油脉宽的喷油波形.通过对比ECU控制的喷射脉宽值与三种不同喷油脉宽下的喷油电流波形对应I/O识别到的喷油脉宽数据(表5)可知,执行器信号I/O设计合理,能成功捕捉到相同脉宽的喷油波形信号.利用底层时钟滴答读取脉宽即可得到相应脉宽的时钟滴答次数,并基于公式(2)~(10)计算出不同转速下的喷油持续角.

图17 上位机处理得到的不同喷油脉宽对比图Fig.17 Comparison of different injection pulse widths processed by the host computer

表5 三种脉宽长度误差

3.2.2 燃油计量单元信号I/O

燃油计量单元电流电压信号作为输入信号输入到柴油机仿真模型中,轨压模块根据该信号等其他参数计算出新的轨压并输出到主程序中.更新的轨压将重新作为ECU传感器值输入至ECU中,从而实现在不同工况下的轨压控制,进而实现了模型的闭环控制.

FPGA识别到燃油计量单元电流电压信号并处理后,上位机通过FPGA读/写函数读取处理后的燃油计量单元电流电压信号.如图18所示,上位机读取DMA采集到的燃油计量单元连续电流电压信号后,除以负载板放大倍数后得到原始燃油计量单元波形.由图可知,上位机处理读取到的反馈信号与原始信号波形接近,符合预期效果.

图18 上位机处理信号与原始信号和DMA采集信号波形对比图Fig.18 Comparison of the waveform of the upper computer processing signal with the original signal and the DMA acquisition signal waveform

4 总 结

1)基于提出的多功能可重配置I/O设备与自制负载板相结合的硬件在环系统I/O研究方案中,负载板的设计合理,能将原始驱动电流信号通过采样电阻采集进终端FPGA中.

2) 通过设计的传感器信号I/O实现算法,可以满足传感器参数化配置,适配不同曲轴凸轮轴信号的发动机传感器.

3)传感器信号I/O能模拟各类传感器信号,且ECU插接件端能实时接收I/O的传感器信号;执行器信号I/O能复原经过负载板处理的执行器原有波形信号,并实时反馈至柴油机仿真模型中,从而实现I/O数据的闭环控制.

4)基于FPGA设计的I/O信号同步特性好、信号精度高以及实时性能强等优点,能满足电控单元底层的判缸要求.

猜你喜欢
方波凸轮轴喷油
便携式多功能频率计的设计与实现
生物柴油及其混合燃料的喷油特性研究
测绘技术在土地资源管理中的应用
一种基于555定时器的方波产生电路设计
2017年一汽丰田卡罗拉1ZR-FE发动机正时校对方法
碳纳米管方波电沉积铂催化剂的制备及其催化性能研究
凸轮轴高速数控磨削在位测量技术
Delphi公司的新型电动凸轮轴相位调节器
采用新型喷油系统的柴油机开发及应用
Volvo公司新开发的喷油控制系统