CN111399396A - 一种基于OpenSim和Matlab进行骨骼肌运动仿真的优化控制方法 - Google Patents
一种基于OpenSim和Matlab进行骨骼肌运动仿真的优化控制方法 Download PDFInfo
- Publication number
- CN111399396A CN111399396A CN202010222872.8A CN202010222872A CN111399396A CN 111399396 A CN111399396 A CN 111399396A CN 202010222872 A CN202010222872 A CN 202010222872A CN 111399396 A CN111399396 A CN 111399396A
- Authority
- CN
- China
- Prior art keywords
- opensim
- matlab
- skeletal muscle
- optimization
- control
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B17/00—Systems involving the use of models or simulators of said systems
- G05B17/02—Systems involving the use of models or simulators of said systems electric
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开的是一种基于OpenSim和Matlab进行骨骼肌运动仿真的优化控制方法,首先基于OpenSim搭建人体运动的动态仿真模型;然后基于Matlab进行初始状态、初始控制设置并解决优化问题,其中优化问题的解决使用的是直接配置法和非线性规划法;此外,需要用到Matlab的内点优化算法,利用这种算法可求解大规模的非线性规划问题;模型的初始状态和优化结果可以在OpenSim的图形用户界面中通过调用plot工具查看。本发明实现了对人体骨骼肌模型运动的优化控制,该方法有助于开发辅助人体运动的医疗设备以及测试运动控制理论,同时,能为生物力学研究人员提供更轻松、更快速的人体运动预测模拟。
Description
技术领域
本发明属于一种人体骨骼肌模型的优化控制方法,具体地说是人体骨骼肌模型的能耗优化控制方法,尤其是一种基于OpenSim和Matlab进行骨骼肌运动仿真的优化控制方法。
背景技术
近年来,医疗康复外骨骼机器人得到了很好的发展,这其中离不开运动生物力学研究的推动作用。运动生物力学旨在研究生物体在外界力和内部受控的肌力作用下的外在机械运动情况,目前主要对运动技术最佳化、人体运动仿真、肌肉力学模型等方面进行研究,其中建模仿真软件OpenSim在这方面有很好的运用。
OpenSim是生物力学领域进行建模、仿真、模拟肌肉骨骼系统的平台,用户可以在其上开发肌肉骨骼模型并创建多种运动的动态模拟,其代码是开源的,并且软件本身可以在网上免费下载,极大地促进了生物力学模拟的研究和发展。
Matlab是美国mathworks公司推出的一种科学计算软件,它将高性能的数值计算和可视化集成在一起,被广泛地用在科学计算、控制系统设计、仿真设计等领域,其中主要包括Simulink和Matlab两个主要部分。
发明内容
本发明使用DC、NLP方法,借助IPOPT求解工具,基于OpenSim的应用程序接口与Matlab相连接,将OpenSim的骨骼肌建模功能和Matlab的数值计算和控制功能结合起来,提供一种骨骼肌运动的优化控制方法。
为了达到上述目的,本发明是通过以下技术方案实现的:
本发明是一种基于OpenSim和Matlab进行骨骼肌运动仿真的优化控制方法,其特征在于:所述控制方法包括以下步骤:
步骤1.建立人体骨骼肌模型:根据特定的受试者身体特征在OpenSim中建立与之匹配的人体骨骼肌模型;
步骤2.OpenSim和Matlab:OpenSim的应用程序编程接口与Matlab相连接;
步骤3.骨骼肌模型的前向动力学模拟:在肌腱动力学中,计算驱动模型的力;然后,使用肌肉骨骼几何学计算关节力矩;接着,使用多体动力学计算加速度等其他状态导数;最后,对状态导数进行数值积分,以确定模型的新状态,包括观察到的运动;
步骤4.基于DC、NLP的优化控制方法进行离散化:采用DC法将时间上的状态变量和控制变量离散化,并将状态变量和控制变量视为NLP问题的未知数,从而将优化控制问题转化成参数优化问题;
步骤5.对控制变量、状态变量的约束:对系统的初始和最终的状态变量、控制变量进行约束,具体地为控制变量在0和1之间,状态变量在其最小值与最大值之间,即mmin≤m(t)≤mmax、0≤n(t)≤1。
步骤6.基于IPOPT工具解决非线性规划优化问题:IPOPT求解问题时需要用户提供:目标函数、目标函数梯度、约束、约束雅克比矩阵、约束海森矩阵等,利用已知的约束雅克比矩阵的稀疏性可以快速求解非线性规划的优化问题;
步骤7.优化目标的求解。
本发明的进一步改进在于:在所述步骤1中,通过更改OpenSim操作路径下的.osim文件中各设置模块的数值大小来生成与受试者肢体外形轮廓一致的骨骼肌模型。
本发明的进一步改进在于:在所述步骤2中,OpenSim和Matlab:OpenSim的应用程序编程接口与Matlab相连接的方法如下:OpenSim包含一个广泛的应用程序编程接口,该接口可以允许Matlab使用其脚本语言连接来扩展OpenSim的功能,将Matlab的控制系统以及强大的数值计算优势与OpenSim的仿真和人体运动动力学优势结合起来,以解决骨骼肌的优化控制问题。
本发明的进一步改进在于:在所述步骤4中,将整个周期划分为N个节点,在每个时间节点上,包括广义坐标、广义速度、肌纤维长度、肌肉激活状态等状态变量,以及肌肉激励、外力等控制变量,OpenSim的前向动力学工具可基于DC结果执行正向动力学仿真,以优化状态文件中第一个时间点的状态作为初始条件,以优化控制文件中所有时间点的肌肉兴奋作为控制,生成正向模拟;
本发明的进一步改进在于:在所述步骤6中,优化目标的求解方法如下:未知数是状态变量m(t)和控制变量n(t),迭代m(t)和n(t),直到找到最优的m(t)和n(t),使得满足任务的要求如初始和最终的状态要求,并满足最优运动。例如,最小化肌肉激活积分的平方和,即消耗最小的能量,用公式可以表示为:
其中,ai是第i个肌肉的瞬时激活量,T是截止时间,k是肌肉的数量。
本发明的有益效果是:通过OpenSim的API将Matlab的强大的控制系统设计的能力与OpenSim的人体建模仿真能力结合起来,再借助于DC、NLP方法和IPOPT求解算法,可实现对人体骨骼肌模型的优化控制。该方法可使生物力学研究人员能够轻松、快速地生成人体运动的预测模拟,并且有助于开发辅助人体运动的医疗设备以及测试运动控制理论。
附图说明
图1是本发明实施例1个自由度模型图。
图2是本发明OpenSim、Matlab的接口流程图。
图3是本发明为OpenSim中观察到的51个节点下的优化控制和前向模拟情况下中间滑块的位置与时间的关系曲线图。
图4是本发明为OpenSim中观察到的101个节点下的优化控制和前向模拟情况下中间滑块的位置与时间的关系曲线图。
图5是本发明为OpenSim中观察到的151个节点下的优化控制和前向模拟情况下中间滑块的位置与时间的关系曲线图。
图6是本发明为OpenSim中观察到的201个节点下的优化控制和前向模拟情况下中间滑块的位置与时间的关系曲线图。
图7是本发明为OpenSim中观察到的301个节点下的优化控制和前向模拟情况下中间滑块的位置与时间的关系曲线图。
具体实施方式
以下将以图式揭露本发明的实施方式,为明确说明起见,许多实务上的细节将在以下叙述中一并说明。然而,应了解到,这些实务上的细节不应用以限制本发明。也就是说,在本发明的部分实施方式中,这些实务上的细节是非必要的。此外,为简化图式起见,一些习知惯用的结构与组件在图式中将以简单的示意的方式绘示之。
实施例1
本发明使用一个1自由度模型,该模型包含两个肌肉作用的块,该中心块可以在左右锚块之间沿z轴自由移动,模型如图1所示。
MATLAB和OpenSim之间的通信通过OpenSim的API进行。左边的虚线方框表示在MATLAB中设置的优化过程,右边的虚线方框表示在OpenSim中的计算过程,标记为“状态导数”的方框表示直接配置方法中的离散化。在OpenSim图形用户界面中,可以可视化初始状态和优化结果。
结合图2,本发明主要包括如下步骤:
步骤1.建立人体骨骼肌模型:根据特定的受试者身体特征在OpenSim中建立与之匹配的人体骨骼肌模型;
通过更改OpenSim操作路径下的.osim文件中各设置模块的数值大小来生成与受试者肢体外形轮廓一致的骨骼肌模型;
步骤2.OpenSim和Matlab:OpenSim的应用程序编程接口也就是ApplicationProgramming Interface或API与Matlab相连接;
OpenSim和Matlab:OpenSim的应用程序编程接口与Matlab相连接的方法如下:OpenSim包含一个广泛的应用程序编程接口,该接口可以允许Matlab使用其脚本语言连接来扩展OpenSim的功能,将Matlab的控制系统以及强大的数值计算优势与OpenSim的仿真和人体运动动力学优势结合起来,以解决骨骼肌的优化控制问题;
(3)骨骼肌模型的前向动力学模拟:
在肌腱动力学中,计算驱动模型的力;然后,使用肌肉骨骼几何学计算关节力矩;接着,OpenSim通过Simbody动态引擎使用多体动力学计算加速度等任何状态变量(例如接触力或肌肉力)的时间导数;最后,对状态导数进行数值积分,以确定模型的新状态,包括观察到的运动状态。
在OpenSim的正向动力学运动方程中,系统的数学模型描述了模型状态变量如何因控制变量而变化,其中模型状态变量可以为位置、速度、肌肉激活和纤维长度,控制变量为肌肉兴奋、外力等。
(4)基于DC、NLP的优化控制方法进行离散化
为使骨骼肌模型在完成任务的同时让能耗得到优化,可采用DC法将时间上的状态变量和控制变量离散化,并将状态变量和控制变量视为NLP问题的未知数,从而将优化控制问题转化成参数优化问题。将整个周期划分为N个节点,在每个时间节点上,包括广义坐标、广义速度、肌纤维长度、肌肉激活状态等状态变量,以及肌肉激励、外力等控制变量,OpenSim的前向动力学工具可基于DC(直接配置法)结果执行正向动力学仿真,以优化状态文件中第一个时间点的状态作为初始条件,以优化控制文件中所有时间点的肌肉兴奋作为控制,生成正向模拟;
步骤5.对控制变量、状态变量的约束:对系统的初始和最终的状态变量、控制变量进行约束,具体地为控制变量在0和1之间,状态变量在其最小值与最大值之间,即mmin≤m(t)≤mmax、0≤n(t)≤1,此外,还有来自于系统动力学方程的约束条件:对于周期性的运动(如行走和跑步)还要求初始和结束的状态变量和控制变量相等;
步骤6.基于IPOPT工具解决非线性规划优化问题:IPOPT需要C++编译器来构建该算法库,然后编译MEX文件,IPOPT求解问题时需要用户提供:目标函数、目标函数梯度、约束、约束雅克比矩阵、约束海森矩阵等,利用已知的约束雅克比矩阵的稀疏性可以快速求解非线性规划的优化问题;
步骤7.优化目标的求解,优化目标的求解方法如下:未知数是状态变量m(t)和控制变量n(t),迭代m(t)和n(t),直到找到最优的m(t)和n(t),使得满足任务的要求如初始和最终的状态要求,并满足最优运动例如,最小化肌肉激活积分的平方和,即消耗最小的能量,用公式可以表示为:
其中,ai是第i个肌肉的瞬时激活量,T是截止时间,k是肌肉的数量。
本发明的方法通过OpenSim的应用程序接口实现Matlab与OpenSim之间的数据传递;首先,基于OpenSim搭建人体运动的动态仿真模型;然后,基于Matlab进行初始状态、初始控制设置并解决优化问题,其中优化问题的解决使用的是直接配置(DirectCollocation,DC)法和非线性规划(Nonlinear Programming,NLP)法,这两种方法可将优化控制问题转换成参数优化问题;此外,需要用到Matlab的内点优化算法(Interior PointOPTimizer,IPOPT),利用这种算法可求解大规模的非线性规划问题;模型的初始状态和优化结果可以在OpenSim的图形用户界面中通过调用plot工具查看。
本发明借助于Matlab与OpenSim的联合仿真,实现了对人体骨骼肌模型运动的优化控制,该方法有助于开发辅助人体运动的医疗设备以及测试运动控制理论,同时,能为生物力学研究人员提供更轻松、更快速的人体运动预测模拟。
以上所述仅为本发明的实施方式而已,并不用于限制本发明。对于本领域技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原理内所作的任何修改、等同替换、改进等,均应包括在本发明的权利要求范围之内。
Claims (5)
1.一种基于OpenSim和Matlab进行骨骼肌运动仿真的优化控制方法,其特征在于:所述控制方法包括以下步骤:
步骤1.建立人体骨骼肌模型:根据特定的受试者身体特征在OpenSim中建立与之匹配的人体骨骼肌模型;
步骤2.OpenSim和Matlab:OpenSim的应用程序编程接口与Matlab相连接;
步骤3.骨骼肌模型的前向动力学模拟:在肌腱动力学中,计算驱动模型的力;然后,使用肌肉骨骼几何学计算关节力矩;接着,使用多体动力学计算加速度等其他状态导数;最后,对状态导数进行数值积分,以确定模型的新状态,包括观察到的运动;
步骤4.基于DC、NLP的优化控制方法进行离散化:采用DC法将时间上的状态变量和控制变量离散化,并将状态变量和控制变量视为NLP问题的未知数,从而将优化控制问题转化成参数优化问题;
步骤5.对控制变量、状态变量的约束:对系统的初始和最终的状态变量、控制变量进行约束,具体地为控制变量在0和1之间,状态变量在其最小值与最大值之间,即mmin≤m(t)≤mmax、0≤n(t)≤1;
步骤6.基于IPOPT工具解决非线性规划优化问题:IPOPT求解问题时需要用户提供:目标函数、目标函数梯度、约束、约束雅克比矩阵、约束海森矩阵;
步骤7.优化目标的求解。
2.根据权利要求1所述一种基于OpenSim和Matlab进行骨骼肌运动仿真的优化控制方法,其特征在于:在所述步骤1中,通过更改OpenSim操作路径下的.osim文件中各设置模块的数值大小来生成与受试者肢体外形轮廓一致的骨骼肌模型。
3.根据权利要求1所述一种基于OpenSim和Matlab进行骨骼肌运动仿真的优化控制方法,其特征在于:在所述步骤2中,OpenSim和Matlab:OpenSim的应用程序编程接口与Matlab相连接的方法如下:OpenSim包含一个广泛的应用程序编程接口,该接口可以允许Matlab使用其脚本语言连接来扩展OpenSim的功能,将Matlab的控制系统以及强大的数值计算优势与OpenSim的仿真和人体运动动力学优势结合起来,以解决骨骼肌的优化控制问题。
4.根据权利要求1所述一种基于OpenSim和Matlab进行骨骼肌运动仿真的优化控制方法,其特征在于:在所述步骤4中,将整个周期划分为N个节点,在每个时间节点上,包括广义坐标、广义速度、肌纤维长度、肌肉激活状态等状态变量,以及肌肉激励、外力等控制变量,OpenSim的前向动力学工具可基于DC结果执行正向动力学仿真,以优化状态文件中第一个时间点的状态作为初始条件,以优化控制文件中所有时间点的肌肉兴奋作为控制,生成正向模拟。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010222872.8A CN111399396B (zh) | 2020-03-26 | 2020-03-26 | 一种基于OpenSim和Matlab进行骨骼肌运动仿真的优化控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010222872.8A CN111399396B (zh) | 2020-03-26 | 2020-03-26 | 一种基于OpenSim和Matlab进行骨骼肌运动仿真的优化控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111399396A true CN111399396A (zh) | 2020-07-10 |
CN111399396B CN111399396B (zh) | 2022-10-21 |
Family
ID=71436658
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010222872.8A Active CN111399396B (zh) | 2020-03-26 | 2020-03-26 | 一种基于OpenSim和Matlab进行骨骼肌运动仿真的优化控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111399396B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113536552A (zh) * | 2021-06-30 | 2021-10-22 | 杭州电子科技大学 | 一种人体姿态可视化跟踪系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104869969A (zh) * | 2012-09-17 | 2015-08-26 | 哈佛大学校长及研究员协会 | 用于辅助人类运动的软式外装护具 |
CN106456331A (zh) * | 2014-03-04 | 2017-02-22 | 皇家墨尔本理工大学 | 用于生产定制的矫形植入物的方法 |
CN109991979A (zh) * | 2019-03-29 | 2019-07-09 | 华中科技大学 | 一种面向复杂环境的下肢机器人步态规划方法 |
-
2020
- 2020-03-26 CN CN202010222872.8A patent/CN111399396B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104869969A (zh) * | 2012-09-17 | 2015-08-26 | 哈佛大学校长及研究员协会 | 用于辅助人类运动的软式外装护具 |
CN106456331A (zh) * | 2014-03-04 | 2017-02-22 | 皇家墨尔本理工大学 | 用于生产定制的矫形植入物的方法 |
CN109991979A (zh) * | 2019-03-29 | 2019-07-09 | 华中科技大学 | 一种面向复杂环境的下肢机器人步态规划方法 |
Non-Patent Citations (1)
Title |
---|
王雨昕: ""基于OpenSim/MATLAB的膝关节康复训练控制研究"", 《医药卫生科技辑》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113536552A (zh) * | 2021-06-30 | 2021-10-22 | 杭州电子科技大学 | 一种人体姿态可视化跟踪系统 |
Also Published As
Publication number | Publication date |
---|---|
CN111399396B (zh) | 2022-10-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Bruderlin et al. | Goal-directed, dynamic animation of human walking | |
Schultz et al. | Modeling and optimal control of human-like running | |
Kim et al. | Prediction and analysis of human motion dynamics performing various tasks | |
CN106548033B (zh) | 一种在随机路面条件下的下肢外骨骼逆运动分析方法 | |
Liu et al. | Energy-efficiency-based gait control system architecture and algorithm for biped robots | |
Zhao et al. | A hyper-redundant elephant’s trunk robot with an open structure: design, kinematics, control and prototype | |
Abdel-Malek et al. | Santos: An integrated human modeling and simulation platform | |
He et al. | Skeleton model-based product low carbon design optimization | |
CN111399396B (zh) | 一种基于OpenSim和Matlab进行骨骼肌运动仿真的优化控制方法 | |
Roller et al. | Optimal control of a biomechanical multibody model for the dynamic simulation of working tasks | |
Zhang et al. | A learning control scheme for upper-limb exoskeleton via adaptive sliding mode technique | |
Abdel-Malek et al. | Development of the virtual-human Santos TM | |
Muraro et al. | Optimal trajectories for a quadruped robot with trot, amble and curvet gaits for two energetic criteria | |
Weng et al. | Adaptive reference inverse optimal control for natural walking with musculoskeletal models | |
Li et al. | Stability criterion and pattern planning for humanoid running | |
Pereira et al. | Implementation of an efficient muscle fatigue model in the framework of multibody systems dynamics for analysis of human movements | |
Zaman et al. | Muscle force prediction in opensim using skeleton motion optimization results as input data | |
Sapiee et al. | Walking simulation model of lower limb exoskeleton robot design | |
Malyshev et al. | A numerical method for determining the workspace of a passive orthosis based on the RRRR mechanism in the lower limb rehabilitation system | |
Chung et al. | A robust formulation for prediction of human running | |
Li et al. | SolidWorks/SimMechanics-based lower extremity exoskeleton modeling procedure for rehabilitation | |
Chung | Optimization Based Dynamic Human Motion Prediction with Modular Exoskeleton Robots as Interactive Forces: The Case of Weight Lifting Motion | |
Li et al. | Compliant control of biomimetic parallel torso based on musculoskeletal control | |
Guo et al. | Design of Graphical User Interface for Motor Selection of the Lower Limb Exoskeleton | |
Aljallad et al. | Modeling and Master-Slave Control of an Upper-Limb Exoskeleton Suit Driven by Pneumatic Muscles |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |