Algorithm 适用于检测温度波动的公式/算法

Algorithm 适用于检测温度波动的公式/算法,algorithm,firebase,math,statistics,physics,Algorithm,Firebase,Math,Statistics,Physics,我正在创建一个应用程序来监测水质。温度数据每2分钟更新一次到firebase实时数据库。应用程序有两个要求 1当温度超过33度或降至23度以下时,应提醒用户-此部分已完成 2每30分钟分析一次数据,当温度波动较大时,应提醒用户-这部分我不清楚 我不知道用什么算法来检测一段时间内的大温度波动并提醒用户。有人能帮我一下吗?从定义波动的含义开始 你不用说你用的是什么温标。华氏度、摄氏度、兰金还是开尔文 采样率是每两分钟一个新的数据值。您是否将波动定义为最后一点和当前值之间差值的绝对值?这是站得住脚的

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

1当温度超过33度或降至23度以下时,应提醒用户-此部分已完成

2每30分钟分析一次数据,当温度波动较大时,应提醒用户-这部分我不清楚


我不知道用什么算法来检测一段时间内的大温度波动并提醒用户。有人能帮我一下吗?

从定义波动的含义开始

你不用说你用的是什么温标。华氏度、摄氏度、兰金还是开尔文

采样率是每两分钟一个新的数据值。您是否将波动定义为最后一点和当前值之间差值的绝对值?这是站得住脚的


如果允许的最大绝对值是33-23=10度的倍数,那么您正在工作。

在30分钟内,您的应用程序将为您提供15个值

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

计算数值的平均值和标准偏差

从平均值中减去已有的数据,然后取结果的绝对值

如果绝对值大于一个标准偏差,则进行比较;如果绝对值大于一个标准偏差,则表示数据量较大

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

假设10分钟内有这些值:

25,27,24,35,28

第一步:

平均值=27约x

一个标准偏差=3.8

第二步:绝对数据-平均值

abs25-27=2

abs27-27=0

abs24-27=3

abs35-27=8

abs28-27=1

第三步

检查减法是否大于标准偏差

abs35-27给出了大于3.8的8

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


您仍然可以通过选择两个或三个标准偏差而不是一个标准偏差来临时生成结果。

非常感谢您,伙计。我想这正是我想要的。上述方法是否有数学名称?在我的项目文档中包含这一点会很有帮助。一个后续问题是,如果不要求30分钟的分析,那么在新数据到达时,基于以前的数据测量巨大的波动不是更准确吗?因为在以下情况下,使用上述方法可能不准确-22,30,28,26,29,27,25,24。根据您的方法,从22到30的巨大波动将无法检测到。你不认为30分钟波动分析不起作用吗?这种方法叫做自适应检测法。我认为30分钟的分析也应该有效。计算的差值表示该值偏离平均值的程度。您可以为30分钟的实验设置一些阈值,如果差异结果偏离一个标准偏差/两个标准偏差,则表明存在波动。您可以尝试计算提供的数据集,并查看差值是否大于标准偏差。单位为摄氏度。即使所有值都在23到33之间,连续数据中23到30这样的大波动也不是健康读数。因此,将波动定义为最后一个点和当前值之差的绝对值是有道理的,因为在下面的例子中-22,30,28,26,29,27,25,24。从22到30的波动较大,但在30分钟分析后未检测到,因为其他数据将在平均时平衡该波动。