Activation (Docstrings)#
Activation dynamics for musclotendon models.
Musculotendon models are able to produce active force when they are activated, which is when a chemical process has taken place within the muscle fibers causing them to voluntarily contract. Biologically this chemical process (the diffusion of \(\textrm{Ca}^{2+}\) ions) is not the input in the system, electrical signals from the nervous system are. These are termed excitations. Activation dynamics, which relates the normalized excitation level to the normalized activation level, can be modeled by the models present in this module.
- class sympy.physics.biomechanics.activation.ActivationBase(name)[source]#
Abstract base class for all activation dynamics classes to inherit from.
Notes
Instances of this class cannot be directly instantiated by users. However, it can be used to created custom activation dynamics types through subclassing.
- abstract property F#
Ordered column matrix of equations on the RHS of
M x' = F
.Explanation
The column matrix that forms the RHS of the linear system of ordinary differential equations governing the activation dynamics:
M(x, r, t, p) x' = F(x, r, t, p)
.
- abstract property M#
Ordered square matrix of coefficients on the LHS of
M x' = F
.Explanation
The square matrix that forms part of the LHS of the linear system of ordinary differential equations governing the activation dynamics:
M(x, r, t, p) x' = F(x, r, t, p)
.
- property a#
Dynamic symbol representing activation.
Explanation
The alias
activation
can also be used to access the same attribute.
- property activation#
Dynamic symbol representing activation.
Explanation
The alias
a
can also be used to access the same attribute.
- abstract property constants#
Ordered column matrix of non-time varying symbols present in
M
andF
.Only symbolic constants are returned. If a numeric type (e.g.
Float
) has been used instead ofSymbol
for a constant then that attribute will not be included in the matrix returned by this property. This is because the primary use of this property attribute is to provide an ordered sequence of the still-free symbols that require numeric values during code generation.Explanation
The alias
p
can also be used to access the same attribute.
- property e#
Dynamic symbol representing excitation.
Explanation
The alias
excitation
can also be used to access the same attribute.
- property excitation#
Dynamic symbol representing excitation.
Explanation
The alias
e
can also be used to access the same attribute.
- abstract property input_vars#
Ordered column matrix of functions of time that represent the input variables.
Explanation
The alias
r
can also be used to access the same attribute.
- abstract property order#
Order of the (differential) equation governing activation.
- abstract property p#
Ordered column matrix of non-time varying symbols present in
M
andF
.Only symbolic constants are returned. If a numeric type (e.g.
Float
) has been used instead ofSymbol
for a constant then that attribute will not be included in the matrix returned by this property. This is because the primary use of this property attribute is to provide an ordered sequence of the still-free symbols that require numeric values during code generation.Explanation
The alias
constants
can also be used to access the same attribute.
- abstract property r#
Ordered column matrix of functions of time that represent the input variables.
Explanation
The alias
input_vars
can also be used to access the same attribute.
- abstract rhs()[source]#
Explanation
The solution to the linear system of ordinary differential equations governing the activation dynamics:
M(x, r, t, p) x' = F(x, r, t, p)
.
- abstract property state_vars#
Ordered column matrix of functions of time that represent the state variables.
Explanation
The alias
x
can also be used to access the same attribute.
- abstract classmethod with_defaults(name)[source]#
Alternate constructor that provides recommended defaults for constants.
- abstract property x#
Ordered column matrix of functions of time that represent the state variables.
Explanation
The alias
state_vars
can also be used to access the same attribute.
- class sympy.physics.biomechanics.activation.FirstOrderActivationDeGroote2016(name, activation_time_constant=None, deactivation_time_constant=None, smoothing_rate=None)[source]#
First-order activation dynamics based on De Groote et al., 2016 [R705].
Explanation
Gives the first-order activation dynamics equation for the rate of change of activation with respect to time as a function of excitation and activation.
The function is defined by the equation:
\[\frac{da}{dt} = \left(\frac{\frac{1}{2} + a0}{\tau_a \left(\frac{1}{2} + \frac{3a}{2}\right)} + \frac{\left(\frac{1}{2} + \frac{3a}{2}\right) \left(\frac{1}{2} - a0\right)}{\tau_d}\right) \left(e - a\right)\]where
\[a0 = \frac{\tanh{\left(b \left(e - a\right) \right)}}{2}\]with constant values of \(tau_a = 0.015\), \(tau_d = 0.060\), and \(b = 10\).
References
- property F#
Ordered column matrix of equations on the RHS of
M x' = F
.Explanation
The column matrix that forms the RHS of the linear system of ordinary differential equations governing the activation dynamics:
M(x, r, t, p) x' = F(x, r, t, p)
.
- property M#
Ordered square matrix of coefficients on the LHS of
M x' = F
.Explanation
The square matrix that forms part of the LHS of the linear system of ordinary differential equations governing the activation dynamics:
M(x, r, t, p) x' = F(x, r, t, p)
.
- property activation_time_constant#
Delay constant for activation.
Explanation
The alias
`tau_a
can also be used to access the same attribute.
- property b#
Smoothing constant for the hyperbolic tangent term.
Explanation
The alias
smoothing_rate
can also be used to access the same attribute.
- property constants#
Ordered column matrix of non-time varying symbols present in
M
andF
.Only symbolic constants are returned. If a numeric type (e.g.
Float
) has been used instead ofSymbol
for a constant then that attribute will not be included in the matrix returned by this property. This is because the primary use of this property attribute is to provide an ordered sequence of the still-free symbols that require numeric values during code generation.Explanation
The alias
p
can also be used to access the same attribute.
- property deactivation_time_constant#
Delay constant for deactivation.
Explanation
The alias
tau_d
can also be used to access the same attribute.
- property input_vars#
Ordered column matrix of functions of time that represent the input variables.
Explanation
The alias
r
can also be used to access the same attribute.
- property order#
Order of the (differential) equation governing activation.
- property p#
Ordered column matrix of non-time varying symbols present in
M
andF
.Explanation
Only symbolic constants are returned. If a numeric type (e.g.
Float
) has been used instead ofSymbol
for a constant then that attribute will not be included in the matrix returned by this property. This is because the primary use of this property attribute is to provide an ordered sequence of the still-free symbols that require numeric values during code generation.The alias
constants
can also be used to access the same attribute.
- property r#
Ordered column matrix of functions of time that represent the input variables.
Explanation
The alias
input_vars
can also be used to access the same attribute.
- rhs()[source]#
Ordered column matrix of equations for the solution of
M x' = F
.Explanation
The solution to the linear system of ordinary differential equations governing the activation dynamics:
M(x, r, t, p) x' = F(x, r, t, p)
.
- property smoothing_rate#
Smoothing constant for the hyperbolic tangent term.
Explanation
The alias
b
can also be used to access the same attribute.
- property state_vars#
Ordered column matrix of functions of time that represent the state variables.
Explanation
The alias
x
can also be used to access the same attribute.
- property tau_a#
Delay constant for activation.
Explanation
The alias
activation_time_constant
can also be used to access the same attribute.
- property tau_d#
Delay constant for deactivation.
Explanation
The alias
deactivation_time_constant
can also be used to access the same attribute.
- classmethod with_defaults(name)[source]#
Alternate constructor that will use the published constants.
Explanation
Returns an instance of
FirstOrderActivationDeGroote2016
using the three constant values specified in the original publication.These have the values:
\(tau_a = 0.015\) \(tau_d = 0.060\) \(b = 10\)
- property x#
Ordered column matrix of functions of time that represent the state variables.
Explanation
The alias
state_vars
can also be used to access the same attribute.
- class sympy.physics.biomechanics.activation.ZerothOrderActivation(name)[source]#
Simple zeroth-order activation dynamics mapping excitation to activation.
Explanation
Zeroth-order activation dynamics are useful in instances where you want to reduce the complexity of your musculotendon dynamics as they simple map exictation to activation. As a result, no additional state equations are introduced to your system. They also remove a potential source of delay between the input and dynamics of your system as no (ordinary) differential equations are involed.
- property F#
Ordered column matrix of equations on the RHS of
M x' = F
.Explanation
The column matrix that forms the RHS of the linear system of ordinary differential equations governing the activation dynamics:
M(x, r, t, p) x' = F(x, r, t, p)
.As zeroth-order activation dynamics have no state variables, this linear system has dimension 0 and therefore
F
is an empty columnMatrix
with shape (0, 1).
- property M#
Ordered square matrix of coefficients on the LHS of
M x' = F
.Explanation
The square matrix that forms part of the LHS of the linear system of ordinary differential equations governing the activation dynamics:
M(x, r, t, p) x' = F(x, r, t, p)
.As zeroth-order activation dynamics have no state variables, this linear system has dimension 0 and therefore
M
is an empty squareMatrix
with shape (0, 0).
- property constants#
Ordered column matrix of non-time varying symbols present in
M
andF
.Only symbolic constants are returned. If a numeric type (e.g.
Float
) has been used instead ofSymbol
for a constant then that attribute will not be included in the matrix returned by this property. This is because the primary use of this property attribute is to provide an ordered sequence of the still-free symbols that require numeric values during code generation.Explanation
As zeroth-order activation dynamics simply maps excitation to activation, this class has no associated constants and so this property return an empty column
Matrix
with shape (0, 1).The alias
p
can also be used to access the same attribute.
- property input_vars#
Ordered column matrix of functions of time that represent the input variables.
Explanation
Excitation is the only input in zeroth-order activation dynamics and so this property returns a column
Matrix
with one entry,e
, and shape (1, 1).The alias
r
can also be used to access the same attribute.
- property order#
Order of the (differential) equation governing activation.
- property p#
Ordered column matrix of non-time varying symbols present in
M
andF
.Only symbolic constants are returned. If a numeric type (e.g.
Float
) has been used instead ofSymbol
for a constant then that attribute will not be included in the matrix returned by this property. This is because the primary use of this property attribute is to provide an ordered sequence of the still-free symbols that require numeric values during code generation.Explanation
As zeroth-order activation dynamics simply maps excitation to activation, this class has no associated constants and so this property return an empty column
Matrix
with shape (0, 1).The alias
constants
can also be used to access the same attribute.
- property r#
Ordered column matrix of functions of time that represent the input variables.
Explanation
Excitation is the only input in zeroth-order activation dynamics and so this property returns a column
Matrix
with one entry,e
, and shape (1, 1).The alias
input_vars
can also be used to access the same attribute.
- rhs()[source]#
Ordered column matrix of equations for the solution of
M x' = F
.Explanation
The solution to the linear system of ordinary differential equations governing the activation dynamics:
M(x, r, t, p) x' = F(x, r, t, p)
.As zeroth-order activation dynamics have no state variables, this linear has dimension 0 and therefore this method returns an empty column
Matrix
with shape (0, 1).
- property state_vars#
Ordered column matrix of functions of time that represent the state variables.
Explanation
As zeroth-order activation dynamics simply maps excitation to activation, this class has no associated state variables and so this property return an empty column
Matrix
with shape (0, 1).The alias
x
can also be used to access the same attribute.
- classmethod with_defaults(name)[source]#
Alternate constructor that provides recommended defaults for constants.
Explanation
As this concrete class doesn’t implement any constants associated with its dynamics, this
classmethod
simply creates a standard instance ofZerothOrderActivation
. An implementation is provided to ensure a consistent interface between allActivationBase
concrete classes.
- property x#
Ordered column matrix of functions of time that represent the state variables.
Explanation
As zeroth-order activation dynamics simply maps excitation to activation, this class has no associated state variables and so this property return an empty column
Matrix
with shape (0, 1).The alias
state_vars
can also be used to access the same attribute.