当前位置: 首页 > news >正文

[笔记]基于小波分析的基频识别

原文:基于小波分析的油田机械传动装置振动信号识别方法,科技资讯,202305,赵磊

摘要:为提高油田机械设备运行的稳定性与高效性,分析传动装置的运行特性该研究设计了一种基于小波分析的油田传动装置振动信号识别方法。应用小波分析方法采集机械传动装置的振动信号,为振动信号的识别提供数据基础。然后对采集到的振动信号进行卷积预处理,根据 Hilbert 变换、小波变换原理,从振动信号的时域特征、频域特征以及时频特征等方面出发,识别传动装置的振动信号。实验结果显示:经过小波分析后的3组振动信号频率均变得更加简洁,保留的关键频率特征为 85.11 Hz,与实际传动频率 85.399 Hz 非常接近,表明该文方法通过将复杂的信号简化,能够有效地识别装置振动的振动信号特征,便于对油田机械传动装置的运行状态进行判断


关键词:小波分析 智能化油田 机械传动装置 振动信号识别 传动信号 支持向量机

中图分类号:TP751 文献标识码:A

1.关键字

  • 油田机械装置的传动部件一般有:
    • 齿轮
    • 链条
    • 万向轴
    • 三角带
  • 传动指标(文中有定义)
    • 转速比
    • 变矩向量
    • 功率能容
    • 传动效率
    • 过载向量

2.理论概述 

3.分析过程 - 黑盒

3.1原始振动数据:

3.2  工况

3.3 处理后的数据

4.论文结论验证

我在原始信号的基础上,叠加了10倍的白噪声。然后在时域和频谱的观察已经完全乱序的情况下,小波分析基本上可以稳定地观察到已知频率区间的信号特征值。代码没有做反推回时域的处理,因为没有必要。因为只是为了得到了特征值。

4.1 所用代码

