SSconvΒΆ

Convert a DLTI system with prediction and delay of the form:

\[\begin{split}\mathbf{x}_{n+1} &= \mathbf{A\,x}_n + \mathbf{B_0\,u}_n + \mathbf{B_1\,u}_{n+1} + \mathbf{B_{m1}\,u}_{n-1} \\ \mathbf{y}_n &= \mathbf{C\,x}_n + \mathbf{D\,u}_n\end{split}\]

into the state-space form:

\[\begin{split}\mathbf{h}_{n+1} &= \mathbf{A_h\,h}_n + \mathbf{B_h\,u}_n \\ \mathbf{y}_n &= \mathbf{C_h\,h}_n + \mathbf{D_h\,u}_n\end{split}\]

If \(\mathbf{B_{m1}}\) is None, the original state is retrieved through

\[\mathbf{x}_n = \mathbf{h}_n + \mathbf{B_1\,u}_n\]

and only the \(\mathbf{B}\) and \(\mathbf{D}\) matrices are modified.

If \(\mathbf{B_{m1}}\) is not None, the SS is augmented with the new state

\[\mathbf{g}_{n} = \mathbf{u}_{n-1}\]

or, equivalently, with the equation

\[\mathbf{g}_{n+1} = \mathbf{u}_n\]

leading to the new form

\[\begin{split}\mathbf{H}_{n+1} &= \mathbf{A_A\,H}_{n} + \mathbf{B_B\,u}_n \\ \mathbf{y}_n &= \mathbf{C_C\,H}_{n} + \mathbf{D_D\,u}_n\end{split}\]

where \(\mathbf{H} = (\mathbf{x},\,\mathbf{g})\).

param A

dynamics matrix

type A

np.ndarray

param B0

input matrix for input at current time step n. Set to None if this is zero.

type B0

np.ndarray

param B1

input matrix for input at time step n+1 (predictor term)

type B1

np.ndarray

param C

output matrix

type C

np.ndarray

param D

direct matrix

type D

np.ndarray

param Bm1

input matrix for input at time step n-1 (delay term)

type Bm1

np.ndarray

returns

tuple packed with the state-space matrices \(\mathbf{A},\,\mathbf{B},\,\mathbf{C}\) and \(\mathbf{D}\).

rtype

tuple

References

Franklin, GF and Powell, JD. Digital Control of Dynamic Systems, Addison-Wesley Publishing Company, 1980

Warning

functions untested for delays (Bm1 != 0)