Contenu principal

La traduction de cette page n'est pas à jour. Cliquez ici pour voir la dernière version en anglais.

Présentation des machines de Mealy et de Moore

Dans une machine à états finis, l’état est une combinaison de données locales et d’activités du diagramme. « Calculer l’état » signifie mettre à jour les données locales et faire passer les transitions d’un état actif actuellement à un nouvel état. Dans les modèles de machine à états, le prochain état est une fonction de l’état actuel et de ses entrées :

X(n+1)=f(X(n),u)

Dans cette équation :

  • X(n) représente l’état au pas de temps n.

  • X(n+1) représente l’état au prochain pas de temps n+1.

  • u représente les entrées.

L’état persiste d’un pas de temps au prochain pas de temps.

Sémantique des machines de Mealy et de Moore

Les machines de Mealy et de Moore sont souvent considérées comme les paradigmes industriels standard de base pour la modélisation des machines à états finis. Vous pouvez créer des diagrammes qui implémentent la sémantique pure de Mealy ou de Moore comme sous-ensemble de sémantique de diagramme Stateflow®. Vous pouvez utiliser les diagrammes de Mealy et de Moore pour la simulation et la génération de code avec Embedded Coder®, Simulink® Coder™ et le software HDL Coder™. La sémantique de Mealy et de Moore n’est pas supportée dans les diagrammes Stateflow autonomes de MATLAB®.

Sémantique des diagrammes de Mealy

Les machines de Mealy sont des machines à états finis dans lesquelles les transitions se produisent sur des fronts d’horloge. La sortie d’un diagramme de Mealy est une fonction d’entrées et d’état :

y=g(X,u)

À chaque pas de temps, un diagramme de Mealy s’active, évalue son entrée et effectue une transition vers une nouvelle configuration d’états actifs, aussi appelée nouvel état. Le diagramme calcule sa sortie en effectuant sa transition vers le prochain état.

Pour garantir que la sortie est une fonction d’entrée et d’état, les machines à états de Mealy appliquent cette sémantique :

  • Les sorties ne dépendent pas du prochain état.

  • Le diagramme calcule les sorties uniquement dans les transitions, pas dans les états.

  • Le diagramme s’active périodiquement en fonction d’une horloge de système.

Les machines de Mealy calculent leur sortie sur les transitions. Par conséquent, les diagrammes de Mealy peuvent calculer leur première sortie au moment où la trajectoire par défaut pour le diagramme s’exécute. Si vous activez la propriété de diagramme Execute (enter) Chart At Initialization pour un diagramme de Mealy, ce calcul se produit à t = 0 (premier pas de temps). Sinon, il se produit à t = 1 (prochain pas de temps). Pour plus d’informations, veuillez consulter Execute (enter) chart at initialization.

Sémantique des diagrammes de Moore

Les machines de Moore sont des machines à états finis dans lesquelles la sortie est modifiée aux fronts d’horloge. La sortie d’un diagramme de Moore est une fonction d’état uniquement :

y=g(X)

À chaque pas de temps, un diagramme de Moore s’active, calcule sa sortie, puis évalue son entrée pour se reconfigurer pour le prochain pas de temps. Par exemple, après avoir évalué son entrée, le diagramme peut effectuer une transition vers une nouvelle configuration d’états actifs. Le diagramme calcule sa sortie avant d’évaluer son entrée et de mettre à jour son état.

Pour garantir que la sortie est une fonction de l’état actuel uniquement, les machines à états de Moore appliquent cette sémantique :

  • Les sorties ne dépendent pas des entrées.

  • Les sorties ne dépendent pas des sorties précédentes.

  • Les sorties ne dépendent pas de la logique temporelle.

Les machines de Moore calculent leur sortie en états. Par conséquent, les machines de Moore ne peuvent calculer des sorties qu’après l’exécution de la trajectoire par défaut. Jusqu’à ce moment-là, les sorties prennent les valeurs par défaut.

Création de diagrammes de Mealy et de Moore

Quand vous créez un diagramme Stateflow, le type par défaut est un modèle de machine à états hybride appelé diagramme classique. Les diagrammes classiques combinent la sémantique des diagrammes de Mealy et de Moore et la sémantique étendue des diagrammes Stateflow.

Pour créer un diagramme de Measly, à l’invite de commande de MATLAB, saisissez :

sfnew -Mealy

Block icon for Mealy chart.

Pour créer un diagramme de Moore, à l’invite de commande de MATLAB, saisissez :

sfnew -Moore

Block icon for Moore chart.

Après avoir ajouté un bloc de diagramme Stateflow à un modèle Simulink, vous pouvez également choisir le type de sémantique du diagramme en définissant la propriété de diagramme State Machine Type.

Avantages des diagrammes de Mealy et de Moore

Les diagrammes de Mealy et de Moore offrent les avantages suivants par rapport aux diagrammes Stateflow classiques :

  • Vous pouvez vérifier que les diagrammes de Mealy et de Moore que vous créez sont conformes à leurs définitions formelles et aux règles sémantiques. Les messages d’erreur apparaissent au moment de la compilation (pas au moment du design).

  • Les diagrammes de Moore offrent une implémentation plus efficace que les diagrammes classiques pour les cibles C/C++ et HDL.

  • Vous pouvez utiliser un diagramme de Moore pour modéliser une boucle de rétroaction. Dans les diagrammes de Moore, les entrées n’ont pas de passage direct. Vous pouvez concevoir une boucle avec rétroaction du port de sortie vers le port d’entrée sans introduire une boucle algébrique. Les diagrammes de Mealy et classiques ont un passage direct et produisent une erreur en présence d’une boucle algébrique.

    Simulink model containing a Moore chart in a feedback loop.

Voir aussi

Rubriques