us.ihmc.utilities.linearDynamicSystems
Class SingleMatrixExponentialStateSpaceSystemDiscretizer
java.lang.Object
us.ihmc.utilities.linearDynamicSystems.SingleMatrixExponentialStateSpaceSystemDiscretizer
- All Implemented Interfaces:
- StateSpaceSystemDiscretizer
public class SingleMatrixExponentialStateSpaceSystemDiscretizer
- extends java.lang.Object
- implements StateSpaceSystemDiscretizer
Discretizes a continuous time system using Matrix Exponentials.
Assumes a zero-order hold on the inputs during the time delta dt.
See "Computing Integrals Involving the Matrix Exponential" by Charles F. Van Loan
for information on the algorithm. Also see Matlab Documentation for
kalmd (Design discrete Kalman filter for continuous plant) and
c2d (Continuous to Discrete). Also see the Wikipedia entry on Matrix Exponentials, and Discretization.
Turns x_dot = Ax + Bu + w; y = Cx + Du + v with process noise covariance Q and sensor noise covariance R.
into x_n+1 = A x_n + Bu + w; y = Cx + Du + v with new process noise covariance Q and sensor noise covariance R.
Method Summary |
void |
discretize(org.ejml.data.DenseMatrix64F A,
org.ejml.data.DenseMatrix64F B,
org.ejml.data.DenseMatrix64F Q,
double dt)
discretizes a continuous time system. |
Methods inherited from class java.lang.Object |
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
SingleMatrixExponentialStateSpaceSystemDiscretizer
public SingleMatrixExponentialStateSpaceSystemDiscretizer(int numberOfStates,
int numberOfInputs)
discretize
public void discretize(org.ejml.data.DenseMatrix64F A,
org.ejml.data.DenseMatrix64F B,
org.ejml.data.DenseMatrix64F Q,
double dt)
- discretizes a continuous time system. All input matrices are modified.
- Specified by:
discretize
in interface StateSpaceSystemDiscretizer
- Parameters:
A
- state matrixB
- input matrixQ
- process noise covariance matrixdt
- time step