scipy.signal.

dlti#

class scipy.signal.dlti(*system, **kwargs)[Quelle]#

Basisklasse für zeitdiskrete lineare zeitinvariante Systeme.

Parameter:
*system: Argumente

Die Klasse dlti kann mit 2, 3 oder 4 Argumenten instanziiert werden. Das Folgende gibt die Anzahl der Argumente und die entsprechende erstellte zeitdiskrete Unterklasse an:

Jedes Argument kann ein Array oder eine Sequenz sein.

dt: float, optional

Abtastzeit [s] der zeitdiskreten Systeme. Standardwert ist True (nicht spezifizierte Abtastzeit). Muss als Schlüsselwortargument angegeben werden, z. B. dt=0.1.

Attribute:
dt

Gibt die Abtastzeit des Systems zurück.

poles

Pole des Systems.

zeros

Nullstellen des Systems.

Methoden

bode([w, n])

Berechnet Bode-Betrags- und Phasendaten eines zeitdiskreten Systems.

freqresp([w, n, whole])

Berechnet die Frequenzantwort eines zeitdiskreten Systems.

impulse([x0, t, n])

Gibt die Impulsantwort des zeitdiskreten dlti-Systems zurück.

output(u, t[, x0])

Gibt die Antwort des zeitdiskreten Systems auf den Eingang u zurück.

step([x0, t, n])

Gibt die Sprungantwort des zeitdiskreten dlti-Systems zurück.

Hinweise

dlti-Instanzen existieren nicht direkt. Stattdessen erstellt dlti eine Instanz einer seiner Unterklassen: StateSpace, TransferFunction oder ZerosPolesGain.

Das Ändern des Werts von Eigenschaften, die nicht direkt Teil der aktuellen Systemdarstellung sind (wie die zeros eines StateSpace-Systems) ist sehr ineffizient und kann zu numerischen Ungenauigkeiten führen. Es ist besser, zuerst in die spezifische Systemdarstellung zu konvertieren. Rufen Sie beispielsweise sys = sys.to_zpk() auf, bevor Sie auf die Nullstellen, Pole oder die Verstärkung zugreifen/diese ändern.

Wenn (Zähler, Nenner) für *system übergeben wird, sollten die Koeffizienten sowohl für den Zähler als auch für den Nenner in absteigender Exponentenreihenfolge angegeben werden (z. B. wird z^2 + 3z + 5 als [1, 3, 5] dargestellt).

Hinzugefügt in Version 0.18.0.

Beispiele

>>> 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
)

Konstruieren Sie die Übertragungsfunktion \(H(z) = \frac{5(z - 1)(z - 2)}{(z - 3)(z - 4)}\) mit einer Abtastzeit von 0,1 Sekunden

>>> signal.dlti([1, 2], [3, 4], 5, dt=0.1)
ZerosPolesGainDiscrete(
array([1, 2]),
array([3, 4]),
5,
dt: 0.1
)

Konstruieren Sie die Übertragungsfunktion \(H(z) = \frac{3z + 4}{1z + 2}\) mit einer Abtastzeit von 0,1 Sekunden

>>> signal.dlti([3, 4], [1, 2], dt=0.1)
TransferFunctionDiscrete(
array([3., 4.]),
array([1., 2.]),
dt: 0.1
)