Les Réseaux de Petri (RdP)

Transcription

Les Réseaux de Petri (RdP)
Les Réseaux de Petri (RdP)
Exemples d'étude
Les Réseaux de Petri (RdP)
Exemple d'étude n°1 :
Processus chimique flexible
Processus chimique flexible
„
Modélisation pour la conception de ce système.
„
2 type de produits, suivant la recette utilisée :
„
Les transferts entre les deux réacteurs s'effectuent à l'aide d'un
robot, mais on suppose ne pas avoir à gérer ce robot
(simplification).
„
Pas de réservoirs intermédiaires.
„
Ici : pas de considération du tps, modéliser en RdP de base
[email protected]
Polytech' Montpellier, ERII4 - Cours "Automatismes et SED"
3
„
Cas d'un seul lot à fabriquer :
„
Analyse énumérative :
{
{
„
Analyse structurelle :
{
{
„
réseau borné
réseau vivant
Toutes transitions dans
des T- invariants
Toutes places dans des
P-invariants
Tous semble correct !
[email protected]
Polytech' Montpellier, ERII4 - Cours "Automatismes et SED"
4
„
Cas de deux lots à fabriquer :
„
Analyse énumérative :
{
{
{
„
„
Et pourtant..
Analyse structurelle :
{
{
„
⇒
réseau borné
réseau NON VIVANT
Il y a un deadlock !!
Toutes transitions dans
des T-invariants
Toutes places dans des
P-invariants
D’où vient le pb ?
Les réservoirs sont bloqués
lorsque les recettes sont
commencées simultanément.
[email protected]
Polytech' Montpellier, ERII4 - Cours "Automatismes et SED"
5
„
Autre implémentation possible :
Pour représenter de façon +
réaliste le stock limité.
„
Un cycle = la totalité des produits
on été traités.
[email protected]
Polytech' Montpellier, ERII4 - Cours "Automatismes et SED"
6
„
On rajoute une exclusion
mutuelle.
„
On obtient un réseau
borné et vivant même
pour plusieurs lots.
„
Rmq : mais on a perdu
l'intérêt du parallélisme !!
[email protected]
Inutiles
maintenant
Polytech' Montpellier, ERII4 - Cours "Automatismes et SED"
7
Processus chimique flexible
„
Idée : réservoirs intermédiaires.
„
Conditions :
„
⇒
{
procédé ok (condition de température et
de pression à assurer pour le stockage)
{
coûts induits ok (coût réservoirs +
canalisations)
Hypothèses : le robot s'occupe également du
transfert entre les réacteurs et les réservoirs
intermédiaires.
conditions supp : robot ok
[email protected]
Polytech' Montpellier, ERII4 - Cours "Automatismes et SED"
8
„
Analyse énumérative :
{ réseau borné
{ réseau vivant
„
Analyse structurelle :
tout est ok
„
C'est correct.. du point de vue
comportemental des RdP.
⇒
Qu'en est il des propriétés
spécifiques au système ?????
[email protected]
Polytech' Montpellier, ERII4 - Cours "Automatismes et SED"
9
Processus chimique flexible
„
Suite de la validation :
{ Génération (automatique) du graphe des marquages;
{ Analyse détaillée de ce graphe (manuelle ou automatique).
[email protected]
Polytech' Montpellier, ERII4 - Cours "Automatismes et SED"
10
Nb de lots (initial)
Réservoir_pb
Processus chimique flexible
[email protected]
Réservoir_pa
Polytech' Montpellier, ERII4
- Cours "Automatismes et SED"
11
Processus chimique flexible
„
Suite de la validation :
{ Génération (automatique) du graphe des marquages;
{ Analyse détaillée de ce graphe (manuelle ou automatique).
„
On constate que certains marquages ont 2 jetons dans un des réservoirs.
On a oublié de spécifier que les réservoirs ne contiennent qu'une seule
charge.
Rajouter au modèle une gestion de la ressource "réservoir".
⇒
⇒
„
CONCLUSION :
La validation des propriétés comportementales des RdP ne suffit
pas à valider un modèle. Il faut également vérifier les propriétés
spécifiques extraites du cahier des charges.
[email protected]
Polytech' Montpellier, ERII4 - Cours "Automatismes et SED"
12
Les Réseaux de Petri (RdP)
Exemple d'étude n°2 :
Atelier robotisé de production
Plan
„
Modélisation du système
{
{
„
Validation du modèle
{
{
{
„
Extension 1 : compteurs de pièces
Extension 2 : séquence de démarrage
Modèle "normal"
Modèle avec compteurs de pièces
Modèle avec séquence de démarrage
Mise en œuvre
[email protected]
Polytech' Montpellier, ERII4 - Cours "Automatismes et SED"
14
Les Réseaux de Petri (RdP)
Modélisation
Cahier des charges
„
„
„
„
„
⇒
Usinage de pièces par 2 machines, M1 et M2
Transport des pièces par un seul Robot
Stock de pièces
Hypothèse : dès qu'elles sont usinées, les pièces sont
évacuées manuellement de façon immédiate.
⇒ on ne s'en préoccupe pas.
Mise en œuvre par MEF
Décomposition nécessaire pendant
la modélisation
[email protected]
• MEF = Machine à état fini
• Représentation du fonctionnement par
un cycle à 1 seul jeton.
• Ce jeton représente l'état du système
Polytech' Montpellier, ERII4 - Cours "Automatismes et SED"
16
Prise en compte du procédé
„
Capteurs disponibles :
{
{
{
{
„
Piece_M1 : fin du transport d'une pièce sur M1
Piece_M2 : idem sur M2
Fin_US1 : fin de l'action usinage de la machine M1
Fin_US2 : idem pour M2
Actionneurs disponibles :
{
{
{
{
TR1 : transport d'une pièce sur M1
TR2 : transport d'une pièce sur M2
US1 : usinage de la machine M1
US2 : usinage de la machine M2
[email protected]
Polytech' Montpellier, ERII4 - Cours "Automatismes et SED"
17
Prise en compte du procédé
⇒ Utilisation des RdP interprétés.
ƒ
Attention : pas de capteurs "Robot libre" ou "M1 libre".
⇒ Il faut gérer cela par partage de ressource.
ƒ
Pas de précision sur la quantité
du stock : on le suppose infini, on ne le gère pas.
[email protected]
Polytech' Montpellier, ERII4 - Cours "Automatismes et SED"
18
Décomposition matérielle
„
Décomposition matérielle :
{
{
{
{
3 modules possibles : M1, M2 et le Robot.
Pour simplifier, on ne va décomposer qu'en 2 modules
M1 et M2.
Les actions TR1 et TR2 seront considérées comme
appartenant à la commande de M1 (resp. M2).
Le robot sera considéré comme une ressource
partagée entre M1 et M2.
[email protected]
Polytech' Montpellier, ERII4 - Cours "Automatismes et SED"
19
Modélisation des 2 machines
!!! : ces 2 actions utilisent la
ressource Robot
Représentation de l'état
intermédiaire avant le
démarrage de l'usinage.
„
Etats possibles de M1 :
{ M1 libre
{ TR1 (Piece_M1)
{ Pièce sur M1
{ US1 (Fin_US1)
[email protected]
Piece_M1
Piece_M2
(instantané)
Fin_US1
Polytech' Montpellier, ERII4 - Cours "Automatismes et SED"
Fin_US2
20
Modèle complet du système
ressource
partagée
[email protected]
Polytech' Montpellier, ERII4 - Cours "Automatismes et SED"
21
Modèle du système – extension 1
Piece_M1
Piece_M2
Fin_US1
Fin_US2
Nb de pièces
usinées par M1
[email protected]
Polytech' Montpellier, ERII4 - Cours "Automatismes et SED"
22
Modèle du système – extension 2
Piece_M1
Piece_M2
Fin_US1
Fin_US2
Démarrage
Séquence de
démarrage du
système
[email protected]
Polytech' Montpellier, ERII4 - Cours "Automatismes et SED"
23
Les Réseaux de Petri (RdP)
Validation
Validation – Simulation
„
Exécution pas à pas : OK
„
Exécution aléatoire : OK
⇒ apparemment, pas de blocage, pas de pb..
¾ MAIS attention : la simulation n'est pas une méthode
d'analyse exhaustive.
[email protected]
Polytech' Montpellier, ERII4 - Cours "Automatismes et SED"
25
Validation – Analyse structurelle
„
⇒
„
„
„
Toutes les places sont couvertes
par des invariants.
le RdP est borné.
IP1 représente la ressource
Robot : ce jeton ne peut être
présent qu'en TR1 ou TR2 ou
RobotLibre.
IP2 représente la boucle de
commande de la machine M1; 1
seul jeton est présent dans cette
boucle; il représente l'état en
cours de la M1.
bornitude
Idem IP3 pour M2.
[email protected]
t0
t1
t2
t3
P-SEMI-FLOWS GENERATING SET ---------invariant
IP1 : {Robot Libre} TR1 TR2
IP2 : {M1 Libre} {Piece sur M1} TR1 US1
IP3 : {M2 Libre} {Piece sur M2} TR2 US2
Polytech' Montpellier, ERII4 - Cours "Automatismes et SED"
26
Validation – Analyse structurelle
t0
„
⇒
t2
Toutes les transitions sont
couvertes par des invariants.
le RdP est vivant.
„
IT1 représente la commande
de la machine M1; les 4
transitions forment une boucle;
une transition de cette boucle
est tjs tirable.
„
Idem IT2 pour M2.
t1
t3
T-SEMI-FLOWS GENERATING SET ---------consistent
vivacité
IT1 : Fin_US1 Piece_M1 t0 t1
IT2 : Fin_US2 Piece_M2 t2 t3
[email protected]
Polytech' Montpellier, ERII4 - Cours "Automatismes et SED"
27
Validation – Graphe des marquages
M1Libre, M2Libre, RobotLibre
E0
t0
E1
FinUS1
M2Libre, TR1
t2
FinUS1
FinUS2
PieceM1
t1
M1Libre, PieceSurM2, RobotLibre
t2
t0
E14
M2Libre, RobotLibre, US1
E4 TR2, US1
PieceM2
E9
FinUS1
PieceM1
E8
t1
PieceSurM2, RobotLibre, US1
FinUS2
E11
M1Libre, RobotLibre, US2
t3
PieceSurM1, PieceSurM2, RobotLibre
t3
t0
TR1, US2
FinUS2
E12
PieceM1
PieceSurM1, RobotLibre, US2 E13
t3
[email protected]
t3
PieceSurM2, TR1
PieceM2
t1
E6
E7
PieceSurM1, TR2
t2
E5
PieceM2
E2 M2Libre, PieceSurM1, RobotLibre
E3
FinUS2
M1Libre, TR2
E10
t1
Polytech' Montpellier,
ERII4 US1,
- CoursUS2
"Automatismes et SED"
RobotLibre,
FinUS1
28
Validation – Analyse par énumération
REACHABILITY ANALYSIS ---------------------
réseau borné
Bounded
15 marking(s), 28 transition(s)
taille du GM
LIVENESS ANALYSIS -------------------------
réseau vivant
live
0 dead marking(s), 15 live marking(s)
0 dead transition(s), 8 live transition(s)
[email protected]
Polytech' Montpellier, ERII4 - Cours "Automatismes et SED"
29
Modèle complet du système
Piece_M1
Piece_M2
Fin_US1
Fin_US2
Nb de pièces
usinées par M1
[email protected]
Polytech' Montpellier, ERII4 - Cours "Automatismes et SED"
30
Validation – Simulation
„
La simulation montre une accumulation de jetons dans les places
Nb_p1 et Nb_p2.
⇒
Le réseau semble non borné.
„
Validation pour vérifier.
[email protected]
Polytech' Montpellier, ERII4 - Cours "Automatismes et SED"
31
Validation – Analyse structurelle
T-SEMI-FLOWS GENERATING SET ---------vivacité
„
not consistent
no semi-flows
Aucun T-invariant n'a été trouvé ⇒ pas de conclusion sur la vivacité..
P-SEMI-FLOWS GENERATING SET ---------not invariant
bornitude
IP1 : {Robot Libre} TR1 TR2
IP2 : {M1 Libre} {Piece sur M1} TR1 US1
IP3 : {M2 Libre} {Piece sur M2} TR2 US2
3 P-invariants ont été trouvés : les mêmes que précédemment.
„ Mais cette fois, toutes les places ne sont pas couvertes par des invariants…
⇒ Il est possible que le réseau ne soit pas borné.
„
[email protected]
Polytech' Montpellier, ERII4 - Cours "Automatismes et SED"
32
Validation – Graphe des marquages
M1Libre, M2Libre, RobotLibre
t0
E1
FinUS1
M2Libre, TR1
PieceM1
E2 M2Libre, PieceSurM1, RobotLibre
t1
E3
„
Début de construction du GM..
„
Successeur de E3 : E4, qui est un
marquage supérieur à E0
⇒ Le graphe est non borné
M2Libre, RobotLibre, US1
FinUS1
E4
E0
⇒ Graphe de couverture :
M1Libre, M2Libre, RobotLibre, Nb_p1
REACHABILITY ANALYSIS -------unbounded
Nb_p1 et Nb_p2 sont des compteurs : on peut
les enlever pour le reste de l'analyse (vivacité).
[email protected]
89 classe(s), 167 transition(s)
Polytech' Montpellier, ERII4 - Cours "Automatismes et SED"
33
Modèle complet du système
Piece_M1
Piece_M2
Fin_US1
Fin_US2
Démarrage
Séquence de
démarrage du
système
[email protected]
Polytech' Montpellier, ERII4 - Cours "Automatismes et SED"
34
Validation – Analyse structurelle
T-SEMI-FLOWS GENERATING SET ---------not consistent
vivacité
IT1 : Fin_US1 Piece_M1 t0 t1
IT2 : Fin_US2 Piece_M2 t2 t3
„
„
2 T-invariants (les mêmes que précédemment)
Mais toutes les transitions ne sont pas couvertes par des invariants => on ne sait pas.
P-SEMI-FLOWS GENERATING SET ---------invariant
bornitude
„
„
IP1
IP2
IP3
IP4
IP5
:
:
:
:
:
{Robot Libre} TR1 TR2
{M1 Libre} {Piece sur M1} TR1 US1 p0
{M2 Libre} {Piece sur M2} TR2 US2 p0
Nb_p1
Nb_p2
Toutes les places sont couvertes par des invariants => réseau borné.
2 nouveaux invariants : les places Nb_p1 et Nb_p2 qui ne seront jamais marquées.
[email protected]
Polytech' Montpellier, ERII4 - Cours "Automatismes et SED"
35
Validation – Graphe des marquages
p0, RobotLibre
Démarrage
M1Libre, M2Libre, RobotLibre
E0
t0
E1
FinUS1
M2Libre, TR1
t2
FinUS1
FinUS2
PieceM1
t1
M1Libre, PieceSurM2, RobotLibre
t2
t0
E14
M2Libre, RobotLibre, US1
E4 TR2, US1
PieceM2
E9
FinUS1
PieceM1
E8
t1
PieceSurM2, RobotLibre, US1
FinUS2
E11
M1Libre, RobotLibre, US2
t3
PieceSurM1, PieceSurM2, RobotLibre
t3
t0
TR1, US2
FinUS2
E12
PieceM1
PieceSurM1, RobotLibre, US2 E13
t3
[email protected]
t3
PieceSurM2, TR1
PieceM2
t1
E6
E7
PieceSurM1, TR2
t2
E5
PieceM2
E2 M2Libre, PieceSurM1, RobotLibre
E3
FinUS2
M1Libre, TR2
E10
t1
Polytech' Montpellier,
ERII4 US1,
- CoursUS2
"Automatismes et SED"
RobotLibre,
FinUS1
36
Validation – Analyse par énumération
REACHABILITY ANALYSIS ---------------------
réseau borné
bounded
16 marking(s), 29 transition(s)
taille du GM
LIVENESS ANALYSIS -------------------------
réseau
non vivant
not live
0 dead marking(s), 15 live marking(s)
0 dead transition(s), 8 live transition(s)
mais pas de deadlock et aucune
Rmq : en réalité, le réseau est quasi-vivant.
transition non vivante..
???
„ Idem pour la transition Démarrage
⇒ Le logiciel utilisé (TINA) n'est pas très précis dans ce domaine.
„
[email protected]
Polytech' Montpellier, ERII4 - Cours "Automatismes et SED"
37
Les Réseaux de Petri (RdP)
Remarque sur la modélisation
Modélisation : remarque
„
Il y a plusieurs façons d’envisager le passage d’un problème à un modèle.
„
ON PEUT PARTIR DE LA DESCRIPTION DES ACTIONS OU DE CELLE
DES COMPOSANTS MATERIELS
„
Exemples :
{
{
⇒
Pour le processus chimique :
„
On part de l’enchaînement des étapes de chaque recette
„
On associe une place à chaque étape les autres places décrivent l’occupation
du matériel par les produits (chaque réservoir est une ressource).
Pour le modèle de l’atelier flexible :
„
On part du découpage des composants physiques
„
On associe une place à chacun les transitions décrivent les transferts entre les
composants.
Au final, la description contient les deux (Actions et matériels)
[email protected]
Polytech' Montpellier, ERII4 - Cours "Automatismes et SED"
39
Les Réseaux de Petri (RdP)
Mise en œuvre logicielle
Langage C
Décomposition en MEF
„
Etats possibles de la machine M1 : M1_libre, TR1, piece_sur_M1 et US1
switch (Etat_M1)
{
case M1_libre :
break;
Piece_M1
case TR1 :
break;
case piece_sur_M1 :
break;
case US1 :
Fin_US1
break;
}
[email protected]
Polytech' Montpellier, ERII4 - Cours "Automatismes et SED"
41
Décomposition en MEF
„
Commande de la machine M1 :
switch (Etat_M1)
{
case M1_libre :
if (Robot_libre==1)
{Etat_M1=TR1; Robot_Libre=0;}
break;
case TR1 :
if (Piece_M1)
{Etat_M1=piece_sur_M1; Robot_libre=1;}
break;
case pièce_sur_M1 :
Etat_M1=US1;
break;
case US1 :
if (Fin_US1)
{Etat_M1=M1_libre; nb_pI++;}
break;
}
[email protected]
Polytech' Montpellier, ERII4 - Cours "Automatismes et SED"
int Robot_libre;
int nb_pI;
42
Décomposition en MEF
#define
#define
#define
#define
„
M2_libre
TR2
piece_sur_M2
US2
#define
#define
#define
#define
enum Etat_M1 {M1_libre, TR1, piece_sur_M1, US1};
enum Etat_M2 {M2_libre, TR2, piece_sur_M2, US2};
M1_libre
TR1
piece_sur_M1
US1
Commande de la machine M1 :
switch (Etat_M1)
{
case M1_libre :
if (Robot_libre==1)
{Etat_M1=TR1; Robot_Libre=0;}
break;
int Robot_libre;
int nb_pI, nb_pII;
„
Commande de la machine M2 :
switch (Etat_M2)
{
case M2_libre :
if (Robot_libre==1)
{Etat_M2=TR2; Robot_Libre=0;}
break;
case TR1 :
if (Piece_M1)
{Etat_M1=piece_sur_M1; Robot_libre=1;}
break;
case TR2 :
if (Piece_M2)
{Etat_M2=piece_sur_M2; Robot_libre=1;}
break;
case piece_sur_M1 :
Etat_M1=US1;
break;
case piece_sur_M2 :
Etat_M2=US2;
break;
case US1 :
if (Fin_US1)
{Etat_M1=M1_libre; nb_pI++;}
break;
case US2 :
if (Fin_US2)
{Etat_M2=M2_libre; nb_pI++;}
break;
}
[email protected]
}
Polytech' Montpellier, ERII4 - Cours "Automatismes et SED"
43
Mise en œuvre monotâche
„
Structure et exécution du code avec MEF, monotâche
(Rappel)
1 - Lecture des entrées : valeurs des capteurs
MEF1
2 - Application de contrôle
MEF2
MEF3
3 - Sorties : commandes des actionneurs
[email protected]
Polytech' Montpellier, ERII4 - Cours "Automatismes et SED"
44
Mise en œuvre monotâche
1 - Lecture des entrées : valeurs des capteurs
Lecture_Entrées (Piece_M1, Fin_US1, Piece_M2, Fin_US2);
2 - Application de contrôle
MEF1
switch (Etat_M1) {
case M1_libre :
if (Robot_libre==1) {Etat_M1=TR1; Robot_Libre=0;} break;
case TR1 :
if (Piece_M1) {Etat_M1=piece_sur_M1; Robot_libre=1;} break;
case piece_sur_M1 :
Etat_M1=US1; break;
case US1 :
if (Fin_US1) {Etat_M1=M1_libre; nb_pI++;} break;
}
MEF2
switch (Etat_M1) {
case M1_libre :
if (Robot_libre==1) {Etat_M1=TR1; Robot_Libre=0;} break;
case TR1 :
if (Piece_M1) {Etat_M1=piece_sur_M1; Robot_libre=1;} break;
case piece_sur_M1 :
Etat_M1=US1; break;
case US1 :
if (Fin_US1) {Etat_M1=M1_libre; nb_pI++;} break;
}
3 - Sorties : commandes des actionneurs
US1, TR2, US2);
[email protected]_Sorties (TR1,
Polytech' Montpellier, ERII4 - Cours "Automatismes et SED"
45
Mise en œuvre multi-tâches
„
Structure et exécution du code avec MEF, multitâche
Moniteur multitâche
Gestion de l'exécution des tâches
lancement / suspension
Tâche 1
Tâche 2
1 - Entrées : capteurs liés à MEF1
2 - Application de contrôle : MEF1
3 - Sorties : actionneurs liés à MEF1
[email protected]
Tâche 3
1 - Entrées : capteurs liés à MEF2
2 - Application de contrôle : MEF2
3 - Sorties : actionneurs liés à MEF2
1 - Entrées : capteurs liés à MEF3
2 - Application de contrôle : MEF3
3 - Sorties : actionneurs liés à MEF3
Polytech' Montpellier, ERII4 - Cours "Automatismes et SED"
46
Mise en œuvre multi-tâches
Moniteur multitâche
Gestion de l'exécution des tâches
Tâche 1
lancement / suspension
1 - Entrées : capteurs liés à MEF1
1 - Entrées : capteurs liés à MEF2
Lecture_Entrées (Piece_M1, Fin_US1);
Lecture_Entrées (Piece_M2, Fin_US2);
2 - Application de contrôle : MEF1
Robot_libre
(ressource partagée)
switch (Etat_M1) {
case M1_libre :
if (Robot_libre==1)
{Etat_M1=TR1; Robot_Libre=0;} break;
case TR1 :
if (Piece_M1)
{Etat_M1=piece_sur_M1; Robot_libre=1;}
break;
case piece_sur_M1 :
Etat_M1=US1; break;
case US1 :
if (Fin_US1)
{Etat_M1=M1_libre; nb_pI++;} break;
}
3 - Sorties : actionneurs liés à MEF1
Generation_Sorties (TR1, US1);
[email protected]
Tâche 2
2 - Application de contrôle : MEF2
switch (Etat_M2) {
case M2_libre :
if (Robot_libre==1)
{Etat_M2=TR2; Robot_Libre=0;} break;
case TR2 :
if (Piece_M2)
{Etat_M2=piece_sur_M2; Robot_libre=1;
break;
case piece_sur_M2 :
Etat_M2=US2; break;
case US2 :
if (Fin_US2)
{Etat_M2=M2_libre; nb_pI++;} break;
}
nb_pI nb_pII
3 - Sorties : actionneurs liés
(compteurs)
Generation_Sorties
(TR2, US2);
Polytech' Montpellier, ERII4 - Cours "Automatismes
et SED"
à MEF2
47
FIN
[email protected]
Polytech' Montpellier, ERII4 - Cours "Automatismes et SED"
48
Les Réseaux de Petri (RdP)
Mise en œuvre matérielle
Logique séquentielle
Les Réseaux de Petri (RdP)
Mise en œuvre matérielle
Logique VHDL