Nengo.ca

ca.nengo.model.muscle.impl
Class HillMuscle

java.lang.Object
  extended by ca.nengo.model.muscle.impl.SkeletalMuscleImpl
      extended by ca.nengo.model.muscle.impl.HillMuscle
All Implemented Interfaces:
SkeletalMuscle, Node, Probeable, Resettable, SimulationMode.ModeConfigurable, VisiblyMutable, java.io.Serializable, java.lang.Cloneable

public class HillMuscle
extends SkeletalMuscleImpl

A Hill-type muscle model. Use RootFinder with function f_CE - f_SE, parameter l_SE, range 0 to breaking length. This finds force given activation and inputs. Could alternatively find dl_CE and have state variables l_CE and activation? TODO: ref Keener & Sneyd TODO: review -- this has been made to compile after model change but it might not make sense TODO: implement getConfiguration()

See Also:
Serialized Form

Nested Class Summary
static class HillMuscle.Dynamics
          Dynamical system for the Hill muscle model
 
Nested classes/interfaces inherited from interface ca.nengo.util.VisiblyMutable
VisiblyMutable.Event, VisiblyMutable.Listener, VisiblyMutable.NameChangeEvent, VisiblyMutable.NodeRemovedEvent
 
Field Summary
 
Fields inherited from interface ca.nengo.model.muscle.SkeletalMuscle
ACTIVATION, DYNAMIC_SPINDLE_ORIGIN, EXCITATION_TERMINATION, FORCE, GTO_ORIGIN, LENGTH, STATIC_SPINDLE_ORIGIN
 
Constructor Summary
HillMuscle(java.lang.String name, float tauEA, float maxIsometricForce, Function CEForceLength, Function CEForceVelocity, Function SEForceLength)
           
 
Method Summary
 float getTorque()
           
static void main(java.lang.String[] args)
           
 void run(float startTime, float endTime)
          Runs the Node (including all its components), updating internal state and outputs as needed.
 void setExcitation(float excitation)
           
 void setInputs(float angle, float velocity)
           
 
Methods inherited from class ca.nengo.model.muscle.impl.SkeletalMuscleImpl
addChangeListener, clone, getChildren, getDocumentation, getForce, getHistory, getMode, getName, getOrigin, getOrigins, getTermination, getTerminations, listStates, removeChangeListener, reset, setDocumentation, setLength, setMode, setName, toScript
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

HillMuscle

public HillMuscle(java.lang.String name,
                  float tauEA,
                  float maxIsometricForce,
                  Function CEForceLength,
                  Function CEForceVelocity,
                  Function SEForceLength)
           throws StructuralException
Parameters:
name - Muscle name
tauEA - see Hill model
maxIsometricForce - see Hill model
CEForceLength - see Hill model
CEForceVelocity - see Hill model
SEForceLength - see Hill model
Throws:
StructuralException - if Dynamics creation fails
Method Detail

setInputs

public void setInputs(float angle,
                      float velocity)
Parameters:
angle - Muscle angle
velocity - Muscle velocity

getTorque

public float getTorque()
Returns:
Torque

run

public void run(float startTime,
                float endTime)
         throws SimulationException
Description copied from interface: Node
Runs the Node (including all its components), updating internal state and outputs as needed. Runs should be short (eg 1ms), because inputs can not be changed during a run, and outputs will only be communicated to other Nodes after a run.

Specified by:
run in interface Node
Overrides:
run in class SkeletalMuscleImpl
Parameters:
startTime - simulation time at which running starts (s)
endTime - simulation time at which running ends (s)
Throws:
SimulationException - if a problem is encountered while trying to run
See Also:
Node.run(float, float)

setExcitation

public void setExcitation(float excitation)
Parameters:
excitation - Excitation

main

public static void main(java.lang.String[] args)
Parameters:
args - commandline args

Nengo.ca