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
dltioder ein Tupel, das das System beschreibt. Die Anzahl der Elemente im Tupel bestimmt die Interpretation. D. h.system: Instanz der LTI-Klassedlti. Beachten Sie, dass abgeleitete Instanzen, wie z. B. Instanzen vonTransferFunction,ZerosPolesGainoderStateSpace, ebenfalls zulässig sind.(num, den, dt): Rationale Polynome, wie inTransferFunctionbeschrieben. 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 inZerosPolesGainbeschrieben.(A, B, C, D, dt): Zustandsraumform, wie inStateSpacebeschrieben.
- 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.
Siehe auch
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.]])