当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python SciPy signal.StateSpace用法及代码示例


本文简要介绍 python 语言中 scipy.signal.StateSpace 的用法。

用法:

class  scipy.signal.StateSpace(*system, **kwargs)#

状态空间形式的线性时不变系统。

将系统表示为 continuous-time、一阶微分方程 或 discrete-time 差分方程 StateSpace 系统分别从 lti dlti 类继承附加函数,具体取决于使用的系统表示形式。

参数

*system: arguments

StateSpace 类可以使用 1 或 4 个参数进行实例化。下面给出了输入参数的数量及其解释:

dt: float, optional

discrete-time 系统的采样时间 [s]。默认为None(continuous-time)。必须指定为关键字参数,例如,dt=0.1.

注意

更改不属于 StateSpace 系统表示形式的属性值(例如 zeros poles )效率非常低,并且可能会导致数值不准确。最好先转换为特定的系统表示形式。例如,在访问/更改零点、极点或增益之前调用sys = sys.to_zpk()

例子

>>> from scipy import signal
>>> import numpy as np
>>> a = np.array([[0, 1], [0, 0]])
>>> b = np.array([[0], [1]])
>>> c = np.array([[1, 0]])
>>> d = np.array([[0]])
>>> sys = signal.StateSpace(a, b, c, d)
>>> print(sys)
StateSpaceContinuous(
array([[0, 1],
       [0, 0]]),
array([[0],
       [1]]),
array([[1, 0]]),
array([[0]]),
dt: None
)
>>> sys.to_discrete(0.1)
StateSpaceDiscrete(
array([[1. , 0.1],
       [0. , 1. ]]),
array([[0.005],
       [0.1  ]]),
array([[1, 0]]),
array([[0]]),
dt: 0.1
)
>>> a = np.array([[1, 0.1], [0, 1]])
>>> b = np.array([[0.005], [0.1]])
>>> signal.StateSpace(a, b, c, d, dt=0.1)
StateSpaceDiscrete(
array([[1. , 0.1],
       [0. , 1. ]]),
array([[0.005],
       [0.1  ]]),
array([[1, 0]]),
array([[0]]),
dt: 0.1
)

属性

A

StateSpace 系统的状态矩阵。

B

StateSpace系统的输入矩阵。

C

StateSpace系统的输出矩阵。

D

StateSpace 系统的馈通矩阵。

dt

返回系统的采样时间,None为了scipy.signal.lti系统。

poles

系统的极点。

zeros

系统的零点。

相关用法


注:本文由纯净天空筛选整理自scipy.org大神的英文原创作品 scipy.signal.StateSpace。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。