翟霄雁, 郭慶波, 高發(fā)廷
(中國重型汽車集團(tuán)汽車研究總院, 山東 濟(jì)南250002)
隨著汽車工業(yè)的發(fā)展,汽車電子化程度日益提高,多種電子控制系統(tǒng)在車輛上得到了廣泛的應(yīng)用。并且隨著電控程度的提高,電控系統(tǒng)采用了更多的傳感器和執(zhí)行器,這些傳感器、執(zhí)行器及電控系統(tǒng)本身工作情況的診斷,也成為電控系統(tǒng)功能的重要組成部分[1]。
故障診斷必須首選滿足精確性的要求,即系統(tǒng)有故障時,要及時報出來,提醒用戶,而系統(tǒng)沒有故障時,不能誤報故障,給用戶的使用造成困擾。然而車輛運(yùn)行工況的復(fù)雜性,決定了故障的診斷具有一定的難度。尤其是某些故障在某些工況下,可能會短暫地報出來,但是并不是真實的有故障發(fā)生,會給診斷造成一定困難。例如,車輛在崎嶇路面行駛,由于振動可能會造成線束短暫接觸不良,使某一信號短時丟失,并不是真正的線束斷路,這時不能報出該信號的開路故障。
本文針對故障診斷的這一難點問題,進(jìn)行了原始故障狀態(tài)的去抖動方法研究??梢愿鶕?jù)具體故障,采取不同的故障去抖動方法,設(shè)定不同的故障確認(rèn)時間及故障修復(fù)時間,保證故障診斷的精確性。
本文提出的故障去抖動方法有兩種:基于時間清零的故障去抖動方法和基于時間可累加的故障去抖動方法。
每個故障的確認(rèn)時間不同。例如有的故障持續(xù)發(fā)生1s就能確認(rèn)該故障真實發(fā)生,如電氣故障。有的故障需要持續(xù)發(fā)生30s才能確認(rèn)該故障真實發(fā)生,如動態(tài)合理性故障。需要針對每個故障設(shè)定故障確認(rèn)時間。
故障的原始狀態(tài)為1,表示按照故障的診斷邏輯,有故障發(fā)生。故障的原始狀態(tài)為0,表示按照故障的診斷邏輯,沒有故障發(fā)生。

圖1 基于時間清零的故障去抖動方法原理
如圖1所示,基于時間清零的故障去抖動方法,即當(dāng)故障原始狀態(tài)為1的持續(xù)時間達(dá)到故障確認(rèn)時間時,才確認(rèn)該故障發(fā)生。如果故障原始狀態(tài)為1的持續(xù)時間未達(dá)到故障確認(rèn)時間,則故障計數(shù)器和故障確認(rèn)等級都清零。
同樣在故障修復(fù)時,只有該故障原始狀態(tài)為0的持續(xù)時間達(dá)到故障修復(fù)時間時,才確認(rèn)該故障修復(fù)。否則,該故障還是屬于確認(rèn)發(fā)生狀態(tài)。
如圖2所示,電控系統(tǒng)運(yùn)行且無故障時,程序進(jìn)入OFF狀態(tài),此時故障的原始狀態(tài)st為0,故障計數(shù)器DDRC_st和故障確認(rèn)等級DDRC_DbLv的值也為0。當(dāng)故障的原始狀態(tài)st變?yōu)?時,程序跳轉(zhuǎn)至ON狀態(tài)的A1分狀態(tài)。如果st持續(xù)為1,計數(shù)器DDRC_st的值在程序的每個運(yùn)行周期加1,故障確認(rèn)等級DDRC_DbLv的值為:

式中:dt——該段程序運(yùn)行周期;DebDef——故障確認(rèn)時間。

圖2 基于時間清零的故障去抖動方法控制邏輯
如果故障計數(shù)器DDRC_st的值累加到DebDef/dt,程序跳轉(zhuǎn)至A3分狀態(tài),故障確認(rèn)等級DDRC_DbLv的值為100,即該故障確認(rèn)發(fā)生。故障計數(shù)器DDRC_st的值清零,等待重新計數(shù)。
如果故障計數(shù)器DDRC_st的值在沒有累加到DebDef/dt時,故障的原始狀態(tài)st就變?yōu)?,則程序進(jìn)入A2分狀態(tài),故障確認(rèn)等級DDRC_DbLv的值和故障計數(shù)器DDRC_st的值都清零,等待重新計數(shù)。
如上所述,故障確認(rèn)發(fā)生時處于A3分狀態(tài)。如果這時故障的原始狀態(tài)st變?yōu)?,程序跳轉(zhuǎn)至B1分狀態(tài)。如果st持續(xù)為0,計數(shù)器DDRC_st的值在程序的每個運(yùn)行周期加1,故障確認(rèn)等級DDRC_DbLv的值為:

