申立中,姜 波,王貴勇
(昆明理工大學(xué) 云南省內(nèi)燃機重點實驗室,云南 昆明 650500)
隨著發(fā)動機電子控制技術(shù)的不斷進(jìn)步,針對汽車電器安全系統(tǒng)提出了更高的功能安全要求,能夠有效降低隨機硬件失效及系統(tǒng)性失效的風(fēng)險[1].在《重型柴油車污染物排放限值及測量方法》(國六階段)排放法規(guī)中對車輛發(fā)動機數(shù)據(jù)的采集功能對車載終端應(yīng)能采集發(fā)動機排放相關(guān)數(shù)據(jù)同樣做出規(guī)定[2].在發(fā)動機控制過程中,通過發(fā)動機曲軸信號建立發(fā)動機噴油控制的角度基準(zhǔn),以及利用凸輪軸信號識別發(fā)動機缸號.將曲軸模擬信號轉(zhuǎn)換為易讀取的方波信號,發(fā)動機處某一工況時,曲軸信號會有強烈波動,僅通過帶通濾波器對曲軸信號處理無法有效消除信號失真;另外,發(fā)動機工作的惡劣環(huán)境及振動噪聲等干擾信號,也會對發(fā)動機曲軸信號造成影響.因此利用軟件算法對發(fā)動機曲軸信號進(jìn)行處理和發(fā)動機相位識別顯得尤為重要.
曲軸信號調(diào)理電路能夠為發(fā)動機提供精確的判缸角度基準(zhǔn)點[3].針對發(fā)動機曲軸信號進(jìn)行分析[4-6],通過歸神經(jīng)網(wǎng)絡(luò)和故障診斷算法,使用少量工況數(shù)據(jù)訓(xùn)練神經(jīng)網(wǎng)絡(luò)的方案對故障進(jìn)行修正,能夠提高發(fā)動機在故障狀態(tài)下的診斷準(zhǔn)故障率,但運行時存在大量計算,復(fù)雜程度較高,影響對發(fā)動機系統(tǒng)邏輯判斷的失效性.針對跟蹤緩慢和穩(wěn)態(tài)偏差問題,通過一種強跟蹤無跡卡爾曼濾波(Unscented Kalman Filter,UKF)目標(biāo)跟蹤算法[7],來保證目標(biāo)的跟蹤精度.另外,為了消除噪聲帶來的誤差,通過一種高斯噪聲驅(qū)動的算法模型[8],利用非高斯性的優(yōu)點來滿足計算要求.文獻(xiàn)[9]針對未知輸入的非線性系統(tǒng),使用一種基于無跡卡爾曼濾波UKF的無偏最小方差估計(Unbiased Minimum-variance,UMV)方法,在抵抗非高斯噪聲和異常值具有突出的優(yōu)勢.文獻(xiàn)[10]通過一種新的雙層無跡卡爾曼濾波方法對狀態(tài)節(jié)點進(jìn)行預(yù)測,驗證了此算法對運動節(jié)點定位誤差的修正性能.在曲軸傳感器故障處理中,使用一種基于卡爾曼濾波殘差檢驗[11]的方法,保證了診斷準(zhǔn)確性.本文采用雙層改進(jìn)無跡卡爾曼濾波(DLIUKF)修正算法對曲軸信號、發(fā)動機噪聲進(jìn)行修正處理,一定程度上降低了對曲軸信號的干擾,簡化了計算量,提高了發(fā)動機相位識別的準(zhǔn)確性和可靠性.
基于以上分析,本研究對硬件電路及軟件抗干擾能力不足的問題進(jìn)行分析,在發(fā)動機曲軸信號中引入一種雙層改進(jìn)無跡卡爾曼濾波(DLIUKF)修正算法,分別利用高、低層無跡卡爾曼濾波算法對發(fā)動機曲軸信號誤差率及擬合程度分別進(jìn)行算法修正及仿真;后通過臺架實驗通過曲軸齒計數(shù)值追蹤信號對雙層改進(jìn)無跡卡爾曼濾波(DLIUKF)修正算法進(jìn)行有效性驗證.
發(fā)動機曲軸信號盤上共均勻分布有60個矩形輪齒,正常齒共58齒,通常缺少2個正常矩形齒(缺齒),將缺齒合并為1齒,缺齒與正常齒寬的比值設(shè)置為1∶3,用于曲軸信號傳遞和上止點識別.按發(fā)動機曲軸信號盤轉(zhuǎn)過一圈即360°計算,其中每個正常矩形齒為6°曲軸轉(zhuǎn)角,缺齒為18°曲軸轉(zhuǎn)角,對于曲軸盤缺齒處,曲軸模擬信號為零,如圖1所示.
圖1 曲軸模擬信號Fig.1 Crankshaft analog signal
對曲軸信號做中斷處理時,每個曲軸方波信號的下降沿都將進(jìn)入中斷,從而對曲軸同步信號、曲軸齒周期等做出判斷,如圖2所示.
圖2 曲軸信號中斷處理Fig.2 Crankshaft signal interrupt processing
在獲得當(dāng)前曲軸齒周期之后判斷曲軸模擬信號是否同步.如果曲軸模擬信號無同步,將進(jìn)行同步操作.
本實驗中定義在缺齒后的第一齒為正常齒.根據(jù)正常齒的轉(zhuǎn)速和缺齒轉(zhuǎn)速,計算后得到曲軸平均轉(zhuǎn)速如以下公式所示.
式(1)中:TN1為曲軸缺齒的周期,TN1=58,TN2為曲軸正常齒的周期,TN2=(1~57),50為曲軸齒周期的時鐘頻率,單位為MHz.
為保證曲軸方波信號精度的準(zhǔn)確性、穩(wěn)定性,將采集、處理的曲軸方波信號傳至發(fā)動機電控單元,將對發(fā)動機最優(yōu)化運行起到重要的作用;考慮到噪聲等干擾引起對曲軸方波信號的影響等因素,增加了曲軸狀態(tài)的誤差;后通過引入低層卡爾曼濾波算法對曲軸干擾信號進(jìn)行修正及干擾排除,對于相鄰齒的下降沿脈寬進(jìn)行測量和估計值的計算,后通過基于雙層改進(jìn)無跡卡爾曼濾波(DLIUKF)的高層算法不斷更新當(dāng)前狀態(tài)值,通過對不同時刻曲軸齒信號進(jìn)行估計,讓發(fā)動機始終處于最優(yōu)控制中.
基于雙層改進(jìn)無跡卡爾曼濾波(DLIUKF)的低層算法,其基礎(chǔ)是無跡卡爾曼濾波算法的一種采樣策略逼近非線性分布的方法.采用卡爾曼線性濾波框架,以最小均方誤差為主.對于隨機變量的噪聲來說,首先對高斯分布進(jìn)行計算,將X設(shè)為被估計量,Z設(shè)為X的觀測量(輸出值),X^設(shè)為線性最小方差估計,對于估計量和觀測量來說,如式(2)所示:
化簡后得出線性最小方差估計如式(3)所示:
式(3)中:μx為平均值即數(shù)學(xué)期望,CXZ為兩個隨機變量X、Z之間的協(xié)方差.
一般來說,可將發(fā)動機工作的惡劣環(huán)境等同為非線性系統(tǒng),為了將非線性系統(tǒng)線性化,通常由拓展卡爾曼濾波(EKF)和無跡卡爾曼濾波(UKF)完成.以上兩種算法均能夠用來解決非線性函數(shù)問題,擴展卡爾曼濾波(EKF)是非線性系統(tǒng)最廣泛使用的估計算法[12],但拓展卡爾曼濾波存在計算量較大與線性誤差等問題,而無跡卡爾曼濾波(UKF)算法基于卡爾曼濾波和無損變換,能夠提高估算精度和穩(wěn)定性,因此無跡卡爾曼濾波(UKF)對曲軸信號修正和估計.可得出非線性系統(tǒng)狀態(tài)轉(zhuǎn)移方程和觀測方程分別為:
式(4)中:θf是對一維變量所測曲軸波形測量周期,Sf為一維的過程噪聲,Wf+1是f+1時刻的觀測變量,H(θf+1)為量測函數(shù).由于存在噪聲項,需對曲軸信號狀態(tài)量進(jìn)行拓維處理[13],針對式(4)所定義的框架,設(shè)狀態(tài)變量為,其中為一維狀態(tài)向量,表示f時刻曲軸位置,為輸入向量,表示曲軸的速度向量,為發(fā)動機量測噪聲向量;初始狀態(tài)條件如式(5)所示:
對于之前的初始變量進(jìn)行拓維,如式(6)所示:
之后進(jìn)行西格瑪采樣:
通過對稱采樣策略,對k∈{1,2,…,N},N為所采樣的西格瑪點,得到點集}.式(7)中,為前n維組成的列向量,為n+1維組成的列向量,為均值加權(quán)時的均值.
以上低層濾波算法的預(yù)測方程基于(Unscented Transform,UT)無跡變換需對過程噪聲進(jìn)行單獨處理,由于西格瑪粒子隨著擴維將不斷增長,因此需要考慮過程噪聲Sf,為了能在非線性系統(tǒng)下使用,同時采用確定性采樣,能夠提高計算精度[14].因此UT變換的特征為:
1)降低計算的復(fù)雜程度,降低算法難度.
2)提高算法濾波精度.
根據(jù)發(fā)動機的曲軸信號,可以對曲軸齒數(shù)進(jìn)行判斷,如圖3所示.
圖3 曲軸方波信號示意圖Fig.3 Crankshaft square wave signal schematic
分別對相鄰兩個曲軸齒下降沿的脈寬進(jìn)行測量,每測量一次都需要與前次脈寬測量最優(yōu)估計值進(jìn)行比較,來判斷曲軸信號是否有效,有效則根據(jù)以上狀態(tài)轉(zhuǎn)移方程和觀測方程進(jìn)行計算.
基于以上對低層卡爾曼濾波算法的分析,基于雙層改進(jìn)無跡卡爾曼濾波(DLIUKF)的高層算法在預(yù)測方程的基礎(chǔ)上確定每個Δt內(nèi)測量曲軸齒的位置,隨后建立一個關(guān)于曲軸齒位置和轉(zhuǎn)速的高層算法模型,將曲軸齒位置和轉(zhuǎn)速的線性狀態(tài)空間描述為:,其中Xf是發(fā)動機曲軸齒f時刻的系統(tǒng)狀態(tài).對每個時刻進(jìn)行測量,可以測量干擾信號(觀測噪聲).假設(shè)標(biāo)準(zhǔn)差是σS,且符合正態(tài)分布,本式中將測量誤差等噪聲假設(shè)為高斯白噪聲,為速度,為曲軸齒位置對時間的導(dǎo)數(shù),之后創(chuàng)建系統(tǒng)觀測方程模型為:
式(8)中:θf+1是曲軸齒轉(zhuǎn)過的角度,且為真實值,設(shè)觀測模型A=[1 0],Vf+1為觀測噪聲,設(shè)為干擾信號.假設(shè)測量起始處的曲軸齒號、速度是準(zhǔn)確的,可以得到一個協(xié)方差矩陣:
如果無法知道確切曲軸齒位置、速度,將協(xié)方差矩陣初始化為一個對角線元素為P的矩陣,P取較大值:
之后對0+Δt(下一時刻)的狀態(tài)方程進(jìn)行估計:
通過比較式(12)和式(10)可以看出,由于預(yù)測誤差等因素,可得出式(12)的值大于式(10)的值,此時只能觀測到曲軸齒位置,不能觀測到速度x·.
此時能夠計算出測量余量:
最后計算出卡爾曼增益為:
式(14)中:σZ為標(biāo)準(zhǔn)差,在得出卡爾曼增益后,更新X(1|1)和F(1|1):
式(15)為更新階段狀態(tài)估計,后通過式(14)能估計更新階段的曲軸齒信號,通過當(dāng)前狀態(tài)的觀測值和預(yù)測值,得出更新階段的協(xié)方差矩陣:
通過式(16)能對協(xié)方差矩陣和曲軸齒信號進(jìn)行下一次更新狀態(tài)的估計,同時預(yù)測不斷更新優(yōu)化的當(dāng)前曲軸齒信號,預(yù)測完畢后隨即預(yù)測下一個時刻的狀態(tài),最后通過最優(yōu)值去修正噴油補償值,直到完成噴油時刻修正的目的.
為驗證雙層改進(jìn)無跡卡爾曼濾波(DLIUKF)修正算法對曲軸干擾信號修正性能和延遲時間性能,基于軟件MATLAB進(jìn)行仿真實驗,模型建立步驟為:獲得西格瑪點及預(yù)測、計算均方差與協(xié)方差、對預(yù)測值進(jìn)行UT變換后得到新的西格瑪點集;高層模型建立步驟為:計算卡爾曼增益、狀態(tài)量及方差更新、曲軸平均轉(zhuǎn)速進(jìn)行最優(yōu)化估計,后將所建算法模型嵌入控制程序中進(jìn)行仿真驗證.
根據(jù)以上步驟,如圖4所示對曲軸方波信號波動程度進(jìn)行仿真,仿真時間為2.2 s,規(guī)定波動程度小于或等于0.5%時滿足預(yù)期效果.在0.2 s時加入針對發(fā)動機曲軸方波信號的雙層改進(jìn)無跡卡爾曼濾波(DLIUKF)修正算法,在0.4~1.6 s內(nèi),雙層改進(jìn)無跡卡爾曼濾波(DLIUKF)修正算法波動程度為±0.7%,原始信號波動程度為±2.4%.在1.6~2.0 s時雙層改進(jìn)無跡卡爾曼濾波(DLIUKF)修正算法效果預(yù)估計值的效果相接近,波動程度為±0.4%,在2.0 s后波動程度趨于穩(wěn)定,符合預(yù)期.特別的,較小波動程度在不同轉(zhuǎn)速下能夠有效消除曲軸方波信號中的曲軸干擾信號,提升對發(fā)動機判缸精度和相位識別,如圖5所示.
圖4 曲軸信號波動程度變化Fig.4 Crankshaft signal fluctuation degree change
圖5 轉(zhuǎn)速擬合曲線Fig.5 Rotational speed fitting curve
基于雙層改進(jìn)無跡卡爾曼濾波(DLIUKF)修正算法的曲軸方波信號和曲軸原始方波信號在非線性、高斯噪聲低的情況下,雙層改進(jìn)無跡卡爾曼濾波(DLIUKF)修正算法的曲軸方波信號對曲軸方波信號的故障率處理能力優(yōu)于曲軸原始方波信號,對估計值的擬合程度也比較好,一定程度上提高了其判斷邏輯能力;如圖6所示,在采樣時間為0.4 s時,曲軸原始方波信號的故障率為雙層改進(jìn)無跡卡爾曼濾波(DLIUKF)修正算法的1.2倍;在采樣時間分別為0.8 s、1.2 s時,曲軸原始方波信號的故障率分別為雙層改進(jìn)無跡卡爾曼濾波(DLIUKF)修正算法的17.8%與20.3%;而在1.4 s、1.8 s時,曲軸原始方波信號和雙層改進(jìn)無跡卡爾曼濾波(DLIUKF)修正算法的故障率差距達(dá)到了3.1倍和2.2倍;這說明雙層改進(jìn)無跡卡爾曼濾波(DLIUKF)修正算法能夠有效降低曲軸方波信號中的故障率,同時提高曲軸方波信號的抗干擾能力.
圖6 曲軸信號故障率Fig.6 Crankshaft signal failure rate
為驗證在采樣時間內(nèi)雙層改進(jìn)無跡卡爾曼濾波(DLIUKF)修正算法在復(fù)雜計算下的邏輯功能匹配精度,分別對雙層改進(jìn)無跡卡爾曼濾波(DLIUKF)修正算法、拓展卡爾曼濾波(EKF)進(jìn)行邏輯判斷時間測試.
從圖7可以看出,由于不同采樣時間曲軸齒所處的位置不同,在發(fā)動機工作過程中算法邏輯判斷的延遲時間也不盡相同,在采樣時間內(nèi)拓展卡爾曼濾波(EKF)由于其龐大的計算量和復(fù)雜程度,在100 s時拓展卡爾曼濾波(EKF)延遲時間較雙層改進(jìn)無跡卡爾曼濾波(DLIUKF)修正算法相比慢1.31 s,這說明雙層改進(jìn)無跡卡爾曼濾波(DLIUKF)修正算法能夠有效降低因邏輯判斷時間過長對修正精度造成的影響.
圖7 不同采樣時間內(nèi)算法延遲比較Fig.7 Comparison of algorithm latency at different sampling times
在實際工況中,只通過硬件電路來達(dá)到曲軸信號抗干擾的目的是困難的,不但會造成曲軸計數(shù)值不準(zhǔn)確,也會導(dǎo)致發(fā)動機啟動異常.為驗證雙層改進(jìn)無跡卡爾曼濾波(DLIUKF)修正算法的可行性,使用實驗室自主制作ECU、發(fā)動機為某型四缸高壓共軌柴油機,如圖8所示.
圖8 實驗臺架及測試ECUFig.8 Experimental rig and test ECU
在輸入信號中,曲軸、凸輪軸信號對發(fā)動機能否正常工作至關(guān)重要,兩者均用于判斷曲軸、凸輪軸的瞬態(tài)位置和氣缸相位識別.將電平信號接入后,發(fā)動機每個曲軸方波信號的下降沿進(jìn)入中斷,在獲取當(dāng)前齒周期后判斷曲軸方波信號特征與軟件內(nèi)獲得的曲軸方波信號是否一致.
由圖9不難看出所測得發(fā)動機曲軸方波信號中存在干擾信號,極易造成發(fā)動機曲軸方波信號出現(xiàn)異常多齒或缺齒的情況,為了更清晰反映算法對曲軸方波信號的影響,對相同曲軸齒的曲軸方波信號作為算法處理前后對照.對比后發(fā)現(xiàn),使用雙層改進(jìn)無跡卡爾曼濾波(DLIUKF)修正算法能夠抑制干擾信號產(chǎn)生,同時克服因干擾信號造成的多齒和缺齒情況產(chǎn)生,使發(fā)動機處于穩(wěn)定運行狀態(tài).隨后將發(fā)動機預(yù)估轉(zhuǎn)速擬合在1 100 r/min,完成對曲軸齒數(shù)進(jìn)行曲軸齒數(shù)計數(shù)值信號追蹤.
圖9 發(fā)動機曲軸方波信號算法處理前(上)和處理后(下)Fig.9 Before(up)and after(down)algorithm processing of engine crankshaft square wave signal
從圖10能夠看出,在預(yù)估轉(zhuǎn)速擬合在1100 r/min時,由于發(fā)動機曲軸干擾信號的影響導(dǎo)致曲軸齒數(shù)出現(xiàn)計數(shù)值偏差,分別在15~20齒和40~45齒處出現(xiàn)曲軸缺齒、多齒信號.之后使用雙層改進(jìn)無跡卡爾曼濾波(DLIUKF)修正算法對曲軸齒計數(shù)值進(jìn)行信號追蹤測量,通過曲軸齒計數(shù)值追蹤信號再次對15~20齒和40~45齒處測量,能夠發(fā)現(xiàn)雙層改進(jìn)無跡卡爾曼濾波(DLIUKF)修正算法對曲軸信號突出的修正性能.
圖10 曲軸齒原始信號(左)和修正信號(右)計數(shù)值Fig.10 Counting value of original signal(left)and correction signal(right)of crankshaft teeth
針對發(fā)動機曲軸信號干擾的分析、算法修正及仿真,本文提出了一種基于雙層改進(jìn)無跡卡爾曼濾波(DLIUKF)修正算法,在建立非線性離散系統(tǒng)的狀態(tài)轉(zhuǎn)移方程及觀測方程的基礎(chǔ)上,通過對曲軸運動狀態(tài)進(jìn)行預(yù)測,完成對噴油時刻的修正和補償來提高發(fā)動機相位識別精度,提高了對發(fā)動機曲軸信號的估算精度和穩(wěn)定性,使發(fā)動機處于最優(yōu)控制中.對臺架實驗分析表明,在預(yù)估轉(zhuǎn)速擬合在1 100 r/min時,通過雙層改進(jìn)無跡卡爾曼濾波(DLIUKF)修正算法能夠有效抑制發(fā)動機曲軸干擾信號產(chǎn)生,使發(fā)動機處于穩(wěn)定運行狀態(tài).
昆明理工大學(xué)學(xué)報(自然科學(xué)版)2021年5期