ca.nengo.model.muscle.impl
Class HillMuscle
java.lang.Object
ca.nengo.model.muscle.impl.SkeletalMuscleImpl
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()
- Author:
- Bryan Tripp
- See Also:
- Serialized Form
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, getDocumentation, getForce, getHistory, getMode, getName, getOrigin, getOrigins, getTermination, getTerminations, listStates, removeChangeListener, reset, setDocumentation, setLength, setMode, setName |
Methods inherited from class java.lang.Object |
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
HillMuscle
public HillMuscle(java.lang.String name,
float tauEA,
float maxIsometricForce,
Function CEForceLength,
Function CEForceVelocity,
Function SEForceLength)
throws StructuralException
- Throws:
StructuralException
setInputs
public void setInputs(float angle,
float velocity)
getTorque
public float getTorque()
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)
main
public static void main(java.lang.String[] args)