Porte coulissante
Les bibliothèques suivantes sont nécessaires :
Ressources :
Description du système
Une porte coulissante automatique doit s’ouvrir lorsqu’une personne se présente.
Source animation : https://sitelec.org/flash/exercices_grafcet.htm
Elle est dotées de différents capteurs :
- 4 capteurs de position (ToR) :
- S1 : position fermée
- S2 : position « presque » fermée
- S3 : position « presque » ouverte
- S4 : position ouverte
- 1 capteur de présence (ToR) :
- S5 : indique qu’une personne se présente devant la porte
Le moteur se commande par 4 variables binaires :
- KM1 : ouverture
- KM2 : fermeture
- KM3 : grande vitesse
- KM4 : petite vitesse
Comportement attendu
Porte fermée, la détection de la présence d’une personne avec S5 provoque l’ouverture de la porte à grande vitesse. Lorsque la porte est presque ouverte (S3) le mouvement ralentit, puis s’arrête lorsque la porte est complètement ouverte (S4).
10 secondes plus tard, la porte se referme, à grande vitesse au début, puis à vitesse réduite lorsqu’elle est presque fermée (S2), et enfin s’arrête lorsqu’elle est complètement fermée (S1).
Si une personne s’attarde ou se présente en phase de fermeture (S5) la porte s’ouvre à nouveau.
Travail demandé
- Modèle MATLAB/Stateflow à télécharger : Porte_coullissante.slx
Lancer la simulation et tester le fonctionnement de la porte coulissante, en essayant d’envisager tous les scénarios possibles.
On constate que lorsqu’une personne se présente devant la porte alors qu’elle commence juste à se refermer (entre les capteurs S3 et S4), alors elle s’ouvre à grande vitesse ! Cela pose un problème : pour des raisons de dynamique, la porte doit arriver en butée à petite vitesse (cela évite les chocs trop importants).
Pour éviter cela, il faudrait connaître à tout instant la position de la porte :
- Complètement fermée
- Entre S1 et S2
- Entre S2 et S3,
- Entre S3 et S4
- Complètement ouverte
Pour cela on se propose de rajouter un super-état contenant chacun de ces états de la porte.
Un super-état est un état qui en contient d’autres.
Le plus souvent, on souhaite que chaque super-état d’un diagramme fonctionne en parallèle :
Cliquer-droit sur le fond du diagramme et sélectionner Decomposition/Parallel (AND)A présent, les états du diagramme apparaissent en pointillés :
Et chacun doit comporter un état doté d’une transition par défaut :
Il est interdit de faire des transitions d’un super-état à un autre !!
Pour qu’une transition puisse opérer, on utilise les variables d’états, sous la forme : in(nom_superetat.nom_etat)
Exemple : le super-état Tapis_arrivee
peut utiliser la variable in(Systeme.ON)
Lancer la simulation et tester le fonctionnement de la porte coulissante : vérifier que la position réelle de la porte correspond bien à l’état actif du super-état « Position ».
- « Sens »: qui gère le sens du mouvement de la porte (et son arrêt)
- « Vitesse » : qui gère la vitesse du mouvement
Lancer la simulation et tester le fonctionnement de la porte coulissante : vérifier bien que le problème évoqué après la question 2 est bien résolu !.