振动解调用的包络谱计算

news2024/11/20 3:22:26

1缘起

在振动分析中,对于一些高频频点的分析计算,使用包络谱技术,进而得到特化谱是最适宜的。

1.1 包络谱是什么样子的?

我们看matlab信号分析中提供的一个实例:

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

轴承故障有4个故障频点,示例中模拟了一个外圈故障的数据,然后对BPFO附近的谱线进行分解,最终用于分析的BPFO特化谱在这里:

9ccca8b94ee843aea7d6c90dc419a3f8.png

包络谱可以在频域,也可以在时域时域可以通过幅值特征进行故障类别的定性分析。比如等幅周期性振波,幅度起伏的周期性振波各自有可能的来源。频域可以确认频点,然后根据设备频点数据库查找对应的故障部件。

上图的纵坐标有问题,最终的图理论上需要用db坐标。粗略的考量,-40db一般认为是振动故障信号出现的门限。此外峭度作为普通信号的离散程度的度量,也可以用来粗判有效信号是否出现。不是正态分布的白噪声,那肯定是某种有效信号。

外圈故障最开始时,大多是点蚀作用,非标准正弦波,所以倍频丰富。形成的最终包络谱视图可以很清晰地看到相关故障信号的基频和倍频特征。方便进行相关的故障分析的定量和定性分析。

1.1 为什么要计算包络?

因为特征信号极微弱。包络其实是一个目标频带内微小信号,信噪比的相对提升技术。

振动监测的时候,如果涉及在线监测,信号会非常嘈杂,电磁噪声也会混入,最重要的是多个频点的振动数据会混叠在一起,在线监测时会更麻烦,因为采集器的成本在那里,你不可能对齐各个传感器的频点进行单独的采样——这样会涉及到很多协调工作。包络的一大功能就是在疑似故障已经出现时,把相关频点部分的故障信号的特征从频谱中抽取出来,就像是专门对这个频点做了一个针对性的观测。

包络能够把故障频点的基频和倍频移至低频,并且因为这个信号通常非常微弱,利用包络还可以过滤掉更高频段的干扰,而专注于这个微小信号的解析。全域图,谱线虽然也在,但是会被更高的能量峰完全淹没。

1.2 更多的话

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

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

2.包络谱的计算步骤

四个步骤:

1.去零点

2.带通滤波

3.包络解调

4.去零点

然后在展示时:

5.功率谱显示

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

3.FAQ

1.为什么文章开头的包络谱线能达到谱线移动的效果?

44d5bbd81c4d471893d7e8a931cce670.png

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

经过带通之后的时域图红色的部分是个非常典型的调制波。在它的这个高频频点附近BPFO的基频和倍频以调制波上叠加低频信号呈现。因为所有关心谱线之外的频段已经都被带通滤波器抑制,所以,最终经过标准的希尔伯特envelope解调后,这段细节谱就会看似被移动到低频部分。其实频率是不变的,它只是把那个频带的信号放大了。谱线的位置还在。那些会对解析产生干扰的高能谱线被抑制。

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

2.我们总能找到故障源吗?

全自动无人干预的振动故障定位是相对困难的。故障分析报告可以分级处理。定位不准确的,就给出可能失效的故障元件清单,方便人工后期确认。

如果已经能够非常清晰地判断出故障发生的器件以及振动类型。直接出报告即可,这肯定会更惊艳。始终要处理针对问题的分级处理。从75%~95%,付出的努力要大得多的多。我觉得对与工程应用,因为受限于成本工期等资源限制,永远不要奢望于达到全覆盖,全覆盖一定会不准确,而且代码会出现不必要的复杂性,易出错,难维护,而且报告的可信度会下降,而不是上升。

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

原始时域图

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

a5668337af4c4d06bee38b8d85ac74dc.png

原始频域功率谱

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

018118c871d44210b2bd875be9702895.png

包络时域图

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

376201de8de8404e9296dbb772654c2e.png

包络和全频域图

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

0d057d467f1b42cc8088ebdbf31ff144.png

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

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

前端JS 时间复杂度和空间复杂度

时间复杂度 BigO 算法的时间复杂度通常用大 O 符号表述,定义为 T(n) O(f(n)) 实际就是计算当一个一个问题量级(n)增加的时候,时间T增加的一个趋势 T(n):时间的复杂度,也就相当于所消耗的时长 O&#xff1…

纯国产轻量化数字孪生:智慧城市、智慧工厂、智慧校园、智慧社区。。。

AMRT 3D数字孪生引擎介绍 AMRT3D引擎是一款融合了眸瑞科技的AMRT格式与轻量化处理技术为基础,以降本增效为目标,支持多端发布的一站式纯国产自研的CS架构项目开发引擎。 引擎包括场景搭建、UI拼搭、零代码交互事件、光影特效组件、GIS/BIM组件、实时数据…

十四、综合项目(斗地主)

综合项目(斗地主) 1.准备牌、洗牌、发牌、看牌2.对每人手中的牌进行排序2.1 排序方法1(利用序号进行排序)2.2排序方法2(给每一张牌计算价值) 3.两个实体类3.1 User3.2 Poker 4.登录页面4.1 验证码代码4.2 登…

【蓝桥杯】快读|min和max值的设置|小明和完美序列|​顺子日期​|星期计算|山

目录 一、输入的三种方式 1.最常见的Scanner的输入方法 2.数据多的时候常用BufferedReader快读 3.较麻烦的StreamTokenizer快读(用的不多) StreamTokenizer常见错误: 二、min和max值的设置 三、妮妮的翻转游戏 四、小明和完美序列 五…

如何删除视频中不想要的部分?分享实用工具和步骤!

