scipy.signal.

ss2tf#

scipy.signal.ss2tf(A, B, C, D, input=0)[source]#

状态空间到传递函数。

ABCD 定义一个线性状态空间系统,其中有 p 个输入、q 个输出和 n 个状态变量。

参数:
A类似数组

形状为 (n, n) 的状态(或系统)矩阵

B类似数组

形状为 (n, p) 的输入矩阵

C类似数组

形状为 (q, n) 的输出矩阵

D类似数组

形状为 (q, p) 的馈通(或前馈)矩阵

inputint,可选

多输入系统中要使用的输入的索引。

返回值:
num2 维 nd 数组

结果传递函数的分母。num 针对每个系统输出有一行。每行都是分子多项式的序列表示。

den1-D ndarray

结果传递函数的分母。den 是分母多项式的序列表示。

示例

转换状态空间表示

\[ \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} \]
>>> A = [[-2, -1], [1, 0]]
>>> B = [[1], [0]]  # 2-D column vector
>>> C = [[1, 2]]    # 2-D row vector
>>> D = 1

转到传递函数

\[H(s) = \frac{s^2 + 3s + 3}{s^2 + 2s + 1}\]
>>> from scipy.signal import ss2tf
>>> ss2tf(A, B, C, D)
(array([[1., 3., 3.]]), array([ 1.,  2.,  1.]))