Include muscle activation dynamics in the AbstractMuscle
, not the AbstractPlant
instance
#34
Labels
AbstractMuscle
, not the AbstractPlant
instance
#34
See #29 for an review of the structure of
AbstractPlant
, and how dynamical updates are aggregated. I'll try to summarize the relevant aspects, here.MuscledArm
has a fieldactivator
, which is anAbstractDynamicalSystem
that describes how a muscle's activation changes with its input. For example, we could use a first-order filter to smooth out the input to the muscle, as an approximation of the dynamic of calcium diffusion through a muscle fibre in response to activity at a neuromuscular junction.The
activator
component is included in thedynamics_spec
ofMuscledArm
, which is a subclassAbstractPlant
; all the components defined indynamics_spec
are automatically aggregated into a singlevector_field
method that is used as theODETerm
to a Diffrax solver.Conceptually, it makes more sense for the muscle activation dynamics to be part of the muscle model -- i.e.
AbstractMuscle
. However,AbstractMuscle
is only a subclass ofAbstractStagedModel
, and only defines a sequence of kinematic updates, and no vector fields.To fix this, I think
AbstractMuscle
will have to subclassAbstractDynamicalSystem
as well asAbstractStagedModel
, similarly to the inheritance pattern already used byAbstractPlant
.This should reduce confusion between "muscle input" and "muscle activation". According to the above description, it's activation that's passed as the
input
argument to anAbstractMuscle
. In some cases however, we might omit the activation filter, and pass a neural network's output directly throughAbstractPlant
, toAbstractMuscle
.The text was updated successfully, but these errors were encountered: