振动解调用的包络谱计算

2024-02-28 07:04
文章标签 计算 调用 振动 包络

本文主要是介绍振动解调用的包络谱计算,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1缘起

在振动分析中,对于一些高频频点的分析计算,使用包络谱技术,进而得到特化谱是最适宜的。我们看matlab信号分析中提供的一个实例:

https://www.mathworks.com/help/signal/ug/compute-envelope-spectrum.html

轴承故障有4个故障频点,示例中模拟了一个外圈故障的数据,然后对BPFO附近的谱线进行分解,最终用于分析的BPFO特化谱在这里,外圈故障是点蚀作用,非标准正弦波,所以倍频丰富。形成的最终包络谱视图可以很清晰地看到相关故障信号的基频和倍频特征。方便进行相关的故障分析的定量和定性分析。

9ccca8b94ee843aea7d6c90dc419a3f8.png

它的纵坐标有问题,最终的图理论上需要用db坐标。-40db一般认为是有效信号出现的门限。

这个问题,我看了无数的文章,看了希尔伯特变换的一篇论文,但是似乎没有人能说清楚包络变换的原理和操作步骤,很多人在进行包络计算时,只是调用了一个数学工具库中的函数。它做了什么,甚至,最终视图的坐标轴的档位都不明晰。

奇怪的是,这个重要的数学工具,在我查阅的一些标准的振动分析教材上也鲜有提及——也许它太过简单,是个常识?但关于希尔伯特变换的含义和在包络运算的使用,又确实没有几个人能说得清。感谢matlab,感谢一切在网络上积极进行理论和技术传播的从业人员和热心人士。希望和你们继续同行。

2.包络谱的计算步骤

四个步骤:

1.去零点

2.带通滤波

3.包络解调

4.去零点

然后在展示时:

5.功率谱显示

6.设置maxFreq。修饰倍频谱线位置。

3.重要步骤备注

1.为什么最终的包络谱线能达到谱线移动的效果?

44d5bbd81c4d471893d7e8a931cce670.png

看到上面带通滤波后的红色频谱和时域图就明白了。(出处:Bandpass-filter signals - MATLAB bandpass)

经过带通之后的时域图红色的部分是个非常典型的调制波。在它的这个高频频点附近BPFO的基频和倍频以调制波上叠加低频信号呈现。因为所有关心谱线之外的频段已经都被带通滤波器抑制,所以,最终经过标准的希尔伯特envelope解调后,这段细节谱就会被移动到低频部分。

此外,注意如果使用标准的希尔伯特解调,解调前后似乎会有一个两倍幅度加乘,如果你无法使用好用的数学运算库,要注意核对最终生成的全域包络谱的幅度,要把额外的加成消掉。

附录A 各种中间波形和频谱图

原始时域图

外圈故障是等幅的,因为只有一个BPFO在起作用,内圈故障因为滚珠和轴速接近,会呈现出幅度调制的效果。波形边缘是起伏的。

a5668337af4c4d06bee38b8d85ac74dc.png

原始频域功率谱

注意3kHz的一簇梳状故障谱线,高峰已经顶过-40db。故障信号已经形成。在进行FFT变换时,特别注意变换后输出的纵坐标的单位是什么。是原始幅度值还是db这类比率坐标,它直接影响故障的初筛。

018118c871d44210b2bd875be9702895.png

包络时域图

注意红色的故障频带幅度是很小的,样例中,这个振动信号刚刚超过-40db,是原始信号的1/100这样的量级。

376201de8de8404e9296dbb772654c2e.png

包络和全频域图

这里高频的下潜部分是由带通滤波实现的,低于-40db无需分析。输出全域谱可以保留,如本文开篇那个BPFO特化谱,可以直接把低于-40db很多的无关部分消掉,不显示。

0d057d467f1b42cc8088ebdbf31ff144.png

附录B 希尔伯特变换的数学和物理意义 

与包络计算相关的希尔伯特变换的解析参见:

希尔伯特变换的在信号解调时的示例-CSDN博客

