![]()

AnyBody 应用案例
基于虚拟肌电信号的肌肉活动量反馈式主动助力装的置建模
概要
在本案例中,我们在肌肉骨骼模型上引入虚拟肌电信号(以下简称虚拟 EMG),提出一种根据肌肉活动量对助力大小进行控制的主动助力装置建模方法。
具体而言,本研究旨在通过在模型中监测目标肌肉的肌肉活动量,并根据其数值调整助力装置的辅助力,以降低肌肉高张力状态下人体所承受的负担。例如,设想采用如下控制规则:当肌肉活动量超过设定阈值时,助力装置启动;并随着肌肉出力的增大,使辅助力相应增加。
※该分析方法的应用包括:
【为了将目标人体部位所承受的负荷(例如特定肌肉产生的肌肉活动量、肌肉张力、特定关节的关节反力与压迫力)控制在某一危险值(阈值)以内,应当设计多大的辅助力、以及何种力的变化曲线? 】
针对这一疑问,本研究将给出明确的数值指标。
<逆动力学分析无法实现的内容>
一般而言,在 AnyBody 肌肉骨骼模型的逆动力学分析(或是一般的逆动力学分析)中,肌肉力
F
m
和 肌肉活动量 Activity 是作为分析结果计算出来的量。
因此,无法直接将它们用于定义助力装置的输出力
F
dev
,即无法定义:
Fdev = function (Fm) 或 Fdev = function (Activity)
原因在于:在逆动力学分析中,助力装置的力
F
dev
必须事先作为输入条件确定下来。
设备辅助力的设定方法
【方法1】另一方面,对于基于位置 pos、肌肉收缩速度 vel、关节角度 deg、肌肉长度 len…… 等在运动学约束阶段所确定的物理量来设定辅助力的方式:
Fdev =function (pos, deg, len, vel)
此类设定不会产生解析层面的问题。这是因为这些变量会在逆动力学解析之前的运动学解析阶段被唯一确定。下图展示的是辅助扭矩(Trq)的设定案例。
作为引入依赖肌肉发挥力的辅助力的现有方法,可考虑以下几种。
【方法2】在不施加助力的条件下执行逆动力学分析,获取目标肌肉的肌肉活动量时间历程 activity_table(或肌肉发力时间历程 Fm (t))。之后,以该时间历程为输入,通过
Fdev(t) =function ( activity_table(t) )
的形式进行定义。但该方法需要预先获取无助力条件下的分析结果,因此需执行两次逆动力学分析。
【方法3】
可以考虑采用在离散时间步 n−1 保存肌肉活动量,并在下一个时间步 n 中将其反映为助力的方法。
Fdev(n) = function ( activity(n−1) )
然而,在这种情况下,助力的施加与解除会伴随时间延迟交替出现,表现出肌肉出力在短时间内反复增减的振动行为。
因此,对所得到的肌肉出力结果进行解读时,需要采用时间平均等额外处理。
分析案例 ⇒
主动型与被动型助力设备的区别
无论哪种方法,其分析均基于单向因果关系:
已知的肌肉发力・肌肉活动量 → 反映到助力力 → 肌肉发力降低的结果,
并未考虑肌肉发力与助力力之间的相互依存关系,亦即反馈结构。
为了在逆动力学分析中实现这类反馈,需要构建包含迭代计算的分析框架。
【基于 FDK 迭代计算的肌肉活动量反馈方法】
在本案例中,将应用 AnyBody 软件中搭载的力相关运动学(FDK, Force Dependent Kinematics)功能,对以肌肉活动量作为反馈输入的主动助力装置进行建模。
FDK 是一种将通常视为刚性约束的关节或约束点,允许其产生微小平动与转动位移,并基于力的平衡条件求解运动学自由度的方法。其基本原理如下。
● 通过逆动力学分析,计算刚性约束条件下的约束反力
● 将约束条件替换为具有弹簧刚度等参数的被动元件
● 通过迭代搜索位移量,直到约束反力与被动元件反力达到平衡
在本案例中,我们利用这一原理构建了虚拟肌电(Virtual EMG),并将其监测值应用于助力装置的输出控制。具体如下。
● 在模型中配置由极弱驱动元件(人工肌肉)、转换器(可动段)及被动弹簧元件构成的拾取装置。
● 通过 AnyMuscleActivityConstraint 类来约束并同步目标肌肉的肌肉活动量,以及拾取装置(pickup device)内置执行器(actuator)的活动量。与可动节段(movable segment)对应的约束点采用 FDK 配置,且会根据执行器输出力的大小产生位移,直至与被动弹簧元件的反作用力达到平衡。
● 将此时可动节段的位移量定义为 Pos_dev,并基于该值将助力装置的输出力表示为 Fdev = function (Pos_dev)
因此,Pos_dev 最终是依赖于肌肉活动量而确定的量,通过将基于 FDK 的转换器(可动段)位移作为中间变量,得以在输出力(肌肉活动量)与辅助力之间构建反馈关系。
下面给出应用本方法的分析实例。
【分析案例】
在减轻腰部负担的外骨骼助力装置中,对搬运24 kg 重物时作为主要活动肌肉的竖脊肌中活动量较高的肌肉进行监测,并将其肌肉活动量反馈给装置的伸展辅助扭矩。
在肌肉活动量未超过阈值 0.6 时,装置不启动;一旦超过 0.6,则根据超出阈值的大小相应增大辅助力。
在 AnyBody 中,由于竖脊肌跨越多个起点与止点,因此左右两侧合计被建模为 58 条肌肉单元。 在本例中,无辅助工况下的分析结果显示:跨越胸椎 T11 至骶骨区域的竖脊肌单元出现了较高的肌肉活动。 因此将该肌肉作为反馈控制中的监测对象。
分析结果如下所示。对于目标肌肉,其肌肉活动量基本达到预期值(0.6),同时其他脊柱竖脊肌的活动也整体下降。右图为此时助力装置提供的伸展辅助力矩(单侧)。
本次仅提取了肌肉活动量最高的一块肌肉,但即便对多块目标肌肉,也可通过取其平均值等方式,实现与执行器的同步控制。




