电机驱动系统的抖动问题,做运动控制的人迟早都会碰上。不管是伺服、步进还是变频驱动,只要系统“抖”起来,现场调试就会变得异常折磨——肉眼能看到轴在颤,示波器里波形在跳,参数调了又调还是压不下去。干这行越久越能体会到,抖动从来不是一个“单一故障”,它更像一个症状,背后可能是电气、机械、控制三个维度的问题纠缠在一起。这篇文章我就把电机驱动系统抖动的成因诊断方法和控制方案选择思路完整梳理一遍,内容主要来自我这些年亲历的设备调试案例和维护记录,希望能给正在被抖动折磨的工程师们一些可以直接上手的经验。
很多人一听到“抖动”关键词,第一反应是去调PID、调增益,结果调了半天问题还在。我自己的经验是:想解决问题,先得把问题拆对。电气侧的供电波动和采样噪声、机械侧的共振和惯量不匹配、控制侧的参数失配和滤波不足,这三类成因的抖动表现和对策完全不同。下面我按自己的排查逻辑,把成因从底层拆开来讲,再针对不同场景给出可落地的控制方案,最后用一个完整的实操案例带你走一遍从诊断到治理的全流程。
1. 抖动诊断的总思路:先定位,再动手
拿到一个抖动故障,我建议你不要急着打开调试软件改参数,先花十分钟搞清楚三个问题:抖动的频率特征是什么?抖动和转速有没有关系?抖动和负载状态有没有关系?这三个问题的答案基本能帮你划出一个大致的排查范围。
先说频率特征。用示波器或者调试软件记录速度反馈波形,观察抖动的频率是固定值还是随着转速变化。如果抖动频率固定不变(比如始终是6Hz),那大概率是电气侧或者控制侧的问题,比如母线电压波动、控制环振荡、传感器噪声。如果抖动频率和转速成正比(比如每转固定出现N次脉动),那基本可以断定是机械侧的问题,比如联轴器偏心、丝杠导程误差、齿轮齿距误差、轴承缺陷等。
再说和转速的关系。有些抖动只在低速时出现,速度一提高就消失;有些抖动恰恰相反,转速越高越厉害。低速抖动通常和摩擦力不均匀、编码器分辨率不足、母线电压波动放大有关;高速抖动则更多指向机械共振、动平衡不良或者控制带宽不够。这两个方向对应完全不同的解决方案,排查时别混在一起。
最后看负载状态。空载不抖、带载才抖,基本可以往负载转矩波动和机械间隙方向想;空载就抖、带载反而好点,又可能是控制参数阻尼不足。这三个问题的答案结合起来,基本能筛掉一半以上的可能性。我把这个思路叫做“三问定位法”,是我每次处理抖动问题的固定起手式。
定位完之后,再按照“先机后电再控制”的顺序逐层排查。为什么先机后电?因为机械问题往往会被误判成电气或控制问题,而且机械问题改参数是压不住的。我见过太多人在软件里折腾了半天,最后发现是一颗螺丝松了。
2. 核心剖析:抖动成因的底层逻辑
动手诊断之前,先要建立一个基本共识:电机驱动系统的抖动,根子上都是“转矩波动”。不管表象是位置抖动、转速抖动还是电流抖动,最终都会归结到“输出转矩不平稳”这条线上。理解了这一点,后续所有诊断和方案选择都会变得非常有方向感。
我按自己的排查习惯,把抖动成因分成三类,实际项目里绝大多数抖动问题都能在这三类里找到影子:
- 电气侧成因:供电不稳、驱动参数不合适(PI参数、载波频率、死区设置)、电流采样噪声、PWM分辨率不足等,这类问题集中在“电”的层面。
- 机械侧成因:负载惯量不匹配、传动链间隙、联轴器弹性形变、机械共振、装配偏心等,这类问题集中在“结构”的层面。
- 控制侧成因:位置环/速度环参数不匹配、前馈不足、滤波过度、编码器分辨率不足、模式切换异常等,这类问题集中在“算法”的层面。
下面逐个拆开讲。
2.1 电气侧成因:最容易踩坑的“隐性故障”
先说说电气侧。之前调试一台750W伺服,客户反馈低速运行时抖动明显,我过去一看,驱动器显示的母线电压纹波非常大,波形上一眼就能看到明显的工频纹波叠加在直流母线上。查了一圈,最后发现问题出在整流滤波电容容量衰减上——用了几年,电容老化,等效串联电阻变大,滤波能力下降。低速时母线电压波动对转矩的影响尤其明显,因为这时候电机的反电动势小,母线电压的小幅波动会被直接“翻译”成转矩波动。这类问题用示波器测母线电压波形很快就能定位。
还有一个非常常见的电气侧抖动源是接地和信号干扰。编码器反馈线、抱闸线、动力线走同一根线槽的情况在设备上并不少见,伺服驱动器上电之后,动力线上的高频开关噪声通过寄生电容耦合到编码器信号线上,位置反馈里就会叠加毛刺。这种毛刺平时看不出问题,但低速高增益工况下会被控制环放大,出现肉眼可见的抖动。处理办法也不复杂:动力线和信号线分开走槽、编码器线使用双绞屏蔽线并单端接地、必要时在驱动器侧加磁环。
PWM死区时间的影响也很容易被忽略。死区设置过大,在电流过零附近会产生明显的非线性,体现在低速轻载工况下就是电流波形畸变、转矩脉动。变频器驱动异步电机时,死区效应在低速空载时会让电流波形出现明显的“台阶”,电机表现为低频振动。遇到过一台0.4kW的异步电机,空载运行在2Hz附近时整个机座都在抖,把死区时间从4us调到2us(在保证上下桥臂不直通的前提下),振动肉眼可见地减轻。当然,死区时间不能无限制缩小,缩短之后开关管的开关应力会增大,需要综合权衡。
2.2 机械侧成因:被忽视的“结构病”
机械侧的问题往往是“电”看不出来的。我处理过一台直线模组,客户反映运行到某一段位置时抖动特别大,速度曲线在那个位置有明显波动。驱动器参数调了很久都没有根治,后来把模组拆开检查,发现丝杠支撑座的锁紧螺母松动,导致丝杠在该位置附近出现了微小的轴向窜动。电气参数怎么调都压不掉的东西,机械上拧紧一颗螺母就解决了。这类案例多了之后,我现在做抖动诊断,默认一定是“先机后电”——先排查机械结构,再动控制参数。
机械共振是另一个高频抖动源。负载的固有频率和传动系统的某个部件频率耦合之后,会在特定转速下激发共振。典型特征是:抖动只在某个转速区间出现,转速一过这个区间就恢复正常;或者抖动频率和转速之间有明显比例关系(比如每转多少次的脉动)。遇到这种情况,先确认机械共振频率,可以用加速度传感器测振动频谱,也可以用伺服调试软件自带的FFT分析功能。确认频率之后,一是可以调整机械结构(加阻尼、改变质量分布),二是可以用陷波滤波器在控制环里把该频段的增益压掉,三是通过修改速度环参数避开激励区间。实操中后两种用得最多,因为改机械结构往往要停机很久。
负载惯量比不匹配是新手最容易出问题的地方。惯量比这个概念很多刚接触伺服的人不太理解,简单说就是负载折算到电机轴上的转动惯量和电机转子转动惯量的比值。惯量比越大,负载对速度变化的“惰性”越大,系统越难稳定。一般伺服系统建议惯量比控制在10以内,高动态响应的场合最好在5以内。惯量比过大的时候,典型表现就是停车时过冲明显、启动时振铃、运行中轻微抖动。解决办法要么换更大惯量的电机,要么在控制参数上做文章(减小速度环增益、增加微分时间、启用惯量比估算功能)。市面上主流伺服驱动器都有自动惯量辨识功能,调试前先跑一遍惯量辨识,能省掉后面一大半的调试时间。
2.3 控制侧成因:参数与算法的博弈
控制侧的抖动问题最讲究经验,因为“看起来”参数都正常,但运行效果就是不理想。速度环增益过高是典型的“新手病”——手感上觉得增益越高响应越快,结果实际一跑,电机“嗡嗡”叫,带一点负载就抖。速度环增益过高时,控制环对反馈中的微小噪声非常敏感,噪声被放大后形成持续的转矩波动。判断方法很简单:把速度环增益降低30%,如果抖动明显减轻,大概率就是增益过高。反过来,增益过低的抖动表现是“软绵绵”的抖动,响应滞后,跟随误差大,调试时需要用示波器看阶跃响应来判断。
位置环的前馈量设置不当也会导致抖动。前馈量过低,位置环需要靠自身的误差来驱动速度指令,动态跟随差;前馈量过高,则会对指令中的微小扰动过度响应。实际遇到一个贴标机的案例,贴标头在加速阶段抖动明显,检查发现位置前馈增益设到100%但速度前馈和前馈滤波没有配合好,加速时的指令突变被直接前馈到速度环,导致转矩突变。最后把位置前馈降到80%,同时给前馈通道加了低通滤波,问题就消失了。
编码器分辨率不足引发的极限环振荡(limit cycle)也是一个有意思的现象。位置闭环系统里,如果编码器分辨率过低,位置反馈会出现量化误差。当系统停在某一个位置附近时,量化误差会让控制器反复产生“过冲-回拉”的动作,形成微幅高频振荡。肉眼看到的现象就是电机在零点附近不停地“啃”齿,听得见声音但看不出明显位移。解决思路就两条:换分辨率更高的编码器,或者在控制器里加一个死区(位置误差小于某个阈值时不做调节)。
3. 控制方案选择:不同场景的“最优解”
搞清楚了抖动成因,接下来就要回答一个很实际的问题:抖动的治理方案到底该怎么选。市面上成熟的技术方案其实不少,但没有任何一种方案是万能的,关键还是看应用场景、成本约束和性能要求。我按自己项目里用过、踩过、验证过的经验,把常见的控制方案分成几个梯队来讲。
3.1 低成本快速治理:参数整定与滤波
先说说门槛最低的方案——参数整定。很多人一听到抖动就想着上高级算法,我觉得有点本末倒置。基础的速度环/位置环参数都还没调明白,上再高级的算法也是事倍功半。我在实际调试中有一套固定的参数整定流程:
- 先跑一遍驱动器的自动惯量辨识,确认识别的惯量比合理。
- 手动把速度环增益从低往高调,每调一档就跑一次阶跃响应,观察响应是否振荡。
- 速度环能用之后,再调位置环增益,保持位置环带宽明显低于速度环。
- 最后加前馈和滤波,注意前馈量和滤波时间常数的配合。
这套流程走下来,大部分普通应用能把抖动压到可接受范围内。过程中最需要注意的是“一次只调一个参数”,同时要记录每次调整后的波形和数据。我见过太多人调参数凭感觉乱试,调了一下午都不知道哪个参数起了作用。
滤波器的使用也要讲究策略。速度环反馈滤波(通常是一阶低通)能有效抑制高频噪声,但滤波时间常数过大会引入相位滞后,反而导致系统不稳定。陷波滤波器(Notch Filter)专门用来对付机械共振——把共振频率那个频点的增益打一个“凹槽”。我在调试一款分度机构时遇到过2.3kHz的机械共振,用陷波滤波器把该频点增益压掉约20dB之后,系统马上稳定下来。需要注意的是,陷波滤波器只能治标,如果共振是由结构松动引起的,该紧的螺丝还得紧。
3.2 性能进阶:加装传感器与回路改造
如果基础参数整定压不住抖动,或者应用本身对动态性能要求很高,就需要考虑在控制回路层面做文章。
第一种做法是加装更高分辨率的编码器或光栅尺。位置反馈质量直接决定控制性能上限。一个典型的案例:某检测设备上原配17位编码器,低速匀速运动时速度波动明显,峰值波动率约3%。换用23位编码器之后,反馈噪声显著下降,配合合适的滤波,速度波动压到了0.3%以内——整整一个数量级的提升。这个案例说明,有时候问题不在算法,而在于你“看”得不够清楚。
第二种做法是引入速度观测器或扩展状态观测器。观测器的核心思想是:不直接依赖编码器的差分来算速度,而是通过电机模型和电流反馈来估计转速,从而避免差分运算对噪声的放大效应。在低速段,编码器差分法算出来的速度本身就包含大量量化噪声,观测器能明显改善低速平稳性。现在主流伺服厂商都提供这类功能,开启方式也不复杂,代价是计算量增加和对电机模型准确度的依赖。
第三种做法是改造机械传动结构,比如用直驱电机替代“电机+减速机”方案。直驱电机消除了减速机的齿轮间隙和弹性变形,从根源上切断了一类抖动来源。代价是成本上升、对电机本体和控制器的要求更高。这个方案适合对精度和动态性能有硬性要求、同时预算充足的场合。
3.3 面向特定工况的扰动抑制策略
有些应用场景比较特殊,抖动来源难以通过机械手段消除,这时候就要用专门的扰动抑制策略。
**重复控制(Repetitive Control)**非常适合周期性负载扰动。比如冲压设备的负载在每个运动周期内都有固定的波动模式,重复控制器可以根据上一周期的误差信息修正本周期的指令,相当于“学习”扰动的规律并主动抵消。实现上需要知道周期长度,并且要求扰动确实具有周期性。实际使用下来,稳态误差能下降一个量级,但周期变化时性能会明显退化。
负载转矩前馈补偿的思路更直接:如果扰动来自负载本身(比如重力负载、摩擦力),可以通过模型计算或观测器估出负载转矩,然后在前馈通道直接补偿。举个例子,垂直轴在低速上升时,如果重力补偿参数不准,电机会出现“抖一段、停一下”的感觉——这就是重力转矩和摩擦转矩的耦合作用。用观测器实时估算负载转矩并前馈补偿后,低速运行的平稳性改善非常明显。这套方案的关键在于负载模型的准确性,模型错了反而会引入新的扰动。
自适应控制在负载特性变化频繁的场合有价值。比如机器人关节的负载惯量会随姿态大幅变化,固定参数的控制环很难兼顾所有工况。自适应控制器在线辨识负载参数并实时调整控制增益,能自动适应负载变化。但自适应控制有收敛性问题,参数辨识不准时可能出现振荡甚至发散,工程上用得比较谨慎。
3.4 算法地图:怎么选才能不踩坑
把上面这些方案放在一起,我用一张“算法地图”来总结选择的逻辑:
| 工况特征 | 首选方案 | 备选方案 | 不适合的方案 |
|---|---|---|---|
| 低速轻载抖动 | 参数整定+滤波优化 | 高分辨率编码器 | 重复控制 |
| 特定转速区间抖动 | 陷波滤波器 | 机械结构改造 | 仅调增益 |
| 周期性负载扰动 | 重复控制 | 负载转矩前馈 | 高增益PID |
| 负载惯量大范围变化 | 自适应控制/惯量辨识 | 直驱电机 | 固定参数PID |
| 负载转矩可建模 | 负载转矩前馈 | 扩展状态观测器 | 盲目滤波 |
这张表不是教条,是我个人经验的浓缩。实际选型时还要结合成本、工期、团队对算法的熟悉程度来综合判断。比如自适应控制虽然功能强大,但如果团队没有人真正理解它的调参逻辑,出了问题反而更难排查,不如选一个稳妥的陷波滤波器方案。
4. 实操过程:一次完整的抖动诊断与治理记录
理论讲再多,不如看一次完整的实操过程。下面是我最近处理的一个真实案例,涵盖了从现象确认、数据采集、原因定位到方案落地的全过程。这个案例比较典型,几乎把前面讲到的诊断思路和方法都用上了。
4.1 案例背景与现场现象
设备是一台三轴点胶机,客户反映Y轴在低速画圆时存在明显抖动,圆轨迹上有肉眼可见的“锯齿”。设备配置:伺服电机+滚珠丝杠传动,电机额定功率400W,编码器17位,驱动器支持自动惯量辨识和FFT分析功能。故障出现前设备已经连续运行了3个多月,此前Y轴一直正常。
现场第一步是复现故障。把Y轴速度设到10mm/s,画直径为50mm的圆,轨迹上果然能看到锯齿状波动。速度提升到30mm/s以上,锯齿逐渐消失,圆轨迹变得平滑。初步判断:这是一个和速度相关的抖动,问题大概率在低速段,可能涉及机械低速爬行、控制参数或者编码器反馈质量。
4.2 数据采集与原因定位
复现故障之后,接上调试软件开始采集数据。主要看三路信号:速度反馈波形、电流指令波形、位置误差波形。采集条件:Y轴以10mm/s匀速运行,采样频率1kHz,连续记录20秒。
速度反馈波形显示:10mm/s匀速运行期间,速度波动峰值约±4%,波动频率大约6Hz。电流指令波形同样有6Hz左右的波动分量,说明这不是单纯的负载扰动(如果是外部负载扰动,电流应该被环路的修正动作抑制,速度波动会更小)。位置误差波形则呈现周期性起伏,周期约0.17秒,与6Hz的频率对应。
随后做了几个关键实验。第一,把速度环增益降低40%,重新跑同一工况,发现速度波动幅度有所下降但不明显,说明增益不是主要矛盾。第二,用手触摸Y轴丝杠和电机连接处,感觉有轻微的周期性冲击感,和6Hz的频率吻合。第三,用驱动器自带的FFT功能扫描机械特性,在6Hz附近没有发现明显共振峰,但5.8Hz附近有一个较弱的峰。
到这里,基本锁定了两个可疑方向:一是机械传动链中存在周期性扰动(比如丝杠导程误差、轴承缺陷),二是电流环或速度环存在周期性误差源。继续排查时注意到一个细节:点胶机Z轴和Y轴共用一个驱动器电源模块,Z轴在点胶动作时频繁启停,母线电压有周期性波动。把Z轴暂停后,Y轴的抖动立即减轻——这说明Y轴的抖动和母线电压波动之间有关联,周期性的负载变化通过母线耦合到了Y轴。
最终定位:问题出在共用直流母线的电源模块上,母线电压波动在低速段被Y轴控制环放大,表现为周期性速度波动。这个结论解释了为什么提高速度后锯齿消失——高速段的控制环带宽相对较低,对母线电压波动的响应减弱。
4.3 治理方案与效果验证
定位到根因后,治理思路就清晰了。我们采用了三层措施:
第一层,加上他励式直流母线稳压功能(驱动器本身支持,之前没启用)。启用后母线电压波动峰值从±5V降到±1V以内,Y轴低速抖动立即减轻。
第二层,给Y轴速度环反馈增加了一阶低通滤波,滤波频率设为80Hz,用以抑制残余的高频分量。这一步对稳态精度影响不大,但明显降低了噪声放大效应。
第三层,重新整定了Y轴的位置环增益,从原来的35降至28,同时增加位置前馈量至85%。这样既保持了原有动态响应,又减少了低速段的位置误差波动。
实施后重新跑10mm/s的圆轨迹,锯齿消失,圆度误差从原来的0.15mm降到0.04mm。速度波动峰值从±4%降到了±1%以内。客户验收很顺利。整个过程从开始排查到最终实施完成,总共花了两天时间,其中半天用在了确认机械侧是否存在问题——虽然没有找到机械缺陷,但这个排查过程是必要的,它排除了最大的不确定因素。
这个案例给我的经验是:抖动诊断不能只盯着某一个环节,要系统地看整个驱动链路。母线电压波动、机械传动特性、控制参数三者互相影响,单独调任何一个都不一定能解决问题。先宏观定位(周期性?速度相关?负载相关?),再微观检测(波形、频谱、频率分析),最后分层治理(电源侧-控制侧-机械侧),这套方法论是通用的。
5. 常见问题与排查技巧实录
最后把这几年积累的排查技巧和一些典型的坑整理成速查表,希望能帮你少走一些弯路。
5.1 排查技巧速查
- 先看波形再看参数:很多工程师一上手就调PID,我建议先花半小时把速度反馈、电流反馈、位置误差的波形都看一眼。波形会告诉你问题的性质,参数调整只是在确认判断。
- 做变量隔离实验:一次只改变一个变量,要么是速度设定、要么是负载状态、要么是某个控制参数。变量隔离是定位问题的最有效手段。
- 记录每次实验数据:调试过程中的截图、波形、参数修改记录都要存档。不然等你把参数调乱了,想回退都不知道从哪里回退。
- 区分抖动频率和转速的关系:如果抖动频率和转速成正比(比如每转固定的脉动次数),大概率是机械侧问题(联轴器偏心、丝杠导程误差、齿轮齿距误差);如果抖动频率固定不变(和转速无关),更可能是电气侧或控制侧问题(母线波动、控制环振荡、传感器噪声)。
- 听声音辅助判断:电机“嗡嗡”叫往往是控制环增益过高;“咔哒咔哒”周期性声响可能是机械间隙;“啸叫”多是电流环或共振问题。耳朵有时候比示波器更敏锐。
5.2 典型问题速查表
| 现象 | 优先怀疑 | 验证方法 | 治理建议 |
|---|---|---|---|
| 低速运行时抖动明显 | 编码器分辨率低/反馈噪声大 | 查速度差分波形,看量化台阶 | 换高分辨率编码器;加滤波 |
| 抖动随转速升高而加剧 | 机械共振/负载惯量不匹配 | 扫频测试,查共振频率 | 陷波滤波器;调整惯量比 |
| 特定位置区间抖动 | 丝杠/导轨磨损或松动 | 检查机械精度,针对该区间单步移动 | 机械修复;补偿表 |
| 抖动频率等于电网频率 | 母线电压波动 | 示波器测母线电压 | 加直流母线稳压;加大滤波电容 |
| 电机静止时仍微抖 | 编码器量化误差/极限环 | 观察位置误差是否在±1个脉冲内反复 | 加位置死区;换高分辨率编码器 |
| 带载抖动、空载正常 | 负载转矩波动/机械间隙 | 空载与带载分别测速度波形 | 转矩前馈;机械间隙消除 |
| 高速时啸叫 | 电流环增益过高/共振 | 降低电流环增益试运行 | 整定电流环参数;陷波滤波 |
5.3 几个独家经验
做驱动系统调试这些年,我最深的体会是:电机的抖动从来不是单一原因造成的。多数情况下是多个因素叠加的结果,比如稍微偏大的惯量比、加上有点老化的母线电容、再碰上负载周期扰动,单看哪一个好像都不严重,凑在一起就成了明显的抖动问题。所以排查时要有点耐心,把一个一个嫌疑排除掉,不要指望一把螺丝刀修好所有车。
另外,不要迷信高级算法。我见过很多工程师一上来就想用自适应控制、重复控制“一招制敌”,实际上基础参数整定、滤波器组合、机械结构调整这些“笨办法”往往更能解决问题,而且更好维护、更好排查。高级算法有它的价值,但它应该是最后的手段,而不是首选的方案。
还有一个容易忽略的点:现场安装质量和调试结果直接相关。电机底座固定不牢、联轴器没有对中、线缆没有固定好,这些“小事”都会在低速段被放大成抖动问题。每次开展抖动诊断时,我习惯先绕着设备走一圈,看看有没有明显的安装隐患,这一步能省下很多无效调试时间。
行文到此。最后再分享一个小技巧吧:调试时养成保存参数组的习惯,把每次调好的参数存成一个独立的参数文件,并标注日期和工况。等你某天遇到一个似曾相识的抖动问题时,翻翻当年的参数文件,能少走很多弯路。这也是我在这个行业里最有价值的“资料库”。