Class LinearSystemUtil

java.lang.Object
org.wpilib.math.system.LinearSystemUtil

public final class LinearSystemUtil extends Object
Linear system utilities.
  • Method Details

    • isStabilizable

      public static <States extends Num, Inputs extends Num> boolean isStabilizable(Matrix<States,States> A, Matrix<States,Inputs> B)
      Returns true if (A, B) is a stabilizable pair.

      (A, B) is stabilizable if and only if the uncontrollable eigenvalues of A, if any, have absolute values less than one, where an eigenvalue is uncontrollable if rank([λI - A, B]) %3C n where n is the number of states.

      Type Parameters:
      States - Num representing the size of A.
      Inputs - Num representing the columns of B.
      Parameters:
      A - System matrix.
      B - Input matrix.
      Returns:
      If the system is stabilizable.
    • isDetectable

      public static <States extends Num, Outputs extends Num> boolean isDetectable(Matrix<States,States> A, Matrix<Outputs,States> C)
      Returns true if (A, C) is a detectable pair.

      (A, C) is detectable if and only if the unobservable eigenvalues of A, if any, have absolute values less than one, where an eigenvalue is unobservable if rank([λI - A; C]) %3C n where n is the number of states.

      Type Parameters:
      States - Num representing the size of A.
      Outputs - Num representing the rows of C.
      Parameters:
      A - System matrix.
      C - Output matrix.
      Returns:
      If the system is detectable.