一种基于NB-IOT智能水表的水流量数据传输方法与流程

文档序号:33124191发布日期:2023-02-01 04:38阅读:57来源:国知局
一种基于NB-IOT智能水表的水流量数据传输方法与流程
一种基于nb-iot智能水表的水流量数据传输方法
技术领域
1.本发明涉及数据压缩传输技术领域,具体涉及一种基于nb-iot智能水表的水流量数据传输方法。


背景技术:

2.为了解决城市供水管理问题,需要及时掌握居民用水情况来不断调整自来水公司的管理方式;随着nb-iot技术的发展,目前通过在智能水表上安装nb-iot通讯模块的方式,实现通过智能水表采集流经管道的水流量数据,通过nb-iot通讯模块进行数据远程传输,进而实现供水系统的智能化管理;由于智能水表安装较多,并实时的采集水流量数据,因此造成了智能水表采集的水流量数据量极为庞大,若将采集的水流量数据传输到处理服务器中进行分析,由于网络带宽的影响,水流量数据传输过慢,且容易造成数据丢失;而处理服务器若将所有的水流量数据进行存储,会大大增加处理服务器的运行压力,通常需要将水流量数据进行压缩处理再传输。
3.现有的传统压缩算法中,旋转门压缩算法是一种比较快速的线性拟合算法,常用于物联网传感器等数据量较为庞大的应用领域,但在旋转门压缩算法中,压缩效果取决于容差的设定进而确定的分段范围,而实际过程中通过大量的数据进行容差值检测费时费力,同时因为数据具有随机变化性,人工根据经验设置的容差以及对应分段范围可能会产生较大的误差,进而影响压缩传输的效果,同时可能导致水流量数据中重要信息的丢失。


技术实现要素:

