第一章:工欲善其事——Python环境搭建

各位同学好,我是老张。搞了十几年齿轮箱故障诊断,从最早的磁带记录仪到现在的数字采集系统,工具换了一茬又一茬。但说实话,Python 这套环境是我目前用得最顺手的。今天咱们就把这套「吃饭的家伙」给搭起来。

你可能要问:为什么非得用 Python?我用 MATLAB 不也挺好?嗯,我刚开始也这么想。直到有一次在现场,甲方临时要改分析参数,我掏出笔记本现场改了几行代码就跑出结果了——那感觉,比抱着 MATLAB 许可证文件到处跑舒服多了。

1.1 为什么选择 Anaconda?

说白了,Anaconda 就是个「全家桶」。它把 Python 解释器、常用科学计算库、还有包管理工具 conda 都打包好了。你想想看,要是自己一个个装 numpy、scipy、matplotlib,光是解决依赖冲突就能让你怀疑人生。

我个人习惯用 Anaconda 的另一个原因是——环境隔离。做项目最怕什么?最怕 A 项目需要 numpy 1.19,B 项目需要 numpy 1.24,结果一升级全崩了。conda 的虚拟环境功能,说白了就是给每个项目一个「独立的小房间」,互不干扰。

小提示: 如果你硬盘空间紧张,可以装 Miniconda——它只有 conda 和 Python,其他库按需安装。我出差用的笔记本就是 Miniconda,够用。

1.2 Anaconda 安装实战

安装过程其实没什么技术含量,但有几个坑我得提前说。

  1. 下载版本: 去官网(anaconda.com)下载 Python 3.9 或 3.10 版本。别追新,3.12 虽然新但有些老库还没适配。
  2. 安装路径: 别用默认的 C 盘!我吃过这个亏——C 盘满了,Anaconda 更新失败,整个环境废了。建议装到 D:\Anaconda3 或 E:\Anaconda3。
  3. 关键一步: 安装时有个选项「Add Anaconda3 to my PATH environment variable」,勾上它。虽然安装程序会警告说可能冲突,但相信我,不勾的话后面每次用都要手动找路径,烦得很。
注意: 如果你电脑上已经装了 Python,勾选 PATH 选项可能会导致冲突。解决办法是:安装完成后,在环境变量里把 Anaconda 的路径放在系统 Python 前面。

1.3 Jupyter Notebook 配置

Jupyter Notebook 这东西,我第一次用的时候觉得「不就是个网页版编辑器吗?」后来才发现,它最大的好处是——边写边跑,随时看结果。做信号分析时,你画个时域图、调个参数,立刻就能看到效果,这比写完整段代码再运行高效多了。

安装完 Anaconda 后,Jupyter 已经自带了。你可以在开始菜单找到「Anaconda Prompt」,打开后输入:

jupyter notebook

浏览器会自动打开一个页面。如果没自动打开,就把终端里显示的那个 URL(一般是 http://localhost:8888)复制到浏览器地址栏。

我个人习惯改两个配置:

  • 默认目录: 在 Anaconda Prompt 里输入 jupyter notebook --generate-config,然后找到生成的配置文件,把 c.NotebookApp.notebook_dir 改成你的工作目录,比如 'D:/Gearbox_Analysis'
  • 自动保存: 默认每 120 秒自动保存一次,我觉得太长了。在配置里找 c.NotebookApp.autosave_interval,改成 30。
重要: 做信号分析时,经常要处理几百兆甚至上 G 的数据。Jupyter 默认会把所有输出都保存在内存里,数据量大了容易崩。建议在代码开头加一句 %config InlineBackend.figure_format = 'svg',用矢量图代替位图,能省不少内存。

1.4 必备库安装

做齿轮箱振动分析,下面这几个库是绕不开的。我按重要程度排个序:

库名 用途 安装命令
numpy 数组运算、FFT、矩阵操作 conda install numpy
scipy 信号处理(滤波、谱分析、插值) conda install scipy
matplotlib 绘图(时域图、频谱图、瀑布图) conda install matplotlib
pyvib 专门做振动分析的库(包络谱、阶次分析) pip install pyvib

安装命令很简单。打开 Anaconda Prompt,依次输入:

conda install numpy scipy matplotlib
pip install pyvib

为什么 pyvib 用 pip 而不是 conda?因为这个库比较小众,conda 源里没有。我曾经在 conda 上折腾了半天没装上,最后用 pip 一次搞定。

避坑指南: 安装 pyvib 时如果报错说缺少某个依赖,别慌。先看看报错信息里缺的是什么,然后用 conda 或 pip 单独装那个依赖。我曾经遇到缺 libffi 的情况,装完就好了。

1.5 验证环境是否搭好

环境搭没搭好,跑个简单代码验证一下最实在。打开 Jupyter Notebook,新建一个 Python 3 笔记本,输入:

import numpy as np
import scipy.signal as signal
import matplotlib.pyplot as plt
import pyvib

print("所有库导入成功!")
print(f"numpy 版本: {np.__version__}")
print(f"scipy 版本: {scipy.__version__}")

# 生成一个简单的正弦波验证
t = np.linspace(0, 1, 1000)
f = 50  # 50Hz
y = np.sin(2 * np.pi * f * t)

plt.plot(t, y)
plt.title("验证信号 - 50Hz 正弦波")
plt.xlabel("时间 (s)")
plt.ylabel("幅值")
plt.show()

如果能看到一个正弦波图形,恭喜你,环境搭好了!

注意: 如果 pyvib 导入报错,别着急。这个库对 Python 版本比较敏感,如果实在装不上,可以用 scipy.signal 的 hilbert 函数做包络分析,效果差不多。我在早期项目里就是这么干的。

1.6 本章知识体系

下面这张图帮你理清今天的内容。说白了,就是三层结构:底层是 Anaconda 这个平台,中间是 Jupyter 这个交互工具,上层是四个核心库。每一层都踩稳了,后面的分析才能跑得顺。

Python 环境搭建知识体系 Anaconda 平台 Python 解释器 + 包管理 + 环境隔离 Jupyter Notebook 交互式编程 + 即时可视化 NumPy 数组运算 · FFT SciPy 信号处理 · 滤波 Matplotlib 时域图 · 频谱图 PyVib 包络谱 · 阶次分析 环境搭建是基础,基础不牢,地动山摇

好了,环境搭好了,后面咱们就可以正式开始分析齿轮箱的振动信号了。记住,工具只是手段,关键还是你对信号的理解。不过话说回来,工具不顺手,再好的想法也实现不了——所以这一步,值得你花点时间把它搞扎实。


公众号:蓝海资料掘金营,微信deep3321