dlti#
- class scipy.signal.dlti(*system, **kwargs)[source]#
離散時間線性非時變系統基底類別。
- 參數:
- *system: 參數
dlti
類別可以使用 2、3 或 4 個參數實例化。以下說明參數數量以及建立的對應離散時間子類別2:
TransferFunction
: (分子, 分母)3:
ZerosPolesGain
: (零點, 極點, 增益)4:
StateSpace
: (A, B, C, D)
每個參數可以是陣列或序列。
- dt: 浮點數, 可選
離散時間系統的取樣時間 [s]。預設值為
True
(未指定的取樣時間)。必須指定為關鍵字參數,例如dt=0.1
。
另請參閱
註解
dlti
實例不會直接存在。相反地,dlti
會建立其子類別之一的實例:StateSpace
、TransferFunction
或ZerosPolesGain
。變更非目前系統表示法一部分的屬性值 (例如
StateSpace
系統的zeros
) 非常沒有效率,並可能導致數值不準確。最好先轉換為特定的系統表示法。例如,在存取/變更零點、極點或增益之前,先呼叫sys = sys.to_zpk()
。如果為
*system
傳入 (分子, 分母),則分子和分母的係數都應以遞減指數順序指定 (例如,z^2 + 3z + 5
將表示為[1, 3, 5]
)。在 0.18.0 版本中新增。
範例
>>> from scipy import signal
>>> signal.dlti(1, 2, 3, 4) StateSpaceDiscrete( array([[1]]), array([[2]]), array([[3]]), array([[4]]), dt: True )
>>> signal.dlti(1, 2, 3, 4, dt=0.1) StateSpaceDiscrete( array([[1]]), array([[2]]), array([[3]]), array([[4]]), dt: 0.1 )
建構傳遞函數 \(H(z) = \frac{5(z - 1)(z - 2)}{(z - 3)(z - 4)}\),取樣時間為 0.1 秒
>>> signal.dlti([1, 2], [3, 4], 5, dt=0.1) ZerosPolesGainDiscrete( array([1, 2]), array([3, 4]), 5, dt: 0.1 )
建構傳遞函數 \(H(z) = \frac{3z + 4}{1z + 2}\),取樣時間為 0.1 秒
>>> signal.dlti([3, 4], [1, 2], dt=0.1) TransferFunctionDiscrete( array([3., 4.]), array([1., 2.]), dt: 0.1 )
方法
bode
([w, n])計算離散時間系統的 Bode Magnitude 和相位資料。
freqresp
([w, n, whole])計算離散時間系統的頻率響應。
impulse
([x0, t, n])傳回離散時間
dlti
系統的脈衝響應。output
(u, t[, x0])傳回離散時間系統對輸入 u 的響應。
step
([x0, t, n])傳回離散時間
dlti
系統的步階響應。