论文部分内容阅读
研究目的:步态分析是生物力学研究中的一个重要研究主题,研究层次也随着研究方法的进步而不断深入。随着骨骼肌肉建模技术的日趋成熟,步态分析也从最初的关节力矩分析深入到了肌肉力以及肌肉激活分析的层面。OpenSim是斯坦福大学开发的一个开源的生物力学平台,提供了较为完整的骨骼肌肉模型库,以及运动学和动力学分析的工具。纵观利用OpenSim对人体动作进行生物力学分析并深入到肌肉层面的研究,学者普遍采用静态优化算法(Static Optimization,SO)和计算肌肉控制算法(Computed MuscleControl,CMC)对肌肉力进行求解,但并未对算法选择的依据进行明确说明。本文旨在对比两种算法求解肌肉力的差异,通过不同速度下跑步的步态进行对比分析,为日后学者针对不同的研究动作选择肌肉力求解算法提供科学依据。研究方法:本研究在斯坦福大学公开的数据集上进行实验,该数据集包括10位受试者(年龄29±5岁,身高1.77±0.04 m,体重70.9±7.0 kg)分别以速度2m/s、3m/s、4m/s和5m/s跑步时的运动学数据(光学标记点位置)、动力学数据(地面反作用力)和肌电数据(下肢表面肌电)。本研究采用了上肢简化的全身骨骼肌肉模型,包括12个身体节段、92块肌肉以及29个自由度,首先利用OpenSim的Scale工具对该通用模型进行尺度变换,分别获得与10位受试者身体条件相符的骨骼肌肉模型,然后计算每位受试者不同跑步速度下的一个步态周期数据,再分别利用SO和CMC算法对求解下肢肌肉的激活系数和肌肉力,并对10位受试者在一个步态周期的结果进行平均,最后结合两种算法的原理分析求解结果的差异以及产生的原因。其中,SO算法的原理是首先利用反向动力学算法得到关节转矩,并根据关节转矩为围绕该关节的肌肉所产生的力矩之和,构建出肌肉激活、肌肉力及力臂与关节转矩之间的约束方程,再根据人类倾向于以最省力的方式完成某一动作的假设,构建肌肉激活的n阶指数和,作为待优化的目标函数,最终求得每一时刻状态下的肌肉激活和肌肉力。CMC算法本质上也是静态优化算法,只不过结合了比例微分控制,用于计算期望的关节角加速度,其优化目标函数在肌肉控制平方和的基础上,增加了期望关节角加速度与实际关节角加速度的差值平方和约束,最后利用优化得到的肌肉控制驱动模型进行正向动力学模拟,从而获得不同时刻的肌肉力。此外,在优化过程中,为了避免肌肉力量不足导致的优化失败,该算法会在各关节增加一个保留的驱动因子。研究结果:在一个步态周期中,主要发力肌群包括比目鱼肌、腓肠肌内侧肌、股外侧肌、股内侧肌、臀大肌和臀中肌6块肌肉,随着速度的提高,腓肠肌外侧肌、胫骨前肌、股直肌和股二头肌长头4块肌肉也逐渐参与进来,并且主要发力肌群产生的肌肉力也逐渐增加。对比两种算法求解的肌肉力结果可以发现,除了胫骨前肌和股直肌外,两种算法的求解结果具有相似的变化曲线,但SO算法求解的肌肉力在峰值处更大,其余部分则略小。在5m/s速度下的步态周期中,SO算法和CMC算法计算主要发力肌群发力的差值平均分别为-242.35 N(-54.28%)、-44.72 N(-26.72%)、17.57 N(-21.04%)、-58.95N(-40.14%)、-130.75N(-51.64%)和-96.96N(-18.21%),而峰值差值(百分比)依次为376.54 N(6.85%)、547.92 N(46.08%)、646.76 N(37.5%)、292.63 N(36.31%)、93.52 N(5.77%)和-57.91 N(-2.06%)。两种算法计算肌肉激活与肌肉力的变化趋势类似,与表面肌电的变化趋势也类似,但有一定延迟。此外,从肌肉激活曲线可以看出,主要发力肌群中的臀大肌和臀中肌并没有被完全激活,特别是臀大肌,即便在5m/s的速度下其最大激活系数都没有超过0.5,而腓肠肌外侧随着跑步速度的提高,最大激活系数趋近于1。两种算法求取的肌肉激活对比,也与肌肉力对比类似,主要发力肌群中除臀大肌外,SO算法计算的结果在峰值处更大,其余部分略小,并且峰值位置稍有延迟。研究结论:通过以上对比可以发现,两种算法在求解肌肉力和肌肉激活时所得到的数据变化趋势是相似的,因此在动作分析时,如果研究重点在单块肌肉发力的时机以及不同肌肉之间的贡献比时,两种算法的差别不大。而SO算法求得的肌肉力峰值略大,主要原因应该是,在CMC算法的优化模块中为每个关节增加了保留的驱动因子,因此有一部分力被这些驱动因子所分担。由于我们无法无创地测量肌肉力的真值,因此该研究无法对两种方法的优劣进行评判,但本研究可以在对比分析使用了两种算法求解肌肉力的研究结果时提供依据。未来研究可以在此数据集上建立一个基准分析,检验其他肌肉力求解算法。