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

Discrete State-Space

Discrete

Het Discrete State-Space-blok implementeert een discreet-tijd lineair toestandsruimtemodel (state-space systeem). Bij elke bemonsteringsstap actualiseert het de interne toestandsvector via de recurrente vergelijkingen en berekent vervolgens de uitgang als een lineaire combinatie van de huidige toestand en de ingang. Het blok is equivalent aan de matrixoverdrachtsfunctie in het z-domein H(z) = C(zI - A)^-1 B + D.

Typische toepassingen zijn het modelleren van discrete processen (plant models), waarnemer-/schatterdynamica (observers/estimators), vooraf ontworpen digitale filters in toestandsruimtevorm, en elk lineair systeem dat is gediscretiseerd vanuit een continu-tijd ontwerp via nulde-orde hold (ZOH) of Tustin-methoden.

Simuleren in BlockWerk

Interactieve sandbox direct in je browser — geen installatie, aangedreven door WebAssembly.

Simuleren in BlockWerk →

Wiskundig Model

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}

Waarbij:

  • x[k] — toestandsvector op stap k (lengte n, de systeemorde)
  • u[k] — ingangsvector op stap k (komt overeen met het aantal kolommen van B)
  • y[k] — uitgangsvector op stap k (komt overeen met het aantal rijen van C)
  • A — n×n toestandsovergangsmatrix (systeemmatrix)
  • B — n×m ingangsmatrix
  • C — p×n uitgangsmatrix
  • D — p×m directe doorvoermatrix
  • k — discrete tijdsindex; reële tijd = k · sampleTime

Ingangen & Uitgangen

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

Parameters

Parameters Label Type Standaard Beschrijving
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

Gebruiksvoorbeelden

Eerste-orde laagdoorlaatfilter op 100 Hz

Een discreet eerste-orde laagdoorlaatfilter met een pool op z = 0.9 en een DC-versterking van 1:

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

Tweede-orde systeem (dubbele integrator, Euler)

Gediscretiseerde dubbele integrator met T = 0.01 s:

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

Opmerkingen & Best Practices

  • Matrixafmetingen: A moet vierkant zijn (n×n). B moet n rijen hebben. C moet n kolommen hebben. D moet hetzelfde aantal rijen als C hebben en hetzelfde aantal kolommen als B. Niet-overeenkomende afmetingen leiden tot een simulatiefout.
  • Multi-input / multi-output: Sluit meerdere signalen aan op de ingangspoort voor MIMO-systemen; het blok stapelt deze in aansluitvolgorde in de u-vector.
  • Stabiliteit: Het systeem is uitsluitend stabiel wanneer alle eigenwaarden van A strikt binnen de eenheidscirkel liggen. Een instabiele A-matrix zorgt ervoor dat de toestand onbegrensd toeneemt.
  • Discrete toestanden: Het blok wijst intern maximaal 32 discrete toestandsposities toe; houd de systeemorde op of onder 32.
  • Bemonsteringstijduitlijning: Wanneer dit blok wordt gecombineerd met andere discrete blokken, stel dan alle sampleTime-waarden consistent in of voeg een Rate Transition-blok in op de overgang.

Gerelateerde Componenten

  • RateTransition: Te gebruiken om bemonsteringsfrequentiegrenzen te overbruggen bij het aansluiten op subsystemen met een andere frequentie.
  • TransferFunction: Continu-tijd equivalent; te gebruiken bij het ontwerpen in het s-domein voorafgaand aan discretisatie.
  • Integrator: Continu-tijd toestandsaccumulatie; te gebruiken in plaats van DiscreteStateSpace wanneer de globale solver de integratie verzorgt.