[发明专利]一种节省内存空间的方法无效
申请号: | 201110378046.3 | 申请日: | 2011-11-24 |
公开(公告)号: | CN102495808A | 公开(公告)日: | 2012-06-13 |
发明(设计)人: | 吕小亮;陈超 | 申请(专利权)人: | 深圳市亚特尔科技有限公司 |
主分类号: | G06F12/08 | 分类号: | G06F12/08 |
代理公司: | 北京英特普罗知识产权代理有限公司 11015 | 代理人: | 齐永红;常春 |
地址: | 518000 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 节省 内存空间 方法 | ||
技术领域
本发明涉及电能质量分析领域,尤其涉及一种节省内存空间的方法,该方法可应用于基于EN50160协议的电能质量分析系统中。
背景技术
在嵌入式系统应用中进行基于EN50160标准的分析时,往往会遇到需要分析一段时间内的电测量数据,此时要求分配相应的内存空间来存储这些数据。但是,分析的时间间隔越长,需要分配的内存空间就越大,相对于嵌入式系统有限的内存来说,占用的内存空间较为可观,而对于长时间数据的基于EN50160标准的分析,通常采用分段分析的方法。
但是,在应用上述分段分析机制时,发明人发现现有技术中至少存在如下问题:限于嵌入式系统的计算能力,不能对长时间数据进行总体分析,占用内存空间相对较大,容易消耗系统资源。
发明内容
本发明的实施例提供一种节省内存空间的方法、其可用于基于EN50160标准的分析系统中,以便在节约内存空间的前提下实现对长时间数据进行总体分析。
为达到上述目的,本发明的一方面提供了一种节省内存空间的方法,其包括:根据分析时间的长度以及待采集的数据的类型计算数据的总量;根据该数据的总量在内存中预置具有一定大小的缓冲存储区(buffer);根据分析数据类型确定缓存数据的类型;建立控制块保存控制块信息;将采集来的数据根据数据的类型按照针对不同缓存数据类型的排序算法插入到缓冲存储区中,并相应的更新控制块中的信息;以及,在采集完毕后,根据控制块中的内容计算出结果。
进一步,预分配大小为数据总量的一定比例的内存可以是5%的内存。
进一步的,所述控制块信息至少包括需要分析的数据总量、加入分析的数据个数、满足EN50160协议的限值的数据个数、缓存最大值数据的数据缓冲区指针、缓存最小值数据的数据缓冲区指针、缓存数据的类型。
进一步的,缓存数据类型包括:只缓存最大5%,只缓存最小5%,缓存最大2.5%和最小2.5%等;
进一步,根据排序算法将数据更新到缓存中的步骤包括,根据降序算法将数据更新到最大值数据缓冲区中,如果数据缓冲区溢出,则丢弃掉最小的值;或者,根据升序算法将数据更新到最小值数据缓冲区中,如果数据缓冲区溢出,则丢弃掉最大的值;
进一步的,根据控制块中的内容计算出结果的步骤包括:
对于只缓存最大5%的数据类型和只缓存最小5%的数据类型,分析模块根据控制块信息中的缓存数据缓冲区指针,从缓存数据缓冲区中取出第一个值,该值即为EN50160分析需要的100%概率值;根据控制块中插入数据个数乘以0.05后取整,得出EN50160分析需要的95%概率值数据在数据缓冲区中的位置,在数据缓冲区中取出该值即可;控制块中满足EN50160限值的数据个数除以插入数据个数即可得出EN50160分析中数据的合格率。
对于缓存最大2.5%和最小2.5%的数据类型,分析模块根据控制块信息中的缓存数据缓冲区指针,分别从最大值数据缓冲区和最小值数据缓冲区中取出第一个值,根据EN50160分析的偏差算法,算出两个值中偏差大的一个即为EN50160分析要求的100%概率值;根据控制块中插入数据个数乘以0.025后取整,以此为位置信息分别从最大值、最小值数据缓冲区中取出相应位置的数据,根据EN50160分析的偏差算法,算出两个值中偏差大的一个即为EN50160分析要求的95%概率值;控制块中满足EN50160限值的数据个数除以插入数据个数即可得出EN50160分析中数据的合格率。
本发明的有益效果在于,通过仅分出内存的一定的空间作为缓冲存储区,使得对内存的占用大大减少,并且由于仅计算所采集到的树数值中的很少的一部分,因此,对指标和数值进行计算分析时无需占用处理器的很大资源。
附图说明
图1为本发明一种实施例中数据缓冲区的分配示意图;
图2为本发明另一种实施例中数据缓冲区的分配示意图;
图3为本发明实施例一种节省内存空间的方法的流程示意图。
具体实施方式
下面参照附图对本发明的具体实施方式作进一步的说明。
本发明中的节省内存空间的方法可应用于基于EN50160协议的电能质量分析系统中。
基于EN50160协议的系统一般为嵌入式系统,采用RAM或FLASH等作为内存使用,通过一嵌入式控制器,例如基于ARM架构的控制器来实现指令的调用和数据分析、计算。
在该系统的一存储器中可存储该控制程序,参照图3该控制程序运行如下步骤:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳市亚特尔科技有限公司,未经深圳市亚特尔科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110378046.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:富营养水体中抑藻助沉水植被恢复的方法
- 下一篇:一种高纯α-氧化铝的生产方法