1.本发明涉及水表领域,尤其涉及一种基于卡尔曼滤波的水表滤波方法、系统、计算机及介质。
背景技术:
2.在数据处理中,经常使用到卡尔曼滤波算法,传统的卡尔曼滤波器的参数q和r都是由固定公式算出来,然后再继续迭代不断处理数据。卡尔曼滤波滤波效果在数据放大之前还是很显著的,但是如果将数据放大后,由于q值和r值固定的原因,卡尔曼滤波后的曲线也是有小的抖动。因此,现有的基于卡尔曼滤波的水表滤波技术无法适应不同流量数据的要求,进而影响水表测量的精准度。
技术实现要素:
3.本发明所要解决的技术问题在于,提供一种基于卡尔曼滤波的水表滤波方法、系统、计算机及介质,能够解决现有基于卡尔曼滤波的水表滤波技术存在的问题,进而提高水表测量的精准度。
4.为了解决上述技术问题,本发明提供了一种基于卡尔曼滤波的水表滤波方法,包括:构建初始卡尔曼滤波滤波模型;对初始卡尔曼滤波滤波模型中的q值按预设q值计算公式进行优化以获得第一优化卡尔曼滤波滤波模型;对所述第二优化卡尔曼滤波滤波模型中的r值按预设r值计算公式进行优化以获得第二优化尔曼滤波滤波模型;根据所述第二优化尔曼滤波滤波模型对采集的水表数据进行滤波。
5.优选地,所述预设q值计算公式为:q=|o
1-o2|,其中,o1为最近一次的卡尔曼滤波器的输出值,o2为当前卡尔曼滤波器的输出值。
6.优选地,所述预设r值计算公式为:r=o1*k,其中,o1为最近一次的卡尔曼滤波器的输出值,k为根据流量大小预设的比例参数。
7.优选地,所述预设r值计算公式为:r=o1*k m,其中,o1为最近一次的卡尔曼滤波器的输出值,k为根据流量大小预设的比例参数,m为预设补偿值。
8.优选地,所述对所述第二优化卡尔曼滤波滤波模型中的r值按预设r值计算公式进行优化以获得第二优化尔曼滤波滤波模型的步骤包括:获取水表的的流量大小;判断水表流量是否大于预设流量;判断为是时,则对所述第二优化卡尔曼滤波滤波模型中的r值按第一预设r值计算公式进行优化以获得第二优化尔曼滤波滤波模型;判断为否时,则对所述第二优化卡尔曼滤波滤波模型中的r值按第二预设r值计算公式进行优化以获得第二优化尔曼滤波滤波模型;其中,所述第一预设r值计算公式为r=o1*k1,所述第二预设r值计算公式为r=o1*k2,o1为最近一次的卡尔曼滤波器的输出值,k1和k2均为根据流量大小预设的比例参数,k1>k2。
9.优选地,所述对所述第二优化卡尔曼滤波滤波模型中的r值按预设r值计算公式进行优化以获得第二优化尔曼滤波滤波模型的步骤包括:获取水表的的流量大小;判断水表
流量是否大于预设流量;判断为是时,则对所述第二优化卡尔曼滤波滤波模型中的r值按第一预设r值计算公式进行优化以获得第二优化尔曼滤波滤波模型;判断为否时,则对所述第二优化卡尔曼滤波滤波模型中的r值按第二预设r值计算公式进行优化以获得第二优化尔曼滤波滤波模型;其中,所述第三预设r值计算公式为r=o1*k1 m,所述第四预设r值计算公式为r=o1*k2 m,o1为最近一次的卡尔曼滤波器的输出值,k1和k2均为根据流量大小预设的比例参数,m为预设补偿值,k1>k2。
10.本发明还提供了一种基于卡尔曼滤波的水表滤波系统,用于实现任一上述的基于卡尔曼滤波的水表滤波方法,包括:模型构建模块,用于构建初始卡尔曼滤波滤波模型;第一优化模块,用于对初始卡尔曼滤波滤波模型中的q值按预设q值计算公式进行优化以获得第一优化卡尔曼滤波滤波模型;第二优化模块,用于对所述第二优化卡尔曼滤波滤波模型中的r值按预设r值计算公式进行优化以获得第二优化尔曼滤波滤波模型;滤波模块,用于根据所述第二优化尔曼滤波滤波模型对采集的水表数据进行滤波。
11.优选地,所述第二优化模块还包括:流量获取单元,用于获取水表的的流量大小;判断单元,用于判断水表流量是否大于预设流量;第一优化单元,用于当判断单元判断为是时对所述第二优化卡尔曼滤波滤波模型中的r值按第一预设r值计算公式进行优化以获得第二优化尔曼滤波滤波模型;第二优化单元,用于当判断单元判断为否时对所述第二优化卡尔曼滤波滤波模型中的r值按第二预设r值计算公式进行优化以获得第二优化尔曼滤波滤波模型。
12.本发明还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现任一上述方法的步骤。
13.本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现任一上述方法的步骤。
14.实施本发明的有益效果在于:
15.本发明提供一种基于卡尔曼滤波的水表滤波方法、系统、计算机设备及可读存储介质,通过构建初始卡尔曼滤波滤波模型;并对初始卡尔曼滤波滤波模型中的q值按预设q值计算公式进行优化以获得第一优化卡尔曼滤波滤波模型;进而对所述第二优化卡尔曼滤波滤波模型中的r值按预设r值计算公式进行优化以获得第二优化尔曼滤波滤波模型;最后根据所述第二优化尔曼滤波滤波模型对采集的水表数据进行滤波。采用本发明,能够解决现有基于卡尔曼滤波的水表滤波技术存在的问题,进而提高水表测量的精准度。
附图说明
16.图1是本发明提供的基于卡尔曼滤波的水表滤波方法流程图;
17.图2是本发明提供的优化方法的第一实施例的流程图;
18.图3是本发明提供的优化方法的第二实施例的流程图;
19.图4是本发明提供的基于卡尔曼滤波的水表滤波系统示意图;
20.图5是本发明提供的第二优化模块的示意图。
具体实施方式
21.为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述。仅此声明,本发明在文中出现或即将出现的上、下、左、右、前、后、内、外等方位用词,仅以本发明的附图为基准,其并不是对本发明的具体限定。
22.如图1所示,本发明提供了一种基于卡尔曼滤波的水表滤波方法,包括:
23.s101,构建初始卡尔曼滤波滤波模型;
24.s102,对初始卡尔曼滤波滤波模型中的q值按预设q值计算公式进行优化以获得第一优化卡尔曼滤波滤波模型;
25.s103,对所述第二优化卡尔曼滤波滤波模型中的r值按预设r值计算公式进行优化以获得第二优化尔曼滤波滤波模型;
26.s104,根据所述第二优化尔曼滤波滤波模型对采集的水表数据进行滤波。
27.需要说明的是,在数据处理中,经常使用到卡尔曼滤波算法,传统的卡尔曼滤波器的参数q和r都是由固定公式算出来,然后再继续迭代不断处理数据。卡尔曼滤波滤波效果在数据放大之前还是很显著的,但是如果将数据放大后,由于q值和r值固定的原因,卡尔曼滤波后的曲线也是有小的抖动。因此,现有的基于卡尔曼滤波的水表滤波技术无法适应不同流量数据的要求,进而影响水表测量的精准度。
28.本发明,通过构建初始卡尔曼滤波滤波模型;并对初始卡尔曼滤波滤波模型中的q值按预设q值计算公式进行优化以获得第一优化卡尔曼滤波滤波模型;进而对所述第二优化卡尔曼滤波滤波模型中的r值按预设r值计算公式进行优化以获得第二优化尔曼滤波滤波模型;最后根据所述第二优化尔曼滤波滤波模型对采集的水表数据进行滤波。采用本发明,能够解决现有基于卡尔曼滤波的水表滤波技术存在的问题,进而提高水表测量的精准度。
29.优选地,所述预设q值计算公式为:q=|o
1-o2|,其中,o1为最近一次的卡尔曼滤波器的输出值,o2为当前卡尔曼滤波器的输出值。进一步地,所述预设r值计算公式为:r=o1*k,其中,o1为最近一次的卡尔曼滤波器的输出值,k为根据流量大小预设的比例参数。
30.需要说明的是,本实施例中,因为在水表行业二级表精度中q2以下精度要求为5%,以上则为2%,因此对r值进行分段处理,根据不同的流量区间进行赋值,从而达到在处理大流量数据时需要快速响应但是滤波要求低,而处理小流量数据时滤波要求高但是不需要快速响应的目的。
31.更佳地,所述预设r值计算公式为:r=o1*k m,其中,o1为最近一次的卡尔曼滤波器的输出值,k为根据流量大小预设的比例参数,m为预设补偿值。
32.需要说明的是,本实施例中,为了防止流量过低导致r值出现趋近为0的情况,本实施例通过增加一个补偿值m。
33.如图2所示,所述对所述第二优化卡尔曼滤波滤波模型中的r值按预设r值计算公式进行优化以获得第二优化尔曼滤波滤波模型的步骤包括:
34.s201,获取水表的的流量大小;
35.s202,判断水表流量是否大于预设流量;
36.s203,判断为是时,则对所述第二优化卡尔曼滤波滤波模型中的r值按第一预设r值计算公式进行优化以获得第二优化尔曼滤波滤波模型;
37.s204,判断为否时,则对所述第二优化卡尔曼滤波滤波模型中的r值按第二预设r值计算公式进行优化以获得第二优化尔曼滤波滤波模型;
38.其中,所述第一预设r值计算公式为r=o1*k1,所述第二预设r值计算公式为r=o1*k2,o1为最近一次的卡尔曼滤波器的输出值,k1和k2均为根据流量大小预设的比例参数,k1>k2。
39.需要说明的是,本实施例中,通过获取水表的的流量大小,并判断水表流量是否大于预设流量,判断为是时,则对所述第二优化卡尔曼滤波滤波模型中的r值按第一预设r值计算公式进行优化以获得第二优化尔曼滤波滤波模型,判断为否时,则对所述第二优化卡尔曼滤波滤波模型中的r值按第二预设r值计算公式进行优化以获得第二优化尔曼滤波滤波模型。采用本实施例,能够根据不同的流量区间进行赋值,从而达到在处理大流量数据时需要快速响应但是滤波要求低,而处理小流量数据时滤波要求高但是不需要快速响应的目的。
40.如图3所示,所述对所述第二优化卡尔曼滤波滤波模型中的r值按预设r值计算公式进行优化以获得第二优化尔曼滤波滤波模型的步骤包括:
41.s301,获取水表的的流量大小;
42.s302,判断水表流量是否大于预设流量;
43.s303,判断为是时,则对所述第二优化卡尔曼滤波滤波模型中的r值按第三预设r值计算公式进行优化以获得第二优化尔曼滤波滤波模型;
44.s304,判断为否时,则对所述第二优化卡尔曼滤波滤波模型中的r值按第四预设r值计算公式进行优化以获得第二优化尔曼滤波滤波模型;
45.其中,所述第三预设r值计算公式为r=o1*k1 m,所述第四预设r值计算公式为r=o1*k2 m,o1为最近一次的卡尔曼滤波器的输出值,k1和k2均为根据流量大小预设的比例参数,m为预设补偿值,k1>k2。
46.需要说明的是,本实施例中,通过获取水表的的流量大小,并判断水表流量是否大于预设流量,判断为是时,则对所述第二优化卡尔曼滤波滤波模型中的r值按第三预设r值计算公式进行优化以获得第二优化尔曼滤波滤波模型,判断为否时,则对所述第二优化卡尔曼滤波滤波模型中的r值按第四预设r值计算公式进行优化以获得第二优化尔曼滤波滤波模型。采用本实施例,能够根据不同的流量区间进行赋值,从而达到在处理大流量数据时需要快速响应但是滤波要求低,而处理小流量数据时滤波要求高但是不需要快速响应的目的;同时防止流量过低导致r值出现趋近为0的情况。
47.如图4所示,本发明还提供了一种基于卡尔曼滤波的水表滤波系统100,用于实现任一上述的基于卡尔曼滤波的水表滤波方法,包括:模型构建模块1,用于构建初始卡尔曼滤波滤波模型;第一优化模块2,用于对初始卡尔曼滤波滤波模型中的q值按预设q值计算公式进行优化以获得第一优化卡尔曼滤波滤波模型;第二优化模块3,用于对所述第二优化卡尔曼滤波滤波模型中的r值按预设r值计算公式进行优化以获得第二优化尔曼滤波滤波模型;滤波模块4,用于根据所述第二优化尔曼滤波滤波模型对采集的水表数据进行滤波。
48.需要说明的是,在数据处理中,经常使用到卡尔曼滤波算法,传统的卡尔曼滤波器的参数q和r都是由固定公式算出来,然后再继续迭代不断处理数据。卡尔曼滤波滤波效果在数据放大之前还是很显著的,但是如果将数据放大后,由于q值和r值固定的原因,卡尔曼
滤波后的曲线也是有小的抖动。因此,现有的基于卡尔曼滤波的水表滤波技术无法适应不同流量数据的要求,进而影响水表测量的精准度。
49.本发明,通过所述模型构建模块1构建初始卡尔曼滤波滤波模型,通过所述第一优化模块2对初始卡尔曼滤波滤波模型中的q值按预设q值计算公式进行优化以获得第一优化卡尔曼滤波滤波模型,通过所述第二优化模块3对所述第二优化卡尔曼滤波滤波模型中的r值按预设r值计算公式进行优化以获得第二优化尔曼滤波滤波模型,通过所述滤波模块4根据所述第二优化尔曼滤波滤波模型对采集的水表数据进行滤波。采用本发明,能够解决现有基于卡尔曼滤波的水表滤波技术存在的问题,进而提高水表测量的精准度。
50.如图5所示,所述第二优化模块3还包括:流量获取单元31,用于获取水表的的流量大小;判断单元32,用于判断水表流量是否大于预设流量;第一优化单元33,用于当判断单元32判断为是时对所述第二优化卡尔曼滤波滤波模型中的r值按第一预设r值计算公式进行优化以获得第二优化尔曼滤波滤波模型;第二优化单元34,用于当判断单元32判断为否时对所述第二优化卡尔曼滤波滤波模型中的r值按第二预设r值计算公式进行优化以获得第二优化尔曼滤波滤波模型。
51.需要说明的是,本实施例中,通过所述流量获取单元31获取水表的的流量大小;通过所述判断单元32判断水表流量是否大于预设流量;通过所述第一优化单元33,当判断单元32判断为是时对所述第二优化卡尔曼滤波滤波模型中的r值按第一预设r值计算公式进行优化以获得第二优化尔曼滤波滤波模型;通过所述第二优化单元34,当判断单元32判断为否时对所述第二优化卡尔曼滤波滤波模型中的r值按第二预设r值计算公式进行优化以获得第二优化尔曼滤波滤波模型。
52.具体地,分两种情况进行公式优化:
53.第一种,通过获取水表的的流量大小,并判断水表流量是否大于预设流量,判断为是时,则对所述第二优化卡尔曼滤波滤波模型中的r值按第一预设r值计算公式进行优化以获得第二优化尔曼滤波滤波模型,判断为否时,则对所述第二优化卡尔曼滤波滤波模型中的r值按第二预设r值计算公式进行优化以获得第二优化尔曼滤波滤波模型。采用本实施例,能够根据不同的流量区间进行赋值,从而达到在处理大流量数据时需要快速响应但是滤波要求低,而处理小流量数据时滤波要求高但是不需要快速响应的目的。其中,所述第一预设r值计算公式为r=o1*k1,所述第二预设r值计算公式为r=o1*k2,o1为最近一次的卡尔曼滤波器的输出值,k1和k2均为根据流量大小预设的比例参数,k1>k2。
54.第二种,通过获取水表的的流量大小,并判断水表流量是否大于预设流量,判断为是时,则对所述第二优化卡尔曼滤波滤波模型中的r值按第三预设r值计算公式进行优化以获得第二优化尔曼滤波滤波模型,判断为否时,则对所述第二优化卡尔曼滤波滤波模型中的r值按第四预设r值计算公式进行优化以获得第二优化尔曼滤波滤波模型。采用本实施例,能够根据不同的流量区间进行赋值,从而达到在处理大流量数据时需要快速响应但是滤波要求低,而处理小流量数据时滤波要求高但是不需要快速响应的目的;同时防止流量过低导致r值出现趋近为0的情况。其中,所述第三预设r值计算公式为r=o1*k1 m,所述第四预设r值计算公式为r=o1*k2 m,o1为最近一次的卡尔曼滤波器的输出值,k1和k2均为根据流量大小预设的比例参数,m为预设补偿值,k1>k2。
55.本发明还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在
处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现任一上述方法的步骤。
56.本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现任一上述方法的步骤。
57.综上所述,在水表领域中,可以使用卡尔曼滤波算法做数据处理。传统的卡尔曼滤波器的参数q和r都是由固定公式算出来,然后再继续迭代不断处理数据,但这并不符合水表处理数据的特性,因此,在原卡尔曼滤波器不变的情况下,我们使用上一次卡尔曼滤波器输出值o1与这一次测量值o2的差值作为q,r则分为两种情况,因为在水表行业二级表精度中q2以下精度要求位5%,以上则为2%,因此r值做分段处理,在测量低速流量区间内,r值为上次输出值o1的百分比k1,在测量高流速区间内,r值为上次输出值的百分比k2,这里k1》k2;为了防止流量过低导致r值出现趋近为0的情况,需要再增加一个补偿值m。总结就是:q=|o1-o2|;高流量区间r=q1*k2 m,低流量区间r=q1*k1 m。
58.以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。
转载请注明原文地址:https://tc.8miu.com/read-3611.html