# 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$

$\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)