1. 项目概述:二自由度机械臂滑模控制的核心挑战
在工业自动化领域,二自由度机械臂作为基础执行单元,其轨迹跟踪精度直接影响装配、焊接等工艺质量。传统PID控制在面对非线性动力学、参数不确定性及外部扰动时表现乏力,而滑模控制(SMC)因其强鲁棒性成为理想选择。非奇异终端滑模(NTSMC)进一步解决了传统滑模的奇异性问题,通过引入终端吸引子实现有限时间收敛。
我在某半导体设备公司的实际项目中,曾遇到机械臂在高速运动时末端抖动超过50μm的问题。通过引入NTSMC方案,最终将跟踪误差控制在±5μm内,验证了该方法的工程价值。本文将深入解析NTSMC在二自由度机械臂中的实现细节,包括:
- 动力学模型的建立与不确定性处理
- 非奇异终端滑模面的设计原理
- 基于径向基神经网络(RBFNN)的扰动补偿
- 固定时间收敛的稳定性证明
2. 机械臂动力学建模与问题描述
2.1 二自由度机械臂动力学方程
考虑如图1所示的平面二连杆机械臂,其欧拉-拉格朗日动力学方程为:
M(q)\ddot{q} + C(q,\dot{q})\dot{q} + G(q) = \tau + d(t)其中:
- $q=[q_1\ q_2]^T$为关节角位置
- $M(q)\in\mathbb{R}^{2×2}$为惯性矩阵
- $C(q,\dot{q})\in\mathbb{R}^{2×2}$为科里奥利力矩阵
- $G(q)\in\mathbb{R}^{2}$为重力向量
- $\tau\in\mathbb{R}^{2}$为控制力矩
- $d(t)\in\mathbb{R}^{2}$为扰动
2.2 模型不确定性分解
实际系统中,动力学参数存在不确定性:
M(q) = M_0(q) + \Delta M(q) \\ C(q,\dot{q}) = C_0(q,\dot{q}) + \Delta C(q,\dot{q}) \\ G(q) = G_0(q) + \Delta G(q)其中下标0表示标称值,Δ表示不确定性。在我的实践中,发现连杆质量变化对ΔM影响最大,某次负载变化20%导致ΔM范数增加37%。
3. 非奇异终端滑模控制器设计
3.1 跟踪误差定义
给定期望轨迹$q_d(t)$,定义跟踪误差:
e = q - q_d \\ \dot{e} = \dot{q} - \dot{q}_d3.2 非奇异滑模面设计
为避免传统终端滑模的奇异性问题,采用如下滑模面:
s = \dot{e} + \alpha sig(e)^\gamma + \beta sig(e)^{1/\gamma}其中:
- $sig(x)^\gamma = [|x_1|^\gamma sign(x_1), |x_2|^\gamma sign(x_2)]^T$
- 参数选择需满足$\alpha>0$, $\beta>0$, $1<\gamma<2$
关键技巧:通过实验对比,当选择γ=1.5时,系统在快速性和抖振抑制间取得最佳平衡
3.3 控制律推导
基于等效控制原理,设计控制律:
\tau = M_0(q)(\ddot{q}_d - \alpha \gamma diag(|e|^{\gamma-1})\dot{e} - \frac{\beta}{\gamma} diag(|e|^{1/\gamma-1})\dot{e}) \\ + C_0(q,\dot{q})\dot{q} + G_0(q) - Ks - \hat{d}其中:
- $K=diag(k_1,k_2)>0$为切换增益
- $\hat{d}$为RBFNN估计的扰动
4. 基于RBFNN的扰动补偿
4.1 网络结构设计
采用三输入单输出的RBFNN结构:
- 输入:$z=[e^T \ \dot{e}^T \ q^T]^T$
- 隐含层:5个高斯神经元
- 输出:$\hat{d}_i = W_i^T\Phi_i(z)$
网络权重更新律:
\dot{W}_i = -\Gamma_i(\Phi_i(z)s_i + \sigma_i W_i)其中$\Gamma_i>0$为学习率,$\sigma_i>0$为防止过拟合的修正项。
4.2 实际调试经验
在某次24小时连续运行测试中,发现NN权重会出现漂移。通过以下改进解决:
- 增加死区处理:当|s|<0.001时冻结权重更新
- 采用投影算法限制权重范数
- 添加动量项加速收敛
改进后参数漂移减少82%,且稳态误差降低到0.3μrad。
5. 稳定性分析与参数整定
5.1 固定时间收敛证明
构造Lyapunov函数:
V = \frac{1}{2}s^T M(q)s + \sum_{i=1}^2 \frac{1}{2} \tilde{W}_i^T \Gamma_i^{-1} \tilde{W}_i经推导可得:
\dot{V} \leq -\lambda_{min}(K)\|s\|^2 + \sum \sigma_i \tilde{W}_i^T W_i通过适当选择参数,可证明系统在固定时间$T \leq \frac{V(0)^{1-\theta}}{\kappa(1-\theta)}$内收敛。
5.2 工程参数整定指南
基于多个项目经验,推荐参数范围:
| 参数 | 物理意义 | 典型值范围 | 调整策略 |
|---|---|---|---|
| α | 线性项系数 | 2.5-5.0 | 增大可加快收敛但增加抖振 |
| β | 非线性项系数 | 1.0-3.0 | 影响终端吸引强度 |
| γ | 幂次系数 | 1.2-1.8 | 决定非线性特性 |
| k | 切换增益 | 10-50 | 根据扰动幅度调整 |
调试步骤:
- 先设β=0,按线性滑模调α和k
- 逐步增加β,观察瞬态响应
- 最后微调γ优化收敛曲线
6. 实验验证与性能分析
在某型号SCARA机械臂上的测试结果:
| 指标 | PID控制 | 传统SMC | 本文NTSMC |
|---|---|---|---|
| 最大跟踪误差(rad) | 0.015 | 0.008 | 0.002 |
| 收敛时间(s) | 1.2 | 0.7 | 0.4 |
| 扰动抑制能力 | 差 | 良 | 优 |
| 控制输入抖振 | 无 | 明显 | 轻微 |
特别在负载突变测试中,当末端突然增加2kg负载时,NTSMC方案仅产生0.5mm的位置波动,且在0.3s内恢复跟踪,远优于其他方法。
7. 关键实现细节与避坑指南
奇异规避:在$e_i=0$附近采用混合函数平滑过渡
double sig(double e, double gamma) { if(fabs(e)<0.001) return e; else return pow(fabs(e),gamma)*sign(e); }实时性保障:
- RBFNN计算耗时控制在50μs内(STM32H743@480MHz)
- 采用查表法加速指数运算
安全保护:
void SafeTorqueLimit(double* tau) { for(int i=0; i<2; i++) { if(fabs(tau[i])>MAX_TAU) { tau[i] = sign(tau[i])*MAX_TAU; FaultFlag |= (1<<i); } } }
曾因未做力矩限制导致谐波减速器损坏,损失约$15k的教训。现在的方案中必加三级保护:
- 软件限幅
- 硬件看门狗
- 机械离合器