适合 formula/algorithm 用于检测温度波动

suitable formula/algorithm for detecting temperature fluctuations

我正在创建一个应用程序来监测水质。温度数据每 2 分钟更新一次到 firebase 实时数据库。应用有两个要求

1) 当温度超过 33 度或低于 23 度时应提醒用户 - 这部分已完成

2) 每 30 分钟分析一次数据后,当温度波动较大时应该提醒用户 - 这部分我很困惑。

我不知道用什么算法来检测一段时间内的大温度波动并提醒用户。有人可以帮我解决这个问题吗?

首先定义波动的含义。

你没说你用的是什么温标。华氏温度、摄氏温度、朗肯温度或开尔文温度?

您的采样率是每两分钟一个新数据值。您是否将波动定义为上一个点与当前值之间的差值的绝对值?这是可以防御的。

如果允许的最大绝对值是您的 33-23 = 10 度的倍数,那么您就可以了。

在 30 分钟的时间内,您的应用会为您提供 15 个值。

如果你想找出这个数据的一个大变化,那么有一种方法可以做到。 您可以使用实现以下方法:

  1. 计算值的均值和标准差

  2. 用平均值减去你的数据然后取结果的绝对值.

  3. 比较绝对值是否大于一个标准差,如果大于则数据大

请参阅此示例以更好地理解:

假设您有这些值 10 分钟:

25,27,24,35,28

第一步:

平均值 = 27(约)

一个标准差= 3.8

第二步:绝对值(数据 - 均值)

绝对值(25-27) = 2

绝对值(27-27) = 0

绝对值(24-27) = 3

绝对值(35-27) = 8

绝对值(28-27) = 1

第三步

检查减法是否大于标准差

abs(35-27) 给出大于 3.8 的 8

所以,波动很大。如果所有相减的结果都小于标准差,则没有波动。

您仍然可以通过选择两个或三个标准差而不是一个标准差来即兴发挥结果。