# 肌肉反射模型
此示例演示如何使用参数估计工具箱对一个肌肉反射模型的参数进行估计。
# 背景介绍
在生物医学工程和神经科学研究中,理解肌肉反射机制对于诊断和治疗神经系统疾病至关重要。膝盖反射(膝跳反射)是一种简单的反射动作,当膝盖下的髌骨腱受到敲击时,会引发腿部肌肉的快速收缩,导致腿部轻微前冲。这个反射动作可以通过模拟肌肉和腱的物理特性以及神经系统的响应来研究。
在这个示例中,使用 Sysplorer 建立了一个膝盖反射的模型,该模型包括了腱的力学特性(如惯性 J、刚度 K 和阻尼 B),以及肌肉纺锤体的动态特性。模型的目的是通过模拟来估计和验证影响膝盖反射的关键参数,这些参数包括肌肉和腱的物理特性参数,以及神经系统的传递特性。其物理模型如下式所示:
:表示肌肉纺锤体产生的扭矩的导数,即扭矩随时间的变化率; :表示肌肉纺锤体中串联的弹簧(series elastic element)的刚度; :表示肌肉纺锤体中并联的阻尼器(parallel damper)的阻尼系数; :表示肌肉纺锤体中并联的阻尼器(parallel damper)的阻尼系数; :表示肌肉的长度变化率,即肌肉随时间的变化率; :表示肌肉纺锤体中并联的模拟弹簧(parallel elastic element)的刚度; :表示肌肉的长度; :表示肌肉纺锤体产生的扭矩。
按照上述原理描述,使用 Sysplorer 搭建的基于 Modelica 的物理仿真模型如下图所示:

在这个模型中输入信号由 timeTable 模块指定,这个输入信号是一个短暂的脉冲,用来模拟对髌骨腱的外部机械刺激;输出信号表示膝盖受刺激时的反射张力,另外 transferFunction2 用来模拟纺锤体动态特性。
通过与实际测量的实验数据比较,可以使用 Sysplorer 的参数估计工具来调整模型参数,直到模型输出与实际数据相匹配。这个过程涉及到参数的选择、估计、验证和优化,最终目的是获得一个能够准确反映生物体膝盖反射行为的数学模型。这样的模型不仅有助于建模人员更好地理解肌肉反射的生理机制,还可以用于临床诊断和治疗策略的制定。
# 准备工作
- 启动 Sysplorer,加载 。
- 在 Sysplorer>模型浏览器>用户模型中选中 Muscle,单击工具>参数估计图标打开参数估计工具箱。
# 设置调节参数
在参数估计工具栏中单击调节参数,依次选择参数 B、J、K、alpha、beta 和 tau 作为调节参数。
- 设置参数 B 的初始值为 3、最小值为 0、最大值为 10;
- 设置参数 J 的初始值为 1、最小值为 0、最大值为 3;
- 设置参数 K 的初始值为 75、最小值为 0、最大值为 150;
- 设置参数 alpha 的初始值为 0.2、最小值为 0、最大值为 2;
- 设置参数 beta 的初始值为 0.1、最小值为 0、最大值为 2;
- 设置参数 tau 的初始值为 0.005、最小值为 0、最大值为 1。
# 建立估计试验
单击新建试验,在弹出的配置试验界面中导入肌肉反射测量数据 Sysplorer安装目录\Docs\DesignOptimization\Samples\muscle.csv。

在配置试验>结果变量/定义边界界面,单击选择变量,选择 Sysplorer 模型中 y 作为本次估计试验的输出信号,并在变量配置中将其与测量数据中的 muscle 变量进行关联,配置完之后可单击确定按钮退出当前界面,完成估计试验的创建;然后单击选择绘图变量,在绘图变量界面勾选变量 y、单击确定按钮,即可在参数估计中央视图区观察到绘制的测量数据图像。


# 评估当前参数
继上一步操作之后,单击评估当前参数,待计算结束后,可以看到当前模型的仿真输出与实际的膝盖肌肉反射数据不吻合,需要对模型中的参数做进一步调参。
# 进行参数估计
残差函数选择平均绝对误差。单击选项,在选项>算法界面中设置当前算法为 PSO,然后关闭该界面,返回参数估计主界面,单击开始估计,在估计过程中调节参数将不断迭代,直至估计收敛并终止。下图显示了模拟测量数据与模型实际仿真数据的结果图,从图中可以看出,测量数据与实际仿真数据吻合的非常好。
从下图中可以看出,残差数值在迭代结束时并没有迭代至 0,这是因为测量数具有一定的噪声,无法完美的模拟肌肉反射行为,但这些噪声是被允许存在,且最终残差值非常小,也足以说明最终估计结果的准确性。
