scipy.signal.

dlsim#

scipy.signal.dlsim(system, u, t=None, x0=None)[Quelle]#

Simuliert die Ausgabe eines diskreten linearen Systems.

Parameter:
systemdlti | tuple

Eine Instanz der LTI-Klasse dlti oder ein Tupel, das das System beschreibt. Die Anzahl der Elemente im Tupel bestimmt die Interpretation. D. h.

  • system: Instanz der LTI-Klasse dlti. Beachten Sie, dass abgeleitete Instanzen, wie z. B. Instanzen von TransferFunction, ZerosPolesGain oder StateSpace, ebenfalls zulässig sind.

  • (num, den, dt): Rationale Polynome, wie in TransferFunction beschrieben. Die Koeffizienten der Polynome sollten in absteigender Exponentenreihenfolge angegeben werden, z.B. z² + 3z + 5 würde als [1, 3, 5] dargestellt werden.

  • (zeros, poles, gain, dt): Nullstellen-, Pol-, Verstärkungsform, wie in ZerosPolesGain beschrieben.

  • (A, B, C, D, dt): Zustandsraumform, wie in StateSpace beschrieben.

uarray_like

Ein Eingabearray, das die Eingabe zu jedem Zeitpunkt t beschreibt (zwischen den gegebenen Zeiten wird eine Interpolation angenommen). Wenn es mehrere Eingänge gibt, stellt jede Spalte des Rang-2-Arrays einen Eingang dar.

tarray_like, optional

Die Zeitschritte, für die die Eingabe definiert ist. Wenn t angegeben ist, muss es die gleiche Länge wie u haben, und der Endwert in t bestimmt die Anzahl der Schritte, die in der Ausgabe zurückgegeben werden.

x0array_like, optional

Die Anfangsbedingungen für den Zustandsvektor (standardmäßig Null).

Rückgabe:
toutndarray

Zeitwerte für die Ausgabe als 1D-Array.

youtndarray

Systemantwort als 1D-Array.

xoutndarray, optional

Zeitentwicklung des Zustandsvektors. Wird nur generiert, wenn die Eingabe ein StateSpace-System ist.

Beispiele

Eine einfache Integrator-Übertragungsfunktion mit einem diskreten Zeitschritt von 1,0 könnte wie folgt implementiert werden:

>>> import numpy as np
>>> from scipy import signal
>>> tf = ([1.0,], [1.0, -1.0], 1.0)
>>> t_in = [0.0, 1.0, 2.0, 3.0]
>>> u = np.asarray([0.0, 0.0, 1.0, 1.0])
>>> t_out, y = signal.dlsim(tf, u, t=t_in)
>>> y.T
array([[ 0.,  0.,  0.,  1.]])