APP下载

基于双层改进无迹卡尔曼的曲轴信号修正算法

2021-11-06申立中王贵勇

关键词:无迹方波曲轴

申立中,姜 波,王贵勇

(昆明理工大学 云南省内燃机重点实验室,云南 昆明 650500)

0 引言

随着发动机电子控制技术的不断进步,针对汽车电器安全系统提出了更高的功能安全要求,能够有效降低随机硬件失效及系统性失效的风险[1].在《重型柴油车污染物排放限值及测量方法》(国六阶段)排放法规中对车辆发动机数据的采集功能对车载终端应能采集发动机排放相关数据同样做出规定[2].在发动机控制过程中,通过发动机曲轴信号建立发动机喷油控制的角度基准,以及利用凸轮轴信号识别发动机缸号.将曲轴模拟信号转换为易读取的方波信号,发动机处某一工况时,曲轴信号会有强烈波动,仅通过带通滤波器对曲轴信号处理无法有效消除信号失真;另外,发动机工作的恶劣环境及振动噪声等干扰信号,也会对发动机曲轴信号造成影响.因此利用软件算法对发动机曲轴信号进行处理和发动机相位识别显得尤为重要.

曲轴信号调理电路能够为发动机提供精确的判缸角度基准点[3].针对发动机曲轴信号进行分析[4-6],通过归神经网络和故障诊断算法,使用少量工况数据训练神经网络的方案对故障进行修正,能够提高发动机在故障状态下的诊断准故障率,但运行时存在大量计算,复杂程度较高,影响对发动机系统逻辑判断的失效性.针对跟踪缓慢和稳态偏差问题,通过一种强跟踪无迹卡尔曼滤波(Unscented Kalman Filter,UKF)目标跟踪算法[7],来保证目标的跟踪精度.另外,为了消除噪声带来的误差,通过一种高斯噪声驱动的算法模型[8],利用非高斯性的优点来满足计算要求.文献[9]针对未知输入的非线性系统,使用一种基于无迹卡尔曼滤波UKF的无偏最小方差估计(Unbiased Minimum-variance,UMV)方法,在抵抗非高斯噪声和异常值具有突出的优势.文献[10]通过一种新的双层无迹卡尔曼滤波方法对状态节点进行预测,验证了此算法对运动节点定位误差的修正性能.在曲轴传感器故障处理中,使用一种基于卡尔曼滤波残差检验[11]的方法,保证了诊断准确性.本文采用双层改进无迹卡尔曼滤波(DLIUKF)修正算法对曲轴信号、发动机噪声进行修正处理,一定程度上降低了对曲轴信号的干扰,简化了计算量,提高了发动机相位识别的准确性和可靠性.

基于以上分析,本研究对硬件电路及软件抗干扰能力不足的问题进行分析,在发动机曲轴信号中引入一种双层改进无迹卡尔曼滤波(DLIUKF)修正算法,分别利用高、低层无迹卡尔曼滤波算法对发动机曲轴信号误差率及拟合程度分别进行算法修正及仿真;后通过台架实验通过曲轴齿计数值追踪信号对双层改进无迹卡尔曼滤波(DLIUKF)修正算法进行有效性验证.

1 曲轴模拟信号检测

发动机曲轴信号盘上共均匀分布有60个矩形轮齿,正常齿共58齿,通常缺少2个正常矩形齿(缺齿),将缺齿合并为1齿,缺齿与正常齿宽的比值设置为1∶3,用于曲轴信号传递和上止点识别.按发动机曲轴信号盘转过一圈即360°计算,其中每个正常矩形齿为6°曲轴转角,缺齿为18°曲轴转角,对于曲轴盘缺齿处,曲轴模拟信号为零,如图1所示.

图1 曲轴模拟信号Fig.1 Crankshaft analog signal

对曲轴信号做中断处理时,每个曲轴方波信号的下降沿都将进入中断,从而对曲轴同步信号、曲轴齿周期等做出判断,如图2所示.

图2 曲轴信号中断处理Fig.2 Crankshaft signal interrupt processing

在获得当前曲轴齿周期之后判断曲轴模拟信号是否同步.如果曲轴模拟信号无同步,将进行同步操作.

本实验中定义在缺齿后的第一齿为正常齿.根据正常齿的转速和缺齿转速,计算后得到曲轴平均转速如以下公式所示.

