ca.nengo.model.muscle.impl
Class HillMuscle.Dynamics

java.lang.Object
  extended by ca.nengo.model.muscle.impl.HillMuscle.Dynamics
All Implemented Interfaces:
DynamicalSystem, java.io.Serializable, java.lang.Cloneable
Enclosing class:
HillMuscle

public static class HillMuscle.Dynamics
extends java.lang.Object
implements DynamicalSystem

See Also:
Serialized Form

Constructor Summary
HillMuscle.Dynamics(float tauEA, float maxIsometricForce, Function CEForceLength, Function CEForceVelocity, Function SEForceLength, boolean torque)
           
 
Method Summary
 DynamicalSystem clone()
           
 float[] f(float t, float[] u)
          The dynamic equation.
 float[] g(float t, float[] u)
          The output equation.
 Configuration getConfiguration()
           
 int getInputDimension()
           
 int getOutputDimension()
           
 Units getOutputUnits(int outputDimension)
           
 float[] getState()
           
 void setState(float[] state)
           
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

HillMuscle.Dynamics

public HillMuscle.Dynamics(float tauEA,
                           float maxIsometricForce,
                           Function CEForceLength,
                           Function CEForceVelocity,
                           Function SEForceLength,
                           boolean torque)
Parameters:
maxIsometricForce - Isometric force produced by CE at maximal activation and optimal length
CEForceLength -
CEForceVelocity -
SEForceLength -
torque - true indicates a torque muscle (input in rads, output in Nm); false indicates a linear muscle (input in m, output in N)
Method Detail

getConfiguration

public Configuration getConfiguration()
See Also:
Configurable.getConfiguration()

f

public float[] f(float t,
                 float[] u)
Description copied from interface: DynamicalSystem
The dynamic equation.

Specified by:
f in interface DynamicalSystem
Parameters:
t - Simulation time (s)
u - Input: [excitation (0-1), muscle-tendon length, muscle-tendon lengthening velocity]
Returns:
1st derivative of state vector
See Also:
DynamicalSystem.f(float, float[])

g

public float[] g(float t,
                 float[] u)
Description copied from interface: DynamicalSystem
The output equation.

Specified by:
g in interface DynamicalSystem
Parameters:
t - Simulation time (s)
u - Input: [excitation (0-1), muscle-tendon length, muscle-tendon lengthening velocity]
Returns:
Output vector
See Also:
DynamicalSystem.g(float, float[])

getState

public float[] getState()
Specified by:
getState in interface DynamicalSystem
Returns:
[activation, CE length]
See Also:
DynamicalSystem.getState()

setState

public void setState(float[] state)
Specified by:
setState in interface DynamicalSystem
Parameters:
state - [activation, CE length]
See Also:
DynamicalSystem.setState(float[])

getInputDimension

public int getInputDimension()
Specified by:
getInputDimension in interface DynamicalSystem
Returns:
3 (activation, muscle-tendon length, muscle-tendon velocity)
See Also:
DynamicalSystem.getInputDimension()

getOutputDimension

public int getOutputDimension()
Specified by:
getOutputDimension in interface DynamicalSystem
Returns:
1 (force)
See Also:
DynamicalSystem.getOutputDimension()

getOutputUnits

public Units getOutputUnits(int outputDimension)
Specified by:
getOutputUnits in interface DynamicalSystem
Parameters:
outputDimension - Numbered from 0
Returns:
Units of output in the given dimension
See Also:
DynamicalSystem.getOutputUnits(int)

clone

public DynamicalSystem clone()
                      throws java.lang.CloneNotSupportedException
Specified by:
clone in interface DynamicalSystem
Overrides:
clone in class java.lang.Object
Returns:
An identical copy of this system which references an independent copy of the state variables
Throws:
java.lang.CloneNotSupportedException
See Also:
DynamicalSystem.clone()