Main Content

Modéliser des sous-systèmes synchrones au moyen du parallélisme

Pour implémenter des modes de fonctionnement qui s’exécutent simultanément, utilisez le parallélisme dans votre diagramme Stateflow®. Par exemple, lors du design d’un système complexe, vous pouvez utiliser des états parallèles pour modéliser des composants ou des sous-systèmes indépendants qui sont actifs simultanément. Pour plus d’informations, veuillez consulter Modéliser des machines à états finis.

Décomposition des états

Les diagrammes Stateflow peuvent combiner des états exclusifs (OR) et des états parallèles (AND) :

  • Les états exclusifs (OR) représentent des modes de fonctionnement mutuellement exclusifs. Deux états exclusifs de même niveau hiérarchique ne peuvent pas être actifs ou exécutés simultanément. Stateflow représente chaque état exclusif par un rectangle plein.

    Stateflow chart with two exclusive (OR) states.

  • Les états parallèles (AND) représentent des modes de fonctionnement indépendants. Deux ou plusieurs états parallèles peuvent être actifs simultanément, bien qu’ils soient exécutés en série. Stateflow représente chaque état parallèle par un rectangle en pointillés avec un numéro indiquant son ordre d’exécution.

    Stateflow chart with two parallel (AND) states.

Tous les états d’un niveau hiérarchique donné doivent appartenir au même type. L’état parent, ou dans le cas d’états de niveau supérieur, le diagramme lui-même, possède une décomposition OR (exclusif) ou AND (parallèle). Le type de décomposition de l’état par défaut est OR (exclusif). Pour modifier le type de décomposition, cliquez avec le bouton droit sur l’état parent et sélectionnez Decomposition > AND (Parallel).

Exemple de décomposition parallèle

Cet exemple utilise le parallélisme pour implémenter un contrôleur de l’air qui maintient la température de l’air à 120 degrés dans un système physique.

Le contrôleur utilise deux ventilateurs. Le premier ventilateur se déclenche lorsque la température de l’air dépasse 120 degrés. Le deuxième ventilateur fournit un refroidissement supplémentaire lorsque la température de l’air dépasse 150 degrés. Le diagramme modélise ces ventilateurs comme des états parallèles FAN1 et FAN2, tous deux actifs lorsque le contrôleur est sous tension. À l’exception de leurs seuils de fonctionnement, les ventilateurs possèdent une configuration identique d’états et de transitions qui reflète leurs deux modes de fonctionnement (On et Off).

Un troisième état parallèle SpeedValue calcule la valeur des données de sortie airflow en fonction du nombre de ventilateurs qui se sont mis en marche à chaque pas de temps. L’expression booléenne in(FAN1.On) a pour valeur 1 lorsque l’état On de FAN1 est actif. Sinon, in(FAN1.On) est égal à 0. De même, la valeur de in(FAN2.On) indique si FAN2 a été activé ou désactivé. La somme de ces expressions indique le nombre de ventilateurs allumés à chaque pas de temps.

Combiner des états exclusifs (OR) et parallèles (AND)

Le tableau suivant présente les raisons de l’utilisation d’états exclusifs (OR) et parallèles (AND) dans le diagramme du contrôleur de l’air.

ÉtatDécompositionRaison
PowerOff, PowerOnÉtats exclusifs (OR)Le contrôleur ne peut pas être sous et hors tension en même temps.
FAN1, FAN2États parallèles (AND)Les ventilateurs fonctionnent comme des composants indépendants qui sont activés ou désactivés en fonction du niveau de refroidissement nécessaire.
FAN1.On, FAN1.OffÉtats exclusifs (OR)Le ventilateur 1 ne peut pas être activé et désactivé en même temps.
FAN2.On, FAN2.OffÉtats exclusifs (OR)Le ventilateur 2 ne peut pas être activé et désactivé en même temps.
SpeedValueÉtat parallèle (AND)SpeedValue représente un sous-système indépendant qui surveille l’état des ventilateurs à chaque pas de temps.

Remarque

Pour attribuer aux objets des identifiants uniques lorsqu’ils portent le même nom dans différentes parties de la hiérarchie du diagramme, utilisez la notation par points, comme Fan1.On et Fan2.On. Pour plus d’informations, veuillez consulter Identify Data by Using Dot Notation.

Ordre d’exécution des états parallèles

Bien que FAN1, FAN2 et SpeedValue soient actifs simultanément, ces états sont exécutés en série pendant la simulation. Les numéros situés dans les coins supérieurs droits des états précisent l’ordre d’exécution. La raison de cet ordre d’exécution est la suivante :

  • FAN1 est exécuté en premier car il se déclenche à une température plus basse que FAN2. Il peut s’activer indépendamment du fait que FAN2 soit activé ou désactivé.

  • FAN2 est exécuté en deuxième car il se déclenche à une température plus élevée que FAN1. Il peut s’activer uniquement si FAN1 est déjà activé.

  • SpeedValue est exécuté en dernier afin de pouvoir observer l’état le plus récent de FAN1 et FAN2.

Par défaut, Stateflow attribue l’ordre d’exécution des états parallèles en fonction de leur ordre de création dans le diagramme. Pour modifier l’ordre d’exécution d’un état parallèle, cliquez avec le bouton droit sur l’état et sélectionnez une valeur dans la liste déroulante Execution Order.

Explorer l’exemple

L’exemple Stateflow contient un diagramme Stateflow et un sous-système Simulink®.

Simulink model that simulates an air controller system.

En fonction de la température de l’air temp, le diagramme Air Controller active les ventilateurs et transmet la valeur de airflow au sous-système Physical Plant. Cette valeur de sortie détermine le niveau d’activité de refroidissement, comme indiqué dans le tableau suivant.

Valeur de airflowDescriptionFacteur d’activité de refroidissement kCool
0Aucun ventilateur ne fonctionne. La valeur de temp ne diminue pas.0
1Un ventilateur fonctionne. La valeur de temp diminue en fonction du facteur d’activité de refroidissement.0.05
2Les deux ventilateurs fonctionnent. La valeur de temp diminue en fonction du facteur d’activité de refroidissement.0.1

Le bloc Physical Plant met à jour la température de l’air dans l’installation sur la base des équations

temp(0) = TInitial

temp'(t) = (TAmbient - temp(t))·(kHeat - kCool),

où :

  • TInitial est la température initiale (par défaut = 70o)

  • TAmbient est la température ambiante (par défaut = 160o)

  • kHeat est le facteur de transfert de chaleur de l’installation (par défaut = 0,01)

  • kCool est le facteur de l’activité de refroidissement correspondant à airflow

La nouvelle valeur de temp détermine le niveau de refroidissement au prochain pas de temps de la simulation.

Sujets associés