式(1)中:TN1为曲轴缺齿的周期,TN1=58,TN2为曲轴正常齿的周期,TN2=(1~57),50为曲轴齿周期的时钟频率,单位为MHz.

2 曲轴方波信号滤波算法处理

为保证曲轴方波信号精度的准确性、稳定性,将采集、处理的曲轴方波信号传至发动机电控单元,将对发动机最优化运行起到重要的作用;考虑到噪声等干扰引起对曲轴方波信号的影响等因素,增加了曲轴状态的误差;后通过引入低层卡尔曼滤波算法对曲轴干扰信号进行修正及干扰排除,对于相邻齿的下降沿脉宽进行测量和估计值的计算,后通过基于双层改进无迹卡尔曼滤波(DLIUKF)的高层算法不断更新当前状态值,通过对不同时刻曲轴齿信号进行估计,让发动机始终处于最优控制中.

2.1 基于DLIUKF的低层算法

基于双层改进无迹卡尔曼滤波(DLIUKF)的低层算法,其基础是无迹卡尔曼滤波算法的一种采样策略逼近非线性分布的方法.采用卡尔曼线性滤波框架,以最小均方误差为主.对于随机变量的噪声来说,首先对高斯分布进行计算,将X设为被估计量,Z设为X的观测量(输出值),X^设为线性最小方差估计,对于估计量和观测量来说,如式(2)所示:

化简后得出线性最小方差估计如式(3)所示:

式(3)中:μx为平均值即数学期望,CXZ为两个随机变量X、Z之间的协方差.

一般来说,可将发动机工作的恶劣环境等同为非线性系统,为了将非线性系统线性化,通常由拓展卡尔曼滤波(EKF)和无迹卡尔曼滤波(UKF)完成.以上两种算法均能够用来解决非线性函数问题,扩展卡尔曼滤波(EKF)是非线性系统最广泛使用的估计算法[12],但拓展卡尔曼滤波存在计算量较大与线性误差等问题,而无迹卡尔曼滤波(UKF)算法基于卡尔曼滤波和无损变换,能够提高估算精度和稳定性,因此无迹卡尔曼滤波(UKF)对曲轴信号修正和估计.可得出非线性系统状态转移方程和观测方程分别为:

式(4)中:θf是对一维变量所测曲轴波形测量周期,Sf为一维的过程噪声,Wf+1是f+1时刻的观测变量,H(θf+1)为量测函数.由于存在噪声项,需对曲轴信号状态量进行拓维处理[13],针对式(4)所定义的框架,设状态变量为,其中为一维状态向量,表示f时刻曲轴位置,为输入向量,表示曲轴的速度向量,为发动机量测噪声向量;初始状态条件如式(5)所示:

对于之前的初始变量进行拓维,如式(6)所示:

之后进行西格玛采样:

通过对称采样策略,对k∈{1,2,…,N},N为所采样的西格玛点,得到点集}.式(7)中,为前n维组成的列向量,为n+1维组成的列向量,为均值加权时的均值.

以上低层滤波算法的预测方程基于(Unscented Transform,UT)无迹变换需对过程噪声进行单独处理,由于西格玛粒子随着扩维将不断增长,因此需要考虑过程噪声Sf,为了能在非线性系统下使用,同时采用确定性采样,能够提高计算精度[14].因此UT变换的特征为:

1)降低计算的复杂程度,降低算法难度.

2)提高算法滤波精度.

根据发动机的曲轴信号,可以对曲轴齿数进行判断,如图3所示.

图3 曲轴方波信号示意图Fig.3 Crankshaft square wave signal schematic

分别对相邻两个曲轴齿下降沿的脉宽进行测量,每测量一次都需要与前次脉宽测量最优估计值进行比较,来判断曲轴信号是否有效,有效则根据以上状态转移方程和观测方程进行计算.

2.2 基于DLIUKF的高层算法

基于以上对低层卡尔曼滤波算法的分析,基于双层改进无迹卡尔曼滤波(DLIUKF)的高层算法在预测方程的基础上确定每个Δt内测量曲轴齿的位置,随后建立一个关于曲轴齿位置和转速的高层算法模型,将曲轴齿位置和转速的线性状态空间描述为:,其中Xf是发动机曲轴齿f时刻的系统状态.对每个时刻进行测量,可以测量干扰信号(观测噪声).假设标准差是σS,且符合正态分布,本式中将测量误差等噪声假设为高斯白噪声,为速度,为曲轴齿位置对时间的导数,之后创建系统观测方程模型为:

