故障信号诊断—阶比分析(角度域采样)

提示:该文案只是作为一个记录,有助于对数据处理和故障特性的分析。


前言

一般来讲,在对旋转件而言,通过在键相位置传感器就能够获取旋转机械的转速数据,比如在测试发动机、变速箱等振动时,就会在被测轴上设置凸点或凹点,当旋转机械转动到该轴上凸点和凹点时就会产生一个脉冲信号,其位置大致如下图:
在这里插入图片描述
通过相应的脉冲计数就可以得到对应的转速信号。


一、脉冲信号转速信号的关系

脉冲和转速信号之间的关系其实非常简单,在汽车中,一般采用的霍尔传感器对脉冲信息进行采样,在稳态情况下,假如在1s内采集的50个脉冲,则对应的转速就是50*60=3000rpm,但在减速或者加速过程中,每秒内脉冲的个数是不一样的,这个时候就需要采用微分的思想,根据时间分辨率1/fs计算转速信号。由于AD信号转换导致信号的离散较大,需要对原始数据进行插值拟合得到对应的信号。根据故障信号诊断—阶比分析所采用的方法就可得到响应的转速。

二、为什么要分析角度域

为什么要进行等角度采样???其目的就是把时域采样信号进行等角度采样,转换为等角度采样的平稳信号,作为对振动数据的监测,这其实涉及到观察视角的问题,根据上小节所述,我们知道,单位时间内脉冲信号的个数与转动轴的转速信号成正比,在视频示波器观察轮速传感器的信号脉冲频率和转速程正相关中也不难发现这一点。对于一个减速信号来说:前200个数据和后200个数据对应的脉冲为:
在这里插入图片描述很明显,在减速的过程,其脉冲个数是逐渐减少的。
这样的话,整个测试数据就是一个非稳态数据,那么能不能转换为稳态数据呢?这里,我们假设这样的非稳态信号;

clc
clear
Fs=1000;
N=Fs*4;
t=(0:N-1)/Fs;
Adc = 1; %直流分量幅度
S=1.5*sin(2*pi*t.^2)+sin(4*pi*t.^2+pi/4)+sin(8*pi*t.^2+pi/3);
S2=Adc+ 1.5*sin(2*pi* t.^2);
array_time_amp=S;    %导入时域振动信号
pluse=S2;             %导入脉冲信号
figure(1);
subplot(2,1,1)
plot(t,array_time_amp)
title('变转速数据')
xlabel('时间time')
ylabel('幅值amplitude');
grid on;
subplot(2,1,2)
plot(t,pluse)
title('转速脉冲')
xlabel('时间time')
ylabel('幅值amplitude');
grid on;

对应的曲线为:
在这里插入图片描述


由于等时间采样对应的采样频率是不变化,随着转速的变化,单位时间内采样的数量数不一样的。我们转到等角度采样会是什么样,角度间隔为pi/10,如下图:
在这里插入图片描述
这样的话就是一个稳态数据,既然是稳态数据,我们的工具箱就比较多了,对其进行简单的傅里叶变为:
在这里插入图片描述
如此看来,对应的1,2,4阶次就显而易见了。
但需要注意的是,该仿真的整个过程振动幅值并没发生变化的。但在实际中,不同转速下,由于故障产生的冲击程度不同,造成的振动能量也不尽相同,所以对于一个变速信号来说,并不能总是分解出上述幅值稳定的信号,这就涉及到另一个问题了。

  • 3
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 13
    评论
对于进行变转速下信号分析进行角度采样,可以使用MATLAB进行编程实现。以下是一种可能的源码实现方法: 首先,可以用MATLAB中的工具箱对信号进行采样,并将采样的数据储存为矩阵形式。我们需要读取数据,并将其存储为一个向量。 ```matlab data = xlsread('data.xlsx'); % 读取数据文件 signal = data(:, 1); % 获取采样信号数据存储为一个向量 Fs = 1000; % 采样频率为1000Hz ``` 接着,我们可以利用离散傅里叶变换(DFT)的方法进行分析并确定旋转速度,这里我们取前三个峰作为次分量。 ```matlab N = length(signal); % 数据长度 X = fft(signal)/N; f = (0:N-1)*(Fs/N); xMax = 3; % 取前3个次分量作为分析结果 X(find(f<0.001))=0; X(find(f>100))=0; [~, index] = sort(abs(X), 'descend'); order = index(2:xMax+1)'; speed = f(order)*60/2; % 旋转速度 ``` 然后,我们可以进行角度采样。由于信号中的数据点数与转速相关,因此首先需要将旋转速度转换为角速度并计算角度采样间隔t。然后,我们可以利用角速度和角度采样间隔t运动插值的方法进行角度采样。这里我们采用sinc插值和插值拼接两种方法。 ```matlab w = speed*2*pi/60; % 转换旋转速度为角速度 t = 1/Fs; % 计算角度采样间隔 % 利用sinc插值进行角度采样 theta1 = 0:1/500:2*pi; for i = 1:length(order) n = order(i); A = abs(X(n)); phi = angle(X(n)); y = abs(A)*sinc(w(n)*theta1/2/pi - phi/pi); y = y'; if i == 1 theta = theta1; resampled_signal = y; else theta = [theta1+theta(end)]; resampled_signal = [resampled_signal;y]; end end % 利用插值拼接方法进行角度采样 theta2 = 0:1/w(1)/500:2*pi/w(1); t2 = theta2/(2*pi*w(1)); for i = 1:length(order) n = order(i); A = abs(X(n)); phi = angle(X(n)); y = abs(A)*cos(phi+w(n)*t2); if i == 1 resampled_signal2 = y; else resampled_signal2 = [resampled_signal2;y]; end end ``` 最后,我们可以绘制角度采样后的信号图和次分量图。 ```matlab % 角度采样后的信号图 figure(1); plot(theta, resampled_signal); xlabel('Angle (rad)'); ylabel('Amplitude'); title('Resampled Signal'); % 次分量图 figure(2); stem(f(order), abs(X(order))); xlabel('Order'); ylabel('Amplitude'); title('Ordered Spectrum'); ``` 综上所述,以上是一个完成了信号的变转速下分析并进行角度采样的MATLAB源码。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

heavy_truck

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值