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.
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.
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.
État | Décomposition | Raison |
---|---|---|
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 queFAN2
. Il peut s’activer indépendamment du fait queFAN2
soit activé ou désactivé.FAN2
est exécuté en deuxième car il se déclenche à une température plus élevée queFAN1
. Il peut s’activer uniquement siFAN1
est déjà activé.SpeedValue
est exécuté en dernier afin de pouvoir observer l’état le plus récent deFAN1
etFAN2
.
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®.
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 airflow | Description | Facteur d’activité de refroidissement kCool |
---|---|---|
0 | Aucun ventilateur ne fonctionne. La valeur de temp ne diminue pas. | 0 |
1 | Un ventilateur fonctionne. La valeur de temp diminue en fonction du facteur d’activité de refroidissement. | 0.05 |
2 | Les 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.