本发明涉及电流值计算方法,更具体地说是指一种采样滤波电流值的计算方法及其系统。
背景技术:
在带监控功能的电源开发设计中,经常会对电压和电流的进行采样,以便测出电压和电流的实际值。但是由于硬件干扰及电压和电流值本身变动等多种原因,采样出来的值往往是一个波动比较大、时刻变化的值。而在电源开发时,需要一个稳定的、能体现某段时间里电流或电压大小的电流值均值。
中国专利201310570028.4公开了一种谐波电流的预测方法,包括如下步骤:步骤1、测量瞬时电流采样值;步骤2、对采集的电流值进行低通滤波;步骤3、建立目标函数;步骤4、利用目标函数对谐波电流进行预测;步骤5、预测结果进行比较;步骤6、求解目标函数得到预测结果。
上述的专利通过建立目标函数来预测谐波电流,效率较低,较为复杂。
因此,有必要设计一种采样滤波电流值的计算方法,实现获取既稳定又能体现出其真实采样值的电流均值,并快速得出下一个新的电流均值,效率高,且计算过程简单。
技术实现要素:
本发明的目的在于克服现有技术的缺陷,提供一种采样滤波电流值的计算方法及其系统。
为实现上述目的,本发明采用以下技术方案:一种采样电流滤波值的计算方法,所述方法包括:
获取原始电流值;
判断是否有初始均值;
若没有初始均值,则对原始电流值进行累计处理,获取电流滤波值,且以电流滤波值作为初始均值;
若有初始均值,则对初始均值进行处理,获取新初始均值,根据新初始均值和原始电流值计算电流滤波值。
其进一步技术方案为:获取原始电流值的步骤,包括以下具体步骤:
判断是否达到预计的时间;
若不是,则继续等待,返回所述判断是否达到预计的时间步骤;
若是,则获取采样电流;
对所述采样电流进行ad转换,获取原始电流值;
将所述原始电流值存储于数组内。
其进一步技术方案为:若没有初始均值,对原始电流值进行累计处理,获取电流滤波值,且以电流滤波值作为初始均值的步骤,包括以下具体步骤:
对所述数组内的原始电流值进行累加,获取累加值;
判断累加的原始电流值的个数是否达到32个;
若累加的原始电流值的个数未达到32个,则返回对所述数组内的原始电流值进行累加的步骤;
若累加的原始电流值的个数达到32个,则将累加值右移五位,获取电流滤波值,并以电流滤波值作为初始均值。
其进一步技术方案为:若有初始均值,对初始均值进行处理,获取新初始均值,根据新初始均值和原始电流值计算电流滤波值的步骤,包括以下具体步骤:
利用初始均值减去数组内的第一个数,获取新初始均值;
将新初始值与原始电流值相加,获取叠加值;
对所述叠加值右移五位,获取电流滤波值。
本发明还提供了一种采样电流滤波值的计算系统,包括原始电流值获取单元、判断单元、无初始均值处理单元以及有初始均值处理单元;
所述原始电流值获取单元,用于获取原始电流值;
所述判断单元,用于判断是否有初始均值;
所述无初始均值处理单元,用于若没有初始均值,则对原始电流值进行累计处理,获取电流滤波值,且以电流滤波值作为初始均值;
所述有初始均值处理单元,用于若有初始均值,则对初始均值进行处理,获取新初始均值,根据新初始均值和原始电流值计算电流滤波值。
其进一步技术方案为:所述原始电流值获取单元包括时间判断模块、等待处理模块、电流获取模块、转换模块以及存储模块;
所述时间判断模块,用于判断是否达到预计的时间;
所述等待处理模块,用于若不是,则继续等待,返回所述判断是否达到预计的时间;
所述电流获取模块,用于若是,则获取采样电流;
所述转换模块,对所述采样电流进行ad转换,获取原始电流值;
所述存储模块,将所述原始电流值存储于数组内。
其进一步技术方案为:所述无初始均值处理单元包括累加值获取模块、个数判断模块以及累加值右移模块;
所述累加值获取模块,用于对所述数组内的原始电流值进行累加,获取累加值;
所述个数判断模块,用于判断累加的原始电流值的个数是否达到32个;
所述累加值右移模块,用于若累加的原始电流值的个数达到32个,则将累加值右移五位,获取电流滤波值,并以电流滤波值作为初始均值。
其进一步技术方案为:所述有初始均值处理单元包括新初始均值获取模块、叠加值获取模块以及叠加值右移模块;
所述新初始均值获取模块,用于利用初始均值减去数组内的第一个数,获取新初始均值;
所述叠加值获取模块,用于将新初始值与原始电流值相加,获取叠加值;
所述叠加值右移模块,用于对所述叠加值右移五位,获取电流滤波值。
本发明与现有技术相比的有益效果是:本发明的一种采样滤波电流值的计算方法,通过获取原始电流值,对原始电流值进行ad转换,没有初始均值时,通过转换后右移五位作为电流滤波值以及初始均值,下次计算电流滤波值时,利用初始均值以及原始电流值进行处理,获取电流滤波值,实现获取既稳定又能体现出其真实采样值的电流均值,利用二进制的特性,右移五位快速得出下一个新的电流均值,效率高,且计算过程简单。
下面结合附图和具体实施例对本发明作进一步描述。
附图说明
图1为本发明具体实施例提供的一种采样电流滤波值的计算方法的流程图;
图2为本发明具体实施例提供的获取原始电流值的具体流程图;
图3为本发明具体实施例提供的没有初始均值的具体流程图;
图4为本发明具体实施例提供的有初始均值的具体流程图;
图5为本发明具体实施例提供的一种采样电流滤波值的计算系统的结构框图;
图6为本发明具体实施例提供的原始电流值获取单元的结构框图;
图7为本发明具体实施例提供的无初始均值处理单元的结构框图;
图8为本发明具体实施例提供的有初始均值处理单元的结构框图。
具体实施方式
为了更充分理解本发明的技术内容,下面结合具体实施例对本发明的技术方案进一步介绍和说明,但不局限于此。
如图1~8所示的具体实施例,本实施例提供的一种采样电流滤波值的计算方法,可以运用在电源开发的过程中,实现获取既稳定又能体现出其真实采样值的电流均值,并快速得出下一个新的电流均值,效率高,且计算过程简单,当然,也可以运用在其他电子产品的开发过程中。
如图1所示,本实施例提供了一种采样电流滤波值的计算方法,该方法包括:
s1、获取原始电流值;
s2、判断是否有初始均值;
s3、若没有初始均值,则对原始电流值进行累计处理,获取电流滤波值,且以电流滤波值作为初始均值;
s4、若有初始均值,则对初始均值进行处理,获取新初始均值,根据新初始均值和原始电流值计算电流滤波值。
对于s1步骤,获取原始电流值的步骤,包括以下具体步骤:
s11、判断是否达到预计的时间;
s12、若不是,则继续等待,返回所述判断是否达到预计的时间步骤;
s13、若是,则获取采样电流;
s14、对所述采样电流进行ad转换,获取原始电流值;
s15、将所述原始电流值存储于数组内。
对于s11步骤,判断是否达到预计的时间,一般为计时10ms,以等到电流的达到,并获取采样电流。
s14步骤,进行ad转换,是为了利用二进制的特性,来快速获取电流滤波值。电流滤波值与原始均值的关系为:电流滤波值的二进制数值为原始均值的二进制数值的1/32。
s15步骤,存储在数组内,是为了下一次ad转换后,获取对应的电流滤波值。
对于s3步骤,若没有初始均值,对原始电流值进行累计处理,获取电流滤波值,且以电流滤波值作为初始均值的步骤,包括以下具体步骤:
s31、对所述数组内的原始电流值进行累加,获取累加值;
s32、判断累加的原始电流值的个数是否达到32个;若累加的原始电流值的个数未达到32个,则返回对所述数组内的原始电流值进行累加的步骤;
s33、若累加的原始电流值的个数达到32个,则将累加值右移五位,获取电流滤波值,并以电流滤波值作为初始均值。
一开始运行的时候没有电流初始均值,需要先通过ad转换得出32个原始电流初始值,将这32个原始电流值放入数组中保存,累加这32个原始电流值,得出一个累加值sum,然后sum右移5位就得到一个初始均值,电流均值就是电流滤波值。右移5位,即除以32,可以快速得到电流滤波值。
更进一步的,s4步骤,若有初始均值,对初始均值进行处理,获取新初始均值,根据新初始均值和原始电流值计算电流滤波值的步骤,包括以下具体步骤:
s41、利用初始均值减去数组内的第一个数,获取新初始均值;
s42、将新初始值与原始电流值相加,获取叠加值;
s43、对所述叠加值右移五位,获取电流滤波值。
由于原先组内的电流值个数为32个,当新来一个原始电流值,则需要减去数组内第一个数,再叠加原始电流值,以作为叠加值。
上述的一种采样滤波电流值的计算方法,通过获取原始电流值,对原始电流值进行ad转换,没有初始均值时,通过转换后右移五位作为电流滤波值以及初始均值,下次计算电流滤波值时,利用初始均值以及原始电流值进行处理,获取电流滤波值,实现获取既稳定又能体现出其真实采样值的电流均值,利用二进制的特性,右移五位快速得出下一个新的电流均值,效率高,且计算过程简单。
如图5所示,本实施例还提供了一种采样电流滤波值的计算系统,包括原始电流值获取单元10、判断单元20、无初始均值处理单元30以及有初始均值处理单元40。
原始电流值获取单元10,用于获取原始电流值。
判断单元20,用于判断是否有初始均值。
无初始均值处理单元30,用于若没有初始均值,则对原始电流值进行累计处理,获取电流滤波值,且以电流滤波值作为初始均值。
有初始均值处理单元40,用于若有初始均值,则对初始均值进行处理,获取新初始均值,根据新初始均值和原始电流值计算电流滤波值。
更进一步的,原始电流值获取单元10包括时间判断模块11、等待处理模块12、电流获取模块13、转换模块14以及存储模块15。
时间判断模块11,用于判断是否达到预计的时间。
等待处理模块12,用于若不是,则继续等待,返回所述判断是否达到预计的时间。
电流获取模块13,用于若是,则获取采样电流。
转换模块14,对所述采样电流进行ad转换,获取原始电流值。
存储模块15,将所述原始电流值存储于数组内。
时间判断模块11判断是否达到预计的时间,一般为计时10ms,以等到电流的达到,并获取采样电流。
转换模块14进行ad转换,是为了利用二进制的特性,来快速获取电流滤波值。电流滤波值与原始均值的关系为:电流滤波值的二进制数值为原始均值的二进制数值的1/32。
存储模块15是为了下一次ad转换后,获取对应的电流滤波值。
对于无初始均值处理单元30包括累加值获取模块31、个数判断模块32以及累加值右移模块33。
累加值获取模块31,用于对所述数组内的原始电流值进行累加,获取累加值。
个数判断模块32,用于判断累加的原始电流值的个数是否达到32个。
累加值右移模块33,用于若累加的原始电流值的个数达到32个,则将累加值右移五位,获取电流滤波值,并以电流滤波值作为初始均值。
一开始运行的时候没有电流初始均值,需要先通过ad转换得出32个原始电流初始值,将这32个原始电流值放入数组中保存,累加这32个原始电流值,得出一个累加值sum,然后sum右移5位就得到一个初始均值,电流均值就是电流滤波值。右移5位,即除以32,可以快速得到电流滤波值。
对于有初始均值处理单元40包括新初始均值获取模块41、叠加值获取模块42以及叠加值右移模块43。
新初始均值获取模块41,用于利用初始均值减去数组内的第一个数,获取新初始均值。
叠加值获取模块42,用于将新初始值与原始电流值相加,获取叠加值。
叠加值右移模块43,用于对所述叠加值右移五位,获取电流滤波值。
由于原先组内的电流值个数为32个,当新来一个原始电流值,则需要减去数组内第一个数,再叠加原始电流值,以作为叠加值。
上述的一种采样滤波电流值的计算系统,通过获取原始电流值,对原始电流值进行ad转换,没有初始均值时,通过转换后右移五位作为电流滤波值以及初始均值,下次计算电流滤波值时,利用初始均值以及原始电流值进行处理,获取电流滤波值,实现获取既稳定又能体现出其真实采样值的电流均值,利用二进制的特性,右移五位快速得出下一个新的电流均值,效率高,且计算过程简单。
上述仅以实施例来进一步说明本发明的技术内容,以便于读者更容易理解,但不代表本发明的实施方式仅限于此,任何依本发明所做的技术延伸或再创造,均受本发明的保护。本发明的保护范围以权利要求书为准。