ca.nengo.dynamics.impl
Class CanonicalModel
java.lang.Object
ca.nengo.dynamics.impl.CanonicalModel
public class CanonicalModel
- extends java.lang.Object
Utilities related to state-space models that are in controllable-canonical form.
- Author:
- Bryan Tripp
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
CanonicalModel
public CanonicalModel()
getRealization
public static LTISystem getRealization(float[] numerator,
float[] denominator,
float passthrough)
Realizes a transfer function in the form:
H(s) = d + (b1*s^(n-1) + b2*s^(n-2) + ... + bn) / (s^n + a1*s^(n-1) + ... + an).
- Parameters:
numerator
- Coefficients of the numerator of a transfer function (b1 to bn above)denominator
- Coefficients of the denominator of a transfer function (a1 to an above)passthrough
- Passthrough value (d above). If your transfer function has numerator and denominator
of equal degree, divide them, give the result here, and give the remainder as the numerator
and denominator arguments, so that the new numerator will have degree less than denominator.
There is no state-space realization for TF with numerator degree > denominator degree.
- Returns:
- A controllable-canonical state-space realization of the specified
transfer function
isControllableCanonical
public static boolean isControllableCanonical(LTISystem system)
- Parameters:
system
- Any SISO linear time-invariant system
- Returns:
- True if the system is in controllable-canonical form
changeTimeConstant
public static LTISystem changeTimeConstant(LTISystem system,
float tau)
- Parameters:
system
- An LTI system in controllable-canonical formtau
- A desired new time constant
- Returns:
- A copy of the system, with its slowest time constant changed to the
new value
getDominantTimeConstant
public static float getDominantTimeConstant(LTISystem dynamics)
- Parameters:
dynamics
- A linear time-invariant dynamical system
- Returns:
- Time constant associated with the system's dominant eigenvalue