信号分析方法与示例:雨流计数和傅里叶变换技术解析
1. 雨流计数与数据处理
在信号分析领域,二维集合表示法常被优先选用,因其比三维雨流矩阵更具描述性。从集合中能得出诸多结论和解释,如对测量数据进行合理性检查,以及比较多次测量结果。同时,还可识别不同运行条件及其对应力的影响,并评估其对使用寿命的作用。不过,在进行使用寿命估算时,应使用雨流矩阵,因其包含均值信息。
下面通过一个MATLAB代码应用示例来详细说明雨流计数过程。在车辆组件于恶劣路况行驶时,记录了Z方向的加速度。利用该信号进行雨流计数,具体步骤如下:
1.
调用MATLAB函数进行雨流计数
:使用MATLAB的雨流计数函数(公式(14.43))完成雨流计数操作。函数结果包含全矩阵和半矩阵。
2.
计算类频率
:调用
rainflow
函数后,通过公式(14.44)从雨流矩阵形成类频率。由于类均值为0和振荡宽度为0的情况不会出现,雨流矩阵(
rm
)的结构为
rmr - 1
行×
rmm - 1
列。使用
sum(rm,2)
将雨流矩阵求和得到类频率向量,每个振荡宽度大于0的类频率都有对应值。
3.
显示类频率
:通过公式(14.45)进行显示,并交换
XTickLabels
以正确标记横坐标。但这种表示形式在疲劳强度分析中并不常见。
4.
计算累积频率
:通常采用累积频率
Hi
来表示振荡宽度,其计算规则为
Hi = ∑(ξ = i to n) hξ
(公式(14.46)),其中
i = 1...n
。在MATLAB代码中实现该公式(公式(14.47)),由于类频率不包含振荡宽度为0的值,循环需偏移一个类。
5.
显示累积频率
:首先使用
MATALB
的
bar
函数以条形图形式显示值,然后进行所有标签设置,最后通过公式(14.48)交换横纵坐标,使图表以振荡宽度对累积频率的形式显示。
需要注意的是,当前MATLAB的
rainflow
函数(2017b版本引入)没有可用于影响类数量的配置参数,其计算算法基于特定规则,未对类数量进行定义。
2. 傅里叶变换:FFT与DFT的选择
信号可视为谐波振荡的叠加,在频域中以振幅和相位与频率的频谱形式表示。通过分析振幅和相位频谱,可获取振荡过程的重要信息:
-
振幅频谱评估
:
- 确定激励频率(如驱动引起的)和激发的固有频率(如不平衡导致的)。
- 将测量频谱与极限频谱进行比较。
- 分析振动过程的潜在机制(状态监测、振动降低)。
-
相位频谱评估
:
- 用于平衡技术。
- 是从频谱合成时间信号所必需的。
傅里叶变换(FT)的目的是将离散信号从时域转换到频域。离散傅里叶变换(DFT)源于将离散信号从时域转换到频域的目标,而快速傅里叶变换(FFT)是DFT的一种高效计算算法。最著名且广泛使用的FFT算法由James Cooley和John W. Tukey于1965年提出,其应用前提是离散信号值的数量为2的幂次方。虽然FFT计算所需的存储空间和计算能力远小于DFT,但在当今计算和存储能力充足的情况下,计算时间和存储空间消耗的考虑在实际应用中已不那么重要。不过,由于历史原因,FFT的使用更为广泛,几乎所有硬件和/或软件分析仪都采用FFT算法进行信号从时域到频域的转换。但这可能存在问题,因为所需的值数量必须为2的幂次方。更现代的做法是让执行分析器或程序决定是计算FFT还是DFT,这样在使用不适应2^n规则的数字化设备时,可获得“平滑”的频率分辨率,且两种计算方法的变换结果无差异。
3. 离散傅里叶变换基础
通常,时域中的测量信号是采样信号,即在离散插值点上取值。时间区间长度为T(块长度),包含N个样本和采样间隔t。计数索引k从0(左区间边界)到N - 1,时域中的对应值表示为x(k)。变换按块进行,从时域到频域的变换方程为:
[X(n) = \frac{1}{N} \sum_{k = 0}^{N - 1} x(k) e^{-j2\pi kn / N}](公式(14.49))
计数索引n在频域表示中从0到N - 1。变换到频域后,可得到N个离散频率值(谱线),形成具有复数值X(n)的离散频谱。频谱中两条谱线之间的间距为Δf,将频率分配给计数索引。当n = 0代入公式(14.49)时,第0条频率线为实数,包含信号的算术平均值x:
[X(0) = \frac{1}{N} \sum_{k = 0}^{N - 1} x(k)](公式(14.50))
逆变换规则为:
[x(k) = \sum_{n = 0}^{N - 1} X(n) e^{j2\pi kn / N}](公式(14.51))
除了上述表述,还有许多等效表示法。为便于数学实现,通常将时域扩展到负时间值,频域扩展到负频率,形成双边频谱。在信号处理中常使用双边频谱,而在振动工程及其应用中,更倾向于使用仅绘制正频率的单边频谱。
以一个周期采样的方波信号(N = 30)为例,当时间零点t = 0位于k = 0时,信号在时域关于纵坐标对称。通过引入双边频谱,计算得以简化,且在该示例中可得到纯实数频谱,仅由余弦项组成,正弦项(包含虚部)因巧妙选择时间计数零点而被省略。
在测量实践中,DFT的应用有以下几点影响:
-
线谱
:DFT得到离散线谱,频谱仅在支撑点(谱线)n处有定义,频率分辨率为Δf = 1/T。实际频谱表示常采用实线,对网格点进行插值。
-
时域周期性
:N个样本作为块长度T区间的一部分进行周期性延续。为使频谱包含测量信号其他部分的信息,要么选择足够长的块长度,要么对多个时间段进行平均。同时,块长度区间边界处不得出现不连续性(拐点和跳跃),通常使用窗函数减少误差。
-
频域周期性
:DFT的频谱也是周期性的,当n/N为整数时出现周期性,频谱以N条谱线为周期重复。双边频谱中,谱线可向左和向右延续,满足X(-n) = X(N - n)。
-
频域对称性
:DFT的起始点是N个实数值x(k),为将其信息包含在N个复数值X(n)中,仅需一半的谱线N/2,即0到N/2 - 1条谱线。从N/2到N - 1条谱线包含共轭复数值X
(n),无额外信息,可通过频谱关于纵坐标镜像得到。这解释了为什么单边频谱中1024条谱线的频率分析最多代表512条谱线(因抗混叠滤波器斜率有限,常为400条)。
-
带宽限制和抗混叠
:由于使用N/2条谱线,可显示的最大频率fmax必须小于采样频率fs/2的一半,计算公式为fmax = (N/2)Δf(公式(14.52))。频域表示是带宽受限的,信号在时域也需进行带宽限制。同时,采样频率必须大于2倍fmax,带宽限制通过低通滤波器(抗混叠滤波器)实现。若采样条件不满足,频谱中会出现额外谱线(镜像或混叠频率),且无法通过后续滤波去除,因此在DFT前需用低通滤波器滤除高于奈奎斯特频率的所有频率。
-
复数大小
*:DFT生成离散的复数频谱X(n),可清晰分为振幅分量|X(n)|(振幅或幅度频谱)和相位分量ς(n)(相位频谱),也可分解为实部和虚部。以余弦函数x(t) = cos(2πft)为例,双边振幅频谱有8条频率线,第0条线包含直流分量,n = 1和n = 7时的值为0.5。转换到单边频谱时,由于对称性,两条谱线重合,振幅相加,n = 1时|X(1)| = 1,为余弦函数的振幅。相位频谱ς(n)对所有n值为0。正弦函数x(t) = sin(2πft)的振幅频谱与余弦函数相同,但在DFT中指向虚轴方向,相位频谱有-π/2的相位角。
4. 信息内容与频谱分析
时域和频域只是表示相同数据的不同方式,从时域到频域的变换不会导致信息丢失,是信息保留变换。因此,可通过逆变换(所谓的重新合成)从振幅和相位频谱再次生成时间特性。以两个叠加的余弦振荡为例:
[x1(t) = 0.75 \cos(2\pi ft) + 0.25 \cos(2\pi 3ft)]
[x2(t) = 0.75 \cos(2\pi ft) + 0.25 \cos(2\pi 3ft + \frac{3}{4}\pi)]
这两个函数仅在第二个求和项的相移角上有差异。采样N = 8点,块长度为一个周期T = 1/f时,两个函数的时间响应明显不同,但振幅频谱相同,振幅分别为0.75(频率f)和0.25(频率3f)。差异在于相位频谱,n = 3时,x1(t)的相位角为0,x2(t)的相位角为3/4π。因此,仅靠振幅频谱无法清晰重建时间过程,还需要相位频谱(或事先对相位角进行假设)。
频谱只能表示时域中已包含的信息,频谱表示本身不会增加信息,但能提供更直观的展示方式,便于分析和理解信号的特性。
综上所述,雨流计数和傅里叶变换是信号分析中重要的工具,通过合理运用这些方法和技术,可深入了解信号的特征和性质,为工程应用和研究提供有力支持。
以下是相关内容的流程图:
graph LR
A[开始雨流计数] --> B[调用rainflow函数]
B --> C[计算类频率]
C --> D[显示类频率]
D --> E[计算累积频率]
E --> F[显示累积频率]
G[开始傅里叶变换] --> H[选择FFT或DFT]
H --> I[进行离散傅里叶变换]
I --> J[分析频谱特性]
J --> K[评估振幅和相位频谱]
K --> L[根据频谱信息进行决策]
表格总结:
| 分析方法 | 特点 | 应用场景 | 注意事项 |
| ---- | ---- | ---- | ---- |
| 雨流计数 | 用于处理时域信号,得到类频率和累积频率 | 疲劳强度分析、使用寿命估算 | MATLAB函数无配置类数量的参数 |
| 傅里叶变换(DFT/FFT) | 将时域信号转换到频域,得到频谱信息 | 分析信号的频率成分、振动机制等 | 注意采样条件、带宽限制和抗混叠 |
信号分析方法与示例:雨流计数和傅里叶变换技术解析
5. 雨流计数与傅里叶变换的对比与联系
雨流计数和傅里叶变换是信号分析中两种不同但又相互补充的方法。下面从多个方面对它们进行对比和联系分析:
| 分析方法 | 分析域 | 主要作用 | 输出结果 | 应用场景 |
| ---- | ---- | ---- | ---- | ---- |
| 雨流计数 | 时域 | 处理时域信号,统计信号中不同幅值和均值的循环次数 | 类频率、累积频率 | 疲劳强度分析、使用寿命估算 |
| 傅里叶变换(DFT/FFT) | 频域 | 将时域信号转换到频域,分析信号的频率成分 | 振幅频谱、相位频谱 | 分析信号的频率成分、振动机制、状态监测等 |
从应用场景来看,雨流计数侧重于疲劳相关的分析,关注信号中不同应力循环对材料疲劳的影响,从而估算部件的使用寿命。而傅里叶变换更侧重于分析信号的频率特性,能够识别信号中包含的不同频率成分,对于振动监测、故障诊断等领域有重要应用。
在某些情况下,这两种方法可以结合使用。例如,在对机械部件进行全面的状态监测时,先使用傅里叶变换分析信号的频率成分,确定是否存在异常的振动频率,判断可能存在的故障类型。然后使用雨流计数对相关的时域信号进行处理,评估该振动对部件疲劳寿命的影响,为维护决策提供更全面的依据。
6. 实际应用案例分析
为了更好地理解雨流计数和傅里叶变换在实际中的应用,下面通过一个具体的案例进行说明。
假设我们要对一辆汽车在行驶过程中的振动信号进行分析,以评估汽车悬挂系统的性能和疲劳寿命。
6.1 数据采集
在汽车行驶过程中,使用加速度传感器采集悬挂系统在Z方向的加速度信号,记录一段时间内的时域信号数据。
6.2 雨流计数分析
-
雨流计数操作
:将采集到的加速度信号输入到MATLAB中,调用
rainflow函数进行雨流计数。
% 假设acceleration_data为采集到的加速度信号
rm = rainflow(acceleration_data);
- 计算类频率和累积频率 :根据雨流矩阵计算类频率和累积频率。
% 计算类频率
class_frequencies = sum(rm, 2);
% 计算累积频率
cumulative_frequencies = cumsum(class_frequencies);
- 结果分析 :通过分析累积频率和振动幅值的关系,评估悬挂系统在不同振动幅值下的疲劳损伤情况。如果在某些特定幅值下累积频率较高,说明该幅值的振动对悬挂系统的疲劳影响较大,可能需要对悬挂系统进行调整或更换部件。
6.3 傅里叶变换分析
- 选择FFT进行变换 :由于FFT计算效率高,选择使用FFT对加速度信号进行频域变换。
% 进行FFT变换
N = length(acceleration_data);
frequencies = (0:N-1)*(1/sampling_frequency); % 计算频率轴
spectrum = fft(acceleration_data);
amplitude_spectrum = abs(spectrum);
- 频谱分析 :分析振幅频谱,确定信号中包含的主要频率成分。如果发现存在异常的高频成分,可能表示悬挂系统存在松动、磨损等故障。同时,分析相位频谱,判断振动的相位关系,进一步了解振动的特性。
graph LR
A[数据采集] --> B[雨流计数分析]
A --> C[傅里叶变换分析]
B --> D[评估疲劳损伤]
C --> E[识别故障类型]
D --> F[决策是否调整悬挂系统]
E --> F
7. 总结与展望
通过以上对雨流计数和傅里叶变换的详细介绍和实际案例分析,我们可以看到这两种方法在信号分析中具有重要的作用。雨流计数能够有效地处理时域信号,为疲劳强度分析和使用寿命估算提供关键信息;傅里叶变换则能够将时域信号转换到频域,帮助我们深入了解信号的频率特性,进行故障诊断和状态监测。
在未来的信号分析领域,随着传感器技术的不断发展,采集到的信号数据将更加复杂和多样化。这就需要我们进一步优化雨流计数和傅里叶变换的算法,提高分析的准确性和效率。同时,结合机器学习和人工智能技术,对信号进行更深入的挖掘和分析,实现更智能的故障诊断和预测维护。例如,可以使用深度学习算法对频谱数据进行分类和识别,自动判断故障类型和严重程度,为设备的维护和管理提供更科学的决策依据。
总之,雨流计数和傅里叶变换作为信号分析的基础方法,将在未来的工程应用和研究中继续发挥重要作用,我们需要不断探索和创新,使其更好地服务于各个领域。
超级会员免费看
1161

被折叠的 条评论
为什么被折叠?



