Skip to content

About

MATLAB轴承振动信号分析项目 - 学习用途

Resources

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

旋转机械振动信号处理系统 (MATLAB版)

项目简介

本项目是Python版本轴承振动信号分析项目的MATLAB重写版,用于学习和理解振动信号处理方法。

目录结构

bearing_vibration_analysis_MATLAB/
├── config.m              # 配置参数设置
├── main.m                # 主程序入口
├── src/                  # 源代码目录
│   ├── loadVibrationData.m      # 数据加载
│   ├── timeDomainAnalysis.m     # 时域分析
│   ├── frequencyDomainAnalysis.m # 频域分析
│   ├── filterSignal.m           # 滤波处理
│   ├── timeFrequencyAnalysis.m  # 时频分析
│   ├── spectralKurtosis.m       # 谱峭度分析
│   └── envelopeAnalysis.m       # 包络分析
├── utils/                # 工具函数
│   ├── bearingParams.m   # 轴承参数计算
│   └── plotting.m        # 绘图工具
└── outputs/              # 输出目录 (自动创建)
    └── figures/          # 图表保存

使用方法

1. 准备数据文件

将 data.txt 文件放置在项目根目录的上一级目录中(与Python版本相同的位置)。

2. 运行主程序

在MATLAB中打开项目目录,运行:

main

3. 查看结果

  • 图表保存在 outputs/figures/ 目录
  • 分析报告保存在 outputs/figures/analysis_report.txt

分析流程

  1. 数据加载 - 读取振动信号数据,解析元数据
  2. 时域分析 - 计算RMS、峰值、峭度等时域特征
  3. 频域分析 - FFT频谱分析,识别主要频率成分
  4. 滤波处理 - Butterworth带通滤波 (1-10 kHz)
  5. 时频分析 - CWT和STFT时频谱图
  6. 谱峭度分析 - Fast Kurtogram,确定最优滤波频带
  7. 包络分析 - Hilbert变换包络分析,诊断轴承故障

核心函数说明

config.m - 配置管理

cfg = config();
fs = cfg.SAMPLING_FREQUENCY;  % 获取采样频率
bearing = cfg.BEARING;         % 获取轴承参数

loadVibrationData.m - 数据加载

vibData = loadVibrationData(filePath, headerLines, fs);
% 返回结构体包含: time, channels, channelNames, fs, metadata

bearingParams.m - 轴承故障频率计算

faultFreqs = bearingParams(bearing, rotationFreq);
% 返回: BPFI, BPFO, BSF, FTF

envelopeAnalysis.m - 包络分析

result = envelopeAnalysis(signal, fs, channelName, faultFreqs, outputDir, filteredSignal);
% 返回: envelope, envelopeFreq, envelopeAmp, faultResults

轴承故障特征频率公式

频率名称 公式 说明
BPFI (n/2)×(1+d/D×cosα)×fr 内圈故障频率
BPFO (n/2)×(1-d/D×cosα)×fr 外圈故障频率
BSF (D/2d)×(1-(d/D×cosα)²)×fr 滚动体故障频率
FTF (1/2)×(1-d/D×cosα)×fr 保持架频率

其中:

  • n: 滚动体数量
  • d: 滚动体直径
  • D: 节圆直径
  • α: 接触角
  • fr: 转频 (Hz)

MATLAB版本要求

  • MATLAB R2016b 或更高版本
  • Signal Processing Toolbox (用于滤波器设计)
  • Wavelet Toolbox (可选,用于CWT,没有会使用简化实现)

与Python版本的主要区别

特性 Python MATLAB
文件组织 模块(.py) + init.py 函数文件(.m)
数据结构 NumPy数组, dataclass 矩阵, struct
索引 0-based 1-based
函数定义 def func(): function out = func()
返回值 return 函数名赋值

注释风格

所有代码使用详细的中文注释,包括:

  • 函数说明(功能、参数、返回值)
  • 算法原理解释
  • 公式说明
  • 示例代码

学习建议

  1. 从 main.m 开始,了解整体流程
  2. 按顺序阅读各模块代码
  3. 对照Python版本理解差异
  4. 修改参数观察结果变化

参考资料

  • 《滚动轴承故障诊断实用技术》
  • MATLAB Signal Processing Toolbox 文档
  • MATLAB Wavelet Toolbox 文档

About

MATLAB轴承振动信号分析项目 - 学习用途

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages