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

Discrete State-Space

Discrete

Le bloc Discrete State-Space implémente un système linéaire en représentation d'état à temps discret. À chaque instant d'échantillonnage, il fait évoluer le vecteur d'état interne à l'aide des équations de récurrence, puis calcule la sortie sous la forme d'une combinaison linéaire de l'état actuel et de l'entrée. Le bloc est équivalent à la fonction de transfert matricielle dans le domaine en z H(z) = C(zI - A)^-1 B + D.

Les applications typiques incluent l'implémentation de modèles de procédés discrets, la dynamique d'observateurs ou d'estimateurs, les filtres numériques prédéfinis exprimés sous forme d'état, et tout système linéaire discrétisé à partir d'une conception en temps continu via un bloqueur d'ordre zéro (ZOH) ou la méthode de Tustin.

Simuler dans BlockWerk

Bac à sable interactif directement dans votre navigateur — aucune installation, moteur WebAssembly.

Simuler dans BlockWerk →

Modèle Mathématique

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}

Où :

  • x[k] — vecteur d'état au pas k (longueur n, ordre du système)
  • u[k] — vecteur d'entrée au pas k (correspond au nombre de colonnes de B)
  • y[k] — vecteur de sortie au pas k (correspond au nombre de lignes de C)
  • A — matrice d'état (transition) n×n
  • B — matrice d'entrée (commande) n×m
  • C — matrice de sortie (observation) p×n
  • D — matrice d'action directe (feedthrough) p×m
  • k — indice de temps discret ; temps réel = k · sampleTime

Entrées & Sorties

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

Paramètres

Paramètres Label Type Défaut Description
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

Exemples d'Utilisation

Filtre passe-bas du premier ordre à 100 Hz

Un passe-bas discret du premier ordre avec un pôle en z = 0.9 et un gain statique unitaire :

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

Système du second ordre (double intégrateur, Euler)

Double intégrateur discrétisé avec T = 0.01 s :

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

Remarques & Bonnes Pratiques

  • Dimensions matricielles : A doit être carrée (n×n). B doit avoir n lignes. C doit avoir n colonnes. D doit avoir le même nombre de lignes que C et le même nombre de colonnes que B. Des dimensions incompatibles produiront une erreur de simulation.
  • Entrées / sorties multiples (MIMO) : Connectez plusieurs signaux au port d'entrée pour les systèmes MIMO ; le bloc les empile dans le vecteur u selon l'ordre de connexion.
  • Stabilité : Le système est stable uniquement lorsque toutes les valeurs propres de A se situent strictement à l'intérieur du cercle unité. Une matrice A instable entraînera une divergence infinie de l'état.
  • États discrets : Le bloc alloue en interne jusqu'à 32 emplacements d'état discret ; maintenez l'ordre du système inférieur ou égal à 32.
  • Harmonisation de la période d'échantillonnage : Lors du mélange de ce bloc avec d'autres blocs discrets, réglez toutes les valeurs de sampleTime de manière cohérente ou insérez un bloc Rate Transition à la transition.

Composants Associés

  • RateTransition : À utiliser pour franchir les frontières de fréquence d'échantillonnage lors de la connexion à des sous-systèmes fonctionnant à une cadence différente.
  • TransferFunction : Équivalent en temps continu ; à utiliser pour la conception dans le domaine en s avant discrétisation.
  • Integrator : Accumulation d'état en temps continu ; à utiliser à la place de DiscreteStateSpace lorsque le solveur global gère l'intégration.