汽车ECU故障诊断功能解析系列6

汽车安全 1年前 (2023) admin
209 0 0

汽车ECU故障诊断功能解析系列5 (qq.com) 对故障诊断系统的基本介绍,本文将其中的Debounce进行详细说明。

1 为什么需要Debounce  

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

         汽车ECU故障诊断功能解析系列6

为了解决这个问题,就引入了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时刻。

汽车ECU故障诊断功能解析系列6

对于上图中的两个值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时刻。

汽车ECU故障诊断功能解析系列6

         

2.3 小结  

通过上述两种Debounce算法可以知道其原理是:根据检测到“故障”状态(PREFAILED, FAILED, PREPASSED, PASSED)来增减计数器或定时器,只有次数或时间达到阈值,才能确认或消除故障。当报告的状态是PREFAILED时,计数器或定时器就累加一次;当累加次数或时间到Failed的域值,那么“故障”就被确认。其中的一些参数需要被定义清楚,因为这些参数将会决定故障需要多长时间确认或恢复,像上图中的步长,阈值和时间等参数。比如某个故障的确认时间为200ms,计数器每5ms计数一次,假设设定阈值为40,报告状态切换时,计数器总是从0开始计数,那么这时针对故障确认的固定步长设置为1。
总之,不同Debounce算法的细节处理会有所不同,可根据实际诊断需求来配置Debounce算法参数。另外,针对不同故障类型的确认,如何选用这两种Debounce算法。通常,对于timeout类故障,可采用基于时间的Debounce算法来完成确认;对于事件触发类故障,则可采用基于计数的Debounce算法来完成确认。

请关注下篇文章。同时也可移步查看个人知乎的ECU故障诊断相关文章。

汽车ECU故障诊断功能解析系列6


         

         

         

         

原文始发于微信公众号(谦益行):汽车ECU故障诊断功能解析系列6

版权声明:admin 发表于 2023年7月14日 下午10:28。
转载请注明:汽车ECU故障诊断功能解析系列6 | CTF导航

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...