4.本发明提供一种基于nb-iot智能水表的水流量数据传输方法,以解决现有的旋转门算法对数据进行压缩时由于分段设置导致重要数据丢失的问题,所采用的技术方案具体如下:本发明一个实施例提供了一种基于nb-iot智能水表的水流量数据传输方法,该方法包括以下步骤:获取历史数据序列及当前数据序列;根据历史数据序列中每一天数据序列与其他天数据序列之间的第一距离,得到每一天数据序列的第一参考权重,利用第一参考权重对当前数据序列中每个时刻在历史数据序列中每一天的对应时刻的数据进行权重融合,得到每个时刻的第一参考数据,将第一参考权重大于第一预设阈值的若干天数据序列中每个时刻的数据与相应第一参考权重进行权重融合,得到每个时刻的第二参考数据,根据第一参考数据与第二参考数据的差异获取每个时刻的参考波动范围;根据当前数据序列中每个时刻分别与相邻两个时刻的数据的差异获取每个时刻的第一变化程度,根据每个时刻及相邻两个时刻的参考波动范围对第一变化程度修正获取每个时刻的第二变化程度;根据当前数据序列中每个时刻的当前数据及参考波动范围获取每个时刻的第一
异常程度,将每个时刻下任意用于趋势平滑的阶数范围内所有时刻的第一异常程度的均值,作为每个时刻下对应阶数的第二异常程度,根据第二变化程度及第二异常程度获取每个时刻下每个阶数的优选程度,根据优选程度与第二预设阈值的比较结果获取每个时刻的最优阶数;根据每个时刻的最优阶数范围内所有时刻的第一异常程度获取每个时刻最优阶数范围内各时刻的第二参考权重,根据每个时刻的当前数据及最优阶数范围内各时刻的第二参考权重获取每个时刻的第一趋势数据,根据每个时刻的第一趋势数据之间的斜率变化获取分段点的时刻,根据作为分段点的时刻对当前数据序列进行划分得到若干分段并压缩;将压缩后的当前数据序列通过nb-iot通讯模块进行传输。
5.可选的,所述获取历史数据序列中每一天的数据序列与其他天的数据序列之间的第一距离,包括的具体方法为:历史数据序列中包括多天的数据序列,分别计算每一天数据序列与其他任意一天数据序列的dtw距离,记为第一距离;根据每一天数据序列的所有第一距离的方差表现获取每一天数据序列的第一参考权重。
6.可选的,所述获取每个时刻的第一参考数据,包括的具体方法为:其中,表示第个时刻的第一参考数据,表示历史数据序列中共有天的数据序列,表示第天数据序列的第一参考权重,表示第天数据序列中第个时刻的数据。
7.可选的,所述获取每个时刻的参考波动范围,包括的具体方法为:其中,表示第个时刻的数据波动幅值,表示第个时刻的第一参考数据,表示第个时刻的第二参考数据,将作为第个时刻的参考波动范围。
8.可选的,所述获取每个时刻的第二变化程度,包括的具体方法为:对于任意一个时刻及相邻两个时刻均处于对应时刻的参考波动范围内的当前数据,获取这些时刻与相邻时刻的修正差值:其中,表示第个时刻的当前数据与第个时刻的当前数据的修正差值,表示第个时刻的当前数据,表示第个时刻的当前数据,表示第个时刻的参考波动范围下限值,表示第个时刻的参考波动范围上限值,表示第个时刻的参考波动范围下限值,表示地个时刻的参考波动范围上
限值;其中,表示第个时刻的第二变化程度,表示第个时刻的当前数据与第个时刻的当前数据的修正差值,表示第个时刻的当前数据与第个时刻的当前数据的修正差值;对于当前数据不满足参考波动范围或相邻两个时刻任意一个不满足对应时刻的参考波动范围的时刻,这些时刻的第二变化程度值即为第一变化程度值。
9.可选的,所述获取每个时刻的第一异常程度,包括的具体方法为:其中,表示第个时刻的当前数据值,表示第个时刻的当前数据,表示第个时刻的参考波动范围,表示第个时刻的参考波动范围内上限值,表示第个时刻的参考波动范围下限值。
10.可选的,所述获取每个时刻下每个阶数的优选程度,根据优选程度与第二预设阈值的比较结果获取每个时刻的最优阶数,包括的具体方法为:其中,表示第个时刻下阶数的优选程度,表示第个时刻的第二变化程度,表示第个时刻下阶数为的第二异常程度,表示以自然常数为底的指数函数;对每个时刻下的阶数从1开始每次加1进行迭代,计算每次迭代的阶数的优选程度,当第个时刻下的第次迭代的阶数优选程度在迭代过程中第一次大于第二预设阈值时停止迭代,将第次迭代的阶数作为第个时刻的最优阶数。
11.可选的,所述获取每个时刻的第一趋势数据,包括的具体方法为:根据获取到的每个时刻的最优阶数、以及最优阶数范围内各时刻的当前数据及第二参考权重,利用stl时间序列分解算法获取到每个时刻的第一趋势数据;所述第二参考权重即是最优阶数范围内各时刻的第一异常程度在范围内所有第一异常程度参考下的线性归一化值。
12.可选的,所述获取分段点的时刻,包括的具体方法为:将相邻两个时刻的第一趋势数据的差值作为斜率值,计算每个时刻与左右两个相邻时刻的斜率值的差值绝对值,将斜率值的差值绝对值大于第三预设阈值的时刻作为分段点的时刻。
13.可选的,所述得到若干分段并压缩,包括的具体方法为:
当前数据序列为时序数据序列,利用作为分段点的时刻对时序数据序列进行划分,得到每两个相邻分段点构成的一段时间的数据序列,利用旋转门压缩算法对每段数据序列进行压缩。
14.本发明相较于现有技术的有益效果是:(1)根据历史数据作为参考,对水流量数据及其波动范围进行量化;通过计算历史数据中每天的水流量数据之间的差异,来获取历史数据中的每天的第一参考权重,进而获取更加合理的水流量数据的参考波动范围,使之为后续进行自适应旋转门压缩算法中的分段范围的获取更加准确。
15.(2)根据当前时间段内每个时刻的水流量数据的异常程度,以及每个时刻与相邻时刻的数据变化程度来确定每个时刻的最优阶数;其中每个时刻的数据异常程度表征当前时刻的数据与参考波动范围之间的差异程度,每个时刻与相邻时刻的数据变化程度表征数据的波动幅度程度;根据获取的当前时刻的最优阶数及阶数范围内各时刻的第二参考权重,利用stl时间序列分解算法获取准确的趋势分布特征,为之后进行旋转门压缩算法、获取准确的分段区间进行压缩,避免了传统的旋转门压缩算法中通过大量的数据进行容差值检测费时费力的缺点,同时可以在保证重要信息不丢失的基础上,达到较好的压缩效果。
附图说明
16.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
17.图1为本发明一个实施例所提供一种基于nb-iot智能水表的水流量数据传输方法的流程示意图。
具体实施方式
18.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
19.请参阅图1,其示出了本发明一个实施例所提供的一种基于nb-iot智能水表的水流量数据传输方法流程图,该方法包括以下步骤:步骤s001、利用智能水表的水流量检测模块获取历史水流量数据及当前水流量数据。
20.本实施例的目的是利用安装在智能水表上的nb-iot模块对流经管道的水流量数据进行传输,所述智能水表包括:水流量检测模块,通过传感器实时采集水流量数据;数据分析模块,通过分析水流量数据特性对采集到的数据进行压缩;数据存储模块,将压缩的数据进行存储;以及nb-iot通讯模块,用于将压缩后的水流量数据远程传输至处理服务器中。
21.通过水流量检测模块获取实时的水流量数据,本实施例以30分钟进行一次传输,即每30分钟对时间段内的水流量数据进行压缩并传输;同时以每一天为一个大周期,获取
历史水流量数据,水流量数据为时序数据,记为历史数据序列,本实施例获取最近30天的水流量数据;待压缩的30分钟时间段内数据即为当前水流量数据,对当前水流量数据的所有数据根据横轴为时刻纵轴为数据值的坐标系构成当前数据曲线,并进行平滑滤波去噪,得到的每个时刻的数据按照时序构成当前数据序列;同理历史数据序列中每一天的水流量数据构成的数据曲线进行平滑滤波去噪得到每一天数据序列。
22.需要说明的是,当前数据序列中的每个时刻与历史数据序列中每一天数据序列的相同时刻相互对应,利用历史数据序列中每一天每个时刻的数据作为参考,对当前数据序列的每个时刻进行分析。
23.步骤s002、利用智能水表的数据分析模块对历史水流量数据中的每一天数据序列进行分析,获取第一参考权重,进而得到当前水流量数据中每个时刻的参考波动范围。
24.需要说明的是,历史数据序列中存在部分天数的数据序列具有由于各种其他因素导致的异常变化,例如某一天居民不在家使得该天的水流量数据几乎为0;因此需要获取历史数据序列中每一天数据序列可作为参考的第一参考权重,再利用第一参考权重及第一预设阈值获取每个时刻的参考波动范围。
25.具体的,首先利用dtw算法,计算历史数据序列中每一天数据序列分别与其他任意一天数据序列的dtw距离,记为第一距离,并根据每一天数据序列的所有第一距离获取每一天数据序列的第一参考权重,以历史数据序列中第天数据序列与第个其他天数据序列为例,获取第天数据序列的第一参考权重的计算方法为:其中,表示第天数据序列的所有第一距离方差,表示历史数据序列中的总天数,表示第天数据序列与第个其他天数据序列的第一距离;令第天的第一特征,对所有天的第一特征进行归一化,第天的第一特征归一化后的结果为,记为第天数据序列的第一参考权重;本实施例上述归一化采用softmax归一化方法,保证所有天的第一参考权重之和为1。
26.需要说明的是,即为第一距离方差的倒数并分子分母均加1得到,加1目的是为避免方差为0的情况,本实施例将倒数分子分母加1视为第一距离方差的倒数;第一距离即dtw距离可以表征两数据序列之间的相似性,每一天数据序列与其他天数据序列的第一距离方差越大,表明与其他天之间的相似度差异较大,作为参考的价值越低,对应的第一参考权重应越小。
27.进一步的,根据每一天数据序列的第一参考权重获取每个时刻在历史数据序列中
的第一参考数据,以第个时刻为例,获取第个时刻的第一参考数据的计算方法为:其中,表示历史数据序列中共有天的数据序列,表示第天数据序列的第一参考权重,表示第天数据序列中第个时刻的数据;为了更好的量化参考波动范围的合理变化范围,给出第一预设阈值,本实施例采用进行计算;获取大于第一预设阈值的所有第一参考权重,假设共有个,其中表示大于第一预设阈值的第个第一参考权重;由于每个第一参考权重对应一个第个时刻的数据,将对应的第个时刻的数据记为;将第个时刻的第二参考数据记为:此时得到的第二参考数据相较于第一参考数据受到异常数据的干扰更小,将作为第个时刻的数据波动幅值,得到第个时刻的参考波动范围。
28.上述依据每个时刻数据的参考价值对数据进行融合获得第一参考数据,并将参考价值更高的数据额外进行融合获得第二参考数据,使得根据第一参考数据和第二参考数据得到的参考波动范围更加准确、客观,能够保证后续依据参考波动范围分析或判断数据异常与数据变化的过程更加合理。
29.至此,通过历史数据序列中数据参考权重及数据值对每个时刻的数据波动范围进行量化,得到用于判断当前数据序列中每个时刻的数据异常程度及变化程度的参考波动范围。
30.步骤s003、根据当前数据序列中每个时刻与相邻两个时刻的数据及相应的参考波动范围获取每个时刻的第二变化程度,根据每个时刻的当前数据与参考波动范围的差异获取每个时刻的第一异常程度及各阶数范围的第二异常程度,进而得到每个时刻下各阶数的优选程度并确定最优阶数。
31.需要说明的是,在步骤s002中已经获取了每个时刻的参考波动范围,要利用stl时间序列分解来获取当前时序数据的波动趋势,stl时间序列分解算法,为方便后续叙述,需要对该公知算法进行大致的补充说明:当时间序列数据呈现出加法季节性特征,那么数据中任意时刻的值均可使用该算法分解成季节性、趋势和残差的累加和,该算法中需要使用移动平均的方法估计趋势-周期项,例如使用阶移动平均,阶数为人为设置的整数。
32.本实施例为了对数据进行更好的异常分析,不能认为设置阶数,需要寻找一个最
优阶数,具体为需要根据参考波动范围对当前数据进行平滑进而得到最优阶数,趋势平滑则需要考虑每个时刻当前数据的异常程度及连续时刻内的变化程度,变化程度越大,该时刻当前数据越重要而不应平滑,最优阶数应越小;异常程度越大,该时刻当前数据越重要而不应平滑,最优阶数应越小。
33.具体的,首先获取当前数据序列中第个时刻与相邻两个时刻的当前数据的第一变化程度,具体计算方法为:其中,表示第个时刻的当前数据,表示第个时刻的当前数据,表示第个时刻的当前数据;需要说明的是,此时得到的第一变化程度为直观的当前数据差值得到,但由于参考波动范围的影响,小幅度数据波动并不能反映当前数据很重要,因此需要对第一变化程度进行修正。
34.具体的,对于任意一个时刻及相邻两个时刻均处于对应时刻的参考波动范围内的当前数据,以第个时刻为例,获取第个时刻的当前数据与第个时刻的当前数据的修正差值的计算方法为:其中,表示第个时刻的当前数据,表示第个时刻的当前数据,表示第个时刻的参考波动范围下限值,表示第个时刻的参考波动范围上限值,表示第个时刻的参考波动范围下限值,表示地个时刻的参考波动范围上限值;进一步的,获取第个时刻修正后的第二变化程度的具体计算方法为:其中,表示第个时刻的当前数据与第个时刻的当前数据的修正差值, 表示第个时刻的当前数据与第个时刻的当前数据的修正差值;此时,通过参考波动范围对每个时刻及相邻两个时刻下的当前数据的第一变化程度进行了修正,得到了第二变化程度,避免了小幅度的数据波动而导致呈现出较大的变化程度,进而导致阶数优选程度的变化而造成最优阶数的较大误差。
35.特殊的,对于当前数据不满足参考波动范围或相邻两个时刻任意一个不满足对应时刻的参考波动范围的时刻,这些时刻的第二变化程度值即为第一变化程度值,以第个时刻为例,即;对于这些时刻,其连续三个时刻的当前数据有一个或多个已经超出
参考波动范围,则其数据波动不再是小幅度波动,可能为重要的数据信息,而不再需要进行修正。
36.进一步需要说明的是,通过每个时刻的当前数据与参考波动范围之间的差异表现获取第一异常程度,并确定每个时刻下各阶数范围内的第一异常程度均值得到第二异常程度,第一异常程度用以表征各时刻当前数据与参考波动范围的差异程度,第二异常程度用以根据差异程度确定最优阶数。
37.具体的,根据每个时刻的当前数据及参考波动范围获取每个时刻的第一异常程度,以第个时刻为例,获取其第一异常程度的计算方法为:其中,表示第个时刻的当前数据,表示第个时刻的参考波动范围,表示第个时刻的参考波动范围内上限值,表示第个时刻的参考波动范围下限值;此时,若当前数据在参考波动范围内,其第一异常程度很小,本实施例设置为0.01;而若不在参考波动范围内,则将实际当前数据与波动范围边界的差值作为第一异常程度,第一异常程度越大,表明当前数据与参考波动范围的差异越大,可能为重要的数据信息。
38.进一步的,将每个时刻的第一异常程度及某个用于趋势平滑的阶数范围内其他时刻的第一异常程度的均值,作为每个时刻下对应阶数的第二异常程度,以第个时刻为例,获取其阶数为的第二异常程度的计算方法为:以第个时刻为中心构建一个长度为的时间窗口,称这个时间窗口为第个时刻下阶数为的范围;其中,表示第个时刻下阶数为的范围内,第个时刻的当前数据的第一异常程度;表示stl时间序列分解算法中,当阶数为时,阶数范围内的时刻数量;进一步的,根据第二变化程度及第二异常程度获取每个时刻下每个阶数的优选程度,以第个时刻下的阶数为例,其优选程度的计算方法为:其中,表示第个时刻的第二变化程度,表示第个时刻下阶数为的第二
异常程度,表示以自然常数为底的指数函数,用于归一化处理及呈现反比例关系;需要说明的是,本实施例采用自然常数的反指数函数来进行归一化及表现反比例关系,实际应用中可以自行采用能够达成相似效果的其他函数进行处理;此时,第个时刻的当前数据第二变化程度越大,表明该时刻当前数据的波动越大,对该时刻进行趋势平滑的阶数应越小,相应的阶数优选程度应越小;第个时刻下阶数的第二异常程度越大,表明范围内的当前数据越可能发生异常,作为重要信息数据的可能性越大,平滑阶数应越小而阶数优选程度应越小。
39.进一步的,对每个时刻下的阶数从1开始每次加1进行迭代,计算每次迭代的阶数的优选程度,当第个时刻下的第次迭代的阶数优选程度在迭代过程中第一次大于第二预设阈值时停止迭代,将第次迭代的阶数作为第个时刻的最优阶数。
40.至此,得到了当前数据序列中每个时刻的最优阶数,用于平滑进而通过时间序列分解提取当前数据序列的趋势特征。
41.需要解释说明的是,本实施例中对序列中的元素进行操作时,可能会超出序列的左右两端边界,此时本实施例利用二次线性插值的方法将序列的左右两端边界进行差值填充数据。
42.步骤s004、根据各时刻的最优阶数对当前数据序列进行时间序列分解,得到每个时刻的第一趋势数据,并根据第一趋势数据间斜率变化表现获取分段点时刻,对当前数据序列划分并压缩。
43.需要说明的是,stl时间序列分解算法可以提取时序数据中主要趋势特征,利用趋势特征提取当前数据序列中趋势发生剧烈变化的时刻,将剧烈变化时刻作为分段点对当前数据序列进行划分,相邻分段点间的当前水流量数据变化趋势相近,通过旋转门算法进行有损压缩可以有效降低数据量,同时因为重要数据信息会引起剧烈的趋势变化,该种划分分段方法可以有效保留重要数据而不丢失。
44.具体的,首先获取各时刻下最优阶数范围内的每个时刻的第一异常程度,分别对每个最优阶数范围内的所有第一异常程度进行归一化处理,将得到的归一化值作为每个最优阶数范围内每个时刻的第二参考权重;根据每个时刻的最优阶数、最优阶数范围内的当前数据及第二参考权重,对每个时刻的当前数据进行平滑,并通过stl时间序列分解算法得到趋势曲线,每个时刻在趋势曲线上的对应数据记为每个时刻的第一趋势数据;需要说明的是,stl时间序列分解算法为公知技术,具体实现方法不再赘述。
45.进一步的,将相邻两个时刻的第一趋势数据的差值作为斜率值,计算每个时刻分别与左右两个相邻时刻的斜率值,并得到两个斜率值的差值绝对值,给出第三预设阈值,本实施例采用,将斜率值的差值绝对值大于第三预设阈值的时刻作为分段点的时刻。
46.进一步的,利用旋转门算法对当前数据序列进行压缩,所述当前数据序列为时序数据序列,利用作为分段点的时刻对时序数据序列进行划分,得到每两个相邻分段点构成的一段时间的数据序列,利用旋转门压缩算法对每段数据序列进行压缩。
47.至此,通过stl时间序列分解对当前数据序列提取到了主要的趋势分布特征,并根据趋势分布特征的斜率变化获取分段点时刻,通过分段点划分的若干时段的数据序列经由旋转门算法完成压缩。
48.步骤s005、将压缩后的当前数据序列通过智能水表的nb-iot通讯模块进行传输。
49.将通过旋转门算法压缩后的当前数据序列,通过安装在智能水表上的nb-iot通讯模块将时序数据进行编码,远程传输至处理服务器中并进行存储;在对每30分钟传输的时序数据进行解压缩时,即按照传统旋转门算法进行解压,得到有损但保留了重要数据的一段时间的水流量数据。
50.以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1