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 摩擦观测器:

  1. 状态观测器 (16) 实时估计不可测的 LuGre 内部状态 $z$
  2. 自适应律 (27) 在线更新摩擦参数 $\Phi$
  3. 控制律 (14) 将摩擦力估计值作为前馈补偿
  4. 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$ 回归矩阵