Académique Documents
Professionnel Documents
Culture Documents
Master 1 ISTR
2 septembre 2021
Table des matières
1
UPS - Master ISTR 1ère année 2
Introduction
Il s’agit d’un modèle récent : 1962 Carl Adam Petri publie un article de recherche "communication avec
des automates". Petri est donc un nom propre qui s’écrit sans accent.
Le modèle possède deux facettes :
1. aspect graphique : lisibilité (extension du graphe d’état),
2. aspect mathématique : formalisme (preuve de propriétés).
C’est un modèle qui est très utilisé pour les systèmes distribués : réseaux de communication, applications
distribuées (commande de systèmes de grande dimension).
Il a depuis fait l’objet de nombreuses extensions dont les plus intéressantes (pour l’automaticien) sont
certainement le concept d’inhibition (complément ou négation) et la prise en compte explicite du temps
par l’intermédiaire de temporisations associées aux transitions (pas d’horloge globale).
3
UPS - Master ISTR 1ère année 4
Remarque : un arc relie toujours deux sommets de type différent. Les arcs de poids nul (I(pi , tj ) = 0 et
O(pi , tj ) = 0) ne sont pas représentés sur le graphe et le poids est omis (implicite donc) lorsqu’il vaut 1.
et l’élément C(p1 , t3 ) = 0 semble indiquer que la transition t3 est totalement isolée des autres éléments.
Chaque fois qu’il existe une boucle entre une place et une transition, cette situation est rencontrée. Par
exemple, le calcul de la matrice C du réseau de la figure 1.3 donne la même matrice C que pour le réseau
de la figure 1.2
alors le réseau de Petri est dit "pur". Dans ce cas, dans la matrice C, les éléments négatifs proviennent
de I et les éléments positifs proviennent de O.
Pendant le franchissement de la transition ti , le marquage d’une place pj évolue donc d’une quantité
−I(pj , ti ) + O(pj , ti )
0
et le marquage M (pj ) résultant du tir de ti peut être calculé par
∀pj ∈ P, M 0 (pj ) = M (pj ) − I(pj , ti ) + O(pj , ti )
Ceci s’écrit plus simplement sous forme matricielle :
M 0 = M − I(, ti ) + O(, ti ) = M + C(, ti )
relation appelée équation d’évolution des réseaux de Petri.
Exemple : dans le réseau de la figure 1.2, les transitions t1 et t2 sont franchissables à partir du marquage
initial Mo .
Le tir de t1 mène au marquage
3 −3 0
M1 = M0 + C(, t1 ) = + =
0 +1 1
tandis que celui de t3 mène à
3 0 3
M3 = M0 + C(, t3 ) = + =
0 0 0
Pour cet exemple et ce marquage initial, il existe une seule séquence franchissable de support
S1 : t5 → t6 → t1 → t2 → t2 (le calcul d’une telle séquence sera vu au chapitre 2). Son franchissement
donne le marquage
1 −1 0
0 1 1
M = Mo + C.S1 = 0 + 0 = 0
0 0 0
0 2 2
Ce que l’on peut vérifier en "animant" le graphe du réseau de Petri .
Autre exemple (Figure 1.5) :
−1 +1 0 1
C= Mo = et un support S2 =
+3 −1 0 1
Le marquage calculé en considérant S2 est
0 0 0
Mf = Mo + C.S2 = + =
0 2 2
Le calcul donne bien un marquage possible, mais à l’évidence aucune transition n’est franchissable dans
ce réseau de Petri marqué.
UPS - Master ISTR 1ère année 8
Ce qui signifie que les transitions ti et tj ont au moins une place d’entrée en commun. C’est une
propriété statique (structurelle) du réseau de Petri.
alors deux transitions ti et tj sont parallèles si les vecteurs I(, ti ) et I(, tj ) sont orthogonaux, c’est-à-dire
indépendants.
Dans le réseau de Petri, deux transitions parallèles évoluent indépendamment l’une de l’autre (elles ne
partagent aucune place d’entrée).
Les n processus partagent une transition au point de rendez-vous. Le tir de tRdV n’est possible que si les
n processus sont sur le point de rendez-vous, dans le modèle si les n places px0 sont marquées.
UPS - Master ISTR 1ère année 10
La place Pc qui conditionne le tir des transitions modélisant l’entrée dans la section à voie unique
garantit que l’exclusion est assurée sur le modèle.
La manipulation de k (respectivement j) objets est modélisée par les arcs de poids k (respectivement j).
Les n jetons modélisent quant à eux, les espaces susceptibles de recevoir un objet dans le stock (sa
capacité en fait). Ils prennent deux états distincts : libre (p1 ) ou occupé (p2 ).
Pour comparaison, sur cet exemple, et avec des données simples (n = 5, j = 2, k = 3), voyons la
modélisation équivalente par graphe d’état.
Figure 1.10 – Graphe d’état de la gestion d’un stock pour n=5, j=2 et k=3
UPS - Master ISTR 1ère année 11
Il y a six états pour n = 5. En effet, M (p1 ) + M (p2 ) = n, il y a donc toujours n + 1 états. Imaginer le
graphe obtenu pour n = 100... La structure de contrôle du réseau de Petri n’est pas changée. Seuls, les
poids et le marquage initial sont modifiés.
Chapitre 2
Introduction
On regroupe sous le vocable "analyse d’un réseau de Petri" toutes les techniques qui permettent de
rechercher des caractéristiques spécifiques du modèle. Trois propriétés sont particulièrement utiles car
elles ont une signification importante pour la réalité modélisée : réseau vivant, réseau borné et réseau
réinitialisable. Ces trois propriétés sont appelées les "bonnes propriétés".
Deux classes de techniques d’analyse sont distinguées : l’analyse par énumération et l’analyse structurelle.
12
UPS - Master ISTR 1ère année 13
ki est appelé borne de la place pi : au cours de l’évolution du réseau de Petri, il n’y a jamais plus de ki
jetons dans la place pi .
Un réseau de Petri est dit k-borné si et seulement si toutes ses places pi sont ki -bornées. La borne k du
réseau de Petri est le max des bornes de ses places [k = M ax(ki )].
Cas particulier : k = 1, le réseau est alors dit "sauf" ou "binaire".
Un réseau de Petri borné peut être le modèle d’un système réel dont le nombre d’états est fini. En effet,
pour un ensemble de places P fini et une borne k finie, le nombre de marquages accessibles est fini et
borné par (k + 1)Card(P ) .
Autrement dit, quel que soit le marquage atteint à partir de M0 , il est possible de revenir au marquage
initial par le franchissement d’une séquence de transitions.
Un réseau de Petri réinitialisable peut modéliser un système dont tout le fonctionnement est cyclique.
Autrement dit, il existe un marquage accessible M dans lequel plus aucune transition n’est franchissable.
Le réseau de la figure 2.1 avec un marquage initial nul est une illustration d’un réseau bloquant pour M0
(et d’ailleurs bloqué sur Mo ).
UPS - Master ISTR 1ère année 14
On peut noter que I(, t1 ) = 0 et donc ∀M , t1 est sensibilisée. La conséquence immédiate est que la place
p1 n’est pas bornée. Pourtant, quel que soit le marquage atteint M (p1 ) = x, il apparaît que x
franchissements successifs de t2 constituent une séquence franchissable ramenant au marquage initial.
Figure 2.3 – un réseau,son arbre de couverture et son graphe des marquages accessibles
L’absence de feuille DIVERGENTE dans l’arbre de couverture indique que le réseau est borné. La
construction de son graphe des marquages accessibles est donc possible. L’analyse de la structure de ce
graphe fait ressortir qu’il constitue une cfc contenant toutes les transitions : le réseau est donc vivant et
réinitialisable.
UPS - Master ISTR 1ère année 17
La recherche des invariants de transitions d’un réseau de Petri peut aboutir à une forme de conclusion
sur les bonnes propriétés. C’est le cas où au moins une transition n’appartient à aucun invariant. La
contraposée de la propriété ci-dessus nous indique alors que le réseau de Petri est non réinitialisable ou
non borné ou non vivant ou aucun des trois.
L’existence d’un invariant linéaire de transitions comportant toutes les transitions ne permet aucune
conclusion quant aux bonnes propriétés.
Figure 2.4 – Un réseau de Petri borné et bloquant ; son graphe des marquages accessibles
f T .M0
pj ∈ ILPP ⇒ M (pj ) ≤ E( ) + 1 (pj est bornée)
fj
Ce résultat est une implication : l’appartenance à un ILPP implique que la place est bornée mais la
réciproque est fausse.
Dans l’exemple du réseau de Petri précédent, le calcul des invariants de place met en évidence un ILPP
contenant les deux places, les deux places sont donc bornées et le réseau est borné.
Dans l’exemple de la figure 2.6 aucune place n’appartient à une composante conservative, et donc a
fortiori à aucun invariant linéaire de transitions, pourtant le réseau est bien borné.
— d’une part que la solution est un sous espace vectoriel de l’espace de départ,
— d’autre part (théorème du rang) que Dim[Ker(C)] + Dim[Im(C)] = Dim(Espace de départ)
Quand l’application linéaire C est représentée par sa matrice, alors le la dimension de Im(C) est aussi le
rang de la matrice C. Le rang pouvant être calculé comme la dimension du plus grand mineur non nul de
C ou encore l’ordre de la plus grande matrice carrée inversible extraite de C.
Par ailleurs des algorithmes, comme celui du pivot de Gauss permettent de calculer le rang d’une
matrice.
En résumé, nous pouvons écrire :
— Dim(espace des invariants de transitions) = nombre de transitions − Rang(C)
— Dim(espace des invariants de places) = nombre de places − Rang(C)
Ce qui s’avère fort utile lorsque l’on souhaite calculer les invariants de transitions à la main.
Bien sûr, tout logiciel de calcul matriciel est à même de faire ce calcul automatiquement. Il existe de plus
un logiciel gratuit dédié à l’analyse des réseaux de Petri qui permet d’exécuter l’analyse par énumération
et l’analyse structurelle à partir d’une représentation graphique du réseau de Petri.
Chapitre 3
Approche informelle
Pour la commande, les réseaux de Petri peuvent être considérés comme une extension des automates de
Mealy et de Moore en associant des conditions de franchissement aux transitions et des actions à la fois
aux places et aux transitions.
Dans cette représentation, des étiquettes apparaissent sur les certaines places et certaines transitions :
- Action2 et Action3 sont des variables booléennes prenant la valeur vrai en fonction du marquage.
Dans ce cours, nous adopterons la convention suivante (qui peut être redéfinie au besoin) :
- Action1 est un événement qui est produit par le réseau de Petri au moment du franchissement de
t1 .
- P redicat1 est une expression logique qui doit prendre la valeur vrai pour que la transition t1 soit
franchie.
Dans un réseau de Petri utilisé comme modèle de commande, ces éléments permettent une
communication avec l’environnement. En général :
- les prédicats sont des expressions logiques formées sur des valeurs booléennes représentant les
valeurs des entrées du système de commande,
- les actions sont des images des valeurs que doivent prendre les actionneurs,
- les événements sont des données permettant le comptage, la synchronisation, etc. Il faut noter que
ces événements ne sont jamais nécessaires en commande, il est toujours possible de représenter les
mécanismes qu’ils mettent en œuvre par des éléments structurels du réseau de Petri.
21
UPS - Master ISTR 1ère année 22
- I est une interprétation comportant tous les algorithmes associés aux étiquettes (données et
contrôle).
L’interprétation est souvent décrite sous la forme :
- d’un graphe de données comportant trois types de sommets (les mémoires, les opérations et les
prédicats) accompagné d’une description du type des mémoires,
- des traitements associés aux sommets opérations ou prédicats.
Exemple : Soit un système constitué de deux réservoirs reliés par une canalisation basse dans laquelle
la circulation du fluide peut être accélérée par pompage dans un sens comme dans l’autre (actionneurs
P1 et P2 ). Le problème consiste à "réguler" le niveau dans les deux réservoirs de façon à ce que la
différence de niveau ne s’écarte jamais “beaucoup" de 0. Si N1 et N2 sont les niveaux des deux réservoirs,
la pompe de circulation doit être actionnée dès que |N1 − N2 | > seuil et arrêtée dès que |N 1 − N 2| = 0.
Les entrées du système de commande sont N1 et N2 . Les sorties du système de commande sont P1 et P2 .
Une mémoire interne est nécessaire : seuil (pour stocker le seuil de pompage)
Une solution à ce problème est présentée dans les figures 3.4 et 3.5.
Conventions
1. Lorsqu’une transition est associée au prédicat "vrai", il est admis de ne pas le noter sur le réseau.
2. Lorsque l’action du réseau de Petri se traduit par l’appel à une opération de l’interprétation qui
consiste à donner une valeur à un actionneur tout ou rien, il est admis de supprimer la partie du
UPS - Master ISTR 1ère année 23
graphe de données et l’interprétation lui correspondant. C’est ici le cas pour P omper 1 et
P omper 2, qui pourraient être remplacés par P1 et P2 .
3. Lorsqu’un prédicat à une valeur reflétant une expression logique formée exclusivement à partir de
noms de variables booléennes image des entrées, on peut là aussi omettre la partie du graphe de
données décrivant les opérations et inscrire directement l’expression logique portant sur les noms
des capteurs à la place du prédicat.
Exemple : Il s’agit de la commande de l’exemple de la section critique (figure 3.6) déjà rencontrée dans
ce cours. Les capteurs de position et les actionneurs sont commandés en “tout ou rien", le graphe de
données est superflu, il n’apporte rien à la compréhension du problème et de la solution.
Figure 3.6 – Réseau de Petri interprété simplifié avec capteur et actionneurs tout ou rien
2. par composition du modèle du procédé G avec celui des objectifs de la commande O (vu ici).
Pour le capteur, ce réseau de Petri exprime juste que le capteur (tout ou rien, bien sûr) peut passer à
“vrai" quand il est à "faux" et réciproquement. Notons que les étiquettes ci et ci sont les prédicats des
transitions, ce réseau évolue donc en fonction de l’état des capteurs, c’est à dire en fonction de
l’évolution du procédé.
Pour l’actionneur, ce réseau de Petri exprime juste qu’un actionneur (tout ou rien, bien sûr) peut être
mis à "vrai" quand il est à "faux" et réciproquement. Les étiquettes apparaissent dans ce cas sur les
places, les transitions n’ont aucun prédicat associé, ce sont des éléments structurels dont le
franchissement devra être lié à l’état de la commande, provoquant une évolution (actionneur mis à
‘vrai") ou l’arrêt d’une action ("actionneur mis à faux").
Au delà de ces éléments basiques, c’est la structure du procédé qui permet de réaliser le modèle en
boucle ouverte.
Exemple : Soit à modéliser une bifurcation (aiguillage) sur un système de transport. Supposons que
cet aiguillage n’est parcouru que dans un sens et qu’il permet d’orienter les véhicules vers deux
directions différentes. L’arrivée sur l’aiguillage est signalée par le capteur de présence a et la sortie de
l’aiguillage est signalée par les capteurs b et c sur les deux voies (figure 3.8).
Un modèle de cet aiguillage est représenté figure 3.9. Il ne représente pas toutes les évolutions possibles
de ce procédé (par exemple il n’est pas envisagé de stopper le mouvement Av pendant que le véhicule
traverse le carrefour), mais c’est sans perte de généralité pour l’exemple.
Notons que, si rien n’oblige le concepteur à prendre en compte exhaustivement les évolutions potentielles
du procédé, seules les évolutions apparaissant sur ce modèle du procédé seront utilisables pour construire
une commande. Ceci peut être vu comme un avantage ou un inconvénient :
1. un inconvénient, si ce modèle ignore par erreur certaines évolutions qui ne pourront jamais
apparaître dans une commande,
UPS - Master ISTR 1ère année 25
2. un avantage, si les évolutions non représentées sont des évolutions considérées comme non
désirables (dangereuses ou interdites).
Dans tous les cas, un modèle du procédé n’exprimant pas l’ensemble des évolutions potentielles devrait
résulter d’une composition entre un modèle du procédé réellement non contraint (en "boucle ouverte") et
un objectif de commande devant apparaître dans toutes les commandes (par exemple l’évitement de
collision d’un système de transport, l’impossibilité d’ouverture de portes d’ascenseur pendant son
déplacement, etc.).
avec
GM0 = hX, Σ, δ, x0 , Xf i
et
1. X = {M 0 |[∃s|M0O .s → M 0 ]}
2. Σ = TO
3. δ(x, ti ) est défini ⇔ x ≥ IO (, ti )
UPS - Master ISTR 1ère année 26
4. x0 = M0O
5. Xf = MfO
Pour représenter le fait que certaines transitions du réseau de Petri modélisant les objectifs sont des
images des transitions du réseau modélisant le procédé, les étiquettes de ces transitions image d’une
transition du réseau modélisant le procédé seront de la forme :
En d’autres termes, à une transition txG ∈ TG peuvent être associées k transitions txOi .
Notons enfin que des transition peuvent appaire dans le réseau O sans être image d’un transition de G.
Elles sont alors nommées txO. De telles transition peuvent permettre de représenter, par exemple, le
rendez-vous de plusieurs fin d’opération avant d’entamer la suite des traitement.
Remarque : si l’objectif de la commande doit aboutir à un fonctionnement cyclique, alors S O est
constituée par l’ensemble des invariants de transitions de O.
Exemple : imaginons le fonctionnement suivant pour l’aiguillage de la figure 3.8. Un opérateur est
chargé de diriger le véhicule qui se présente à l’e,trée de la zone d’aiguillage. Lors de l’approche du
véhicule, le choix de la direction se fait par appui sur p : un appui sur p et le véhicule est dirigé vers la
droite (vers c), deux appuis successifs sur p et le véhicule est dirigé vers la gauche (vers b). Ce choix doit
être fait par l’opérateur avant que le véhicule n’atteigne la capteur a (rien n’est dit si l’opérateur
n’appuie pas sur p avant l’occurrence de a). Cet objectif peut être modélisé par les deux séquences
t6G → t6G → t1G → t3G et t6G → t1G → t2G à franchir dans le réseau modélisant le procédé.
La figure 3.10 définit ces objectifs avec précision.
Fusion de G et O
Cette opération est à rapprocher du produit parallèle des automates. Elle est d’ailleurs notée de la même
façon (//). Par définition G//O = hP, T, I, O, M0 i avec
P = PG ∪ PO
Tof = {txOi | ∃txG ∈ TG }
T = Ts ∪ TO avec TO = Tol ∪ Tof et Tol = {txO | 6 ∃txG ∈ TG }(∈ TO \Tof )
Ts = {txG | 6 ∃txOi ∈ TO }
0
IO (, tiO ) . IO (, tiO )
0
I(, ti ) = (ti ∈ Tof ), (ti ∈ Ts ), (ti ∈ Tol )
0
IG (, tiG ) IG (, tiG ) .
0
0
OO (, tiO ) . OO (, tiO )
0
O(, ti ) = (ti ∈ Tof ), (ti ∈ Ts ), (ti ∈ Tol )
0
OG (, tiG ) OG (, tiG ) .
0
M0O
M0 =
M0G
Ce modèle est calculable sans difficulté, en revanche sa représentation graphique peut s’avérer délicate.
Notons bien que cette opération de fusion ne concerne que les transitions txOi et leur image txG , les deux
autres types de transitions (∈ Ts et ∈ Tol ) n’étant pas modifiées par cette opération. On contraint donc le
réseau des objectifs de la commande avec les contraintes exprimées dans le réseau modélisant le procédé.
Techniquement, pour harmoniser les noms des transitions en vue des opérations suivantes, nous
adopterons les deux conventions suivantes :
- Une transition de G//O résultant de la fusion de txG et de txOi est nommée tx_i.
- Les lettres txOi du langage marqué réduit de GM 0(O) sont renommées tx_i.
(1) M0c = M0
ti ∈ s
(2) Tc = {ti ∈ T |∃s ∈ L[GM o (G//O)]} avec
PT O (s) ∈ S O
(3) Pc = {pi ∈ P |∃ti ∈ Tc ∧ I(pi , tj ) + O(pi , tj ) 6= 0}
(4) IC = la restriction de la fonction I de G//O aux seuls éléments de C
(5) OC = la restriction de la fonction O de G//O aux seuls éléments de C
dans cette définition, (2) exprime simplement le fait que les seules transitions de la fusion G//O restant
dans la commande sont celles qui apparaissent dans une séquence franchissable dans G//O et dont la
projection sur l’ensemble des transitions du réseau des objectifs appartient à l’ensemble des séquences
objectif S O .
Il en découle (3) que si une place n’a pas d’arc la reliant à une des transitions conservées à l’étape
précédente, alors elle n’appartient pas à l’ensemble des places Pc .
Enfin (4) et (5) expriment que les fonctions d’incidence du réseau de commande C sont les restrictions
des fonctions d’incidence de G//O aux éléments de C.
Remarque : Après ces deux étapes, il est bien sûr prudent de vérifier que toutes les séquences de S O
sont bien couvertes par C. Si ce n’est pas le cas, alors les objectifs et le procédé sont probablement
incompatibles suite à une erreur de modélisation sur l’un ou l’autre des modèles. Nous débordons ici du
strict cadre de la synthèse d’une commande à réseaux de Petri pour rentrer dans un problème plus
délicat : celui de la modélisation. Seule l’expérience peut aider à modéliser correctement les objectifs et
le procédé...
Enfin, il ne faut jamais perdre de vue que les différents réseaux de Petri (4 au moins : G, O, G//O, C)
qui jalonnent l’obtention d’une commande ont des propriétés qu’il est possible de déterminer simplement
(bonnes propriétés et invariants). Le logiciel SEDMA peut vous aider pour ces calculs parfois fastidieux.
Fin de l’exemple :
On reprend les deux réseaux concernant l’aiguillage. La fusion des transitions conduit au réseau G//O
représenté figure 3.11.
Les séquences de transitions dans ce réseau peuvent être déterminées en explorant le graphe des
marquages accessibles (par exemple à l’aide de SEDMA).
UPS - Master ISTR 1ère année 29
On peut constater que toutes les transitions sont nécessaires au fonctionnement, aucune restriction de
G//O n’est possible. Dans ce cas, G//O constitue la commande du système. Notons enfin que la prise en
compte de deux appuis successifs passe bien, dans le réseau de commande, par la transition t7G ce qui
garantit bien deux appuis successifs sans que cela n’apparaisse explicitement dans les objectifs.
Autre exemple
Toujours sur l’aiguillage, spécifions maintenant que le véhicule doit partir à droite (vers c). Le réseau
modélisant cet objectif est alors très simple : il contient une seule séquence t1O → t3O .
Le réseau de Petri correspondant est donné figure 3.13
La fusion de ce réseau avec le modèle du procédé donne le réseau de Petri de la figure 3.14.
Dans ce réseau le marquage final est [p5G , p3O ] (le véhicule a traversé la zone et il a tourné à droite).
UPS - Master ISTR 1ère année 30
Le graphe des marquages accessibles montré figure 3.15 mets en évidence l’ensemble des trajectoires
possibles de G//O.
Pour atteindre le marquage objectif, une seule séquence est possible : t1 → t3 → t5G . Par ailleurs, les
deux transitions t2G et t4G n’appartiennent à aucune séquence se projetant dans Lm[GM 0(O)], elles
doivent donc être supprimées de G//O conformément à l’étape (2) de la définition (calcul) de C. La
place p3G est alors isolée et doit également être retirée conformément à l’étape (3) du même algorithme
de calcul de la commande.
Le réseau de commande obtenu est montré figure 3.16. Notons enfin pour terminer avec cet exemple que
le fonctionnement obtenu n’est pas cyclique. Ceci est particulièrement évident sur la commande mais
l’était déjà sur les modèles procédé et objectifs. En fusionnant dans ces deux modèles les places "finales"
avec la place initiale (marquée pour Mo ) on obtient, par la même méthode, des commandes répétitives.
Vous pouvez effectuer cette synthèse à titre d’exercice.
Notons pour terminer que l’illustration de la démarche s’appuie pour des raisons pédagogiques sur le
graphe du réseau de Petri mais que toutes ces opérations peuvent être effectuées algébriquement à l’aide
de la représentation matricielle du réseau de Petri.