navlie.utils.common.van_loans¶
- navlie.utils.common.van_loans(A_c: ndarray, L_c: ndarray, Q_c: ndarray, dt: float) → Tuple[ndarray, ndarray]¶
Van Loan’s method for computing the discrete-time A and Q matrices.
Given a continuous-time system of the form
\[\dot{\mathbf{x}} = \mathbf{A}_c \mathbf{x} + \mathbf{L}_c \mathbf{w}, \hspace{5mm} \mathbf{w} \sim \mathcal{N} (\mathbf{0}, \mathbf{Q}_c ),\]where :math:
\mathbf{Q}_c
is a power spectral density, Van Loan’s method can be used to find its equivalent discrete-time representation,\[\mathbf{x}_k = \mathbf{A}_{d} \mathbf{x}_{k-1} + \mathbf{w}_{k-1}, \hspace{5mm} \mathbf{w} \sim \mathcal{N} (\mathbf{0}, \mathbf{Q}_d ).\]These are computed using the matrix exponential, with a sampling period :math:
\Delta t
.- Parameters:
A_c (np.ndarray) – Continuous-time A matrix.
L_c (np.ndarray) – Continuous-time L matrix.
Q_c (np.ndarray) – Continuous-time noise matrix
dt (float) – Discretization timestep.
- Returns:
A_d and Q_d, discrete-time matrices.
- Return type:
Tuple[np.ndarray, np.ndarray]