第一章:工欲善其事——Python环境搭建
各位同学好,我是老张。搞了十几年齿轮箱故障诊断,从最早的磁带记录仪到现在的数字采集系统,工具换了一茬又一茬。但说实话,Python 这套环境是我目前用得最顺手的。今天咱们就把这套「吃饭的家伙」给搭起来。
你可能要问:为什么非得用 Python?我用 MATLAB 不也挺好?嗯,我刚开始也这么想。直到有一次在现场,甲方临时要改分析参数,我掏出笔记本现场改了几行代码就跑出结果了——那感觉,比抱着 MATLAB 许可证文件到处跑舒服多了。
1.1 为什么选择 Anaconda?
说白了,Anaconda 就是个「全家桶」。它把 Python 解释器、常用科学计算库、还有包管理工具 conda 都打包好了。你想想看,要是自己一个个装 numpy、scipy、matplotlib,光是解决依赖冲突就能让你怀疑人生。
我个人习惯用 Anaconda 的另一个原因是——环境隔离。做项目最怕什么?最怕 A 项目需要 numpy 1.19,B 项目需要 numpy 1.24,结果一升级全崩了。conda 的虚拟环境功能,说白了就是给每个项目一个「独立的小房间」,互不干扰。
1.2 Anaconda 安装实战
安装过程其实没什么技术含量,但有几个坑我得提前说。
- 下载版本: 去官网(anaconda.com)下载 Python 3.9 或 3.10 版本。别追新,3.12 虽然新但有些老库还没适配。
- 安装路径: 别用默认的 C 盘!我吃过这个亏——C 盘满了,Anaconda 更新失败,整个环境废了。建议装到 D:\Anaconda3 或 E:\Anaconda3。
- 关键一步: 安装时有个选项「Add Anaconda3 to my PATH environment variable」,勾上它。虽然安装程序会警告说可能冲突,但相信我,不勾的话后面每次用都要手动找路径,烦得很。
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。
%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 一次搞定。
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()
如果能看到一个正弦波图形,恭喜你,环境搭好了!
1.6 本章知识体系
下面这张图帮你理清今天的内容。说白了,就是三层结构:底层是 Anaconda 这个平台,中间是 Jupyter 这个交互工具,上层是四个核心库。每一层都踩稳了,后面的分析才能跑得顺。
好了,环境搭好了,后面咱们就可以正式开始分析齿轮箱的振动信号了。记住,工具只是手段,关键还是你对信号的理解。不过话说回来,工具不顺手,再好的想法也实现不了——所以这一步,值得你花点时间把它搞扎实。
公众号:蓝海资料掘金营,微信deep3321