在数字化时代,视频已成为我们生活中不可或缺的一部分。无论是观看电影、记录生活,还是制作专业的广告、教学材料,我们都需要对视频进行编辑处理。其中,删除视频中不想要的部分是最常见的需求之一。那么,如何轻松实现这…

Pytorch添加自定义算子之(5)-配置GPU形式的简单add自定义算子

参考:https://zhuanlan.zhihu.com/p/358778742 一、头文件 命名为:add2.h void launch_add2(float *c,const float *a,const float *b,int n);

Jvm之内存泄漏

1 内存溢出 1.1 概念 java.lang.OutOfMemoryError,是指程序在申请内存时,没有足够的内存空间供其使用,出现OutOfMemoryError。产生该错误的原因主要包括:JVM内存过小。程序不严密,产生了过多的垃圾。 程序体现: 内…

Win UI3开发笔记(四)设置主题续

上文讲到过关于界面和标题栏以及普通文本的主题设置,这篇说一下关于对话框的主题设置。 我最终没找到办法,寻求办法的朋友可以不用接着看了,以下只是过程。 一个对话框包括标题部分、内容部分和按钮部分,其中,在Cont…

论文笔记:A survey on zero knowledge range proofs and applications

https://link.springer.com/article/10.1007/s42452-019-0989-z 描述了构建零知识区间证明(ZKRP)的不同策略,例如2001年Boudot提出的方案;2008年Camenisch等人提出的方案;以及2017年提出的Bulletproofs。 Introducti…

Python 全栈系列227 部署chatglm3-API接口

说明 上一篇介绍了基于算力租用的方式部署chatglm3, 见文章;本篇接着看如何使用API方式进行使用。 内容 1 官方接口 详情可见接口调用文档 调用有两种方式,SDK包和Http。一般来说,用SDK会省事一些。 以下是Python SDK包的git项目地址 安…

ChatGPT 正测试Android屏幕小组件;联想ThinkBook 推出透明笔记本电脑

▶ ChatGPT 测试屏幕小组件 近日 ChatGPT 正在测试 Android 平台上的屏幕小组件,类似于手机中的悬浮窗,按住 Android 手机主屏幕上的空白位置就可以调出 ChatGPT 的部件菜单。 菜单中提供了许多选项,包括文本、语音和视频查询的快捷方式&…

vue3的echarts从后端获取数据,用于绘制图表

场景需求:后端采用flask通过pymysql从数据库获取数据,并返回给前端。前端vue3利用axios获取数据并运用到echarts绘制图表。 第一步,vue中引入echarts 首先vue下载echarts npm install echarts 然后在main.js文件写如下代码 import {create…

【appium】App类型、页面元素|UiAutomator与appium|App元素定位

目录 一、App前端基础知识 1、App类型划分 2、App类型对比 3、App页面元素 App页面元素分为布局和控件两种 常见布局: 常见控件:定位软件:appium和sdk自带的uiautomatorviewer都可以定位 二、App元素定位 1、id定位 2、text定位 3…

RISC-V SoC + AI | 在全志 D1「哪吒」开发板上,跑个 ncnn 神经网络推理框架的 demo

引言 D1 是全志科技首款基于 RISC-V 指令集的 SoC,主核是来自阿里平头哥的 64 位的 玄铁 C906。「哪吒」开发板 是全志在线基于全志科技 D1 芯片定制的 AIoT 开发板,是目前还比较罕见的使用 RISC-V SoC 且可运行 GNU/Linux 操作系统的可量产开发板。 n…

Linux:Ansible的常用模块

模块帮助 ansible-doc -l 列出ansible的模块 ansible-doc 模块名称 # 查看指定模块的教程 ansible-doc command 查看command模块的教程 退出教程时候建议不要使用ctrlc 停止,某些shell工具会出现错误 command ansible默认的模块,执行命令,注意&#x…

【MySQL】DQL

DQL(数据查询语言)用于在MySQL数据库中执行数据查询操作。它主要包括SELECT语句,用于从表中检索数据。 0. 基本语法 SELECT 字段列表 FROM 表名列表 WHERE 条件列表 GROUP BY 分组字段列表 HAVING 分组后条件列表 ORDER BY 排序字段列表 …

【深度学习】Pytorch教程(八):PyTorch数据结构:2、张量的数学运算(6):高维张量:乘法、卷积(conv2d~四维张量;conv3d~五维张量)

文章目录 一、前言二、实验环境三、PyTorch数据结构1、Tensor(张量)1. 维度(Dimensions)2. 数据类型(Data Types)3. GPU加速(GPU Acceleration) 2、张量的数学运算1. 向量运算2. 矩阵…

NerfStudio安装及第一个场景重建

NerfStudio文档是写在windows和linux上安装,本文记录Linux安装的过程,且我的cuda是11.7 创建环境 conda create --name nerfstudio -y python3.8 conda activate nerfstudio python -m pip install --upgrade pip Pytorch要求2.0.1之后的,文档推荐cud…

Vue:【亲测可用】父组件数组包对象,传给子组件对象,子组件修改属性(字段)后,父组件没有更新

场景&#xff1a;vue中父组件数组包对象&#xff0c;传给子组件对象&#xff0c;子组件修改属性&#xff08;字段&#xff09;后&#xff0c;父组件没有更新 代码&#xff1a; # 父组件 <div v-for"(object, name, index) in arr" :key"index"><…

autocrlf和safecrlf

git远程拉取及提交代码&#xff0c;windows和linux平台换行符转换问题&#xff0c;用以下两行命令进行配置&#xff1a; git config --global core.autocrlf false git config --global core.safecrlf true CRLF是windows平台下的换行符&#xff0c;LF是linux平台下的换行符。…