筛选


筛选平台可实现处理其他实体状态的传感器。

筛选将信号处理算法应用于传感器,以前和当前状态,并生成一个新状态给定选择的算法。下一个图像描绘了使用该传感器的原始传感器和同一传感器的滤波传感器历史图零件。

配置

要在安装中启用过滤器传感器,请添加以下内容configuration.yaml文件:

#示例Configuration.yaml条目传感器-平台筛选姓名过滤实际的湿度”ENTITY_IDSensor.Realistic_humity过滤器-筛选离群值window_size4半径4.0-筛选低通time_constant10精确2-平台筛选姓名过滤实际的温度”ENTITY_ID传感器。真实_temperature过滤器-筛选离群值window_size4半径2.0-筛选低通time_constant10-筛选time_simple_moving_averagewindow_size00:05”精确2

可以将过滤器链接并根据配置文件中的顺序应用。

配置变量

ENTITY_ID 细绳 必需的

要过滤的传感器的实体ID。

姓名 细绳 ((可选的

在前端使用的名称。

唯一身份 细绳 ((可选的

唯一标识过滤器传感器的ID。将其设置为唯一值,以通过UI自定义。

过滤器 列表 必需的

使用过滤器。

筛选 细绳 必需的

用于过滤数据的算法。可用过滤器是低通,,,,离群值,,,,范围,,,,风门,,,,time_throttletime_simple_moving_average

window_size 整数|时间 ((可选的,默认:1

以前状态的窗口的大小。基于时间的过滤器,例如time_simple_moving_average将需要一个时间段(尺寸),而其他过滤器(例如离群值将需要一个整数(状态数的大小)。时间段HH:MM格式,必须引用。

精确 整数 ((可选的,默认:无

低通筛选。通过回合()的参数来定义过滤状态的精度。

time_constant 整数 ((可选的,默认:10

低通筛选。松散地与状态影响输出所需的时间有关。

半径 漂浮 ((可选的,默认:2.0

离群值筛选。以前状态中位数的带半径。

类型 细绳 ((可选的,默认:最后

time_simple_moving_average筛选。定义简单移动平均线的类型。

lower_bound 漂浮 ((可选的,默认:负无穷大

范围筛选。过滤器范围的下限。

upper_bound 漂浮 ((可选的,默认:正无限

范围筛选。上限用于滤波器范围。

过滤器

低通

低通滤波器(低通)是信号处理最常见的过滤器之一,因为它通过捷径峰和山谷来平滑数据。

随附的低通滤波器非常基础,并且基于指数平滑,其中先前的数据点与新数据点加权。

b=1.0/time_constant一个=1.0-b低通((状态=一个*以前的_STATE+b*状态

返回的值舍入到定义的小数数(精确)。

离群值

离群过滤器(离群值)是一个基本的带通滤波器,因为它切断了特定范围之外的任何值。

随附的离群过滤器将丢弃以前值中值的频段以外的任何值,并用上一个值的中值代替。如果在乐队内部,则返回当前状态。

距离=腹肌((状态-中位数((以前的_STATES))如果距离>半径中位数((以前的_STATES别的状态

风门

节气门过滤器(风门)仅更新窗口中第一个状态的传感器状态。这意味着过滤器将跳过所有其他值。

要调整速率,您需要设置window_size。要将传感器降低到10%,window_size应将其设置为10,为50%设置为2。

当您拥有一个传感器以非常高速率生成状态的传感器时,该过滤器很重要,您可能需要将其降低以存储或可视化目的。

时间油门

时间节气门滤波器(time_throttle)仅更新窗口中第一个状态的传感器状态。这意味着过滤器将跳过所有其他值。

要调整速率,您需要设置window_size。要将传感器降低到每分钟1个值,window_size应设置为“ 00:01”。

当您具有以非常高的不变速率生成状态的传感器时,此过滤器很重要,您可能希望将其降至一定的恒定速率来存储或可视化目的。

时间简单移动平均

时间SMA滤波器(time_simple_moving_average)基于纸不均间隔时间序列的算法:移动平均和其他滚动操作员由安德烈亚斯·埃克纳(Andreas Eckner)。

本文定义了简单移动平均线(SMA)的三种类型/版本:最后的,,,,下一个线性。目前仅最后的已实施。

如本文所述,Theta是window_size参数,可以使用时间符号表示(例如“ 00:05”五分钟的时间窗口)。

范围

范围过滤器(范围)将传入的数据限制为由下限和上限指定的范围。

所有更大的值都被上限所取代,并且所有低于下限的值都被下限所取代。根据默认值,既没有上限也没有下限。

如果new_state>upper_boundupper_bound如果new_state<lower_boundlower_boundnew_state