基于 LuGre 模型的 Slotine-Li 摩擦观测器
Robust Adaptive Tracking Control Based on State Feedback Controller With Integrator Terms for Elasti
1. 符号定义与物理含义
| 符号 | 含义 | 单位 |
|---|---|---|
| $\theta$ | 电机实际角位置(编码器测量) | rad |
| $\dot{\theta}$ | 电机实际角速度 | rad/s |
| $\theta_d$ | 期望电机角位置(外环指令) | rad |
| $e = \theta_d - \theta$ | 电机位置跟踪误差 | rad |
| $J$ | 电机转子转动惯量 | kg·m² |
| $u$ | 电机控制力矩(指令输出) | N·m |
| $\tau_f$ | 真实摩擦力矩 | N·m |
| $\hat{\tau}_f$ | 摩擦力矩估计值 | N·m |
| $\Lambda$ | 滑模面增益(正数,决定收敛速度) | 1/s |
| $K_D$ | 阻尼反馈增益(正数) | N·m·s/rad |
| $\Gamma$ | 自适应学习率(正数) | — |
| $z$ | LuGre 模型内部状态(鬃毛平均变形量) | rad |
| $\hat{z}$ | 内部状态估计值 | rad |
| $\tilde{z} = \hat{z} - z$ | 状态观测误差 | rad |
| $\Phi_0$ | 鬃毛刚度系数 | N·m/rad |
| $\Phi_1$ | 鬃毛阻尼系数 | N·m·s/rad |
| $\Phi_2$ | 粘滞摩擦系数 | N·m·s/rad |
| $\tilde{\Phi} = \hat{\Phi} - \Phi$ | 参数估计误差 | 同参数单位 |
| $\Psi$ | 由速度决定的正定对角矩阵 | 1/s |
| $v = \dot{\theta}_d + \Lambda e$ | 参考速度(避免加速度测量) | rad/s |
2. 问题陈述与推导目标
控制目标:设计力矩指令 $u$,使电机实际位置 $\theta$ 跟踪期望位置 $\thetad$,即 $\lim{t\to\infty} e(t) = 0$。
核心挑战:摩擦力矩 $\tau_f$ 具有强非线性、动态迟滞、参数时变特性,且其内部状态 $z$ 不可直接测量。
解决思路:
- 采用 LuGre 动态模型 描述摩擦力的动态特性
- 设计状态观测器实时估计不可测的内部状态 $z$
- 设计自适应律在线更新摩擦参数 $\Phi$
- 通过 Lyapunov 方法 证明整个闭环系统的稳定性
3. 电机端动力学方程(推导起点)
根据牛顿第二定律,电机转子的转动方程为:
其中 $\tau_s$ 为弹簧反作用力矩(柔性关节特有,在纯电机端控制中可并入扰动项处理,此处为保持推导聚焦于摩擦,后续将 $\tau_s$ 视为已知可测/可前馈的量)。为简化推导,我们将 $\tau_s$ 合并到控制律的 PD 项中处理,聚焦于 $\tau_f$ 的估计。
将 (1) 改写为:
4. Slotine-Li 滑模面设计
4.1 定义误差变量
位置跟踪误差:
速度跟踪误差:
4.2 定义滑模面(复合误差)
将位置误差和速度误差组合为一个标量变量:
其中 $\Lambda > 0$ 为设计参数。
为什么这样做? 如果 $s = 0$,则 $\dot{e} = -\Lambda e$,这是一个一阶齐次微分方程,其解为 $e(t) = e(0)e^{-\Lambda t}$,指数收敛到 0。因此,控制目标转化为将 $s$ 驱赶到 0。
4.3 定义参考速度
为了避免直接测量加速度 $\ddot{\theta}$(噪声太大),引入参考速度:
由 (5) 和 (6) 可得关键关系:
验证:$v - \dot{\theta} = \dot{\theta}_d + \Lambda e - \dot{\theta} = (\dot{\theta}_d - \dot{\theta}) + \Lambda e = \dot{e} + \Lambda e = s$ ✓
4.4 将动力学改写为误差形式
由 (7) 得:
对时间求导:
代入 (2):
整理得误差动态方程:
5. LuGre 动态摩擦模型
5.1 模型结构
LuGre 模型将摩擦力描述为接触面鬃毛的平均行为(论文公式 9-10):
其中:
- $\Phi_0 z_0$:弹性力(鬃毛弹簧),$\Phi_0$ 为刚度系数
- $-\Phi_1 \Psi z_1$:阻尼力,$\Phi_1$ 为阻尼系数
- $\Phi_2 \dot{\theta}$:粘滞力,$\Phi_2$ 为粘滞系数
- $\Psi$ 为由速度决定的正定对角矩阵
5.2 内部状态的演化方程(论文公式 11)
5.3 关键观察:两类未知量
| 类型 | 符号 | 特性 | 解决方法 |
|---|---|---|---|
| 参数(系数) | $\Phi_0, \Phi_1, \Phi_2$ | 随温度缓慢变化 | 自适应律在线更新 |
| 状态(变量) | $z_0, z_1$ | 每一瞬间都在变化,不可测 | 状态观测器在线估计 |
6. 控制律设计(发给电机的指令)
由于真实 $\tau_f$ 未知,使用其估计值 $\hat{\tau}_f$ 替代,并加入 PD 反馈和积分项:
其中:
- $J\dot{v}$:惯量前馈
- $K_P e + K_D \dot{e}$:PD 反馈
- $K_I S(\phi)$:限幅积分器(消除稳态残差),$\phi = \int s\,dt$
- $\hat{\tau}_f$:摩擦前馈(本观测器的核心输出)
工程提示:在柔性关节机器人中,弹簧力矩 $\tau_s = K(\theta_d - \theta)$ 已知,可以并入 $K_P e$ 项处理,不影响推导。
7. 闭环误差动态的推导
将控制律 (14) 代入误差动态方程 (11):
$J\dot{v}$ 项抵消,得到:
利用 $s = \dot{e} + \Lambda e$,$\dot{e} = s - \Lambda e$,且将 $-K_P e$ 与 $-K_D \dot{e}$ 合并为 $-K_D s + (K_D\Lambda - K_P)e$,经过整理得到闭环误差动态(以 $s$ 表达):
这个方程极其重要! 它告诉我们:系统的跟踪误差由摩擦力估计误差 $\hat{\tau}_f - \tau_f$ 直接驱动。 如果我们能让 $\hat{\tau}_f \to \tau_f$,误差就会自动归零。
8. 状态观测器设计
8.1 为什么需要观测器?
摩擦力公式 (12) 中包含不可测的内部状态 $z_0, z_1$,必须在线估计。
8.2 观测器方程
模仿真实状态方程 (13),并注入修正项(论文公式 38):
修正项 $s$ 的作用:如果观测器估计的 $\hat{z}$ 不准,跟踪误差 $s$ 会变大,修正项会把 $\hat{z}$ 推向正确的方向。
8.3 观测误差动态推导
定义观测误差:
真实 $z_0$ 满足 (13a):$\dot{z}_0 = \dot{\theta} - \Psi z_0$。观测器 (16a) 减去真实值:
化简得到观测误差动态:
关键结论:观测误差的动态方程是一个稳定的线性系统。只要 $s$ 存在(电机有跟踪误差),$\tilde{z}$ 会不断减小。当 $s$ 被控制到 0 时,观测误差也会指数衰减到 0。观测器的稳定性与电机状态是耦合的,将在第 11 节统一证明。
9. 参数自适应律设计
9.1 定义参数估计误差
真实参数 $\Phi$ 是常数(或缓慢变化),因此 $\dot{\tilde{\Phi}} = \dot{\hat{\Phi}}$。
9.2 构造李雅普诺夫候选函数
我们构造一个包含所有误差源的标量函数:
各项物理意义:
- 第1项:跟踪误差的动能
- 第2-3项:观测误差的虚拟能量
- 第4-6项:参数误差的虚拟能量
- $\Gamma_0, \Gamma_1, \Gamma_2 > 0$ 为自适应学习率
如果 $V$ 始终减小,系统一定稳定。
9.3 对 $V$ 求导
对时间求导(利用链式法则):
9.4 代入观测误差动态
将 (18a) 和 (18b) 代入 (21):
展开:
9.5 代入闭环误差动态
从 (15) 解出 $J\dot{s}$:
将 (23) 代入 (22) 的第一项 $J s\dot{s}$:
9.6 处理 $\hat{\tau}_f - \tau_f$ 项 —— 这是推导的关键!
我们将摩擦力估计误差展开。由 (12) 的真实值和估计值:
两者相减:
技巧:将每项拆成“状态误差”和“参数误差”两部分。
对于第一项:
同理:
对于粘滞项,注意估计值使用参考速度 $v$,真实值使用 $\dot{\theta}$,$v = \dot{\theta} + s$:
因此:
9.7 将 (25) 代入 (24) 并整理
将 (25) 的每一部分代入 (24) 中对应的 $s(\hat{\tau}_f - \tau_f)$ 项:
代入 (24):
观察:$\Phi_0 \tilde{z}_0 s$ 和 $-\Phi_0 \tilde{z}_0 s$ 完美抵消!$\Phi_1 \tilde{z}_1 s$ 和 $-\Phi_1 \tilde{z}_1 s$ 也完美抵消!
剩下的含参数的项为:
9.8 选择自适应律消去 $\tilde{\Phi}$ 项
为了让 $\dot{V} \leq 0$,我们强制令所有含有 $\tilde{\Phi}$ 的括号项等于 0:
得到最终的自适应更新律:
与论文公式 (46) 的对应关系:
- 第 11 节将展示完整的推广形式,包含矩阵增益 $A^{-1}K$ 和更一般的回归矩阵 $Y$。当前推导针对一维情形,已揭示本质结构。
符号说明:文中定义的 $\Gamma$ 是标量自适应增益,与下文矩阵形式 $\boldsymbol{\Gamma}$(对角正定)对应时,一维情形直接取 $\boldsymbol{\Gamma} = \Gamma$。
自适应律的物理含义:
参数的变化率 = 学习率 × 当前运动信号 × 当前跟踪误差
如果电机有跟踪误差 $s$,参数就会被持续修正;当 $s \to 0$ 时,参数停止变化。
10. 稳定性证明
10.1 将自适应律代入 $\dot{V}$
将 (27a)-(27c) 代入 (26),所有带 $\tilde{\Phi}$ 的项消失,得到:
10.2 分析各项的符号
- $-(K_D - \Phi_2) s^2$:需保证 $K_D > \Phi_2$(足够大的阻尼),此项为负
- $-K_I s S(\phi)$:积分项的特殊性质
- 当 $|\phi| < \epsilon$ 时,$S(\phi) = \phi$,此项为 $-K_I s\phi = -K_I \phi \dot{\phi} = -\frac{K_I}{2} \frac{d}{dt}(\phi^2)$
- 当 $|\phi| \geq \epsilon$ 时,$S(\phi) = 0$,此项为 0
- $-s\tau_s$:弹簧力矩项,对于自由空间无外力 ($\tau_s=0$) 时为 0;在接触时被动耗散
- $-\Phi_0 \Psi \tilde{z}_0^2 \leq 0$:观测误差耗散项(因为 $\Phi_0 > 0, \Psi > 0$)
- $-\Phi_1 \Psi \tilde{z}_1^2 \leq 0$:观测误差耗散项
10.3 利用积分项的耗散性质
分析 $-K_I s S(\phi)$ 项。考虑 $|\phi| < \epsilon$ 时:
因此 (28) 可重写为:
10.4 构造修正的李雅普诺夫函数
为了处理积分项中的 $\frac{d}{dt}(\phi^2)$,我们定义一个新的李雅普诺夫函数 $V_\phi$:
对 $V_\phi$ 求导:
当 $|\phi| < \epsilon$ 时,$S(\phi) = \phi$,$\dot{S} = s$,有:
将 (28) 代入,$-K_I s\phi + K_I \phi s = 0$ 完美抵消,得到:
当 $|\phi| \geq \epsilon$ 时,$S(\phi) = 0$,$\dot{S} = 0$,$\dot{V}_\phi = \dot{V} = -(K_D - \Phi_2) s^2 - s\tau_s - \Phi_0 \Psi \tilde{z}_0^2 - \Phi_1 \Psi \tilde{z}_1^2$。
两种情况得到完全相同的结果!因此统一有:
10.5 关键结论
在自由空间无外力的情况下($\tau_s = 0$):
只要选择 $KD > \Phi_2$(即反馈阻尼大于粘滞摩擦系数),$\dot{V}\phi \leq 0$ 恒成立。
根据 Barbalat 引理:
- $V\phi \geq 0$ 且 $\dot{V}\phi \leq 0$,所以 $V_\phi$ 有界
- $\dot{V}\phi$ 一致连续(因为 $\ddot{V}\phi$ 有界)
- 因此 $\lim{t\to\infty} \dot{V}\phi = 0$
由 (32) 可得:
最终结论:
- 跟踪误差收敛:$s \to 0 \Rightarrow e \to 0, \dot{e} \to 0$
- 观测误差收敛:$\hat{z}_0 \to z_0, \hat{z}_1 \to z_1$
- 摩擦力估计误差收敛:$\hat{\tau}_f \to \tau_f$(由 (25) 可得)
注意:由 (31),在接触有外力时 $-s\tau_s$ 代表被动耗散,系统仍然有界稳定。由于篇幅限制,接触交互的完整有界性分析将在本文后续版本中补充。
11. 离散化迭代算法(可直接写代码)
每一步($\Delta t$ 为采样周期,如 0.001s)依次执行:
初始化:$\hat{z}_0 = \hat{z}_1 = 0$,$\hat{\Phi}_0 = \hat{\Phi}_{0,init}$,$\hat{\Phi}_1 = \hat{\Phi}_{1,init}$,$\hat{\Phi}_2 = \hat{\Phi}_{2,init}$,$\phi = 0$
每一步迭代:
| 步骤 | 操作 | 公式 |
|---|---|---|
| 1 | 读取编码器位置 | $\theta_k$ |
| 2 | 计算速度 | $ \dot{\theta}_k = (\theta_k - \theta_{k-1}) / \Delta t $ |
| 3 | 获取期望值 | $\theta_{d,k}, \dot{\theta}_{d,k}$ |
| 4 | 计算误差 | $e_k = \theta_{d,k} - \theta_k$,$\dot{e}_k = \dot{\theta}_{d,k} - \dot{\theta}_k$ |
| 5 | 计算滑模面 | $s_k = \dot{e}_k + \Lambda e_k$ |
| 6 | 计算参考速度 | $v_k = \dot{\theta}_{d,k} + \Lambda e_k$ |
| 7 | 更新积分子 | $\phi_k = \phi_{k-1} + s_k \Delta t$,$\phi_k = \text{clamp}(\phi_k, -\epsilon, \epsilon)$ |
| 8 | 更新观测器 | $\dot{\hat{z}}_{0,k} = \dot{\theta}_k - \Psi_k \hat{z}_{0,k-1} + s_k$,$\hat{z}_{0,k} = \hat{z}_{0,k-1} + \dot{\hat{z}}_{0,k}\Delta t$ $\dot{\hat{z}}_{1,k} = \dot{\theta}_k - \Psi_k \hat{z}_{1,k-1} - s_k$,$\hat{z}_{1,k} = \hat{z}_{1,k-1} + \dot{\hat{z}}_{1,k}\Delta t$ |
| 9 | 更新自适应参数 | $\hat{\Phi}_{0,k} = \hat{\Phi}_{0,k-1} - \Gamma_0 \hat{z}_{0,k} s_k \Delta t$ $\hat{\Phi}_{1,k} = \hat{\Phi}_{1,k-1} + \Gamma_1 \Psi_k \hat{z}_{1,k} s_k \Delta t$ $\hat{\Phi}_{2,k} = \hat{\Phi}_{2,k-1} - \Gamma_2 v_k s_k \Delta t$ |
| 10 | 计算摩擦力 | $\hat{\tau}_{f,k} = \hat{\Phi}_{0,k} \hat{z}_{0,k} - \hat{\Phi}_{1,k} \Psi_k \hat{z}_{1,k} + \hat{\Phi}_{2,k} v_k$ |
| 11 | 计算控制力矩 | $u_k = J\dot{v}_k + K_P e_k + K_D \dot{e}_k + K_I \phi_k + \hat{\tau}_{f,k}$ |
| 12 | 输出力矩 | 发送 $u_k$ 到驱动器 |
12. 多维推广(论文公式 46)
论文公式 (46) 给出了多关节情形的完整自适应律(矩阵形式):
其中:
- $\gamma_\theta$ 为电机惯量参数
- $\gamma_0, \gamma_1, \gamma_2$ 为摩擦参数
- $Y_0, Y_1, Y_2$ 为回归矩阵
- $A, K$ 为控制器增益矩阵
- $\hat{s}_\theta$ 为滑模面向量
这与本推导的标量形式 (27) 在本质上完全一致。
13. 设计参数选择指南
| 参数 | 作用 | 建议值/选取原则 |
|---|---|---|
| $\Lambda$ | 误差收敛速度 | 取 $10 \sim 30$ rad/s,越大收敛越快,但噪声放大 |
| $K_D$ | 阻尼反馈 | 需满足 $K_D > \Phi_2$(大于最大粘滞系数),通常取 $2\sqrt{K_P J}$ |
| $K_P$ | 刚度反馈 | 根据期望闭环带宽选择 |
| $K_I$ | 积分增益 | 取 $K_D/10 \sim K_D/5$,过大引起振荡 |
| $\epsilon$ | 积分器限幅阈值 | 取 $0.1 \sim 1.0$,需保证大于稳态误差量级 |
| $\Gamma_0, \Gamma_1, \Gamma_2$ | 自适应学习率 | 取 $1 \sim 10$,过大放大噪声,过小响应缓慢 |
14. 总结
本文档从最基础的电机动力学方程出发,系统推导了基于 LuGre 模型的 Slotine-Li 摩擦观测器:
- 状态观测器 (16) 实时估计不可测的 LuGre 内部状态 $z$
- 自适应律 (27) 在线更新摩擦参数 $\Phi$
- 控制律 (14) 将摩擦力估计值作为前馈补偿
- Lyapunov 方法证明了整个闭环系统的渐近稳定性
核心优势:
- 同时处理摩擦的动态特性(通过 $z$)和参数不确定性(通过 $\Phi$)
- 无需测量加速度
- 全局渐近稳定
- 适用于高精度机器人关节控制
附录 A:符号对照表(论文公式映射)
| 本文符号 | 2018 论文公式 | 说明 |
|---|---|---|
| $s$ | $\hat{s}_\theta$ | 滑模面(电机侧复合误差) |
| $v$ | $v_\theta$ 或 $\hat{v}_\theta$ | 参考速度 |
| $\Phi_0, \Phi_1, \Phi_2$ | $\gamma_0, \gamma_1, \gamma_2$ 对应的参数 | 摩擦参数 |
| $\Gamma_0, \Gamma_1, \Gamma_2$ | $\Gamma_0, \Gamma_1, \Gamma_2$ | 自适应学习率 |
| $Y$ | $Y_0, Y_1, Y_2$ | 回归矩阵 |
