Skip to content

Signal Calculation Service

构想

Signal Calculation Service 处理实体传感器的时间序列数据。该服务可聚合、修改、平滑和转换原始传感器数据,以便与原始数据一起进行进一步分析或存储。

该服务使用户能够执行以下任务:

  • 检测缺失的传感器值
  • 用内插传感器值替代缺失的传感器值
  • 根据可用的传感器读数计算新的物理参数
  • 在滑动窗口上聚合传感器值

访问

要访问此服务,您需要具有 Analytics Services 角色和范围中列出的相应角色。

基础知识

配置选项

除了使用一个或多个时间序列(IoT 模型格式的原始传感器数据)作为输入之外,该服务还使用特定配置进行信号计算。配置信息包括以下部分:

  • 运算
    处理时间序列的常用运算
  • 参数
    运算参数
  • 操作数
    一组操作数,每个操作数定义了实体、属性集和要运算的时间序列数据的属性
  • 结果
    将输出格式定义为 IoT 模型时间序列:实体、属性集和生成的时间序列的属性

该服务对原始传感器数据执行运算,并以计算的时间序列(即软传感器)进行响应。

运算

Signal Calculation Service 执行以下运算:

  • 单参数数学
    • Absolute:数值的绝对值
    • Lg:数值以 10 为底的对数
    • Ln:数值以 e 为底的对数
    • Exp:数值的指数值
    • Cos:数值的余弦值
    • ArcCos:数值的反余弦值
    • Cosh:数值的双曲余弦值
    • Sin:数值的正弦值
    • ArcSin:数值的反正弦值
    • Sinh:数值的双曲正弦值
    • Tan:数值的正切值
    • ArcTan:数值的反正切值
    • Tanh:数值的双曲正切值
    • Sqrt:数值的平方根值
    • Not:数值的负值
    • IsNull:检查是否为空
    • SignNegation:更改数值的符号
  • 双参数数学
    • Add:将两个数值相加
    • Subtract:将两个数值相减
    • Multiply:将两个数值相乘
    • Divide:将两个数值相除
    • Power:将第一个操作数增加到第二个操作数的幂指数
    • LessThan:比较两个数值
    • GreaterThan:比较两个数值
    • GreaterThanOrEquals:比较两个数值
    • LessThanOrEquals:比较两个数值
    • Equals:检查两个值是否相等
    • NotEquals:检查两个值是否不相等
    • And:对两个值应用 boolean 逻辑
    • Or:对两个值应用 boolean 逻辑
  • 多参数数学
    • Min:比较多个数值并生成最小值
    • Max:比较多个数值并生成最大值
    • Mean:生成多个数值的平均值
    • Median:生成多个数值的中间值
    • Sum:生成多个数值的和
  • 过滤
    删除所选 boolean 属性设置为true的时间序列的所有条目。
  • 合并
    合并两个或多个时间序列。输出时间序列包含现有时间戳和新的“内插”时间戳,具体取决于所选模式:
    • Last-Non-Null
      如果找到非同步时间戳,则对于每个时间序列,将为新时间戳采用最后一个非空值。
    • 线性插值
      如果找到非同步时间戳,则对于每个时间序列,对于新时间戳采用最近两个连续值之间的内插值。
    • 重新采样
      从用户定义的特定和等距的时间戳的现有时间序列数据中获取插值
  • 常量
    使用常量来应用其它运算
  • 转换
    将功能类型转换为其它类型
  • 单参数字符串
    • Capitalize:使字符串的第一个字母大写
    • LowerCase:使字符串的所有字母小写
    • UpperCase:使字符串的所有字母大写
    • Md5Checksum:生成字符串的 MD5 哈希值
    • RemoveDiacritic:从字符串中删除变音字符
    • RemoveDuplicates:从字符串中删除重复的字符
    • Reverse:从字符串中反转字符的顺序
    • ToEmpty:将字符串转换为空字符串
    • Length:返回字符串的字符数。
  • 双参数字符串
    • CapitalizeBy:在第一个操作数上将第二个操作数转换为大写
    • RemoveChars:从第一个参数中删除第二个参数
    • Concat:连接两个字符串
    • Compare:比较两个字符串
    • RegexMatcher:检查字符串(第一个参数)是否遵循给定的正则表达式(第二个参数)并返回 Boolean。
    • Count:将第二个参数的出现次数返回到第一个操作数
    • IndexOf:将第二个参数的索引返回到第一个参数
    • LastIndexOfChar:将第二个参数的最后一个索引返回到第一个参数
    • SubString:从给定索引(第二个参数)开始返回第一个参数的子字符串
  • 三参数字符串
    • Replace:在字符串(第一个操作数)中搜索给定的字符串(第二个操作数)并用给定的字符串(第三个操作数)替换它。
    • RegexReplace:在字符串(第一个操作数)中搜索给定的正则表达式(第二个操作数)并用给定的字符串(第三个操作数)替换它。
    • SubStringInterval:从给定的起始索引(第二个操作数)和结束索引(第三个操作数)开始返回字符串(第一个操作数)的子字符串。
  • 单参数 DateTime
    • IsWeekend:检查某个 DateTime 是否在周末。
    • IsWorkDay:检查某个 DateTime 是否在工作日。
    • GetYears:从给定的 DateTime 返回年数。
    • GetMonths:从给定的 DateTime 返回月数。
    • GetDays:从给定的 DateTime 返回天数。
    • GetHours:从给定的 DateTime 返回小时数。
    • GetMinutes:从给定的 DateTime 返回分钟数。
    • GetSeconds:从给定的 DateTime 返回秒数。
    • GetMilliseconds:从给定的 DateTime 返回毫秒数。
  • 双参数 DateTime
    • AddDateTime:该运算将两个 DateTime 值相加
    • AddYears:返回一个新的 DateTime,它将指定的年数添加到实例的值中。
    • AddMonths:返回一个新的 DateTime,它将指定的月数添加到实例的值中。
    • AddDays:返回一个新的 DateTime,它将指定的天数添加到实例的值中。
    • AddHours:返回一个新的 DateTime,它将指定的小时数添加到实例的值中。
    • AddMinutes:返回一个新的 DateTime,它将指定的分钟数添加到实例的值中。
    • AddSeconds:返回一个新的 DateTime,它将指定的秒数添加到实例的值中。
    • AddMilliseconds:返回一个新的 DateTime,它将指定的毫秒数添加到实例的值中。
    • SubtractDateTime:该运算将两个 DateTime 值相减并返回毫秒间隔。
    • SubtractYears:返回一个新的 DateTime,它从此实例的值减去指定的年数。
    • SubtractMonths:返回一个新的 DateTime,它从此实例的值减去指定的月数。
    • SubtractDays:返回一个新的 DateTime,它从此实例的值减去指定的天数。
    • SubtractHours:返回一个新的 DateTime,它从此实例的值减去指定的小时数。
    • SubtractMinutes:返回一个新的 DateTime,它从此实例的值减去指定的分钟数。
    • SubtractSeconds:返回一个新的 DateTime,它从此实例的值减去指定的秒数。
    • SubtractMilliseconds:返回一个新的 DateTime,它从此实例的值减去指定的毫秒数。
    • LessThanDateTime:该运算比较两个 DateTime 值。
    • GreaterThanDateTime:该运算比较两个 DateTime 值。
    • GreaterThanOrEqualsDateTime:该运算比较两个 DateTime 值。
    • EqualsDateTime:该运算检查两个 DateTime 值是否相等
    • NotEqualsDateTime:该运算检查两个 DateTime 值是否相等
  • 观察窗口和聚合器
    • Time window:从时间间隔收集连续的条目序列并应用聚合函数列表
    • Length window:收集具有固定数量条目的连续序列并应用聚合函数列表
  • 延迟
    • Events based:使用指定的数字将输入中的事件向右移动
    • Time period based:使用请求中收到的指定毫秒延迟条目的时间
  • 生成器
    • Continuous:为每个给定的时间段生成只包含时间戳的简单条目
    • Temporal:基于周期参数和作为输入接收的事件数生成输入条目的副本

所有运算输入和输出都使用数据类型integer64doubleboolean中的一种。如果其中一个操作数为 Null,则结果为 Null。

功能

Signal Calculation Service 公开其 API 以实现以下任务:

  • 将数学运算应用于时间序列的指定属性
  • 按指定的 boolean 属性过滤时间序列
  • 合并多个时间序列

示例场景

啤酒厂的经理想要计算生产线上某个组件的平均温度。

使用 IoT Time Series Service 收集生产线上相关温度传感器的时间序列数据。将所需时间段的时间序列送入 Signal Calculation Service API 并生成中值。评估生成的响应。

相关链接

还有问题?

向社区提问


除非另行声明,该网站内容遵循MindSphere开发许可协议.


Last update: July 11, 2019