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)
    

过几天慢慢解释

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • idea2021激活码 mac(最新序列号破解)

    idea2021激活码 mac(最新序列号破解),https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月18日
    39
  • 软件测试流程及规范[通俗易懂]

    软件测试流程及规范[通俗易懂]注:非通用标准流程,仅为大家提供参考。目标制定完整且具体的测试路线和流程,为快速、高效和高质量的软件测试提供基础流程框架。最终目标是实现软件测试规范化、标准化。测试流程说明流程图需求分析需求分析由SA制定,要求细化每一个功能的细节,每一个按钮的位置以及边界范围,对于稍大或稍复杂需求要求建模。(1)测试需求是制订测试计划的基本依据,只有确定了的测试需求才能够为测试计划提供客观依据;(2)测

    2022年6月7日
    31
  • MFC进度条学习笔记

    MFC进度条学习笔记最近工作中有使用到进度条的知识,就来学习学习这个控件~~先来看看想要达到的效果:好的,现在开始正题。我们这里的进度条,在程序里面叫做CProgressCtrl,它是继承自CWnd类的基础控件类,用来展示工作进展度。1、主线程的处理方式。1.1先给我们的控件添加一个环境变量,起个名字就叫做: CProgressCtrlm_progressCtrl;1.2接着,在对话框初始化的时…

    2022年7月27日
    18
  • 程序员外包公司到底值不值得去_百度外包岗位值不值得去

    程序员外包公司到底值不值得去_百度外包岗位值不值得去首先,我们来了解一下什么是外包?外包是指企业动态地配置自身和其他企业的功能和服务,并利用企业外部的资源为企业内部的生产和经营服务。现在很多大型公司为了节省成本,将一些内部工作外包给第三方公司来做,所以现在外包公司发展越来越兴。雇主公司会在什么情况下雇用外包人员呢?01、项目很急一般规模比较大或者流程很正规的公司,招聘和入职手续都比较繁琐。比如,通过正常途径招聘一个员工的时间大概需要1周-2周的时间,而且招聘进来之后,员工入职可能还需要等待2-3周时间;入职后,员工熟悉业务流程还需要一定的时间,

    2022年9月28日
    0
  • ps抠公章的最简单方法_PS抠图公章被判刑

    ps抠公章的最简单方法_PS抠图公章被判刑搞设计的很苦逼,整天面对各种各样任务,除了修图、排版外,还时不时会有些另类需求。这时如果掌握一些小技巧就不用临时抱佛脚啦。下面献上一计:教大家怎么用PS抠公章。有需要的拿去,PS:不要干坏事吆!效

    2022年8月1日
    0
  • python pandas fillna_pandas删除行

    python pandas fillna_pandas删除行DataFrame.fillna(self,value=None,method=None,axis=None,inplace=False,limit=None,downcast=None,**kwargs)使用指定的方法填充NA/NaN值。参数:value:scalar(标量),dict,Series,或DataFrame用于填充孔的值(例如0),或者是dict/Seri…

    2022年8月12日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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