當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。