scipy.signal.

ZerosPolesGain#

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

Klasse für lineare zeitinvariante Systeme in Nullstellen-, Polstellen-, Verstärkungs-Form.

Stellt das System als kontinuierliche oder diskrete Zeitübertragungsfunktion \(H(s)=k \prod_i (s - z[i]) / \prod_j (s - p[j])\) dar, wobei \(k\) der gain, \(z\) die zeros und \(p\) die poles sind. ZerosPolesGain-Systeme erben zusätzliche Funktionalität von den Klassen lti bzw. dlti, abhängig davon, welche Systemdarstellung verwendet wird.

Parameter:
*systemArgumente

Die Klasse ZerosPolesGain kann mit 1 oder 3 Argumenten instanziiert werden. Das Folgende gibt die Anzahl der Eingabeargumente und ihre Interpretation an

dt: float, optional

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

Attribute:
dt

Gibt die Abtastzeit des Systems zurück, bei lti-Systemen None.

Verstärkung

Verstärkung des ZerosPolesGain Systems.

poles

Polstellen des ZerosPolesGain Systems.

zeros

Nullstellen des ZerosPolesGain Systems.

Methoden

to_ss()

Konvertiert Systemrepräsentation in StateSpace.

to_tf()

Konvertiert die Systemrepräsentation zu TransferFunction.

to_zpk()

Gibt eine Kopie des aktuellen 'ZerosPolesGain'-Systems zurück.

Hinweise

Das Ändern des Werts von Eigenschaften, die nicht Teil der ZerosPolesGain Systemdarstellung sind (wie z. B. 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 Beispiel sys = sys.to_ss() auf, bevor Sie auf die Zustandsraummatrizen A, B, C, D zugreifen/diese ändern.

Beispiele

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

>>> from scipy import signal
>>> signal.ZerosPolesGain([1, 2], [3, 4], 5)
ZerosPolesGainContinuous(
array([1, 2]),
array([3, 4]),
5,
dt: None
)

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

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