式(8)中:θf+1是曲轴齿转过的角度,且为真实值,设观测模型A=[1 0],Vf+1为观测噪声,设为干扰信号.假设测量起始处的曲轴齿号、速度是准确的,可以得到一个协方差矩阵:

如果无法知道确切曲轴齿位置、速度,将协方差矩阵初始化为一个对角线元素为P的矩阵,P取较大值:

之后对0+Δt(下一时刻)的状态方程进行估计:

通过比较式(12)和式(10)可以看出,由于预测误差等因素,可得出式(12)的值大于式(10)的值,此时只能观测到曲轴齿位置,不能观测到速度x·.

此时能够计算出测量余量:

最后计算出卡尔曼增益为:

式(14)中:σZ为标准差,在得出卡尔曼增益后,更新X(1|1)和F(1|1):

式(15)为更新阶段状态估计,后通过式(14)能估计更新阶段的曲轴齿信号,通过当前状态的观测值和预测值,得出更新阶段的协方差矩阵:

通过式(16)能对协方差矩阵和曲轴齿信号进行下一次更新状态的估计,同时预测不断更新优化的当前曲轴齿信号,预测完毕后随即预测下一个时刻的状态,最后通过最优值去修正喷油补偿值,直到完成喷油时刻修正的目的.

3 仿真实验与分析

为验证双层改进无迹卡尔曼滤波(DLIUKF)修正算法对曲轴干扰信号修正性能和延迟时间性能,基于软件MATLAB进行仿真实验,模型建立步骤为:获得西格玛点及预测、计算均方差与协方差、对预测值进行UT变换后得到新的西格玛点集;高层模型建立步骤为:计算卡尔曼增益、状态量及方差更新、曲轴平均转速进行最优化估计,后将所建算法模型嵌入控制程序中进行仿真验证.

根据以上步骤,如图4所示对曲轴方波信号波动程度进行仿真,仿真时间为2.2 s,规定波动程度小于或等于0.5%时满足预期效果.在0.2 s时加入针对发动机曲轴方波信号的双层改进无迹卡尔曼滤波(DLIUKF)修正算法,在0.4~1.6 s内,双层改进无迹卡尔曼滤波(DLIUKF)修正算法波动程度为±0.7%,原始信号波动程度为±2.4%.在1.6~2.0 s时双层改进无迹卡尔曼滤波(DLIUKF)修正算法效果预估计值的效果相接近,波动程度为±0.4%,在2.0 s后波动程度趋于稳定,符合预期.特别的,较小波动程度在不同转速下能够有效消除曲轴方波信号中的曲轴干扰信号,提升对发动机判缸精度和相位识别,如图5所示.

图4 曲轴信号波动程度变化Fig.4 Crankshaft signal fluctuation degree change

图5 转速拟合曲线Fig.5 Rotational speed fitting curve

基于双层改进无迹卡尔曼滤波(DLIUKF)修正算法的曲轴方波信号和曲轴原始方波信号在非线性、高斯噪声低的情况下,双层改进无迹卡尔曼滤波(DLIUKF)修正算法的曲轴方波信号对曲轴方波信号的故障率处理能力优于曲轴原始方波信号,对估计值的拟合程度也比较好,一定程度上提高了其判断逻辑能力;如图6所示,在采样时间为0.4 s时,曲轴原始方波信号的故障率为双层改进无迹卡尔曼滤波(DLIUKF)修正算法的1.2倍;在采样时间分别为0.8 s、1.2 s时,曲轴原始方波信号的故障率分别为双层改进无迹卡尔曼滤波(DLIUKF)修正算法的17.8%与20.3%;而在1.4 s、1.8 s时,曲轴原始方波信号和双层改进无迹卡尔曼滤波(DLIUKF)修正算法的故障率差距达到了3.1倍和2.2倍;这说明双层改进无迹卡尔曼滤波(DLIUKF)修正算法能够有效降低曲轴方波信号中的故障率,同时提高曲轴方波信号的抗干扰能力.

图6 曲轴信号故障率Fig.6 Crankshaft signal failure rate

为验证在采样时间内双层改进无迹卡尔曼滤波(DLIUKF)修正算法在复杂计算下的逻辑功能匹配精度,分别对双层改进无迹卡尔曼滤波(DLIUKF)修正算法、拓展卡尔曼滤波(EKF)进行逻辑判断时间测试.

