CN113489378B - 一种支持动态可调节采样率的振动能量计算方法 - Google Patents
一种支持动态可调节采样率的振动能量计算方法 Download PDFInfo
- Publication number
- CN113489378B CN113489378B CN202110952351.2A CN202110952351A CN113489378B CN 113489378 B CN113489378 B CN 113489378B CN 202110952351 A CN202110952351 A CN 202110952351A CN 113489378 B CN113489378 B CN 113489378B
- Authority
- CN
- China
- Prior art keywords
- data
- buffer area
- buffer
- sampling rate
- data block
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000005070 sampling Methods 0.000 title claims abstract description 39
- 238000004364 calculation method Methods 0.000 title claims abstract description 38
- 238000000034 method Methods 0.000 claims description 25
- 230000008569 process Effects 0.000 claims description 21
- 238000012545 processing Methods 0.000 claims description 12
- 238000011156 evaluation Methods 0.000 description 5
- 238000003745 diagnosis Methods 0.000 description 3
- 206010063385 Intellectualisation Diseases 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003595 spectral effect Effects 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H02—GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
- H02N—ELECTRIC MACHINES NOT OTHERWISE PROVIDED FOR
- H02N2/00—Electric machines in general using piezoelectric effect, electrostriction or magnetostriction
- H02N2/18—Electric machines in general using piezoelectric effect, electrostriction or magnetostriction producing electrical output from mechanical input, e.g. generators
- H02N2/186—Vibration harvesters
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
一种支持动态可调节采样率的振动能量计算方法,包括:程序初始化时,根据设置的缓冲区大小,构建环形缓冲区,包含一个环形数据缓存区、环形数据缓存区的起始指针和结束指针、以及缓冲区满的标记位;连续数据采集及动态调节,采集程序按设置的采样率采集定长的数据,生成数据块结构体或对象;采集程序将数据块写入环形缓冲区,从缓冲区读取数据进行振动能量计算,按照设定的计算窗口从计算缓冲读取连续数据进行振动能量计算。本发明提出了改进的环形缓冲区及配合的数据块结构,不需要重新分配缓冲区即可支持动态可调节采样率,不存在需要重新初始化缓存区的问题,便于程序不间断的进行振动能量数据计算,提高了实时性和连续性。
Description
技术领域
本发明属于机械设备振动能量计算的技术领域,具体涉及一种支持动态可调节采样率的振动能量计算方法。
背景技术
振动评价,是机械设备状态评估经常使用的方法。振动的原始数据在指定的采样率下定时采集等长的数据长度,程序基于定长的数据长度来进行振动能量的计算,最后经处理计算后的数据和状态评价方法来判断设备当前工作情况或健康状态。对于设备状态评价,其准确性不仅决定于振动分析过程采用的策略和评价原则,而且还取决于进行原始信号计算的数据长度(谱线数)。
根据《机械故障诊断理论及应用》及网络FFT算法实现,传统的振动能量计算是基于定长的数组缓存区,在设置采样率之后,根据数据长度初始化完成。程序定时从缓存区读取原始时域数据进行定长数据(加窗函数)进行快速傅里叶变换(FFT)后再进行振动能量指标计算(如:有效值、单峰值等);由于当调整采样率时,该缓冲区大小与采样率采样数据长度存在不一致,一般需要重新初始化该缓冲区来进行后续的频谱变换及指标计算。
发明内容
本发明所要解决的技术问题在于提供一种支持动态可调节采样率的振动能量计算方法,提高了实时性和连续性。
本发明是这样实现的:
一种支持动态可调节采样率的振动能量计算方法,包括如下步骤:
步骤1:缓冲区初始化:
程序初始化时,根据设置的缓冲区大小,构建环形缓冲区,所述环形缓冲区,包含一个环形数据缓存区、环形数据缓存区的起始指针和结束指针、以及缓冲区满的标记位;
环形缓冲区以数据块指针数组的方式进行初始化;
初始化之后,环形缓存区的缓冲区满的标记位、起始指针和结束指针也进行初始化;其中,缓冲区为数组,起始指针和结束指针都初始化为数组的起始下标0,缓冲区满的标记位设置为false;
步骤2:连续数据采集及动态调节过程,具体包括:
步骤21:采集程序按设置的采样率采集定长的数据,生成数据块结构体或对象;
步骤22:采集程序将数据块写入环形缓冲区,环形缓冲区处理流程如下:
步骤221:根据缓冲区满的标记位判断缓冲区是否已满,如果缓冲区已满,根据初始化的覆盖或丢弃处理方式进行处理;如果缓冲区未满,则进行写入缓冲区操作;
步骤222:写入缓冲区,先对缓冲区上保护锁,禁止其他进程或线程对缓冲区的读写操作;
步骤223:对结束指针的数据写入数据块结构;
步骤224:将结束指针的位置移动到下一块的空余数据块或者更新结束指针为数据下标增加1并除以环形缓冲区长度后取余数;
步骤225:比较更新后的结束指针是否等于起始指针,如相等,则说明缓冲区已满,设置缓冲区满的标记位为true;
步骤226:解除缓冲区的保护锁,允许其他进程或线程对缓冲区读写数据;
步骤3:计算程序从缓冲区读取数据进行振动能量计算,环形缓冲区处理流程如下:
步骤31:判断缓冲区是否为空,为空则直接返回;
步骤32:对缓冲区上保护锁,禁止其他进程或线程对缓冲区的读写操作;
步骤33:获取起始指针的数据块或数组下标的数据块;
步骤34:将起始指针(head)的位置移动到下一块的待读取的数据块或者更新起始指针为数据下标增加1并除以环形缓冲区长度后取余数;
步骤35:如果缓冲区满的标记位为true,则设置为false;
步骤36:解除缓冲区的保护锁,允许其他进程或线程对缓冲区读写数据;
步骤4:计算程序读取数据块后,先判断当前的采样率是否与数据块的采样率一致;如果一致,则将数据内容加入自己的计算缓存进行振动能量计算;否则就先清除计算缓存的数据再加入数据内容,并更新当前的采样率信息;
步骤5:计算程序按照设定的计算窗口从计算缓冲读取连续数据进行振动能量计算;
所述数据块的内容包含时间戳、采样率、数据长度、数据块内容和CRC校验码,其中:
时间戳为long类型,8个字节,存放采集数据的时间戳;
采样率为float类型,4个字节,存放采集数据的采样率;
数据长度为long类型,8个字节,存放所采集数据的数据长度;
数据块内容包含数据长度个float类型的原始数据;
CRC校验码对时间戳到数据块内容的数据做CRC校验,CRC32校验方式保存4个字节,CRC16校验方式存放2个字节的校验码+0x0000的填充内容。
进一步地,所述环形缓冲区,增加强制覆盖标志的初始化参数,设置强制覆盖的标志,则缓冲区在数据满的情况下,将强制覆盖最早的数据,并对覆盖的情况做日志记录,供后续调试参数做参考;未设置强制覆盖的标志,则缓冲区在数据满的情况下,则丢弃最新的数据,并记录日志说明发生数据丢弃,供后续调试参数做参考。
进一步地,所述环形缓冲区存储数据块的单个数据采用float类型存储或double类型存储。
本发明的优点在于:本发明提出了改进的环形缓冲区及配合的数据块结构,不需要重新分配缓冲区即可支持动态可调节采样率,不存在需要重新初始化缓存区的问题,便于程序不间断的进行振动能量数据计算,提高了实时性和连续性,确保振动数据计算的连贯性及准确性,同时在提高监测系统的智能化和故障诊断的精确性方面也均有重大的意义。
附图说明
下面参照附图结合实施例对本发明作进一步的描述。
图1是本发明的环形缓冲区示意图。
图2是本发明的环形缓冲区存储数据块格式示意图。
具体实施方式
本发明提出一种支持动态可调节采样率的振动能量计算方法,包括如下步骤:
步骤1:缓冲区初始化
程序初始化时,根据设置的缓冲区大小(bufferSize),构建环形缓冲区,环形缓冲区(如图1所示)包含一个环形数据缓存区、环形数据缓存区的起始指针和结束指针、以及缓冲区满的标记位;
环形缓冲区以数据块指针数组的方式进行初始化(初始化的数组可以为ringBuf)。
初始化之后,环形缓存区的起始指针和结束指针也进行初始化;如果缓冲区为数组,则起始指针和结束指针都初始化为数组的起始下标0,缓冲区满的标记位设置为false;
数据块结构说明(如图2所示):
数据块内容包含时间戳、采样率、数据长度、数据块内容和CRC校验码。分别说明如下:
时间戳为long类型,8个字节,存放采集数据的时间戳;
采样率为float类型,4个字节,存放采集数据的采样率;
数据长度为long类型,8个字节,存放所采集数据的数据长度;
数据块内容包含数据长度个float类型的原始数据;
CRC校验码对时间戳到数据块内容的数据做CRC校验,CRC32校验方式保存4个字节,CRC16校验方式存放2个字节的校验码+0x0000的填充内容。
步骤2:连续数据采集及动态调节过程:
步骤21:采集程序(或采集进程)按设置的采样率采集定长的数据,生成数据块结构体或对象;
步骤22:采集程序(或采集进程)将数据块写入环形缓冲区,环形缓冲区处理流程如下:
步骤221:判断缓冲区是否已满(根据缓冲区满的标记位判断),如果缓冲区已满,根据初始化的覆盖或丢弃处理方式进行处理;如果缓冲区未满,则进行写入缓冲区操作;
步骤222:写入缓冲区,先对缓冲区上保护锁,禁止其他进程或线程对缓冲区的读写操作;
步骤223:对结束指针的数据写入数据块结构;
步骤224:将结束指针(tail)的位置移动到下一块的空余数据块或者更新结束指针为数据下标增加1并除以环形缓冲区长度后取余数(如:tail = (tail + 1) %bufferSize);
步骤225:比较更新后的结束指针是否等于起始指针,如相等,则说明缓冲区已满,设置缓冲区满的标记位为true;
步骤226:最后,解除缓冲区的保护锁,允许其他进程或线程对缓冲区读写数据。
步骤3:计算程序(或计算进程)从缓冲区读取数据进行振动能量计算,环形缓冲区处理流程如下:
步骤31:判断缓冲区是否为空,为空则直接返回;
步骤32:对缓冲区上保护锁,禁止其他进程或线程对缓冲区的读写操作;
步骤33:获取起始指针的数据块或数组下标的数据块;
步骤34:将起始指针(head)的位置移动到下一块的待读取的数据块或者更新起始指针指针为数据下标增加1并除以环形缓冲区长度后取余数(如:head = (head + 1) %bufferSize);
步骤35:如果缓冲区满的标记位为true,则设置为false;
步骤36:最后,解除缓冲区的保护锁,允许其他进程或线程对缓冲区读写数据。
步骤4:计算程序(或计算进程)读取数据块后,先判断当前的采样率是否与数据块的采样率一致;如果一致,则将数据内容加入自己的计算缓存进行振动能量计算;否则就先清除计算缓存的数据再加入数据内容,并更新当前的采样率信息。
步骤5:计算程序(或计算进程)按照设定的计算窗口从计算缓冲读取连续数据进行振动能量计算。
需要说明的是,环形缓冲区也可以增加强制覆盖标志的初始化参数,设置强制覆盖的标志,则缓冲区在数据满的情况下,将强制覆盖最早的数据,并对覆盖的情况做日志记录,供后续调试参数做参考。未设置强制覆盖的标志,则缓冲区在数据满的情况下,则丢弃最新的数据,并记录日志说明发生数据丢弃,供后续调试参数做参考。实际使用中,应根据使用场景设置该初始化参数。
环形缓冲区存储数据块的单个数据采用float类型存储(4字节),如实际使用中float类型无法满足数据的范围要求,可采用double类型存储(8字节)。可在初始化时通过参数进行设置。同时应注意程序的运行内存应相应扩大,以保证程序的正常运行。
本发明提出了改进的环形缓冲区及配合的数据块结构,不需要重新分配缓冲区即可支持动态可调节采样率,不存在需要重新初始化缓存区的问题,便于程序不间断的进行振动能量数据计算,提高了实时性和连续性,确保振动数据计算的连贯性及准确性,同时在提高监测系统的智能化和故障诊断的精确性方面也均有重大的意义。
上述实施例和图式并非限定本发明的形态和式样,任何所属技术领域的普通技术人员对其所做的适当变化或修饰,皆应视为不脱离本发明的专利范畴。
Claims (3)
1.一种支持动态可调节采样率的振动能量计算方法,其特征在于:包括如下步骤:
步骤1:缓冲区初始化:
程序初始化时,根据设置的缓冲区大小,构建环形缓冲区,所述环形缓冲区,包含一个环形数据缓存区、环形数据缓存区的起始指针和结束指针、以及缓冲区满的标记位;
环形缓冲区以数据块指针数组的方式进行初始化;
初始化之后,环形缓存区的缓冲区满的标记位、起始指针和结束指针也进行初始化;其中,缓冲区为数组,起始指针和结束指针都初始化为数组的起始下标0,缓冲区满的标记位设置为false;
步骤2:连续数据采集及动态调节过程,具体包括:
步骤21:采集程序按设置的采样率采集定长的数据,生成数据块结构体或对象;
步骤22:采集程序将数据块写入环形缓冲区,环形缓冲区处理流程如下:
步骤221:根据缓冲区满的标记位判断缓冲区是否已满,如果缓冲区已满,根据初始化的覆盖或丢弃处理方式进行处理;如果缓冲区未满,则进行写入缓冲区操作;
步骤222:写入缓冲区,先对缓冲区上保护锁,禁止其他进程或线程对缓冲区的读写操作;
步骤223:对结束指针的数据写入数据块结构;
步骤224:将结束指针的位置移动到下一块的空余数据块或者更新结束指针为数据下标增加1并除以环形缓冲区长度后取余数;
步骤225:比较更新后的结束指针是否等于起始指针,如相等,则说明缓冲区已满,设置缓冲区满的标记位为true;
步骤226:解除缓冲区的保护锁,允许其他进程或线程对缓冲区读写数据;
步骤3:计算程序从缓冲区读取数据进行振动能量计算,环形缓冲区处理流程如下:
步骤31:判断缓冲区是否为空,为空则直接返回;
步骤32:对缓冲区上保护锁,禁止其他进程或线程对缓冲区的读写操作;
步骤33:获取起始指针的数据块或数组下标的数据块;
步骤34:将起始指针(head)的位置移动到下一块的待读取的数据块或者更新起始指针为数据下标增加1并除以环形缓冲区长度后取余数;
步骤35:如果缓冲区满的标记位为true,则设置为false;
步骤36:解除缓冲区的保护锁,允许其他进程或线程对缓冲区读写数据;
步骤4:计算程序读取数据块后,先判断当前的采样率是否与数据块的采样率一致;如果一致,则将数据内容加入自己的计算缓存进行振动能量计算;否则就先清除计算缓存的数据再加入数据内容,并更新当前的采样率信息;
步骤5:计算程序按照设定的计算窗口从计算缓冲读取连续数据进行振动能量计算;
所述数据块的内容包含时间戳、采样率、数据长度、数据块内容和CRC校验码,其中:
时间戳为long类型,8个字节,存放采集数据的时间戳;
采样率为float类型,4个字节,存放采集数据的采样率;
数据长度为long类型,8个字节,存放所采集数据的数据长度;
数据块内容包含数据长度个float类型的原始数据;
CRC校验码对时间戳到数据块内容的数据做CRC校验,CRC32校验方式保存4个字节,CRC16校验方式存放2个字节的校验码+0x0000的填充内容。
2.根据权利要求1所述的一种支持动态可调节采样率的振动能量计算方法,其特征在于:
所述环形缓冲区,增加强制覆盖标志的初始化参数,设置强制覆盖的标志,则缓冲区在数据满的情况下,将强制覆盖最早的数据,并对覆盖的情况做日志记录,供后续调试参数做参考;未设置强制覆盖的标志,则缓冲区在数据满的情况下,则丢弃最新的数据,并记录日志说明发生数据丢弃,供后续调试参数做参考。
3.根据权利要求1所述的一种支持动态可调节采样率的振动能量计算方法,其特征在于:
所述环形缓冲区存储数据块的单个数据采用float类型存储或double类型存储。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110952351.2A CN113489378B (zh) | 2021-08-19 | 2021-08-19 | 一种支持动态可调节采样率的振动能量计算方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110952351.2A CN113489378B (zh) | 2021-08-19 | 2021-08-19 | 一种支持动态可调节采样率的振动能量计算方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113489378A CN113489378A (zh) | 2021-10-08 |
CN113489378B true CN113489378B (zh) | 2022-05-10 |
Family
ID=77946902
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110952351.2A Active CN113489378B (zh) | 2021-08-19 | 2021-08-19 | 一种支持动态可调节采样率的振动能量计算方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113489378B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102362232A (zh) * | 2009-03-23 | 2012-02-22 | 三菱电机株式会社 | A/d变换装置以及可编程控制器系统 |
CN103678167A (zh) * | 2012-09-12 | 2014-03-26 | 想象力科技有限公司 | 动态可调整大小的循环缓冲区 |
CN103744621A (zh) * | 2013-12-31 | 2014-04-23 | 深圳英飞拓科技股份有限公司 | 缓冲区循环读写的方法及装置 |
CN107247561A (zh) * | 2017-05-31 | 2017-10-13 | 成都华立达电力信息系统有限公司 | 缓冲池循环存储读写方法 |
CN111290708A (zh) * | 2020-01-19 | 2020-06-16 | 成都中嵌自动化工程有限公司 | 一种基于动态调整的环形缓冲区的数据处理方法及设备 |
CN111309678A (zh) * | 2020-02-22 | 2020-06-19 | 呼和浩特市奥祥电力自动化有限公司 | 一种数据循环存储方法及网络报文记录分析装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20050055549A (ko) * | 2003-12-08 | 2005-06-13 | 삼성전자주식회사 | Tcp/ip 통신을 위해 하드웨어적으로 구현한 링 버퍼관리 시스템 및 그 방법 |
-
2021
- 2021-08-19 CN CN202110952351.2A patent/CN113489378B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102362232A (zh) * | 2009-03-23 | 2012-02-22 | 三菱电机株式会社 | A/d变换装置以及可编程控制器系统 |
CN103678167A (zh) * | 2012-09-12 | 2014-03-26 | 想象力科技有限公司 | 动态可调整大小的循环缓冲区 |
CN103744621A (zh) * | 2013-12-31 | 2014-04-23 | 深圳英飞拓科技股份有限公司 | 缓冲区循环读写的方法及装置 |
CN107247561A (zh) * | 2017-05-31 | 2017-10-13 | 成都华立达电力信息系统有限公司 | 缓冲池循环存储读写方法 |
CN111290708A (zh) * | 2020-01-19 | 2020-06-16 | 成都中嵌自动化工程有限公司 | 一种基于动态调整的环形缓冲区的数据处理方法及设备 |
CN111309678A (zh) * | 2020-02-22 | 2020-06-19 | 呼和浩特市奥祥电力自动化有限公司 | 一种数据循环存储方法及网络报文记录分析装置 |
Also Published As
Publication number | Publication date |
---|---|
CN113489378A (zh) | 2021-10-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7783679B2 (en) | Efficient processing of time series data | |
US20170131947A1 (en) | Data and collection methods to analyze life acceleration of SSD with real usages | |
CN101667205B (zh) | 一种面向快速回放的实时测点数据存储方法 | |
US20140059313A1 (en) | Apparatus and method for recovering partition using backup boot record information | |
US8468134B1 (en) | System and method for measuring consistency within a distributed storage system | |
US6961927B1 (en) | Lossless, context-free compression system and method | |
CN1963814A (zh) | 存储器数据管理方法 | |
CN109994131B (zh) | 一种基于索引的工频录波文件压缩存储方法及系统 | |
US20050240359A1 (en) | In-place dynamically re-sizeable persistent historical database | |
CN108616280B (zh) | 非稳态数据实时采集数据压缩方法 | |
CN107797881A (zh) | 一种数据一致性测试方法、装置、设备及存储介质 | |
JP3504138B2 (ja) | 伝送装置のログ記録方式 | |
CN113489378B (zh) | 一种支持动态可调节采样率的振动能量计算方法 | |
CN111309678B (zh) | 一种数据循环存储方法及网络报文记录分析装置 | |
US10851647B2 (en) | Downhole vibration and impact data recording method | |
CN112783711A (zh) | NodeJS上程序内存分析的方法、存储介质 | |
CN108829345B (zh) | 日志文件的数据处理方法和终端设备 | |
CN107092530B (zh) | 一种基于分布式内存的信令数据处理方法及系统 | |
CN106468733A (zh) | 一种特高压雷电侵入波的监测系统及其监测方法 | |
CN111913913A (zh) | 访问请求的处理方法和装置 | |
US20170031738A1 (en) | Function-calling-information collection method and computer-readable recording medium | |
CN115664425A (zh) | 基于指定精度的信号监测系统模拟量压缩存储方法及系统 | |
CN111026678A (zh) | 基于固态硬盘的缓存设计方法、装置及计算机设备 | |
CN107943415B (zh) | 基于fat文件系统的查找空闲簇的方法和系统 | |
CN114443339A (zh) | 基于双时间戳循环队列的错误日志记录方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CB03 | Change of inventor or designer information | ||
CB03 | Change of inventor or designer information |
Inventor after: Xie Zhenyu Inventor after: Xu Jingling Inventor after: Weng Xinquan Inventor after: Ke Yinhong Inventor after: Liu Ruilin Inventor before: Xie Zhenyu Inventor before: Xu Jingling Inventor before: Weng Xinquan Inventor before: Ke Yinhong Inventor before: Liu Ruilin |