4. 康复机器人动力学建模

运动学回答“机构在哪里、以多快速度运动”,动力学则回答“要产生这样的运动,各关节需要输出多大力矩”。对康复机器人而言,动力学模型直接决定三件事:重力补偿是否让患者感觉“轻”;助力/阻力控制是否平滑;以及能否从关节力矩中反推出患者主动贡献了多少力。本节围绕两条建模路线、人机耦合项、重力补偿和患者负载估计展开。

一、两种建模路线:拉格朗日与牛顿-欧拉

康复机器人常用的动力学方程可写成标准形式:

M(q)q̈ + C(q,q̇)q̇ + G(q) + F(q̇) = τ_act + τ_h

其中 q 为关节角向量,M(q) 为惯性矩阵,C(q,q̇)q̇ 为科氏力与离心力项,G(q) 为重力项,F(q̇) 为摩擦项,τ_act 为驱动器输出力矩,τ_h 为患者施加在末端或关节上的交互力矩。约定:关节角、力矩均以驱动器正方向为正,重力项 G(q) 表示“为保持静止所需施加的力矩”,因此重力补偿即在控制中前馈 −G(q)。

拉格朗日方法从能量出发,先写动能 T 与势能 V,令 L=T−V,再代入 d/dt(∂L/∂q̇)−∂L/∂q=τ。它的优点是推导过程系统、不易漏项,适合串联多关节、需要解析表达式的场合;缺点是求导繁琐,对含闭链或复杂摩擦的机构不直观。

牛顿-欧拉方法则从每个连杆的力/力矩平衡出发,先由基座向末端做一次向外递推求各连杆速度和加速度,再由末端向基座做一次向内递推求关节力矩。它计算效率高,天然适合编程实现,也便于把末端交互力 τ_h 直接折算到各关节。工程上常见做法是:用拉格朗日推导验证符号正确性,用牛顿-欧拉递推做实时计算。

二、人机耦合动力学:把患者“接进”方程

康复机器人不是独立机械臂,患者肢体通过绑带、手柄或外骨骼关节与机器人相连。耦合方式主要有两类:末端耦合(患者手/脚握持末端,力通过雅可比 J 映射为关节力矩 τ_h=JᵀF_h)和外骨骼耦合(患者肢体与机器人关节同轴,直接产生关节力矩)。

若把患者肢体视为附加连杆,则系统总动力学变为:

M_r(q)q̈ + C_r(q,q̇)q̇ + G_r(q) + M_p(q)q̈ + G_p(q) = τ_act + τ_p

其中下标 r 为机器人、p 为患者肢体,τ_p 为患者主动力矩。可见患者肢体的惯性和重力会叠加到机器人上,若控制器仍按空载模型补偿,就会出现“患者越放松、机器人越沉”的错觉。因此人机耦合建模的核心,是把 M_p、G_p 和 τ_p 从总力矩中分离出来。

人机耦合动力学信号链与力矩分解 康复机器人本体 M_r(q), C_r(q,q̇), G_r(q) 摩擦 F(q̇) 患者肢体 M_p(q), G_p(q) 主动力矩 τ_p 人机耦合界面 末端:τ_h = Jᵀ F_h 外骨骼:同轴关节力矩 关节总力矩 τ_meas τ_meas = τ_act + τ_h − G_r − G_p 重力补偿量 τ_grav = G_r(q)+G_p(q) 前馈 −τ_grav 抵消自重 患者主动力矩 τ_p = τ_meas − τ_act + 重力/惯性补偿项 负载估计输出 等效质量 m̂、助力比 用于自适应助力

三、重力补偿:从“算得准”到“补得稳”

重力补偿的目标是让患者在任意姿态下都只感受到自己的肢体重量,而不额外承受机器人自重。实现上分三步:

  1. 建立重力项模型:对每个连杆,G(q)=Σ mᵢ gᵀ (∂p_ci/∂q),p_ci 为连杆质心位置。对二连杆上肢外骨骼,若连杆质量 m₁=1.8 kg、m₂=1.2 kg,质心距关节 l_c1=0.18 m、l_c2=0.15 m,则 G(q) 随肩、肘角呈正弦组合变化。
  2. 参数辨识:质量、质心、惯量往往未知,可用最小二乘辨识。让机器人以低速跟踪一组激励轨迹,采集 q、q̇、q̈ 与 τ_meas,构造回归矩阵 Y(q,q̇,q̈)θ=τ,解 θ=(YᵀY)⁻¹Yᵀτ 得到惯性参数。示例中若采样 200 点、激励频率 0.1–0.5 Hz,通常可将重力项残差控制在满量程的 3%–5%。
  3. 前馈补偿:控制律取 τ_act = τ_ctrl + Ĝ(q),其中 Ĝ 为估计重力项。若补偿准确,患者松手时关节应基本静止;若缓慢下坠,说明补偿偏小;若向上漂移,说明补偿偏大。
判断重力补偿是否到位,可做“松手漂移测试”:将关节置于水平、45°、垂直三个姿态,各保持 3 s,记录漂移角速度。若 |q̇| < 0.5 °/s,可认为补偿基本合格;否则需重新辨识或检查摩擦项。

四、患者肢体负载估计:从力矩反推主动贡献

患者负载估计的实质是“把机器人已知输出从总力矩中减掉,剩下的就是患者”。常用方法有两种:

基于动力学模型的方法:由 τ_p = τ_meas − τ_act + Ĝ(q) + M̂(q)q̈ + Ĉ(q,q̇)q̇,逐项计算后得到患者力矩。该方法物理意义清晰,但对参数误差和噪声敏感,需对 q̈ 做低通滤波(截止频率约 5–10 Hz)。

基于扰动观测器的方法:把患者力矩视为外部扰动,构造观测器:

d̂ = L(s)(τ_meas − τ_model)
τ̂_p = d̂ / (1 + L(s))

其中 L(s) 为观测器带宽。带宽越高响应越快,但噪声放大越明显;康复场景常取 10–20 rad/s。估计出的 τ_p 可用于计算助力比 α=τ_act/τ_p,当 α 偏大说明机器人承担过多,应降低助力;当 τ_p 接近零且患者无法完成动作,则应提高助力。

注意:患者主动力矩与痉挛、被动阻力在力矩波形上可能相似。若 τ_p 出现高频尖峰且伴随关节速度突变,应优先判断为痉挛而非主动发力,此时不宜继续加大助力,而应触发柔顺停止。

五、工程实现要点

实际部署时,建议按以下顺序推进:先完成空载参数辨识并验证重力补偿;再让健康受试者穿戴,辨识“机器人+肢体”的等效参数;最后接入扰动观测器估计 τ_p。采样率建议不低于 1 kHz,力矩信号与位置信号需时间同步;摩擦项可用库仑+粘滞模型 F(q̇)=f_c·sgn(q̇)+b·q̇ 单独辨识,避免其被误算进患者力矩。只有把 M、C、G、F 四项都处理清楚,患者负载估计才具备可用于闭环助力的可信度。