从图7可以看出,由于不同采样时间曲轴齿所处的位置不同,在发动机工作过程中算法逻辑判断的延迟时间也不尽相同,在采样时间内拓展卡尔曼滤波(EKF)由于其庞大的计算量和复杂程度,在100 s时拓展卡尔曼滤波(EKF)延迟时间较双层改进无迹卡尔曼滤波(DLIUKF)修正算法相比慢1.31 s,这说明双层改进无迹卡尔曼滤波(DLIUKF)修正算法能够有效降低因逻辑判断时间过长对修正精度造成的影响.

图7 不同采样时间内算法延迟比较Fig.7 Comparison of algorithm latency at different sampling times

4 台架试验

在实际工况中,只通过硬件电路来达到曲轴信号抗干扰的目的是困难的,不但会造成曲轴计数值不准确,也会导致发动机启动异常.为验证双层改进无迹卡尔曼滤波(DLIUKF)修正算法的可行性,使用实验室自主制作ECU、发动机为某型四缸高压共轨柴油机,如图8所示.

图8 实验台架及测试ECUFig.8 Experimental rig and test ECU

在输入信号中,曲轴、凸轮轴信号对发动机能否正常工作至关重要,两者均用于判断曲轴、凸轮轴的瞬态位置和气缸相位识别.将电平信号接入后,发动机每个曲轴方波信号的下降沿进入中断,在获取当前齿周期后判断曲轴方波信号特征与软件内获得的曲轴方波信号是否一致.

由图9不难看出所测得发动机曲轴方波信号中存在干扰信号,极易造成发动机曲轴方波信号出现异常多齿或缺齿的情况,为了更清晰反映算法对曲轴方波信号的影响,对相同曲轴齿的曲轴方波信号作为算法处理前后对照.对比后发现,使用双层改进无迹卡尔曼滤波(DLIUKF)修正算法能够抑制干扰信号产生,同时克服因干扰信号造成的多齿和缺齿情况产生,使发动机处于稳定运行状态.随后将发动机预估转速拟合在1 100 r/min,完成对曲轴齿数进行曲轴齿数计数值信号追踪.

图9 发动机曲轴方波信号算法处理前(上)和处理后(下)Fig.9 Before(up)and after(down)algorithm processing of engine crankshaft square wave signal

从图10能够看出,在预估转速拟合在1100 r/min时,由于发动机曲轴干扰信号的影响导致曲轴齿数出现计数值偏差,分别在15~20齿和40~45齿处出现曲轴缺齿、多齿信号.之后使用双层改进无迹卡尔曼滤波(DLIUKF)修正算法对曲轴齿计数值进行信号追踪测量,通过曲轴齿计数值追踪信号再次对15~20齿和40~45齿处测量,能够发现双层改进无迹卡尔曼滤波(DLIUKF)修正算法对曲轴信号突出的修正性能.

图10 曲轴齿原始信号(左)和修正信号(右)计数值Fig.10 Counting value of original signal(left)and correction signal(right)of crankshaft teeth

5 结论

针对发动机曲轴信号干扰的分析、算法修正及仿真,本文提出了一种基于双层改进无迹卡尔曼滤波(DLIUKF)修正算法,在建立非线性离散系统的状态转移方程及观测方程的基础上,通过对曲轴运动状态进行预测,完成对喷油时刻的修正和补偿来提高发动机相位识别精度,提高了对发动机曲轴信号的估算精度和稳定性,使发动机处于最优控制中.对台架实验分析表明,在预估转速拟合在1 100 r/min时,通过双层改进无迹卡尔曼滤波(DLIUKF)修正算法能够有效抑制发动机曲轴干扰信号产生,使发动机处于稳定运行状态.

猜你喜欢

无迹方波曲轴
浅析曲轴磨床的可靠性改进
一种曲轴竖置热处理装置设计
无迹卡尔曼滤波在电线积冰观测数据处理中的应用
基于支持向量机的曲轴动平衡控制方法
基于无迹卡尔曼滤波的行波波头辨识
碳纳米管方波电沉积铂催化剂的制备及其催化性能研究
应用RB无迹卡尔曼滤波组合导航提高GPS重获信号后的导航精度
方波外场下有限维量子系统的控制协议
基于Matlab的方波分解与合成仿真实验设计
基于无迹卡尔曼滤波的动力电池荷电状态估计