【汽车故障诊断6】一文了解Debounce算法

【汽车故障诊断5】ECU如何进行故障诊断对故障诊断系统的基本介绍,本文将其中的Debounce进行详细说明。

1 为什么需要Debounce  

故障诊断中使用debounce(去抖动)的原因是为了解决信号抖动问题。信号抖动是指在电路中接收到一个短暂的不稳定信号,可能是由于电源噪声、开关的物理特性或其他干扰因素引起的。当进行故障诊断时,通常需要监测输入信号的状态,并根据信号状态进行相应的判断和操作。如果信号存在抖动,可能会导致误判,从而产生错误的诊断结果。

         

图片

为了解决这个问题,就引入了debounce算法。具体来说,故障诊断策略判断出现了潜在故障信号,那么就会启动一个计时器/计数器,在计时器/计数器运行期间,如果检测到信号的状态发生变化,计时器/计数器会被重置。只有在计时器/计数器到达设定的稳定时间/次数后,才能确认故障。这样通过debounce算法,可以消除因信号抖动而带来的误判问题,提高故障诊断的准确性和可靠性。

2 Debounce算法  

故障诊断步骤是先进行故障检测,即根据前提条件和判断条件实时监控,判断是否有潜在的故障。通常采用4个状态(PREPASSED、PASSED、PREFAILED、FAILED)来表示判断的结果,对于有些故障,不需要经Debounce算法确认故障,这时判断的结果只有PASSED和FAILED,直接得到确认的故障;而对于有些故障,可能只是某些信号波动引起,不是故障,姑且称为潜在的故障,这时引入PREFAILED和PREPASSED来表示,需要采用Debounce算法才能进一步确认是否为故障。当前常用Debounce算法有基于计数器的Debounce算法和基于时间的Debounce算法两种。

2.1 基于计数器的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,这两个值均由用户自定义。

2.2 基于时间的Debounce算法  

该算法使用一个Debounce计时器(范围同样为-128到127)用来记录判断的结果,当根据前提条件和判断条件得到一次PREFAILED状态,那么计时器(Fault Detection Counter)开始计时,累计一段时间t_failed,仍然没有出现PREPASSED或PASSED状态,那么故障状态就变成Failed,如下图t1时刻;在t failed内,如果出现FAILED状态,那么故障状态就直接变成Failed,即故障被确认,如下图t4时刻。

当故障被确认了,接着当根据前提条件和判断条件得到一次PREPASSED状态,那么计数器归零,开始重新计时,同理一直PREPASSED状态,累计一段时间t_passed后,表示故障已消除。如下图t2时刻。

当故障被确认了,接着当根据前提条件和判断条件得到一次PASSED状态,那么计数器不需要累计时间,直接表明故障已消除,如下图t3时刻。

图片

         

2.3 小结  

通过上述两种Debounce算法可以知道其原理是:根据检测到“故障”状态(PREFAILED, FAILED, PREPASSED, PASSED)来增减计数器或定时器,只有次数或时间达到阈值,才能确认或消除故障。当报告的状态是PREFAILED时,计数器或定时器就累加一次;当累加次数或时间到Failed的域值,那么“故障”就被确认。其中的一些参数需要被定义清楚,因为这些参数将会决定故障需要多长时间确认或恢复,像上图中的步长,阈值和时间等参数。比如某个故障的确认时间为200ms,计数器每5ms计数一次,假设设定阈值为40,报告状态切换时,计数器总是从0开始计数,那么这时针对故障确认的固定步长设置为1。

总之,不同Debounce算法的细节处理会有所不同,可根据实际诊断需求来配置Debounce算法参数。另外,针对不同故障类型的确认,如何选用这两种Debounce算法。通常,对于timeout类故障,可采用基于时间的Debounce算法来完成确认;对于事件触发类故障,则可采用基于计数的Debounce算法来完成确认。

想了解更多汽车故障诊断内容, 请关注下篇文章。

-------------------------------------------------------------------------------------------------------------------------

汽车研发交流微信群,有兴趣的朋友请添加群主:prOmiseyes,备注:公司+职务入群。仅限汽车行业从业人员。

  • 30
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值