驱动器是机器人系统中将控制指令转换为物理运动的关键组件。在物理仿真中,准确建模驱动器特性对于实现真实的机器人行为至关重要。本章深入探讨各种驱动器模型,从理想的力矩控制到复杂的非线性传动系统,重点关注这些模型如何影响强化学习策略的训练和部署。我们将分析驱动器的动态响应、传动机构的非理想特性,以及控制延迟对系统稳定性的影响,为设计高保真度的机器人仿真环境提供理论基础。
在最简单的情况下,我们假设驱动器能够瞬时产生所需的力矩或达到目标位置。对于力矩控制模式,关节力矩直接等于控制输入:
\[\tau = \tau_{cmd}\]而位置控制模式通常通过PD控制器实现:
\[\tau = K_p(q_{des} - q) + K_d(\dot{q}_{des} - \dot{q})\]其中$K_p$和$K_d$分别是位置和速度增益,$q_{des}$是目标位置,$q$是当前位置。
考虑单自由度系统的动力学方程:
\[M\ddot{q} + C\dot{q} + G = \tau\]其中$M$是惯性,$C$是阻尼系数,$G$是重力项。将PD控制律代入,得到闭环系统:
\[M\ddot{q} + (C + K_d)\dot{q} + K_p q = K_p q_{des} + K_d \dot{q}_{des} + G\]系统的特征方程为:
\[Ms^2 + (C + K_d)s + K_p = 0\]稳定性条件要求所有特征根具有负实部,这要求:
临界阻尼条件为:
\[K_d = 2\sqrt{MK_p} - C\]这决定了系统响应是过阻尼、临界阻尼还是欠阻尼。
实际驱动器具有物理限制。力矩饱和可以建模为:
\[\tau = \text{sat}(\tau_{cmd}, \tau_{max}) = \begin{cases} \tau_{max} & \text{if } \tau_{cmd} > \tau_{max} \\ \tau_{cmd} & \text{if } |\tau_{cmd}| \leq \tau_{max} \\ -\tau_{max} & \text{if } \tau_{cmd} < -\tau_{max} \end{cases}\]速度限制通常由电机的反电动势决定:
\[\tau_{available} = \tau_{stall} \cdot \max\left(0, 1 - \frac{|\dot{q}|}{\dot{q}_{max}}\right)\]其中$\tau_{stall}$是堵转力矩,$\dot{q}_{max}$是空载最大速度。
阻抗控制通过调节机械阻抗实现柔顺控制:
\[\tau = K_p(q_{des} - q) + K_d(\dot{q}_{des} - \dot{q}) + M_{des}\ddot{q}_{des}\]目标阻抗可以表示为:
\[M_{des}(\ddot{q} - \ddot{q}_{des}) + D_{des}(\dot{q} - \dot{q}_{des}) + K_{des}(q - q_{des}) = F_{ext}\]这允许机器人在与环境交互时表现出期望的动态特性。
串联弹性驱动器在电机和负载之间引入弹性元件,提供力感知和冲击吸收能力。双质量-弹簧系统的动力学方程为:
\[\begin{aligned} I_m \ddot{\theta}_m &= \tau_m - k_s(\theta_m - \theta_l/N) - b_s(\dot{\theta}_m - \dot{\theta}_l/N) \\ I_l \ddot{\theta}_l &= k_s N(\theta_m - \theta_l/N) + b_s N(\dot{\theta}_m - \dot{\theta}_l/N) - \tau_{ext} \end{aligned}\]其中:
传递函数分析揭示了系统的谐振频率:
\[\omega_n = \sqrt{\frac{k_s}{I_l} \left(1 + \frac{I_l}{N^2 I_m}\right)}\]齿轮传动改变力矩和速度的关系:
\[\begin{aligned} \tau_{out} &= N \cdot \eta \cdot \tau_{in} \\ \omega_{out} &= \frac{\omega_{in}}{N} \end{aligned}\]其中$\eta$是传动效率。反射惯量为:
\[I_{reflected} = N^2 I_{motor}\]这种惯量放大效应在高传动比系统中尤为显著,可能导致:
弹性元件的刚度选择需要权衡多个因素:
软弹簧(低刚度):
硬弹簧(高刚度):
最优刚度可通过以下准则确定:
\[k_{opt} = \frac{4\pi^2 I_l f_{desired}^2}{1 + I_l/(N^2 I_m)}\]其中$f_{desired}$是期望的控制带宽。
传动系统的能量损失包括:
齿轮啮合损失: \(P_{gear} = (1 - \eta_{gear}) \cdot |\tau \cdot \omega|\)
轴承摩擦: \(P_{bearing} = \mu_{bearing} \cdot F_{radial} \cdot \omega \cdot r_{bearing}\)
密封摩擦: \(P_{seal} = \tau_{seal} \cdot |\omega|\)
总效率模型: \(\eta_{total} = \eta_{gear} \cdot \eta_{bearing} \cdot \eta_{seal} \cdot \eta_{motor}\)
经典库仑摩擦模型:
\[\tau_f = \begin{cases} \tau_{applied} & \text{if } |\tau_{applied}| < \tau_{static} \text{ and } \dot{q} = 0 \\ \tau_{coulomb} \cdot \text{sgn}(\dot{q}) & \text{if } \dot{q} \neq 0 \end{cases}\]更精确的LuGre摩擦模型引入内部状态$z$:
\[\begin{aligned} \dot{z} &= \dot{q} - \frac{|\dot{q}|}{g(\dot{q})} z \\ \tau_f &= \sigma_0 z + \sigma_1 \dot{z} + \sigma_2 \dot{q} \end{aligned}\]其中: \(g(\dot{q}) = \tau_c + (\tau_s - \tau_c) e^{-|\dot{q}/v_s|^2}\)
这个模型捕获了预滑动、粘滑转换和Stribeck效应。
Stribeck曲线描述了摩擦力随速度的变化:
\[\tau_f(\dot{q}) = \left[\tau_c + (\tau_s - \tau_c) e^{-|\dot{q}/v_s|^\delta}\right] \text{sgn}(\dot{q}) + b_v \dot{q}\]参数含义:
$b_v$:粘性摩擦系数
+
| * τ_f | * *
| * *
| * ****
| * ****
|* **** ----+-----------------------> v
0
反向间隙(backlash)在齿轮传动中普遍存在。死区模型:
\[\theta_{out} = \begin{cases} \theta_{in} - \alpha/2 & \text{if } \theta_{in} > \theta_{last} + \alpha/2 \\ \theta_{last} & \text{if } |\theta_{in} - \theta_{last}| \leq \alpha/2 \\ \theta_{in} + \alpha/2 & \text{if } \theta_{in} < \theta_{last} - \alpha/2 \end{cases}\]其中$\alpha$是间隙角度,$\theta_{last}$是上次接触时的输出角度。
更复杂的模型考虑接触刚度:
\[\tau_{contact} = \begin{cases} k_{contact}(\theta_{in} - \theta_{out} - \alpha/2) & \text{if } \theta_{in} - \theta_{out} > \alpha/2 \\ 0 & \text{if } |\theta_{in} - \theta_{out}| \leq \alpha/2 \\ k_{contact}(\theta_{in} - \theta_{out} + \alpha/2) & \text{if } \theta_{in} - \theta_{out} < -\alpha/2 \end{cases}\]机械系统中的迟滞可用Preisach模型描述。对于简化的迟滞算子:
\[y(t) = \int_{-\infty}^{\infty} \int_{-\infty}^{\infty} \mu(\alpha, \beta) \gamma_{\alpha\beta}[u](t) \, d\alpha \, d\beta\]其中$\gamma_{\alpha\beta}$是基本迟滞算子,$\mu(\alpha, \beta)$是权重分布。
实用的Bouc-Wen模型:
\[\begin{aligned} \tau &= \alpha k_e \theta + (1-\alpha) k_e z \\ \dot{z} &= \dot{\theta}[A - (\beta \text{sgn}(\dot{\theta}z) + \gamma)|z|^n] \end{aligned}\]参数$A$, $\beta$, $\gamma$, $n$控制迟滞环的形状和大小。
控制系统中的延迟来自多个环节:
总延迟: \(\tau_{total} = \tau_{sensor} + \tau_{comm} + \tau_{comp} + \tau_{driver}\)
系统带宽由开环传递函数的交叉频率决定。对于典型的位置控制系统:
\[G(s) = \frac{K_p(1 + T_d s)}{s^2(Js + B)} e^{-\tau s}\]其中延迟项$e^{-\tau s}$显著影响相位裕度。使用Padé近似:
\[e^{-\tau s} \approx \frac{1 - \tau s/2}{1 + \tau s/2}\]相位裕度随频率下降: \(\phi_{margin} = 180° - \angle G(j\omega_{gc})\)
其中$\omega_{gc}$是增益交叉频率。延迟引入的相位滞后: \(\phi_{delay} = -\omega_{gc} \tau \cdot \frac{180°}{\pi}\)
稳定性要求$\phi_{margin} > 30°$,这限制了可达到的带宽: \(\omega_{gc,max} < \frac{\phi_{margin,min} \cdot \pi}{180° \cdot \tau}\)
Smith预估器用于补偿已知延迟:
控制器设计基于无延迟模型$G_p(s)$,实际系统为$G_p(s)e^{-\tau s}$。Smith预估器结构:
\[C_{smith}(s) = \frac{C(s)}{1 + C(s)G_p(s)(1 - e^{-\tau s})}\]前馈补偿预测未来状态:
\[q_{pred}(t + \tau) = q(t) + \tau \dot{q}(t) + \frac{\tau^2}{2}\ddot{q}(t)\]使用卡尔曼滤波器估计状态导数:
\[\begin{aligned} \mathbf{x}_{k+1} &= \mathbf{A}\mathbf{x}_k + \mathbf{B}u_k + \mathbf{w}_k \\ \mathbf{y}_k &= \mathbf{C}\mathbf{x}_k + \mathbf{v}_k \end{aligned}\]其中状态向量$\mathbf{x} = [q, \dot{q}, \ddot{q}]^T$。
自适应延迟估计:
使用相关分析估计变化的延迟:
\[R_{xy}(\tau) = \mathbb{E}[x(t)y(t-\tau)]\]延迟估计值: \(\hat{\tau} = \arg\max_\tau R_{xy}(\tau)\)
离散化引入额外的相位滞后。对于采样周期$T_s$,零阶保持器的传递函数:
\[G_{ZOH}(s) = \frac{1 - e^{-T_s s}}{s}\]频率响应显示高频衰减:
\[|G_{ZOH}(j\omega)| = T_s \left|\frac{\sin(\omega T_s/2)}{\omega T_s/2}\right|\]Nyquist-Shannon定理要求: \(f_s > 2 f_{BW}\)
但实际控制系统需要更高的采样率: \(f_s > 10-20 \times f_{BW}\)
采样引起的最大延迟为$T_s/2$,这进一步限制了系统带宽。
离散PID控制器的稳定域分析:
\[G_d(z) = K_p + K_i \frac{T_s}{z-1} + K_d \frac{z-1}{T_s z}\]稳定性条件通过Jury判据确定,通常比连续系统更严格。
在强化学习中,驱动器模型的保真度直接影响策略的可迁移性:
关键参数的随机化范围:
驱动器参数随机化:
- 力矩限制:±20% 标称值
- 控制延迟:1-10 ms 均匀分布
- 摩擦系数:±30% 变化
- 齿轮间隙:0-2° 随机
- PD增益:±15% 扰动
训练策略建议:
Jerry Pratt和Gill Pratt在MIT腿部实验室开发了串联弹性驱动器(SEA),这一创新从根本上改变了机器人驱动器设计理念。
传统刚性驱动器追求高刚度和精确位置控制,但在力控制和安全交互方面存在根本限制:
Pratt兄弟反其道而行之,故意引入弹性:
SEA的核心洞察: \(F = k \cdot \Delta x\)
简单的胡克定律提供了:
SEA技术广泛应用于:
Pratt的工作启发了整个”柔顺驱动”研究领域,包括变刚度驱动器(VSA)和准直接驱动(QDD)等后续发展。
VSA允许独立控制位置和刚度,提供额外的控制自由度:
\[\begin{aligned} \tau &= k(\alpha)(q_m - q_l) \\ k(\alpha) &= k_0 + k_1 f(\alpha) \end{aligned}\]其中$\alpha$是刚度调节参数。
拮抗式VSA: 两个驱动器通过非线性弹簧耦合: \(\begin{aligned} \tau &= k_1(\theta_1 - q) - k_2(\theta_2 - q) \\ K_{eff} &= k_1 + k_2 \end{aligned}\)
机械可调刚度: 通过改变弹簧预载或有效长度: \(k_{eff} = \frac{dF}{dx} = k_0 \left(1 + \frac{x_{pre}}{L_{eff}(\alpha)}\right)\)
广义阻抗控制律: \(\tau = \mathbf{J}^T[\mathbf{K}_d(\mathbf{x}_d - \mathbf{x}) + \mathbf{D}_d(\dot{\mathbf{x}}_d - \dot{\mathbf{x}}) - \mathbf{M}_d\ddot{\mathbf{x}}]\)
其中$\mathbf{K}_d$, $\mathbf{D}_d$, $\mathbf{M}_d$是笛卡尔空间的期望刚度、阻尼和惯量矩阵。
从能量角度分析VSA:
势能函数: \(U(q, \alpha) = \frac{1}{2}k(\alpha)(q_m - q_l)^2\)
功率流: \(P = \tau \dot{q} + \tau_\alpha \dot{\alpha}\)
其中第二项是调节刚度所需的功率。
对于周期性运动,最优刚度满足: \(k_{opt} = m\omega^2\)
这使系统处于谐振状态,最小化能量消耗。
对于冲击任务,刚度调节策略:
结合强化学习自适应调节阻抗参数:
\[\begin{aligned} \mathbf{K}_d &= \mathbf{K}_0 + \pi_K(\mathbf{s}) \\ \mathbf{D}_d &= \mathbf{D}_0 + \pi_D(\mathbf{s}) \end{aligned}\]其中$\pi_K$, $\pi_D$是学习得到的策略网络。
本章深入探讨了驱动器与传动系统的建模,这是实现高保真机器人仿真的关键环节。主要内容包括:
| LuGre摩擦模型:$\dot{z} = \dot{q} - \frac{ | \dot{q} | }{g(\dot{q})} z$ |
习题8.1 PD控制器稳定性 给定单关节系统:$M = 1$ kg·m², $C = 0.1$ N·m·s/rad,设计PD控制器使系统具有临界阻尼响应,自然频率$\omega_n = 10$ rad/s。
习题8.2 SEA设计 设计一个SEA系统,负载惯量$I_l = 0.5$ kg·m²,电机惯量$I_m = 0.001$ kg·m²,传动比$N = 50$,要求控制带宽至少5 Hz。计算所需的弹簧刚度。
习题8.3 摩擦补偿 测得某关节的Stribeck参数:$\tau_s = 2$ N·m,$\tau_c = 1$ N·m,$v_s = 0.1$ rad/s,$b_v = 0.5$ N·m·s/rad。计算速度为0.05 rad/s时的摩擦力矩。
习题8.4 延迟影响分析 系统开环传递函数$G(s) = \frac{100}{s(s+10)}$,延迟$\tau = 10$ ms。计算延迟对相位裕度的影响(在增益交叉频率处)。
习题8.5 多模态控制切换 设计一个控制器,在自由空间使用位置控制(高刚度),接触时切换到力控制(低刚度)。推导平滑切换函数避免不连续。
习题8.6 VSA能量优化 推导变刚度驱动器在周期运动中的最优刚度轨迹,使能量消耗最小。考虑正弦轨迹$q(t) = A\sin(\omega t)$。
习题8.7 反向间隙补偿 设计一个前馈补偿器,预测并补偿齿轮间隙引起的位置误差。考虑间隙角度$\alpha = 1°$,如何在轨迹规划中提前补偿?
习题8.8 分布式延迟建模 考虑多级控制系统,每级有不同延迟:视觉处理(30ms) → 轨迹规划(10ms) → 底层控制(5ms)。如何设计预测器补偿级联延迟?
错误:盲目增加增益追求快速响应 后果:高频振荡、电机过热、齿轮箱损坏 正确做法:使用Bode图分析,确保足够相位裕度(>45°)
错误:使用与连续系统相同的控制增益 后果:离散化导致不稳定,特别是高增益时 正确做法:根据采样率调整增益,使用离散控制器设计
错误:选择过软的弹簧追求力控制精度 后果:位置控制带宽太低,无法跟踪快速轨迹 正确做法:根据任务需求权衡,考虑可变刚度方案
错误:仅使用库仑摩擦,忽略Stribeck效应 后果:低速爬行、定位精度差 正确做法:至少包含静摩擦和速度依赖项
错误:过度预测导致系统领先实际状态 后果:过冲、振荡、甚至不稳定 正确做法:保守估计延迟,包含鲁棒性裕度
错误:在高速运动中补偿间隙 后果:冲击、振动、机械磨损 正确做法:在低速或静止时进行间隙补偿
错误:持续使用峰值力矩 后果:电机过热、永磁体退磁 正确做法:建模热动态,实施热保护
错误:高微分增益放大编码器噪声 后果:控制信号抖动、电机发热 正确做法:低通滤波速度信号,使用状态观测器