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时刻。
相关文章