自制动平衡设备完全指南(小白版)
本文档面向零基础读者,用最通俗的语言讲清楚动平衡是什么、为什么需要、怎么自己做一台。
目录
一、先搞懂:什么是动平衡
1.1 一个生活例子
想象你坐在一把旋转椅上,双手各拿一个哑铃:
- 双手重量一样 → 转起来很平稳,不晃
- 一只手拿哑铃,另一只手空着 → 转起来剧烈晃动,感觉要被甩出去
第二种情况就是不平衡。风扇叶轮、电机转子、砂轮盘等所有旋转的零件,如果质量分布不均匀,转起来就会产生同样的"甩动"。
1.2 静平衡 vs 动平衡
| 类型 | 通俗解释 | 适用场景 |
|---|---|---|
| 静平衡 | 转子静止时,重心在不在中心轴上 | 薄圆盘(如砂轮、飞轮),转速不高 |
| 动平衡 | 转子旋转时,两端的甩动力能不能抵消 | 有厚度的转子(如风扇叶轮、电机转子),转速较高 |
风扇叶轮有厚度,所以需要动平衡。 简单说:静平衡只管"整体重心偏不偏",动平衡还要管"两端会不会一上一下对着甩"。
二、为什么需要动平衡
2.1 不平衡的危害
- 振动大:转起来嗡嗡响,整个机器都在抖
- 轴承坏得快:不平衡力持续冲击轴承,寿命大幅缩短
- 噪音大:振动产生噪音,影响使用体验
- 精度下降:如果是机床主轴、精密设备,振动直接影响加工精度
- 严重时断裂:高速旋转的不平衡转子可能导致轴弯曲甚至断裂
2.2 哪些东西需要做动平衡
- 风扇叶轮、风机叶轮
- 电机转子
- 砂轮、锯片
- 汽车轮胎(做的就是动平衡)
- 离心机转鼓
- 涡轮、压缩机叶轮
三、动平衡测量原理(通俗版)
3.1 核心思想:测振动,反推不平衡
不平衡的转子转起来会产生振动,我们测振动的大小和振动出现的时机,就能反推出:
- 不平衡有多重(振动越大 → 不平衡越重)
- 不平衡在哪个角度(振动峰值出现在什么时候 → 对应转子的哪个位置)
3.2 三个关键角色
┌─────────────┐ 产生振动 ┌──────────────┐
│ 不平衡质量 │ ───────────────→ │ 振动传感器 │
│ (在叶轮上) │ │ (贴在轴承座上) │
└─────────────┘ └──────────────┘
↑ │
│ 每转一圈 │ 输出振动波形
│ 产生一个脉冲 ↓
┌─────────────┐ ┌──────────────┐
│ 转速传感器 │ ───────────────→ │ 单片机/电脑 │
│ (光电/霍尔) │ 相位基准 │ 计算分析 │
└─────────────┘ └──────────────┘
3.3 为什么必须有转速传感器
这是小白最容易困惑的地方,用一个比喻说清楚:
想象你在一个漆黑的房间里,有一个旋转的圆盘,圆盘上有个亮点。
- 只看振动:你能感觉到圆盘在晃,甚至能感觉到晃得多厉害,但你不知道亮点转到哪个方向了。
- 有转速传感器:相当于每转一圈闪一次灯,你就知道"每次灯亮的时候,亮点在哪个位置"。
转速传感器 = 相位的"0°刻度",没有它,只知道振动大,不知道在哪个角度配重。
3.4 测量过程四步走
第1步:测原始振动
→ 转子正常转,记录振动波形和转速脉冲
第2步:加一个"试重"
→ 在已知角度贴一个已知重量的小铁块,再测一次振动
第3步:算"影响系数"
→ 对比两次测量,算出"加1克配重会让振动变多少"
第4步:算出应该加多少配重
→ 反推要消除原始振动,需要在什么角度加多重的配重
这个方法叫影响系数法,是工业动平衡机的标准算法。
3.5 为什么要两个振动传感器
风扇叶轮有厚度,不平衡可能出现在前端面或后端面:
前端面 后端面
○ ○
│ │
────┼──────────────┼──── 轴
│ │
○ ○
情况A:前后都在同一侧重 → 整体偏移(静不平衡)
情况B:前左重、后右重 → 扭着甩(偶不平衡)
一个传感器只能测到总的振动,分不出是前端还是后端的问题。两个传感器分别测前后两个位置,就能分别算出两个端面各需要加多少配重。 这叫双面平衡。
四、自制设备整体架构思维导图
五、硬件模块详解与选型
5.1 振动传感器
方案一:IEPE 压电加速度计(推荐,精度高)
- 是什么:内部集成了放大器的压电传感器,输出电压信号
- 优点:灵敏度高、频响好、工业标准
- 缺点:需要恒流源供电,较贵(国产约150元/个)
- 选型:澄科 CT1005、东方振动 IEPE 系列
- 需要几个:2个(双面平衡)
方案二:MEMS 加速度计(低成本原型)
- 是什么:像手机里那种加速度传感器,数字输出
- 优点:便宜、不用调理电路、直接 SPI 读取
- 缺点:噪声大、相位有延迟
- 选型:ADXL355(低噪声,约50元),不要用 MPU6050(噪声太大)
- 适合:先做原型验证原理
5.2 转速传感器
| 类型 | 优点 | 缺点 | 推荐度 |
|---|---|---|---|
| 光电开关 | 响应快、精度高、非接触 | 需要在轴上贴反光片 | ★★★★★ |
| 霍尔传感器 | 便宜、耐脏 | 需要在轴上装磁铁 | ★★★★ |
| 电涡流探头 | 工业级、高精度 | 贵、安装复杂 | ★★★ |
新手推荐:光电开关(E3F-DS30C4,约15元),在转轴上贴一小块反光胶带,每转一圈输出一个脉冲。
5.3 信号调理(仅 IEPE 方案需要)
IEPE 传感器需要特殊的供电和信号处理:
IEPE传感器信号
│
▼
┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐
│ 恒流源 │ → │ 隔直电容 │ → │ 低通滤波 │ → │ 放大电路 │ → ADC
│ (4mA) │ │ (去掉直流)│ │ (抗混叠) │ │ (PGA) │
└──────────┘ └──────────┘ └──────────┘ └──────────┘
- 恒流源:用 LM334 搭建,或直接买 IEPE 适配模块(淘宝约30元)
- 隔直:1µF 电容 + 1MΩ 电阻,去掉 IEPE 的直流偏置
- 低通滤波:4阶巴特沃斯,截止频率设为最高转速的5倍
- 放大:仪表放大器 AD8221,增益可调
5.4 ADC 采集
关键要求:多通道同步采样
| 型号 | 位数 | 通道 | 同步 | 价格 | 推荐 |
|---|---|---|---|---|---|
| AD7606 | 16bit | 8通道 | 是 | ¥80 | ★★★★★ |
| ADS1256 | 24bit | 8通道 | 是(轮询) | ¥60 | ★★★★ |
| STM32内置ADC | 12bit | 多通道 | 否 | 0 | ★★(仅原型) |
为什么必须同步?如果振动通道和转速通道不是同时采样,相位就会有误差,结果不准。
5.5 主控
| 方案 | 适合人群 | 优点 | 缺点 |
|---|---|---|---|
| STM32F407 | 会单片机的 | 独立、便携、成本低 | 编程量较大 |
| 电脑 + USB采集卡 | 不会单片机的 | 开发快、屏幕大 | 不便携 |
| ESP32 | 极客原型 | 便宜、有WiFi | 性能有限 |
新手推荐:STM32F407 最小系统板(约25元),性能足够跑 Goertzel 算法。
六、从零开始制作步骤
阶段一:原型验证(预计1~2周)
目标:用最简单的硬件跑通"测振动 → 算不平衡 → 显示结果"的完整流程
第1步:准备材料
| 材料 | 数量 | 参考价 |
|---|---|---|
| STM32F407 开发板 | 1 | ¥25 |
| ADXL355 MEMS加速度计模块 | 2 | ¥50×2 |
| 光电开关模块 | 1 | ¥15 |
| 小风扇(带无刷电机) | 1 | ¥20 |
| 杜邦线、面包板 | 若干 | ¥10 |
| OLED显示屏 | 1 | ¥10 |
| 合计 | 约 ¥180 |
第2步:接线
ADXL355 #1 → SPI1 (CS=PA4)
ADXL355 #2 → SPI2 (CS=PB12)
光电开关 → 外部中断 PA0(上升沿触发)
OLED → I2C
第3步:写采集程序
- 配置定时器,以固定采样率(如 10kHz)触发 ADC/SPI 读取
- 光电开关中断记录当前采样点序号(作为相位零点)
- 每次采集 1024 个点后,触发一次计算
第4步:实现 Goertzel 算法
// 简化版:提取目标频率的幅值和相位
// 完整代码见附录
float goertzel_amplitude(float *data, int N, float fs, float f0);
float goertzel_phase(float *data, int N, float fs, float f0);
第5步:显示结果
在 OLED 上显示:
- 转速(rpm)
- 振动幅值(mm/s 或 g)
- 不平衡角度(°)
第6步:验证
在风扇叶片上贴一小块橡皮泥(已知重量),看仪器能不能正确显示出角度和大致重量。
阶段二:提升精度(预计2~4周)
目标:从"能测"升级到"测的准",可以实际指导配重
- 更换 IEPE 压电加速度计 + 信号调理板
- 更换 AD7606 同步采样 ADC
- 实现双面平衡(影响系数法)
- 增加多次平均、数字滤波
- 做相位校准(用标准不平衡转子验证)
阶段三:做成成品(可选)
- 设计 PCB 板
- 3D 打印外壳
- 做机械支架(轴承座 + 传感器安装架)
- 增加触摸屏、电池供电
- 写校准软件、数据保存功能
七、标定与使用流程
7.1 第一次使用必须标定
标定就是让仪器知道"你的传感器装在什么位置、你的机械结构有什么特性",只需要做一次,之后可以反复使用。
标定步骤(双面平衡)
【第1次测量】原始状态
1. 转子正常旋转到工作转速
2. 等转速稳定后,采集 5~10 转的数据
3. 记录:测点1振动(V1_0)、测点2振动(V2_0)
【第2次测量】A面加试重
1. 停转,在A面 0° 位置贴一个已知重量的试重
2. 旋转到同样转速,采集数据
3. 记录:测点1振动(V1_1)、测点2振动(V2_1)
【第3次测量】B面加试重
1. 停转,取下A面试重,在B面 0° 位置贴同样试重
2. 旋转到同样转速,采集数据
3. 记录:测点1振动(V1_2)、测点2振动(V2_2)
【计算】仪器自动算出影响系数矩阵,保存
7.2 日常使用流程
1. 装上待平衡的转子
2. 启动旋转到工作转速
3. 点击"测量" → 仪器显示:
A面:需要加 X.X 克,角度 XXX°
B面:需要加 Y.Y 克,角度 YYY°
4. 按提示加配重(或去重)
5. 复测,看残余振动是否达标
6. 不达标就再测一轮(通常1~2轮即可)
7.3 试重怎么选
经验公式:
试重重量 ≈ (转子重量 × 0.1) / (转速相关系数)
更简单的方法:
- 先随便贴一个小重量(比如1克)
- 测一次,如果振动变化很小(<10%),就加重
- 如果振动变化很大(>200%),就减重
- 目标:试重引起的振动变化在 30%~100% 之间
八、常见问题与避坑指南
Q1:测出来的角度总是偏,怎么办?
最可能的原因:相位零点没校准。
- 解决:在已知角度(比如0°)贴一个已知配重,看仪器显示多少度,差值就是固定偏移,在软件里加上补偿。
Q2:振动数值跳动很大,不稳定?
可能原因:
- 转速不稳定 → 用变频器闭环控制转速
- 传感器没固定牢 → 必须螺栓或磁吸刚性固定,不能用胶带
- 环境振动干扰 → 远离其他运转设备,或增加测量平均次数
Q3:加了配重反而更差了?
可能原因:
- 角度搞反了(180°)→ 检查相位定义,是"加配重"还是"去重"
- 传感器位置动过 → 重新标定
- 试重太小 → 影响系数算不准,换大一点的试重
Q4:MEMS 传感器能用吗?
- 原型验证可以,实际使用不推荐
- ADXL355 是 MEMS 里比较好的,但还是比 IEPE 压电式差一个档次
- 主要问题:低频噪声大、温漂、相位延迟不固定
Q5:采样率设多少合适?
采样率 ≥ 最高转频 × 20(奈奎斯特要求×2,实际要×10~×20)
例:最高转速 6000 rpm = 100 Hz → 采样率 ≥ 2000 Hz
推荐:10kHz 采样率,覆盖 0~30000 rpm 都够用
Q6:一定要两个传感器吗?
- 如果只做单面平衡(薄圆盘),一个传感器够了
- 风扇叶轮有厚度,建议两个传感器做双面平衡
- 也可以先用一个传感器做单面,验证成功后再加第二个
九、成本估算与进阶路线
9.1 三种方案成本对比
| 方案 | 成本 | 精度 | 难度 | 适合 |
|---|---|---|---|---|
| MEMS原型版 | ¥150~200 | 低(角度±20°) | ★★☆ | 学习原理、验证想法 |
| IEPE实用版 | ¥500~800 | 中(角度±5°) | ★★★★ | 实际使用、业余制作 |
| 工业级 | ¥5000+ | 高(角度±1°) | ★★★★★ | 专业用途、产品开发 |
9.2 学习路径建议
第1周:学原理
→ 看懂本文档,理解振动、相位、影响系数法
第2~3周:做MEMS原型
→ STM32 + ADXL355 + 光电开关
→ 跑通 Goertzel 算法,能测出不平衡角度
第4~6周:升级IEPE方案
→ 换压电传感器 + 信号调理 + AD7606
→ 实现双面平衡
第7~8周:优化与标定
→ 相位校准、多次平均、数字滤波
→ 做标准转子验证精度
9.3 推荐学习资源
- 《机械振动》(清华大学出版社)→ 理解振动基础
- 搜"动平衡机 影响系数法" → 算法细节
- 开源项目:GitHub 搜 “balancing machine” 或 “field balancing”
- B站搜"动平衡仪 DIY" → 有爱好者的制作视频
附录:核心算法代码片段
Goertzel 算法(提取单一频率的幅值和相位)
#include <math.h>
#ifndef PI
#define PI 3.14159265358979f
#endif
/**
* @brief Goertzel算法提取指定频率分量
* @param data 输入数据数组
* @param N 数据点数
* @param fs 采样率(Hz)
* @param f0 目标频率(Hz),即转频
* @param amp 输出:幅值
* @param phase 输出:相位(弧度)
*/
void goertzel(float *data, int N, float fs, float f0,
float *amp, float *phase)
{
int k;
float omega, coeff;
float q0, q1 = 0, q2 = 0;
float real, imag;
// 计算最接近的频点索引
k = (int)(N * f0 / fs + 0.5f);
omega = 2.0f * PI * k / N;
coeff = 2.0f * cosf(omega);
// 递归计算
for (int i = 0; i < N; i++) {
q0 = coeff * q1 - q2 + data[i];
q2 = q1;
q1 = q0;
}
// 计算实部和虚部
real = q1 - q2 * coeff;
imag = q2 * sinf(omega);
// 幅值(×2/N 是归一化系数)
*amp = 2.0f * sqrtf(real * real + imag * imag) / N;
// 相位
*phase = atan2f(imag, real);
}
/**
* @brief 转速转频率
* @param rpm 转速(转/分钟)
* @return 频率(Hz)
*/
float rpm_to_hz(float rpm) {
return rpm / 60.0f;
}
双面平衡矩阵求解
#include <complex.h>
/**
* @brief 双面平衡求解
* @param alpha11, alpha12, alpha21, alpha22 影响系数(复数)
* @param v1_0, v2_0 原始振动(复数)
* @param wA, wB 输出:A面/B面应加配重(复数:模=重量,幅角=角度)
*/
void solve_double_plane(
float complex alpha11, float complex alpha12,
float complex alpha21, float complex alpha22,
float complex v1_0, float complex v2_0,
float complex *wA, float complex *wB)
{
// 矩阵求逆:[alpha] * [w] = [-v]
float complex det = alpha11 * alpha22 - alpha12 * alpha21;
*wA = ( alpha22 * (-v1_0) - alpha12 * (-v2_0)) / det;
*wB = (-alpha21 * (-v1_0) + alpha11 * (-v2_0)) / det;
}
// 使用示例:
// float complex wA, wB;
// solve_double_plane(a11,a12,a21,a22, v1_0, v2_0, &wA, &wB);
// float weight_A = cabsf(wA); // 重量(克)
// float angle_A = cargf(wA) * 180/PI; // 角度(度)
文档版本:v1.0
适用对象:零基础电子爱好者、机械爱好者
建议:先从 MEMS 原型做起,跑通流程后再考虑升级硬件。动平衡的核心不是硬件多贵,而是相位精度和标定工艺,这两点需要反复调试才能掌握。
&spm=1001.2101.3001.5002&articleId=163725463&d=1&t=3&u=6340019d2d7e4b40a45bf35537ccef55)
483

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



