scipy.signal.

tf2ss#

scipy.signal.tf2ss(num, den)[source]#

轉換函數到狀態空間表示法。

參數:
num, denarray_like

表示分子和分母多項式係數的序列,以遞減次數排序。分母的長度需要至少與分子相同。

返回:
A, B, C, Dndarray

系統的狀態空間表示法,以控制器標準型式呈現。

範例

轉換傳遞函數

\[H(s) = \frac{s^2 + 3s + 3}{s^2 + 2s + 1}\]
>>> num = [1, 3, 3]
>>> den = [1, 2, 1]

到狀態空間表示法

\[ \begin{align}\begin{aligned}\begin{split}\dot{\textbf{x}}(t) = \begin{bmatrix} -2 & -1 \\ 1 & 0 \end{bmatrix} \textbf{x}(t) + \begin{bmatrix} 1 \\ 0 \end{bmatrix} \textbf{u}(t) \\\end{split}\\\textbf{y}(t) = \begin{bmatrix} 1 & 2 \end{bmatrix} \textbf{x}(t) + \begin{bmatrix} 1 \end{bmatrix} \textbf{u}(t)\end{aligned}\end{align} \]
>>> from scipy.signal import tf2ss
>>> A, B, C, D = tf2ss(num, den)
>>> A
array([[-2., -1.],
       [ 1.,  0.]])
>>> B
array([[ 1.],
       [ 0.]])
>>> C
array([[ 1.,  2.]])
>>> D
array([[ 1.]])