import numpy as np
import pywt
import matplotlib.pyplot as plt
import matplotlib# 生成一个模拟的2048点振动加速度数据(你可以用你的实际数据替代)
# 示例:简单的正弦波加噪声
fs = 10000  # 采样频率 (Hz)
N = 2048  # 数据点数
t = np.arange(N) / fs
f0 = 300  # 基频 (Hz)
data = 0.1* np.sin(2 * np.pi * f0 * t) + 0.5 * np.random.randn(N)
#目标频段
freq_target_limited = [100,600]# 选择小波函数
FreqBand = 1.5
FreqCenter=1.0
wavelet = f'cmor{FreqBand}-{FreqCenter}'  # 复小波
#wavelet = 'cmor'
scales = np.arange(1, 128)  # 尺度范围# 小波变换
coefficients, frequencies = pywt.cwt(data, scales, wavelet, sampling_period=1/fs)# 计算频谱(绝对值的平方表示功率谱)
power_spectrum = np.abs(coefficients) ** 2# 计算平均功率谱
avg_power_spectrum = np.mean(power_spectrum, axis=1)# 过滤出关心的频率区间
freq_mask = (frequencies >= freq_target_limited[0]) & (frequencies <= freq_target_limited[1])
filtered_frequencies = frequencies[freq_mask]
filtered_power_spectrum = avg_power_spectrum[freq_mask]# 找到最大功率谱的频率
max_freq_index = np.argmax(filtered_power_spectrum)
base_freq = filtered_frequencies[max_freq_index]# 输出基频
print(f"提取的基频是:{base_freq:.2f} Hz")# 设置字体路径
matplotlib.rcParams['font.sans-serif'] = ['SimHei']  # SimHei 是常用的中文字体
matplotlib.rcParams['axes.unicode_minus'] = False  # 处理负号问题plt.subplot(311)  # 绘制时域波形
plt.plot(t, data)
plt.xlabel('Time (s)')
plt.ylabel('Amplitude')
plt.title('Time Domain Signal')
plt.grid()plt.subplot(312)  # 绘制FFT
# 计算 FFT
fft_values = np.fft.fft(data)
fft_freqs = np.fft.fftfreq(N, 1/fs)# 取绝对值并且取前半部分
fft_magnitude = np.abs(fft_values)/len(data)
half_n = N // 2
fft_freqs = fft_freqs[:half_n]
fft_magnitude = fft_magnitude[:half_n]plt.plot(fft_freqs, fft_magnitude)
plt.title('FFT')
plt.xlabel('Frequency (Hz)')
plt.ylabel('Power')
plt.grid()plt.subplot(313)  # 绘制功率谱
plt.plot(frequencies, avg_power_spectrum)
plt.title(f'Power Spectrum 特征频率 is {base_freq:.2f} in {freq_target_limited}')
plt.xlabel('Frequency (Hz)')
plt.ylabel('Power')
plt.grid()plt.tight_layout()  # 调整子图间距
plt.show()

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 前端:html+css:伪类画箭头(实心)
  • 一般图最大权匹配
  • 前端面试——什么是原型和原型链
  • 这个暑假作业有点特别,帮100位老人开启这个功能
  • 一个很大的文件,文件的每一行是一个很大的数字,如果给你一个单机,内存比较小,存不了这么大的文件,但是硬盘是无限大的,如何对文件做一个排序输出
  • K8S部署MySQL5.7的主从服务
  • MFC程序设计(三)常用复杂控件的使用
  • 从零到上线,乔拓云助力快速构建在线教育平台
  • 【面试题系列Vue05】跟其他人不太一样的 Vue生命周期总结
  • 文案生成器,快速生成改写文案的捷径
  • 《黑神话:悟空》研发公司的薪资水平
  • SpringBoot集成kafka-自定义拦截器(可以在拦截器中做记录日志、安全检查等操作)
  • 汽车线束品牌服务商推荐-力可欣:致力于汽车连接线束和汽车连接器的开发、生产和应用
  • 挂个人-CSDN Java优秀内容博主rundreamsFly抄袭
  • C语言从头学51—多文件项目
  • python3.6+scrapy+mysql 爬虫实战
  • 【跃迁之路】【585天】程序员高效学习方法论探索系列(实验阶段342-2018.09.13)...
  • CEF与代理
  • CentOS7 安装JDK
  • Java 多线程编程之:notify 和 wait 用法
  • javascript 总结(常用工具类的封装)
  • Java的Interrupt与线程中断
  • JS+CSS实现数字滚动
  • node-glob通配符
  • Redash本地开发环境搭建
  • Webpack4 学习笔记 - 01:webpack的安装和简单配置
  • WebSocket使用
  • 阿里云购买磁盘后挂载
  • 用jquery写贪吃蛇
  • 用quicker-worker.js轻松跑一个大数据遍历
  • 转载:[译] 内容加速黑科技趣谈
  • 最简单的无缝轮播
  • Mac 上flink的安装与启动
  • ​​​​​​​sokit v1.3抓手机应用socket数据包: Socket是传输控制层协议,WebSocket是应用层协议。
  • ​​​【收录 Hello 算法】9.4 小结
  • ​如何在iOS手机上查看应用日志
  • # 日期待t_最值得等的SUV奥迪Q9:空间比MPV还大,或搭4.0T,香
  • $分析了六十多年间100万字的政府工作报告,我看到了这样的变迁
  • (2024.6.23)最新版MAVEN的安装和配置教程(超详细)
  • (7)摄像机和云台
  • (LeetCode) T14. Longest Common Prefix
  • (pojstep1.3.1)1017(构造法模拟)
  • (第8天)保姆级 PL/SQL Developer 安装与配置
  • (附源码)计算机毕业设计SSM在线影视购票系统
  • (企业 / 公司项目)前端使用pingyin-pro将汉字转成拼音
  • (算法)Game
  • (图文详解)小程序AppID申请以及在Hbuilderx中运行
  • (译) 函数式 JS #1:简介
  • (转)Scala的“=”符号简介
  • (转)创业家杂志:UCWEB天使第一步
  • .NET 5.0正式发布,有什么功能特性(翻译)
  • .NET C# 使用 iText 生成PDF
  • .NET Compact Framework 3.5 支持 WCF 的子集
  • .NET Core IdentityServer4实战-开篇介绍与规划
  • .NET/ASP.NETMVC 深入剖析 Model元数据、HtmlHelper、自定义模板、模板的装饰者模式(二)...