The activation dynamic model used by OpenSim is a first-order dynamic model based on the work of Thelen (2003) and Winters (1995). OpenSim's implementation was modified by Matthew Millard, Ajay Seth, and Peter Loan to avoid a numerical singularity that occurs when the activation is zero. The following OpenSim muscles use the first-order activation dynamic model:

In the OpenSim API, the dynamics are implemented in the class MuscleFirstOrderActivationDynamicModel.


A muscle can neither generate force nor relax instantaneously. The development of force is a complex sequence of events that begins with the firing of motor units and culminates in the formation of actin–myosin cross-bridges within the myofibrils of the muscle. When the motor units of a muscle depolarize, action potentials are elicited in the fibers of the muscle and cause calcium ions to be released from the sarcoplasmic reticulum. The increase in calcium ion concentrations then initiates the cross-bridge formation between the actin and myosin filaments. In isolated muscle twitch experiments, the delay between a motor unit action potential and the development of peak force has been observed to vary from as little as 5 milliseconds for fast ocular muscles to as much as 40 or 50 milliseconds for muscles comprised of higher percentages of slow-twitch fibers. The relaxation of muscle depends on the re-uptake of calcium ions into the sarcoplasmic reticulum. This re-uptake is a slower process than the calcium ion release, so the time required for muscle force to fall can be considerably longer than the time for it to develop.

The activation dynamics of muscle can be modeled with a first-order differential equation. This equation relates the rate of change of muscle activation (i.e., the concentration of calcium ions within the muscle) to the muscle excitation (i.e., the firing of motor units):

\frac{da}{dt} = \frac{u-a}{\tau(a,u)}\qquad(1)

where u and a are the excitation and activation signals, respectively. In the model, activation is allowed to vary continuously between 0 (no contraction) and 1 (full contraction). In the body, the activation of a muscle is a function of the number of motor units recruited and the firing frequency of these motor units. Some models of excitation–contraction coupling distinguish these two control mechanisms (Hatze, 1976), but it is often not computationally feasible to use such models when conducting complex dynamic simulations. In a simulation, the muscle excitation signal is assumed to represent the net effect of both motor neuron recruitment and firing frequency. Like muscle activation, the excitation signal is also allowed to vary continuously between 0 (no excitation) and 1 (full excitation). The activation and deactivation time constants can be assumed to be 10 and 40 ms, respectively (Zajac, 1989; Winters, 1990).

The activation model presented by Thelen (2003) closely follows the activation dynamic model found in Winters (1995 – Eq. 2, line 2 and Eq. 3), where the time derivative of activation (da/dt) is equal to the difference between excitation (u) and activation (a) scaled by a variable time constant (\tau(a,u)). The primary difference between the activation model presented by Thelen and the one presented by Winters lies in their expressions for \tau(a,u), which differ only in the values of the two coefficients shown in parentheses in Eqs. 2 and 3:

\tau(a,u) = \begin{cases} t_{\mathrm{act}} \left( 0.5+1.5a \right) &: u > a\qquad(2)\\ t_{\mathrm{deact}}\ / \left( 0.5+1.5a \right) &: u \leq a\qquad(3)\end{cases}

Note that the model of activation dynamics presented in Eq. 1 does not respect a lower bound for activation. Equilibrium muscle models (commonly used to model muscle in lumped-parameter musculoskeletal simulations) have a singularity in their state equations when activation is zero, making the above activation dynamic model unsuitable for simulations using equilibrium muscle models. Equation 1 can be made to respect a lower bound on activation by first constraining both activation and excitation to remain between the minimum activation level (0.01 by default) and the maximum activation level (1.0 by default).


  1. 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.
  2. Winters, J.M. (1995) An improved muscle-reflex actuator for use in large-scale neuromusculoskeletal models. Annals of Biomedical Engineering, 23(4):359–374.
  3. Hatze, H. (1978) A general myocybernetic control model of skeletal muscle. Biological Cybernetics, 28(3):143–157.
  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.
  5. Winters, J.M., Woo, S.L. (1990) Multiple Muscle Systems: Biomechanics and Movement Organization. Springer.