BlockWerk Dokumentation
A-B-C-D (z)

Discrete State-Space

Discrete

Der Discrete State-Space-Block implementiert ein zeitdiskretes lineares Zustandsraummodell (State-Space-System). Bei jedem Abtastschritt aktualisiert er den internen Zustandsvektor anhand der Rekursionsgleichungen und berechnet anschließend den Ausgang als Linearkombination des aktuellen Zustands und des Eingangs. Der Block entspricht der z-Bereichs-Matrixübertragungsfunktion H(z) = C(zI - A)^-1 B + D.

Typische Anwendungsbereiche umfassen die Modellierung zeitdiskreter Regelstrecken, Beobachter- und Schätzerdynamiken, vorberechnete digitale Filter in Zustandsraumdarstellung sowie beliebige lineare Systeme, die aus einem zeitkontinuierlichen Entwurf über Zero-Order-Hold (ZOH) oder Tustin-Verfahren diskretisiert wurden.

In BlockWerk simulieren

Interaktive Sandbox direkt im Browser — keine Installation, WebAssembly-Engine.

In BlockWerk simulieren →

Mathematisches Modell

x[k+1]=Ax[k]+Bu[k]y[k]=Cx[k]+Du[k]\begin{aligned} x[k+1] &= Ax[k] + Bu[k] \\ y[k] &= Cx[k] + Du[k] \end{aligned}

Wobei:

  • x[k] — Zustandsvektor bei Schritt k (Länge n, Systemordnung)
  • u[k] — Eingangsvektor bei Schritt k (entspricht der Spaltenanzahl von B)
  • y[k] — Ausgangsvektor bei Schritt k (entspricht der Zeilenanzahl von C)
  • A — n×n Zustandsübergangsmatrix (Systemmatrix)
  • B — n×m Eingangsmatrix
  • C — p×n Ausgangsmatrix
  • D — p×m Durchgangsmatrix (Direct-Feedthrough)
  • k — diskreter Zeitindex; reale Zeit = k · sampleTime

Ein- & Ausgänge

Direction ID Label Typ Status
→ In u Input(s) number Required
← Out y Output(s) number Output

Parameter

Parameter Label Typ Standardwert Beschreibung
A A Matrix vector 0.9
B B Matrix vector 1
C C Matrix vector 1
D D Matrix vector 0
initialState Initial State vector 0
sampleTime Sample Time number 0.01

Anwendungsbeispiele

Tiefpassfilter 1. Ordnung bei 100 Hz

Ein diskreter Tiefpass 1. Ordnung mit Pol bei z = 0.9 und statischer Verstärkung (DC-Gain) von 1:

Step → DiscreteStateSpace → Display
       A=0.9  B=0.1  C=1  D=0  T=0.01s

System 2. Ordnung (Doppelintegrator, Euler)

Diskretisierter Doppelintegrator mit T = 0.01 s:

Force → DiscreteStateSpace → Position
        A=[1 0.01; 0 1]  B=[0.00005; 0.01]  C=[1 0]  D=0

Hinweise & Best Practices

  • Matrixdimensionen: A muss quadratisch sein (n×n). B muss n Zeilen besitzen. C muss n Spalten besitzen. D muss die gleiche Zeilenanzahl wie C und die gleiche Spaltenanzahl wie B aufweisen. Nicht übereinstimmende Dimensionen führen zu einem Simulationsfehler.
  • MIMO (Multi-Input / Multi-Output): Schließen Sie für MIMO-Systeme mehrere Signale an den Eingangsport an; der Block fasst diese in der Reihenfolge der Verbindung im u-Vektor zusammen.
  • Stabilität: Das System ist nur dann stabil, wenn alle Eigenwerte von A strikt innerhalb des Einheitskreises liegen. Eine instabile A-Matrix führt zu unbegrenztem Zustandswachstum.
  • Diskrete Zustände: Der Block reserviert intern bis zu 32 diskrete Zustandsslots; halten Sie die Systemordnung bei höchstens 32.
  • Abtastzeitanpassung: Wenn Sie diesen Block mit anderen diskreten Blöcken kombinieren, setzen Sie alle sampleTime-Werte einheitlich oder schalten Sie an der Schnittstelle einen Rate Transition-Block ein.

Verwandte Blöcke

  • RateTransition: Zum Überbrücken von Abtastratengrenzen bei Verbindung mit Subsystemen anderer Taktrate.
  • TransferFunction: Kontinuierliches Äquivalent; nützlich beim Entwurf im s-Bereich vor der Diskretisierung.
  • Integrator: Kontinuierliche Zustandsintegration; verwenden, wenn der globale Solver die Integration ausführt.