总线数据异常监测方案

该方案旨在提高总线数据异常监测的准确性和灵敏度,结合传统阈值方法、卷积算法和自适应阈值。通过判断通信间隔、应用卷积算法提取特征、动态调整阈值,能够有效识别异常情况。系统设计包括数据预处理、卷积运算、自适应阈值计算及异常检测逻辑,适用于动态环境和复杂模式识别。

type
status
date
slug
summary
tags
category
icon
password

一、设计背景

在SPI(串行外设接口)或CAN(总线通信接口)或USB(通用串行总线接口)通信系统中,准确地检测通信间隔的异常至关重要。传统的异常检测方法(如固定阈值或基本统计分析)可能无法有效处理数据的复杂性和动态性。因此,本系统采用结合传统阈值方法和卷积算法和自适应阈值的方法,以提高检测的准确性和灵敏度。

二、系统功能

阈值判断:对于每个独立的主题接收到的数据帧,判断当前帧的时间与上一帧的时间,若时间大于5秒,则判定超时失败,终止下述流程,否则进行下述流程。
卷积算法应用:利用卷积算法分析时间序列数据,能有效地识别数据中的微妙模式和复杂变化。如下为卷积过程的设计方案:
  • 定义与目的:在这个场景中,卷积滤波器是一组预定义的权重,应用于数据的一个子集(一个窗口),随着窗口在整个时间序列上滑动而施加。其主要目的是从数据中提取或强调某些特征,如趋势、突增或异常。
  • 滤波器设计:滤波器的设计基于待分析的通信间隔的特定特征。例如,一个简单的差分滤波器(例如:卷积核[-1, 0, 1]的操作等同于计算每个数据点与其后第二个点的差值,这种差分卷积可以突出数据的变化率。卷积后输出的数据中,正值表示增加,负值表示减少)可以突出间隔中的突然变化,表明潜在的异常。
  • 滤波器大小(内核):滤波器的大小,也称为内核大小,决定了在卷积的每一步中考虑了多少数据点。更大的滤波器大小意味着包含了更多的数据点,可以平滑短期波动,但可能会稀释尖锐变化的影响
  • 权重分配:滤波器中的权重决定了窗口内每个数据点对输出的影响。这些权重可以是均匀的(给所有点赋予相同的重要性)或是变化的(给特定点更多的重要性,如最近的点)
自适应阈值调整:根据数据的动态变化自动调整异常检测阈值,适应不同的通信状态,并通过精确分析数据的当前趋势和整体上下文,减少误判的情况。如下为自适应阈值调整过程的设计方案:
  • 定义与目的:自适应阈值是一种基于最近数据变化来动态调整的阈值设置方法。它旨在更精确地识别异常,特别是在数据模式随时间变化的情况下
  • 阈值调整机制:这种方法通常依赖于滑动窗口内数据的统计特征,如移动平均或标准差。阈值根据这些统计特征的变化而相应调整,以反映最近的数据趋势和波动
  • 动态适应性:自适应阈值能够适应数据的自然变化,如在不同时间段内通信间隔的变化,从而减少因固定阈值设置不当引起的误报
  • 减少误报:由于能够跟随数据的自然波动调整,自适应阈值方法能够有效减少误报的发生

三、流程说明

下图所示为ZMQ订阅的数据对于不同主题的分流规则:
图2 订阅数据分流规则
图2 订阅数据分流规则
下图所示为异常数据检测流程图:
图3 异常数据检测框图
图3 异常数据检测框图
流程说明:
  • 开始:启动异常检测流程。
  • 收集通信间隔数据:不断收集和存储总线通信的间隔数据。
  • 是否超时(5秒):判断自上次接收数据以来是否已超过5秒,如果超过5秒未收到数据,标记为超时,并跳过后续处理,否则继续处理。
  • 数据窗口是否满:检查当前数据是否填满设定的窗口大小。
  • 应用卷积算法:对窗口内的数据应用卷积算法,提取特征。
  • 计算移动平均:基于窗口内的数据计算移动平均值。
  • 计算卷积输出:得到卷积处理后的数据。
  • 计算动态阈值:根据移动平均值和设定的倍数计算动态阈值。
  • 卷积输出是否超过阈值:判断卷积输出是否超过计算出的阈值。
  • 标记为异常:如果卷积输出超过阈值,标记当前状态为异常,并输出至异常数据库中。
  • 标记为正常:如果卷积输出未超过阈值,标记当前状态为正常。
  • 结束:完成当前数据点的处理。

四、实现方法

数据预处理:订阅各总线接收到的数据,并统计各次通信的时间间隔数据,进行适当的格式化和标准化(添加时间戳记录当前帧接收的时间)。若数据超过5s仍未接收,则直接记录异常并返回错误。对于接收到的数据,维持一个长度为100的队列,当长度达到100时,将数据送至下一步处理,并删除前10个数据。
卷积过滤器设计:根据需要检测的异常类型设计相应的卷积过滤器。通常使用预定义的滤波器(在这里使用差分滤波器,核函数为:[1, 0, -1])分析数据。
卷积运算实施:在时间序列数据上执行卷积运算,突出通信间隔数据的重要变化,为异常检测提供基础。
自适应阈值计算:基于卷积输出的统计特征(如移动平均值和标准差,在这里计算移动平均值)来确定异常检测阈值。阈值根据移动平均值乘以一个固定倍数(阈值因子,这里选择0.2倍)动态确定,倍数越高,则系统对小的变化就越敏感。
异常检测逻辑:综合卷积输出和自适应阈值的结果,通过比较最新的卷积值和阈值来判断是否存在通信异常。若检测到异常,则输出相应的信息。
五、技术细节改进
参数调整:根据系统特性精细调整卷积过滤器和自适应阈值的参数,确保尽量减少误报的情况下提高系统的异常灵敏度。
实时处理能力:确保系统能够处理高频率的数据并实时响应。
健壮性测试:在不同的运行环境和条件下测试系统的稳定性和准确性。主要针对于缓变的时间序列和突变的时间序列。对于突变的时间序列,由于在一个滑动窗口内突变的数据与相邻的数据具有显著差异,可以很容易地通过卷积的方式检测出来,并上报至异常数据库;对于缓变的时间序列,由于在一个滑动窗口内突变的数据与相邻的数据差异不明显,虽说使用卷积的方式不易检查,但随着时间的推移,滑动窗口内的数据的均值和方差也会出现明显的变化,也可以通过动态阈值方式加以检测,正所谓:“量变终将引起质变”。
六、应用场景
动态环境适应性:在总线通信负载或行为频繁变化的环境中特别有效。
复杂模式识别:适用于需要识别渐变趋势或周期性偏差等复杂异常模式的场景。
大数据量处理:能够有效处理大量的通信数据,适用于高性能需求的系统。
Loading...