當(dāng)故障計數(shù)器的值大于等于DebOk/dt時,由分狀態(tài)B1跳轉(zhuǎn)到分狀態(tài)A2,故障完全修復(fù)。
如果故障再次發(fā)生,則由分狀態(tài)A2跳轉(zhuǎn)到A1,重復(fù)上述過程。
如圖3所示,基于時間可累加的故障去抖動方法,即當(dāng)故障原始狀態(tài)為1時,故障計數(shù)器的值和故障確認(rèn)等級都增加。當(dāng)故障原始狀態(tài)變?yōu)?時,故障計數(shù)器的值和故障確認(rèn)等級都減小,不會直接清零。只有當(dāng)故障原始狀態(tài)為1的累積時間達(dá)到故障確認(rèn)時間時,才確認(rèn)該故障發(fā)生。
同樣在故障修復(fù)時,只有當(dāng)該故障的原始狀態(tài)為0的累積時間達(dá)到故障修復(fù)時間時,才確認(rèn)該故障修復(fù)。否則,該故障還是屬于確認(rèn)狀態(tài)。
該種去抖動方法適用于故障原始狀態(tài)變化比較頻繁的故障。這類故障由于故障原始狀態(tài)在1與0之間頻繁變化,很難維持較長時間,因此用基于時間清零的去抖動方法較難確認(rèn)。
如圖4所示,電控系統(tǒng)運(yùn)行且無故障時,程序進(jìn)入OFF狀態(tài),此時故障的原始狀態(tài)st為0,故障計數(shù)器DDRC_st和故障確認(rèn)等級DDRC_DbLv的值也為0。當(dāng)故障的原始狀態(tài)st變?yōu)?時,程序跳轉(zhuǎn)至ON狀態(tài)的A1分狀態(tài)。如果st持續(xù)為1,計數(shù)器DDRC_st的值在程序的每個運(yùn)行周期加1,故障確認(rèn)等級DDRC_DbLv的值由公式(1) 計算。

圖4 基于時間可累積的故障去抖動方法控制邏輯
如果故障計數(shù)器DDRC_st的值累加到DebDef/dt,程序跳轉(zhuǎn)至A3分狀態(tài),故障確認(rèn)等級DDRC_DbLv的值為100,即該故障確認(rèn)發(fā)生。故障計數(shù)器DDRC_st的值清零,等待重新計數(shù)。
如果故障計數(shù)器DDRC_st的值在沒有累加到DebDef/dt時,故障的原始狀態(tài)st就變?yōu)?,則程序進(jìn)入A2分狀態(tài),計數(shù)器DDRC_st的值在程序的每個運(yùn)行周期減1,故障確認(rèn)等級DDRC_DbLv的值由公式(1) 計算。
如果故障計數(shù)器的值減小到0,則跳轉(zhuǎn)至C1分狀態(tài)故障計數(shù)器和故障確認(rèn)等級值都為0。
如果故障的原始狀態(tài)st變?yōu)?,則程序跳轉(zhuǎn)至A1狀態(tài),故障計數(shù)器和故障確認(rèn)等級值繼續(xù)累加。
如上所述,故障確認(rèn)發(fā)生時處于A3分狀態(tài)。如果這時故障的原始狀態(tài)st變?yōu)?,程序跳轉(zhuǎn)至B1分狀態(tài)。如果st持續(xù)為0,計數(shù)器DDRC_st的值在程序的每個運(yùn)行周期加1,故障確認(rèn)等級DDRC_DbLv的值由公式(2) 計算。
如果故障計數(shù)器DDRC_st的值在沒有累加到DebOk/dt時,故障的原始狀態(tài)st就變?yōu)?,則程序跳轉(zhuǎn)至B2分狀態(tài),計數(shù)器DDRC_st的值在程序的每個運(yùn)行周期減1,故障確認(rèn)等級DDRC_DbLv的值由公式(2) 計算。
當(dāng)st變?yōu)?時,跳轉(zhuǎn)至B1分狀態(tài),故障計數(shù)器和故障確認(rèn)等級值繼續(xù)累加。
當(dāng)故障計數(shù)器的值大于等于DebOk/dt時,由分狀態(tài)B1跳轉(zhuǎn)到分狀態(tài)C1,故障完全修復(fù)。
如果故障再次發(fā)生,則由分狀態(tài)C1跳轉(zhuǎn)到A1,重復(fù)上述過程。
設(shè)故障確認(rèn)時間DebDef為3000ms,故障修復(fù)時間DebOk為1000ms,程序運(yùn)行周期dt為200ms。
故障原始狀態(tài)如圖5所示。
基于時間清零的故障去抖動方法,故障計數(shù)器和故障確認(rèn)等級的值如圖6所示?;跁r間可累積的故障去抖動方法,故障計數(shù)器和故障確認(rèn)等級的值如圖7所示。其中,橙色曲線為故障確認(rèn)等級的值,藍(lán)色曲線為故障計數(shù)器的值。
當(dāng)故障確認(rèn)等級為100時,該故障確認(rèn),可以向用戶報出故障。當(dāng)故障確認(rèn)等級為0時,該故障修復(fù)。

圖6 基于時間清零的故障去抖動方法仿真結(jié)果

圖7 基于時間可累積的故障去抖動方法仿真結(jié)果
通過以上仿真結(jié)果可以看到,采用基于時間清零的故障去抖動方法和基于時間可累積的故障去抖動方法,能有效防止故障誤報。通過對每個故障設(shè)置故障確認(rèn)時間和故障修復(fù)時間,能夠根據(jù)每個故障發(fā)生的實際情況,進(jìn)行準(zhǔn)確報出和修復(fù)。