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)