PeakVue 振动分析技术「建议收藏」

PeakVue 振动分析技术「建议收藏」首先声明,对于振动分析,本人是菜鸟。所以本文中可能有错误,或者不够专业和严谨。最简单的振动检测指标是所谓通频值(Overallvibrationvalue)。它是采集信号的均方根:实例:产生一个正弦波,并计算rms。该值越大,反映振动越大。importnumpyasnpfromscipyimportsignalimportmatplotlib.pyplot…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

首先声明,对于振动分析,本人是菜鸟。所以本文中可能有错误,或者不够专业和严谨。

最简单的振动检测指标是所谓通频值(Overall vibration value)。它是采集信号的均方根:

实例:  产生一个正弦波,并计算rms。该值越大,反映振动越大。

import numpy as np
from scipy import signal
import matplotlib.pyplot as plt
n = 512                        
dt = 0.01                     
t = np.linspace(1, n, n)*dt-dt
y = np.sin(2*np.pi*t) 
plt.plot(t, y)
plt.show()
rms = np.sqrt(np.mean(y**2))
print(rms/N)

结果为 0.7 .正弦波的rms 是0.7。

RMS 的计算公式

PeakVue 振动分析技术「建议收藏」

波峰因数(Crest Factor)

Crest Factor (peak-to-RMS ratio) = (peak value)/(RMS value).

通频值和波峰因素振动仪表的方法的好处是产生一个单一的值来反映机器的健康。

CF+              严重性

0 to 5           好 Good

6 to 10         满意 Satisfactory

11 to 15       不满意 Unsatisfactory above

15                不能接受 Unaccepatable

 

波峰因数+(Crest Factor +)

当轴承急剧损坏时,RMS 的值加大,与峰值接近,Crest Factor 反而会下降。

CF =oc Peak+oc RMS+oc (peak value)/(RMS value).

oc 代表正比于。我觉得就是乘一个比例系数就可以了。

 

PeakVue 方法

     波峰因数计算量比较小,但是有许多的故障无法检测出来。实际上,轴承的许多早期故障是金属和金属摩擦产生的。表现为微弱的高频信号。如果和低频振动信号混合在一起。高频信号难以辨别。

  PeakVue 方法是艾默生公司的专利技术,它的实现算法主要为:

1 使用高通滤波器(highpass  Filter) 过滤掉低频信号,截止频率大约为1000Hz

2 使用希尔伯特变换 计算出包络线

3 对包络线 做FFT 变换。

我的项目

 振动数据IEPE采集器

  使用STM32F429 +ads127l01 实现IEPE 压电振动传感器ADC 采集,通过UDP 将数据传送到PC机。PC机使用Python 做后续数据处理。

测试床

python 程序

import socket
import numpy as np
from scipy.fftpack import fft
from scipy import signal
import struct
from matplotlib import pyplot as plt
def bytesToFloat(h1,h2,h3,h4):
    ba = bytearray()
    ba.append(h1)
    ba.append(h2)
    ba.append(h3)
    ba.append(h4)
    return struct.unpack("!f",ba)[0]
HOST = '192.168.31.98'
PORT = 3800
BUFSIZ = 512
ADDR = (HOST,PORT)
udpSerSock = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
udpSerSock.bind(ADDR)
t = np.linspace(0, 127, 128, True)
y =[]
for i in range(128):
    y.append(0) 
fig, (ax1, ax2) = plt.subplots(2, 1, sharex=False)    
plt.show()
while True:
    data, addr = udpSerSock.recvfrom(BUFSIZ)
    
    for i in range(128):
         y[i]=bytesToFloat(data[i*4+3],data[i*4+2],data[i*4+1],data[i*4+0])
    b,a = signal.butter(16, 0.128, 'highpass')
    filtered = signal.filtfilt(b, a, y)*20
    yh = np.abs(signal.hilbert(filtered))  
    yy= np.abs(fft(yh)) 
    yy[0] =0  
    ax1.clear()
    ax1.set_title("Peakvue")
    ax1.plot(t,yy) 
    ax1.axis([0, 128, 0,40])
    ax2.clear()
    ax2.plot(t,yh) 
    #ax2.axis([0, 128, -20, 20])
    ax2.set_title("highpass")
    
    plt.pause(0.1)
    

过几天慢慢解释

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/181438.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 有约束最优化问题MATLAB_约束条件下的最优化问题

    有约束最优化问题MATLAB_约束条件下的最优化问题最近在做天线多目标优化的实例,因此接触到了NSGA-Ⅱ算法,所以想分享以下我个人的学习内容与经历,仅作参考,如果内容有误,也希望各位能够指出来,大家一起进行交流指正。内容将分为以下几个模块,内容可能较多,如果觉得不错的话,可以点赞????,收藏或者转发哦!目录NSGA-Ⅱ算法简介非支配集排序锦标赛选择模拟二进制交叉多项式变异精英保留策略参考文献NSGA-Ⅱ算法简介NSGA-Ⅱ算法由Deb等人首次提出,其思想为带有精英保留策略的快速非支配多目标优化算法,是一种基于Pareto最优解的多目标优化算法。

    2022年10月11日
  • 大道之简

    大道之简

  • C语言中volatile关键字的作用[通俗易懂]

    C语言中volatile关键字的作用[通俗易懂]一.前言1.编译器优化介绍:由于内存访问速度远不及CPU处理速度,为提高机器整体性能,在硬件上引入硬件高速缓存Cache,加速对内存的访问。另外在现代CPU中指令的执行并不一定严格按照顺序执行,没有相关性的指令可以乱序执行,以充分利用CPU的指令流水线,提高执行速度。以上是硬件级别的优化。再看软件一级的优化:一种是在编写代码时由程序员优化,另一种是由编译器进行优化。编译器优化常用的方法有:将内存变

  • TIFF文件切割_tif文件分割

    TIFF文件切割_tif文件分割TIFF文件由于可以存储多种形式的数据类型,也可以存储大量的数据,故其体积比较大,如果我们想截取其中的一部分图片数据,如下图:截取如下图部分:保存之后同样还是一个TIFF图片。1.自己定义了一个类实现头文件:#pragmaonce#include#include”tiflib.h”#include#include

    2022年10月30日
  • idea2021.11.3永久激活【2021免费激活】

    (idea2021.11.3永久激活)最近有小伙伴私信我,问我这边有没有免费的intellijIdea的激活码,然后我将全栈君台教程分享给他了。激活成功之后他一直表示感谢,哈哈~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.cn/100143.html…

  • swift 语言获取触摸点坐标 touchesBegan 中的 touches的坐标获取「建议收藏」

    swift 语言获取触摸点坐标 touchesBegan 中的 touches的坐标获取「建议收藏」overridefunctouchesBegan(touches:Set,withEventevent:UIEvent){    varp=touches.anyObject().locationInview(self)  }很多老教材都是这个方法来获取,touches.anyObject(),可是最新的版本提示touches根本没有anyObject

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号