Debounce算法
故障診斷步驟是先進行故障檢測,即根據前提條件和判斷條件實時監控,判斷是否有潛在的故障。通常采用4個狀態(PREPASSED、PASSED、PREFAILED、FAILED)來表示判斷的結果,對于有些故障,不需要經Debounce算法確認故障,這時判斷的結果只有PASSED和FAILED,直接得到確認的故障;而對于有些故障,可能只是某些信號波動引起,不是故障,姑且稱為潛在的故障,這時引入PREFAILED和PREPASSED來表示,需要采用Debounce算法才能進一步確認是否為故障。當前常用Debounce算法有基于計數器的Debounce算法和基于時間的Debounce算法兩種。
基于計數器的Debounce算法
該算法使用一個Debounce計數器(計數范圍取決于具體的定義)用來記錄判斷的結果,當根據前提條件和判斷條件得到一次PREFAILED狀態,那么計數器(Fault Detection Counter)會增加一個步長,以此不斷累加,當累計計數達到設定的Failed限值時,故障狀態就變成Failed,即潛在故障被確認,如下圖t1時刻。有些故障被確認后,是有可能被恢復的,也就是說只要根據前提條件和判斷條件得到一次PREPASSED狀態,那么計數器(Fault
Detection Counter)會減小一個步長,以此不斷減小,當達到設定的Passed限值時,故障狀態就變成Passed,即故障已消除,如下圖t2時刻。
對于上圖中的兩個值Jump down value,和Jump up value),此處需要再解釋一下,所謂Jump down value是指故障被確認處于Failed狀態,如果下一次根據檢測的前提條件和判斷條件得到PREPASSED狀態,這時計數器的數值不會從設定的FAILED限值開始減小一個步長,而是跳到Jump down value開始減小一個步長。同理去理解Jump up value,這兩個值均由用戶自定義。
基于時間的Debounce算法
該算法使用一個Debounce計時器(范圍同樣為-128到127)用來記錄判斷的結果,當根據前提條件和判斷條件得到一次PREFAILED狀態,那么計時器(Fault
Detection Counter)開始計時,累計一段時間t_failed,仍然沒有出現PREPASSED或PASSED狀態,那么故障狀態就變成Failed,如下圖t1時刻;在tfailed內,如果出現FAILED狀態,那么故障狀態就直接變成Failed,即故障被確認,如下圖t4時刻。當故障被確認了,接著當根據前提條件和判斷條件得到一次PREPASSED狀態,那么計數器歸零,開始重新計時,同理一直PREPASSED狀態,累計一段時間t_passed后,表示故障已消除。如下圖t2時刻。當故障被確認了,接著當根據前提條件和判斷條件得到一次PASSED狀態,那么計數器不需要累計時間,直接表明故障已消除,如下圖t3時刻。
-
汽車電子
+關注
關注
3026文章
7941瀏覽量
166913 -
算法
+關注
關注
23文章
4607瀏覽量
92840 -
ecu
+關注
關注
14文章
886瀏覽量
54485 -
汽車
+關注
關注
13文章
3493瀏覽量
37253
發布評論請先 登錄
相關推薦
評論