我正在创建一个用于监测水质的应用程序。温度数据每2分钟更新一次,并建立实时数据库.App有两个要求
1)当温度超过33度或温度降至23度以下时,应向用户发出警告-本部分已完成。
2)每30分钟分析一次数据后,当温度波动较大时,应提醒用户--这部分我很困惑。
我不知道该用什么算法来检测一段时间内的大温度波动并提醒用户。有人能帮我吗?
发布于 2017-06-21 20:38:51
在30分钟的时间里,你的应用程序会给你15个数值。
如果您想在这些数据中找到一个很大的变化,那么有一种方法可以这样做。您可以使用以下方法实现:
请参阅此示例以更好地理解:
假设您有10分钟的这些值:
25 27 24 35 28
第一步:
平均数= 27 (学徒)
一标准差= 3.8
第二步:绝对(数据平均)
abs(25-27) =2
abs(27-27) =0
abs(24-27) =3
abs(35-27) =8
abs(28-27) =1
第三步
检查减法是否大于标准差
abs(35-27)给出大于3.8的8
所以,有一个很大的波动。如果所有减去的结果都小于标准差,则不存在波动。
你仍然可以通过选择两个或三个标准差而不是一个标准差来即兴发挥效果。
发布于 2017-06-21 20:31:53
首先,定义你所说的波动的含义。
你没说你用的是什么温标。华氏,摄氏,兰肯,还是开尔文?
您的抽样率是每两分钟一次的新数据值。你是否将波动定义为最后一点与当前值之差的绝对值?这是可以辩护的。
如果最大允许绝对值是33度-23度= 10度的倍数,那么你就是在做生意了。
https://stackoverflow.com/questions/44685525
复制相似问题