是否为Leaky Bucket Algorithm?求嵌入式控制相似过滤算法名称
关于你提到的嵌入式控制过滤算法的名称解析
嘿,咱们先直接说结论:这不是标准的漏桶(Leaky Bucket)算法,但属于漏桶/令牌桶这类流量控制算法的定制变体,在嵌入式工业控制场景里通常被称为「异常事件补偿计数器」,或者更精准的称呼是「基于正常事件抵消的阈值触发过滤器」。
为啥不是标准漏桶?
标准漏桶算法的核心是匀速被动“漏水”——不管有没有新的事件进来,桶里的水都会以固定速率减少,当新进来的水超过桶的剩余容量时就触发溢出。而你的算法逻辑是主动用后续正常事件抵消之前的异常事件:只有异常事件会增加计数,正常事件会直接减少异常计数,只有当异常的净累计量超过Threshold时才触发过滤,这和标准漏桶的“被动匀速释放”逻辑有明显区别。
你的算法核心逻辑拆解
咱们把你提到的变量对应到实际逻辑里,大概是这样的(伪代码示例):
// 初始化异常计数 int BadEventCount = 0; // 每次事件触发时执行 if (IsBadEvent == TRUE) { BadEventCount++; } else { // 正常事件抵消异常,计数不低于0 BadEventCount = max(0, BadEventCount - 1); } // 检查是否触发过滤 if (BadEventCount >= Threshold) { trigger_filter(); }
这个算法的适用场景
这种逻辑特别适配你提到的周期性事件场景——比如传感器周期性上报、设备周期性状态检测:偶尔的异常不会直接触发告警,只要后续恢复正常就能“抵消”之前的异常,避免了因单次偶发干扰导致的误触发,在嵌入式机器控制里实用性拉满。
内容的提问来源于stack exchange,提问作者Dave Kellogg
相关产品推荐
相关产品推荐

