TransferFunction#
- class scipy.signal.TransferFunction(*system, **kwargs)[Quelle]#
Klasse für lineare zeitinvariante Systeme in Übertragungsfunktionform.
Stellt das System als kontinuierliche Übertragungsfunktion \(H(s)=\sum_{i=0}^N b[N-i] s^i / \sum_{j=0}^M a[M-j] s^j\) oder als diskrete Übertragungsfunktion \(H(z)=\sum_{i=0}^N b[N-i] z^i / \sum_{j=0}^M a[M-j] z^j\) dar, wobei \(b\) Elemente des Zählers
numsind, \(a\) Elemente des Nennersdensind undN == len(b) - 1,M == len(a) - 1.TransferFunction-Systeme erben zusätzliche Funktionalität von den Klassenltibzw.dlti, abhängig von der verwendeten Systemdarstellung.- Parameter:
- *system: Argumente
Die Klasse
TransferFunctionkann mit 1 oder 2 Argumenten instanziiert werden. Das Folgende gibt die Anzahl der Eingabeargumente und ihre Interpretation an:1:
ltioderdlti-System: (StateSpace,TransferFunctionoderZerosPolesGain)2: array_like: (Zähler, Nenner)
- dt: float, optional
Abtastzeit [s] der zeitdiskreten Systeme. Standardwert ist None (zeitkontinuierlich). Muss als Schlüsselwortargument angegeben werden, z.B.
dt=0.1.
- Attribute:
denNenner des
TransferFunction-Systems.dtGibt die Abtastzeit des Systems zurück, bei
lti-Systemen None.numZähler des
TransferFunction-Systems.polesPole des Systems.
zerosNullstellen des Systems.
Methoden
to_ss()Konvertiert Systemrepräsentation in
StateSpace.to_tf()Gibt eine Kopie des aktuellen
TransferFunction-Systems zurück.to_zpk()Konvertiert die Systemdarstellung zu
ZerosPolesGain.Siehe auch
Hinweise
Das Ändern des Werts von Eigenschaften, die nicht Teil der
TransferFunction-Systemdarstellung sind (wie die Zustandsraummatrizen A, B, C, D), ist sehr ineffizient und kann zu numerischen Ungenauigkeiten führen. Es ist besser, zuerst in die spezifische Systemdarstellung zu konvertieren. Rufen Sie zum Beispielsys = sys.to_ss()auf, bevor Sie auf die Zustandsraummatrizen A, B, C, D 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.s^2 + 3s + 5oderz^2 + 3z + 5würden als[1, 3, 5]dargestellt werden)Beispiele
Konstruieren Sie die Übertragungsfunktion \(H(s) = \frac{s^2 + 3s + 3}{s^2 + 2s + 1}\)
>>> from scipy import signal
>>> num = [1, 3, 3] >>> den = [1, 2, 1]
>>> signal.TransferFunction(num, den) TransferFunctionContinuous( array([1., 3., 3.]), array([1., 2., 1.]), dt: None )
Konstruieren Sie die Übertragungsfunktion \(H(z) = \frac{z^2 + 3z + 3}{z^2 + 2z + 1}\) mit einer Abtastzeit von 0,1 Sekunden
>>> signal.TransferFunction(num, den, dt=0.1) TransferFunctionDiscrete( array([1., 3., 3.]), array([1., 2., 1.]), dt: 0.1 )