class_docstr: First-order activation dynamics based on De Groote et al., 2016 [1]_.
  
  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:
  
  .. math::
  
      \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
  
  .. math::
  
      a0 = \frac{\tanh{\left(b \left(e - a\right) \right)}}{2}
  
  with constant values of :math:`tau_a = 0.015`, :math:`tau_d = 0.060`, and
  :math:`b = 10`.
  
  References
  ==========
  
  .. [1] De Groote, F., Kinney, A. L., Rao, A. V., & Fregly, B. J., Evaluation
         of direct collocation optimal control problem formulations for
         solving the muscle redundancy problem, Annals of biomedical
         engineering, 44(10), (2016) pp. 2922-2936
class_docstr_tok: ["First-order","activation","dynamics","based","on","De","Groote","et","al.",",","2016","[","1","]","_",".","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",":","..","math",":",":","\\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","..","math",":",":","a0","=","\\frac","{","\\tanh","{","\\left","(","b","\\left","(","e","-","a\\right",")","\\right",")","}","}","{","2","}","with","constant","values","of",":","math",":","`","tau_a","=","0.015","`",",",":","math",":","`","tau_d","=","0.060","`",",","and",":","math",":","`","b","=","10","`",".","References","==========","..","[","1","]","De","Groote",",","F.",",","Kinney",",","A.","L.",",","Rao",",","A.","V.",",","&","Fregly",",","B.","J.",",","Evaluation","of","direct","collocation","optimal","control","problem","formulations","for","solving","the","muscle","redundancy","problem",",","Annals","of","biomedical","engineering",",","44","(","10",")",",","(","2016",")","pp",".","2922-2936"]
docstr: 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:
  
  :math:`tau_a = 0.015`
  :math:`tau_d = 0.060`
  :math:`b = 10`
docstr_tok: ["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",":",":","math",":","`","tau_a","=","0.015","`",":","math",":","`","tau_d","=","0.060","`",":","math",":","`","b","=","10","`"]
code: def with_defaults(cls, name):
      r"""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:
  
      :math:`tau_a = 0.015`
      :math:`tau_d = 0.060`
      :math:`b = 10`
  
      """
      tau_a = Float("0.015")
      tau_d = Float("0.060")
      b = Float("10.0")
      return cls(name, tau_a, tau_d, b)
  
imports: from abc import ABC, abstractmethod
  from functools import cached_property
  from sympy.core.symbol import Symbol
  from sympy.core.numbers import Float, Integer, Rational
  from sympy.functions.elementary.hyperbolic import tanh
  from sympy.matrices.dense import MutableDenseMatrix, zeros
  from sympy.physics.biomechanics._mixin import _NamedMixin
  from sympy.physics.mechanics import dynamicsymbols
label_desc: Use image node_id 2 for calling the FirstOrderActivationDeGroote2016 obj's underlying member method code with example usage: obj.with_defaults(cls, name) and returns: cls