Millard 2012 Muscle Models

You are viewing the documentation for OpenSim 3.x. Are you looking for the latest OpenSim 4.0 Documentation?

Millard 2012 Muscle Models

Introduction

This page describes the Hill-type muscle models implemented in OpenSim as OpenSim::Millard2012EquilibriumMuscle by Dr. Matthew Millard and described in detail in Millard et al. (2013). Benchmarking data used for testing this model can be found at https://simtk.org/home/opensim_muscle.

Equilibrium Musculotendon Model

Musculotendon actuators consist of an active contractile element, a passive elastic element, and an elastic tendon. The maximum active force a muscle can develop varies nonlinearly with its length, represented by the active-force–length curve
Loading
, peaking at a force of
Loading
at a length of
Loading
(the tilde is used to denote forces, velocities, muscle lengths, and tendon lengths that are normalized by
Loading
,
Loading
,
Loading
, and
Loading
, respectively). During non-isometric contractions, the force developed by muscle varies nonlinearly with its rate of lengthening, which is represented by the force–velocity curve
Loading
. Force is also developed when muscle is stretched beyond a threshold length, regardless of whether the muscle is activated, which is represented by the passive-force–length curve
Loading
. Muscle force (
Loading
) is computed using these curves as follows:

Loading

where

Loading
is the muscle activation, which ranges from
Loading
to 1.

 

Muscle attaches to bone through tendon. Since a long tendon may stretch appreciably beyond its slack length (

Loading
) when under tension, tendon is modeled as a nonlinear elastic element developing force according to the tendon-force–length curve
Loading
. Muscle fibers attach to tendon at a pennation angle (
Loading
), scaling the force they transmit to the tendon. If the tendon is assumed to be elastic and the mass of the muscle is assumed to be negligible, then the muscle–tendon force equilibrium equation (i.e.,
Loading
) takes the following form:

Loading

We have developed default force curves for the musculotendon model that have been fit to experimental data (see Millard et al., 2013 for details). These curves can be adjusted to model muscle and tendon whose characteristics deviate from these default patterns.

 

In a forward-dynamic simulation, the force generated by a musculotendon actuator is calculated from the length (

Loading
), velocity (
Loading
), and activation (
Loading
) of the muscle. Equation (1) alone cannot be used to solve for the muscle force because multiple combinations of muscle length and velocity will satisfy the equation. A unique solution for
Loading
and
Loading
can be found by solving Eq. (1) for the normalized muscle velocity (
Loading
) to obtain an ordinary differential equation, which can then be integrated to simulate muscle contraction (see Zajac, 1989):

Loading

where

Loading
is the inverse of the force–velocity curve. Although Eq. (1) is devoid of numerical singularities, Eq. (2) has four: as
Loading
, as
Loading
, as
Loading
, and as
Loading
. Since these conditions are often encountered during a simulation, the quantities causing singularities in Eq. (2) are altered so that the singularities are approached but never reached:
Loading
,
Loading
,
Loading
, and
Loading
.

 

Without modifying the formulation of the equilibrium model, the muscle is able to reach unrealistically short lengths (Thelen, 2003) and cannot be simulated when fully deactivated. We use a unilateral constraint on muscle length to prevent the muscle from becoming unrealistically short:

Loading

where

Loading
is a candidate value for
Loading
computed using Eq. (2).

 

Damped Equilibrium Musculotendon Model

The singularities in Eq. (2) arise because Eq. (1) is formulated in such a way that prevents the muscle from satisfying the equilibrium equation when it is deactivated (i.e., 

Loading
) or when a nonzero tendon force is applied to a maximally-pennated muscle (i.e., 
Loading
 and 
Loading
). We address these two problems by limiting the maximum pennation angle and introducing a damper (with damping coefficient 
Loading
) in parallel with the contractile element, which results in the damped equilibrium musculotendon model:

Loading


Since muscle length 

Loading
 is a state, Eq. (3) can be readily and uniquely solved for 
Loading
 using a derivative-based root-finding algorithm such as Newton's method, provided all the force development curves are C2-continuous. The damped equilibrium musculotendon model of Eq. (3) should generate force profiles that are similar to those generated by the equilibrium model described by Eq. (1), but in a fraction of the simulation time because the damped equilibrium model is free of numerical singularities.

Rigid-Tendon Musculotendon Model

Some tendons are so stiff that they can be treated as inextensible, effectively replacing the tendon spring with an inextensible cable. The tendon inextensibility assumption is appropriate only when the tendon does not stretch sufficiently to affect the normalized length of the contractile element. This modeling simplification makes it possible to determine the muscle length (

Loading
) and velocity (
Loading
) from the musculotendon length (
Loading
) and velocity (
Loading
) using a kinematic model of the musculotendon actuator:

Loading

 

Differentiating Eq. (4) with respect to time yields a relation between the muscle, tendon, and musculotendon actuator velocities:

Loading

where 

Loading
 if the tendon is rigid. The length of the muscle (
Loading
) and its orientation (
Loading
) are coupled by a fixed-height-parallelogram pennation model:

Loading


The constant height of the parallelogram (

Loading
) is computed using the optimal muscle length and pennation angle:

Loading


Differentiating Eq. (6) with respect to time yields an expression that can be used to calculate the pennation angular velocity:

Loading

 

Since the tendon length and velocity are known (i.e., 

Loading
 and 
Loading
), we use Eqs. (4) and (6) to solve for muscle length (
Loading
) given musculotendon length (
Loading
), and Eqs. (5) and (7) to solve for muscle velocity (
Loading
) given musculotendon velocity (
Loading
). As with the elastic-tendon models, we use a unilateral constraint to enforce a lower bound of 
Loading
 on muscle length. We compute the force generated by the muscle directly:

Loading


Since a muscle can generate only tensile force, we constrain this equation to remain positive:

Loading

References

  1. Millard, M., Uchida, T., Seth, A., Delp, S.L. (2013) Flexing computational muscle: modeling and simulation of musculotendon dynamics. ASME Journal of Biomechanical Engineering, 135(2):021005.
  2. Thelen, D.G. (2003) Adjustment of muscle mechanics model parameters to simulate dynamic contractions in older adults. ASME Journal of Biomechanical Engineering, 125(1):70–77.
  3. Winters, J.M. (1995) An improved muscle-reflex actuator for use in large-scale neuromusculoskeletal models. Annals of Biomedical Engineering, 23(4):359–374.
  4. Zajac, F.E. (1989) Muscle and tendon: properties, models, scaling, and application to biomechanics and motor control. Critical Reviews in Biomedical Engineering, 17(4):359–411.

 

OpenSim is supported by the Mobilize Center , an NIH Biomedical Technology Resource Center (grant P41 EB027060); the Restore Center , an NIH-funded Medical Rehabilitation Research Resource Network Center (grant P2C HD101913); and the Wu Tsai Human Performance Alliance through the Joe and Clara Tsai Foundation. See the People page for a list of the many people who have contributed to the OpenSim project over the years. ©2010-2024 OpenSim. All rights reserved.