scipy.signal.

lti#

class scipy.signal.lti(*system)[Quelle]#

Basisklasse für kontinuierliche lineare zeitinvariante Systeme.

Parameter:
*systemArgumente

Die Klasse lti kann mit 2, 3 oder 4 Argumenten instanziiert werden. Die folgende Tabelle zeigt die Anzahl der Argumente und die entsprechende erstellte kontinuierliche Unterklasse.

Jedes Argument kann ein Array oder eine Sequenz sein.

Attribute:
dt

Gibt die Abtastzeit des Systems zurück, None für lti-Systeme.

poles

Pole des Systems.

zeros

Nullstellen des Systems.

Methoden

bode([w, n])

Berechnet Bode-Größen- und Phasen-Daten eines Systems mit kontinuierlicher Zeit.

freqresp([w, n])

Berechnet die Frequenzantwort eines Systems mit kontinuierlicher Zeit.

impulse([X0, T, N])

Gibt die Impulsantwort eines kontinuierlichen Systems zurück.

output(U, T[, X0])

Gibt die Antwort eines kontinuierlichen Systems auf die Eingabe U zurück.

step([X0, T, N])

Gibt die Sprungantwort eines kontinuierlichen Systems zurück.

to_discrete(dt[, method, alpha])

Gibt eine diskretisierte Version des aktuellen Systems zurück.

Hinweise

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

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

Das Ändern des Werts von Eigenschaften, die nicht direkt Teil der aktuellen Systemdarstellung sind (wie z. B. die Nullstellen 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.

Beispiele

>>> from scipy import signal
>>> signal.lti(1, 2, 3, 4)
StateSpaceContinuous(
array([[1]]),
array([[2]]),
array([[3]]),
array([[4]]),
dt: None
)

Konstruieren Sie die Übertragungsfunktion \(H(s) = \frac{5(s - 1)(s - 2)}{(s - 3)(s - 4)}\)

>>> signal.lti([1, 2], [3, 4], 5)
ZerosPolesGainContinuous(
array([1, 2]),
array([3, 4]),
5,
dt: None
)

Konstruieren Sie die Übertragungsfunktion \(H(s) = \frac{3s + 4}{1s + 2}\)

>>> signal.lti([3, 4], [1, 2])
TransferFunctionContinuous(
array([3., 4.]),
array([1., 2.]),
dt: None
)