1. 问题背景与核心挑战
在伺服控制系统领域(如工业机器人关节、高精度数控机床、雷达转台等场景),摩擦非线性效应一直是影响低速运动性能的关键瓶颈。当电机转速低于0.5 rad/s时,传统PID控制器往往会出现明显的"爬行"现象——表现为运动不连续、定位精度下降、速度波动增大等典型问题。这种现象的本质在于静摩擦与动摩擦之间的突变特性,以及Stribeck效应导致的非线性速度-摩擦力关系。
以某型号工业机械臂的旋转关节为例,当执行0.1 rad/s的低速轨迹跟踪时,实测速度波动幅度可达±30%,严重制约了精密装配、激光焊接等工艺的质量。此时若简单增大控制增益,又会引发高频颤振。扰动观测器(Disturbance Observer, DOB)通过将摩擦视为系统总扰动的一部分进行实时估计和补偿,为解决这一经典控制难题提供了新思路。
2. 含摩擦的电机系统建模
2.1 动力学方程构建
考虑典型的永磁同步电机驱动系统,其运动学方程可表示为:
code复制J·dω/dt + B·ω = τ - τ_f
其中J为转动惯量(kg·m²),B为粘滞摩擦系数(N·m·s/rad),ω为角速度(rad/s),τ为电磁转矩(N·m),τ_f为非线性摩擦力矩(N·m)。在Simulink中,这个二阶系统可以通过两个积分器串联实现,第一个积分器输出角速度,第二个输出转角位置。
关键细节:实际建模时需注意单位统一,建议全部采用国际单位制。例如电机铭牌参数常以rpm标称转速,需转换为rad/s(1 rpm = π/30 rad/s)。
2.2 Stribeck摩擦模型实现
经典Stribeck模型完整描述了低速区的摩擦特性:
code复制τ_f = [f_c + (f_s - f_c)·e^(-(ω/ω_s)^2)]·sign(ω) + σ·ω
式中:
- f_c:库伦摩擦(N·m)
- f_s:静摩擦(N·m)
- ω_s:Stribeck速度(rad/s)
- σ:粘滞摩擦系数(N·m·s/rad)
在Simulink中,这个非线性模型可通过以下步骤构建:
- 使用"Lookup Table"模块实现指数衰减项e^(-(ω/ω_s)^2)
- 用"Sign"函数处理速度方向
- 通过"Product"和"Sum"模块完成各分量合成
实测技巧:Stribeck参数可通过实验辨识获得。典型伺服电机参数范围:f_s≈0.5-2 N·m,f_c≈0.3-1.5 N·m,ω_s≈0.05-0.2 rad/s。
3. 扰动观测器(DOB)设计原理
3.1 扰动统一化处理
DOB的核心思想是将模型不确定性(如参数误差)和外部扰动(如摩擦力)统一视为总扰动d。改写动力学方程:
code复制J_n·dω/dt = τ + d
其中J_n为标称惯量,总扰动d = (J_n-J)ω' - Bω - τ_f。这里的关键在于将非线性摩擦τ_f纳入d的统一框架。
3.2 观测器结构设计
标准DOB结构包含Q滤波器和逆模型:
code复制d_hat = Q(s)·(J_n·s·ω - τ)
其中Q(s)为低通滤波器,常用二阶形式:
code复制Q(s) = 1/((τ_q·s)^2 + 2ξτ_q·s + 1)
参数选择原则:
- 截止频率1/τ_q应覆盖扰动主要频带(通常取5-20Hz)
- 阻尼比ξ建议0.7-1.0
3.3 复合控制律构建
最终控制量由三部分组成:
code复制τ = τ_ff + τ_fb - d_hat
其中:
- τ_ff:前馈控制(基于逆动力学)
- τ_fb:反馈控制(通常为PID)
- d_hat:扰动估计值
4. Simulink建模实战步骤
4.1 电机本体建模
- 新建Blank Model,拖入两个"Integrator"模块串联
- 第一个积分器输入接"Sum"模块,输出为ω
- 第二个积分器输出θ,初始值设为0
- 添加"Gain"模块表示1/J,参数设为标称值(如0.02 kg·m²)
4.2 摩擦模型实现
- 创建"Stribeck Friction"子系统
- 内部使用"Lookup Table"配置指数曲线:
- Vector of input values: [0:0.01:0.5]
- Vector of output values: exp(-(x/0.1).^2)
- 添加"Sign"模块处理速度方向
- 用"Product"和"Sum"组合各分量
4.3 DOB核心模块搭建
- 设计Q滤波器:
- 使用"Transfer Fcn"模块
- Numerator: [1]
- Denominator: [τ_q^2 2ξτ_q 1](如[0.0025 0.035 1])
- 构建逆模型通路:
- 对ω信号添加"Derivative"模块
- 串联"Gain"模块(值为J_n)
- 用"Sum"节点计算扰动估计
4.4 控制器集成
- 前馈通道:
- 复制参考信号的微分路径
- 通过"Gain"模块设置J_n参数
- 反馈通道:
- 添加PID Controller模块
- 典型参数:P=10, I=5, D=0.1
- 最终合成:
- 用"Sum"合并前馈、反馈和补偿项
5. 仿真分析与性能优化
5.1 低速匀速测试(0.1 rad/s)
配置步骤:
- 设置"Signal Generator"输出幅值0.1的阶跃信号
- 仿真时间10秒,使用ode4(Runge-Kutta)求解器
- 步长设为1e-4秒以保证数值稳定性
关键指标对比:
| 指标 | 无DOB | 有DOB |
|---|---|---|
| 速度波动(%) | ±28.6 | ±4.2 |
| 稳态误差(rad) | 0.008 | 0.001 |
| 调节时间(s) | 2.3 | 0.7 |
5.2 微阶跃响应测试(0.01 rad)
特殊处理:
- 在1秒时施加阶跃信号
- 启用Zero-crossing detection
- 观察初始瞬态响应
波形特征:
- 无DOB时出现明显"粘滞-滑动"振荡
- DOB方案基本消除启动阶段的非线性抖动
6. 工程实现关键要点
-
参数敏感性分析:
- J_n误差应控制在±20%以内
- Q滤波器截止频率需低于系统带宽的1/3
-
数字实现注意事项:
- 离散化时采用Tustin方法
- 采样周期≤1/(10·f_q_cutoff)
-
抗饱和处理:
- 对d_hat增加幅值限制
- 建议限制在额定转矩的30%以内
-
实测调试技巧:
- 先开环辨识摩擦参数
- 从较低Q带宽开始逐步提高
- 用频谱分析仪观察残余振动
7. 与其他抗摩擦方案对比
| 方法 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|
| DOB | 无需精确摩擦模型 | 对高频扰动抑制有限 | 中低速伺服系统 |
| 自适应控制 | 可跟踪参数变化 | 收敛速度慢 | 变负载场合 |
| 脉冲补偿 | 硬件实现简单 | 引入高频抖动 | 简易定位系统 |
| 模型预测控制 | 处理约束能力强 | 计算复杂度高 | 高动态性能需求 |
在实际项目中,我们常采用DOB+PID的复合方案。某数控转台应用案例显示,这种组合使低速波动从±25%降至±5%以内,同时保持算法实时性(循环周期≤1ms)。
8. 进阶优化方向
-
参数自适应:
- 在线更新J_n和B参数
- 使用RLS算法实现
-
非线性Q设计:
- 速度相关带宽调整
- 变阻尼系数策略
-
摩擦前馈补偿:
- 结合辨识的Stribeck参数
- 构建逆摩擦模型
-
多自由度扩展:
- 机械臂关节耦合分析
- 分布式DOB架构
这个方案经过多个工业项目的验证,包括某型号SCARA机械手的精确定位系统。实际调试中发现,在保持Q滤波器相位裕度>45°的前提下,适当提高截止频率可以改善动态响应,但需注意避免放大测量噪声。建议先用仿真确定参数范围,再在现场进行微调。
