完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
|
|
相关推荐
1个回答
|
|
首先声明,对于振动分析,本人是菜鸟。所以本文中可能有错误,或者不够专业和严谨。
最简单的振动检测指标是所谓通频值(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) RMS 的计算公式 波峰因数(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=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) |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1874 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1658 浏览 1 评论
1143 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
759 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1720 浏览 2 评论
1963浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
788浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
610浏览 3评论
628浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
590浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-1-11 09:27 , Processed in 0.684175 second(s), Total 44, Slave 39 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号