这篇关于振动解调用的包络谱计算的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/754716

相关文章

Python文本相似度计算的方法大全

《Python文本相似度计算的方法大全》文本相似度是指两个文本在内容、结构或语义上的相近程度,通常用0到1之间的数值表示,0表示完全不同,1表示完全相同,本文将深入解析多种文本相似度计算方法,帮助您选... 目录前言什么是文本相似度?1. Levenshtein 距离(编辑距离)核心公式实现示例2. Jac

Java调用Python脚本实现HelloWorld的示例详解

《Java调用Python脚本实现HelloWorld的示例详解》作为程序员,我们经常会遇到需要在Java项目中调用Python脚本的场景,下面我们来看看如何从基础到进阶,一步步实现Java与Pyth... 目录一、环境准备二、基础调用:使用 Runtime.exec()2.1 实现步骤2.2 代码解析三、

Python如何调用另一个类的方法和属性

《Python如何调用另一个类的方法和属性》在Python面向对象编程中,类与类之间的交互是非常常见的场景,本文将详细介绍在Python中一个类如何调用另一个类的方法和属性,大家可以根据需要进行选择... 目录一、前言二、基本调用方式通过实例化调用通过类继承调用三、高级调用方式通过组合方式调用通过类方法/静

C#控制台程序同步调用WebApi实现方式

《C#控制台程序同步调用WebApi实现方式》控制台程序作为Job时,需同步调用WebApi以确保获取返回结果后执行后续操作,否则会引发TaskCanceledException异常,同步处理可避免异... 目录同步调用WebApi方法Cls001类里面的写法总结控制台程序一般当作Job使用,有时候需要控制

Python用Flask封装API及调用详解

《Python用Flask封装API及调用详解》本文介绍Flask的优势(轻量、灵活、易扩展),对比GET/POST表单/JSON请求方式,涵盖错误处理、开发建议及生产环境部署注意事项... 目录一、Flask的优势一、基础设置二、GET请求方式服务端代码客户端调用三、POST表单方式服务端代码客户端调用四

Python中经纬度距离计算的实现方式

《Python中经纬度距离计算的实现方式》文章介绍Python中计算经纬度距离的方法及中国加密坐标系转换工具,主要方法包括geopy(Vincenty/Karney)、Haversine、pyproj... 目录一、基本方法1. 使用geopy库(推荐)2. 手动实现 Haversine 公式3. 使用py

Python跨文件实例化、跨文件调用及导入库示例代码

《Python跨文件实例化、跨文件调用及导入库示例代码》在Python开发过程中,经常会遇到需要在一个工程中调用另一个工程的Python文件的情况,:本文主要介绍Python跨文件实例化、跨文件调... 目录1. 核心对比表格(完整汇总)1.1 自定义模块跨文件调用汇总表1.2 第三方库使用汇总表1.3 导

使用Python的requests库调用API接口的详细步骤

《使用Python的requests库调用API接口的详细步骤》使用Python的requests库调用API接口是开发中最常用的方式之一,它简化了HTTP请求的处理流程,以下是详细步骤和实战示例,涵... 目录一、准备工作:安装 requests 库二、基本调用流程(以 RESTful API 为例)1.

Python调用LibreOffice处理自动化文档的完整指南

《Python调用LibreOffice处理自动化文档的完整指南》在数字化转型的浪潮中,文档处理自动化已成为提升效率的关键,LibreOffice作为开源办公软件的佼佼者,其命令行功能结合Python... 目录引言一、环境搭建:三步构建自动化基石1. 安装LibreOffice与python2. 验证安装

Java中调用数据库存储过程的示例代码

《Java中调用数据库存储过程的示例代码》本文介绍Java通过JDBC调用数据库存储过程的方法,涵盖参数类型、执行步骤及数据库差异,需注意异常处理与资源管理,以优化性能并实现复杂业务逻辑,感兴趣的朋友... 目录一、存储过程概述二、Java调用存储过程的基本javascript步骤三、Java调用存储过程示