scipy.signal.

tf2ss#

scipy.signal.tf2ss(num, den)[源代码][源代码]#

传递函数到状态空间表示。

参数:
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{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) \\\\\\textbf{y}(t) = \\begin{bmatrix} 1 & 2 \\end{bmatrix} \\textbf{x}(t) +\\begin{bmatrix} 1 \\end{bmatrix} \\textbf{u}(t)\end{split}\]
>>> 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.]])