Vous êtes sur la page 1sur 31

1

UNIVERSITE PAUL SABATIER TOULOUSE III

Systèmes à événements discrets


réseaux de Petri

notes de cours M. COMBACAU

Master 1 ISTR
2 septembre 2021
Table des matières

1 Les réseaux de Petri : modèle et définitions 3


1.1 Définition formelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1.1 Réseau de Petri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1.2 Réseau de Petri marqué . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Représentation graphique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3 Représentation matricielle (mathématique) . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.4 Règles d’évolution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.4.1 Transition sensibilisée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.4.2 Franchissement d’une transition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.4.3 Généralisation : franchissement d’une séquence de transitions . . . . . . . . . . . . . 6
1.5 Quelques définitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.5.1 Transition source . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.5.2 Transition puits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.5.3 Conflit structurel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.5.4 Conflit effectif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.5.5 Parallélisme structurel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.5.6 Parallélisme effectif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.6 A propos de la puissance d’expression . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.6.1 Rendez-vous de n processus séquentiels . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.6.2 Gestion de ressource critique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.6.3 Gestion de capacité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

2 Réseaux de Petri : propriétés et analyse 12


2.1 Les bonnes propriétés des réseaux de Petri . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.1.1 Réseau vivant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.1.2 Réseau borné . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.1.3 Réseau réinitialisable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2 Quelques remarques sur les propriétés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2.1 Les bonnes propriétés dépendent du marquage initial . . . . . . . . . . . . . . . . . . 13
2.2.2 Réseau bloquant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2.3 Attention aux conclusions hâtives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.3 Techniques d’analyse des réseaux de Petri . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.3.1 Analyse par énumération des marquages accessibles . . . . . . . . . . . . . . . . . . 14
2.4 Analyse structurelle des réseaux de Petri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.4.1 Composante répétitive stationnaire (t semi-flot) . . . . . . . . . . . . . . . . . . . . . 17
2.4.2 Invariant linéaire de transitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.4.3 Composante conservative (p semi-flot) . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.4.4 Invariant linéaire positif de places . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

3 Les réseaux de Petri et la commande des SED 21


3.1 Réseau de Petri interprété : définition formelle . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.2 Construction d’une commande en réseaux de Petri . . . . . . . . . . . . . . . . . . . . . . . 23
3.2.1 Modèle du procédé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

1
UPS - Master ISTR 1ère année 2

3.2.2 Le modèle des objectifs de la commande . . . . . . . . . . . . . . . . . . . . . . . . . 25


3.2.3 Synthèse d’une commande . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Chapitre 1

Les réseaux de Petri : modèle et


définitions

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).

1.1 Définition formelle


1.1.1 Réseau de Petri
Un RdP est un n-uplet R = hP, T, I, Oi (hP, T, P re, P osti pour les francophones) dans lequel :
— P est un ensemble fini non vide de symboles appelés "places",
— T est un ensemble fini non vide de symboles appelés "transitions" avec P ∩ T = ∅,
I
— I est la fonction incidence arrière : P × T −→ N,
O
— O est la fonction incidence avant : P × T −→ N.
C
On définit ensuite la fonction incidence du RdP, C par P × T −→ Z telle que
∀(pi , tj ) ∈ P × T : C(pi , tj ) = O(pi , tj ) − I(pi , tj )

1.1.2 Réseau de Petri marqué


M
Convenons d’appeler “marquage” toute fonction m telle que : P −→ N.
Quand M (pi ) = k, on dit que "la place pi contient k marques (ou jetons)".
Un RdP marqué est défini par le doublet N = hR, Mo i dans lequel R est un réseau de Petri et Mo est le
M0
marquage initial défini par la fonction M0 : P −→ N.
La fonction marquage associée au réseau de Petri donne la distribution des jetons dans les places.

3
UPS - Master ISTR 1ère année 4

1.2 Représentation graphique


Il s’agit d’un graphe à deux types de sommets (places et transitions). Les arcs sont pondérés et
représentent les fonctions I et O. La correspondance entre la définition mathématique et le graphe est
résumée sur le figure 1.1.

Figure 1.1 – Graphe d’un réseau de Petri

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.

1.3 Représentation matricielle (mathématique)


Les fonctions I et O sont représentées par des matrices d’entiers naturels. La convention utilisée consiste
à placer les transitions en entrée de colonnes et les places en entrée de ligne. Chaque élément de la
matrice est associé à une paire (pi , tj ) et a pour valeur le poids de l’arc correspondant. Le réseau est
souvent représenté par les deux matrices I et O car le nombre de lignes et de colonnes donne le nombre
de places et de transitions et constituent les seules données réellement nécessaires, les noms des places et
des transitions étant tout à fait symboliques.
On définit ensuite simplement la fonction C par : C = O − I matrice à valeurs dans Z.
Le marquage est représenté par un vecteur d’entiers naturels comportant autant de composantes que le
réseau comporte de places.
 
M0 (p1 )
 M0 (p2 ) 
MO =  
 ... 
Mo (pk )
Le passage entre la représentation mathématique et la représentation graphique est sans ambiguïté, les
règles sont déduites de la correspondance illustrée sur la figure 1.1. Le passage de la représentation
matricielle à la représentation graphique pose le problème classique de la représentation optimale d’un
graphe. A la première tentative de construction, on obtient généralement un graphe "plat de spaghetti"...
Exemple de passage matriciel vers Graphique.
Soit le réseau de Petri défini par :
     
3 0 1 0 3 1 3
I= O= M0 =
0 1 0 1 0 0 0

Il est représenté sur le graphe de la figure 1.2.


Attention à la tentation de représenter un réseau de Petri par sa matrice d’incidence C ! Sur l’exemple de
la figure 1.2 cette matrice vaut :  
−3 +3 0
C=
+1 −1 0
UPS - Master ISTR 1ère année 5

Figure 1.2 – Modèle 3 lecteurs et 1 écrivain

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

Figure 1.3 – Modèle 3 lecteurs et 1 écrivain modifié

En fait, il existe une infinité de réseaux de Petri correspondant à cette matrice C.


Remarque : si un réseau de Petri est tel que

∀(pi , tj ) ∈ P × T : I(pi , tj ) × O(pi , tj ) = 0

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.

1.4 Règles d’évolution


1.4.1 Transition sensibilisée
Une transition ti est sensibilisée (les termes "tirable" ou "franchissable" sont parfois utilisés) par le
marquage M si et seulement si
∀pj ∈ P, M (pj ) ≥ I(pj , ti )
que l’on peut traduire par "chaque place d’entrée contient un nombre de jetons au moins égal au poids
de l’arc qui la relie à la transition ti ".
Sous la forme matricielle, ceci se résume à :

M ≥ I(, ti) (avec I(, ti) = colonne ti de la matrice I)

1.4.2 Franchissement d’une transition


Une transition ti sensibilisée peut être franchie. Le franchissement (tir) d’une transition ti est une
opération indivisible comportant deux facettes :
1. démarquage des places d’entrées de ti
∀pj ∈ P, M (pj ) varie de −I(pj , ti ).
2. marquage des places de sorties de ti
∀pj ∈ P, M (pj ) varie de +O(pj , ti ).
UPS - Master ISTR 1ère année 6

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

1.4.3 Généralisation : franchissement d’une séquence de transitions


Définissons d’abord le concept de séquence de transition en réseau de Petri.
Soit N = hR, M oi un réseau de Petri avec

Mo |Mo ≥ I(, ta ). On peut franchir ta et on obtient le marquage

Ma = Mo + C(, ta ) et on suppose que Ma ≥ I(, tb ). Le tir de tb donne


P
Mb = Ma + C(, tb ) = Mo + C(, ta ) + C(, tb ) = Mo + x∈{a,b} C(, tx )

En généralisant à une suite de tirs successifs ta → tb → . . . → tr , on obtient le marquage


P P
Mr = Mo + x∈{a...r} C(, tx ) que l’on peut encore écrire Mr = Mo + C × x Stx avec
 
t1 0
... 
 ... 

tx−1  0 


Stx = tx  1  ← seule composante non nulle à la ligne tx

tx+1  0 


...  ... 
tn 0
P
La matrice colonne S = x Stx est appelé support de séquence de transitions. Parfois, la terminologie
séquence est utilisée et prête à confusion. En effet, un support de séquence S ne donne aucune
information sur l’ordre dans lequel les transitions pourraient être franchies à partir d’un marquage M .
En revanche, s’il existe un ordre (au moins) de franchissement réellement exécutable à partir de M e
marquage atteint par son franchissement M est donné immédiatement par Mf = M + C.s. Un tel ordre
de franchissement est appelé séquence réellement franchissable ou par abus de langage séquence
franchissable.
Exemple : Soit le RdP suivant (Figure 1.4)
 
    1
−1 0 0 1 −1 1 1  2 
 1 0 0 −1 0 0   0   
     0 
C= 2 −1 −1 0 0 0  Mo =  0  et un support de séquence S1 =  
     0 
 0 0 0 0 1 −1   0   
 1 
0 1 1 −2 0 0 0
1
UPS - Master ISTR 1ère année 7

Figure 1.4 – Un réseau de Petri qui en vaut bien un autre...

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

Figure 1.5 – Un autre réseau de Petri qui vaut bien le précédent...

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

1.5 Quelques définitions


1.5.1 Transition source
ti telle que I(, ti ) est une matrice colonne nulle est appelée transition source. Pour une telle transition,
quel que soit le marquage du réseau de petri auquel elle appartient, la condition de sensibilisation
M ≥ I(, ti ) est toujours vérifée (un marquage ne pouvant pas comporter des composantes négatives. Ceci
à deux conséquences :
1. une transition source est toujours sensibilisée,
2. une transition source peut être franchie à tout moment, répétitivement, un nombe quelconque de
fois.
Une telle transition produit des jetons sans en consommer, d’où la terminologie imagée source.

1.5.2 Transition puits


c’est le concept dual de la transition source. ti telle que O(, ti ) est une matrice colonne nulle est appelée
transition puits. Une telle transition consomme de jetons sans en produire. Aucune proprété particulière
n’est attachée aux transitions puits, mais la terminologie est à connaître.

1.5.3 Conflit structurel


Deux transitions ti et tj sont dites en conflit structurel si et seulement si

∃p ∈ P |I(p, ti) × I(p, tj) 6= 0


ou encore, si l’on considère les matrices colonne I(, t) comme des vecteurs de QCard(P )

I(, ti).I(, tj) 6= 0 (produit scalaire non nul)

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.

1.5.4 Conflit effectif


Deux transitions ti et tj en conflit structurel sont dites en conflit effectif pour un marquage M si et
seulement si
[M ≥ I(, ti)] ∧ [M ≥ I(, tj)]
Ce qui signifie que pour le marquage M les deux transitions sont sensibilisées. Le conflit porte sur
l’utilisation du (des) jeton(s) de la place p commune pour le tir de ti ou de tj .
Dans cet exemple (Figure 1.6), le tir de t1 mène à
 
0
 0 
M1 =  

1 
1

Figure 1.6 – deux transitions en conflit


UPS - Master ISTR 1ère année 9

tandis que le tir de t2 mène à  


1
 0 
M2 =  
 0 
0
Le jeton dans p est consommé par l’une ou l’autre des transitions. Le modèle réseau de Petri à un
comportement indéterministe dans cette situation : rien ne permet de prévoir l’évolution qui aura
réellement lieu.

1.5.5 Parallélisme structurel


Deux transitions ti et tj sont parallèles structurellement si et seulement si

∀p ∈ P, I(p, ti) × I(p, tj) = 0

Autrement dit, les transitions ti et tj n’ont aucune place amont en commun.


Si l’on considère les matrices colonne I(, t) comme des vecteurs de QCard(P )

I(, ti).I(, tj) = 0 (produit scalaire nul)

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).

1.5.6 Parallélisme effectif


Deux transitions parallèles structurellement ti et tj sont dites en parallélisme effectif pour un marquage
M si et seulement si
[M ≥ I(, ti )] ∧ [M ≥ I(, tj )]
Dans ce cas, ti et tj peuvent être franchies indépendamment l’une de l’autre, dans un ordre quelconque,
mais non simultanément. Le marquage atteint par les deux séquences sera bien entendu le même.

1.6 A propos de la puissance d’expression


1.6.1 Rendez-vous de n processus séquentiels

Figure 1.7 – Rendez-vous de n processus séquentiels

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

1.6.2 Gestion de ressource critique


Soit une portion de voie unique précédée par deux voies séparées. Ce cas est classique sur le réseau ferré
français. Arrivé en Bi le convoi doit s’immobiliser si la portion de voie unique est déjà occupée par un
autre convoi. Il faut donc assurer l’exclusion mutuelle sur cette portion qui est qualifiée de critique.

Figure 1.8 – Exclusion sur une ressource partagée

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.

1.6.3 Gestion de capacité


Soit un stock de capacité n, et deux fonctions : prise(j) permettant de retirer j objets du stock et
pose(k) permettant de déposer k objet dans le stock. La modélisation est immédiate.

Figure 1.9 – Gestion de capacité d’un stock

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

Réseaux de Petri : propriétés et analyse

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.

2.1 Les bonnes propriétés des réseaux de Petri


Pour simplifier l’écriture des définitions, nous noterons
s est une séquence franchissable à partir de M conduisant au marquage M 0
par
s
[M → M 0 ]
Notons également que ceci s’exprime aussi par M 0 est accessible à partir de M par la séquence s

2.1.1 Réseau vivant


Une transition t d’un réseau de Petri est dite vivante pour Mo si et seulement si
s s0
∀s | [M0 → M ], ∃s0 | [M → M 0 ] avec M 0 ≥ I(, t)
En d’autres termes, quel que soit l’état atteint par le réseau à partir de son marquage initial, il existe
une séquence de tir franchissable contenant la transition t.
Un réseau de Petri est dit vivant si et seulement si toutes ses transitions sont vivantes.
Un réseau de Petri vivant peut être le modèle d’un système dans lequel, quelle que soit la phase de
fonctionnement, toutes les évolutions modélisées restent possibles. Autrement dit, au cours de son
fonctionnement le système modélisé ne perd pas de fonctionnalités. Le fonctionnement est alors souvent
cyclique.
Une transition t est quasi-vivante si et seulement si elle peut être franchie au moins une fois à partir du
marquage initial.
s
∃s | [M0 → M ] avec M ≥ I(, t)
Toute transition vivante est aussi quasi vivante. Un réseau est dit quasi-vivant ssi toutes ses transitions
sont quasi-vivantes.
Ce concept est intéressant quand le modèle contient une séquence de fonctionnement exécutée un
nombre limité de fois (par exemple une phase d’initialisation).

12
UPS - Master ISTR 1ère année 13

2.1.2 Réseau borné


Une place pi d’un réseau de Petri est dite ki -bornée si et seulement si
s
∀s | [M0 → M ], M (pi ) ≤ ki (ki ∈ N)

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 ) .

2.1.3 Réseau réinitialisable


Un réseau de Petri est dit réinitialisable si et seulement si
s s0
∀s | [M0 → M ], ∃s0 | [M → M0 ]

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.

2.2 Quelques remarques sur les propriétés


2.2.1 Les bonnes propriétés dépendent du marquage initial
Les définitions contiennent toutes une référence à MO , ceci est donc assez prévisible. Pour s’en assurer, il
suffit de donner quelques exemples simples de réseaux de Petri dont les bonnes propriétés sont modifiées
par un changement de marquage initial. La figure 2.1 montre un réseau de Petri muni de deux
marquages différents.
— avec M0 (p1 ) = 1, le réseau est borné, non vivant et réinitialisable
— avec M0 (p1 ) = 2, il est non borné, vivant et non réinitialisable

Figure 2.1 – Les propriétés dépendent du marquage initial

2.2.2 Réseau bloquant


Un réseau est dit bloquant pour un marquage initial M0 si et seulement si
s
∃s | [M0 → M ] | [I(, ti ) > M ∀ti ∈ T, ]

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

2.2.3 Attention aux conclusions hâtives


Réseau réinitialisable et réseau borné
A de nombreuses reprises l’erreur consistant à penser que si un réseau est non borné alors il est non
réinitialisable a été commise par le passé... Cette erreur provient sans doute d’une interprétation abusive
de la définition d’un réseau non borné. Cette implication est évidemment fausse, un contre exemple suffit
à le montrer.
Soit le réseau défini par
     
P = {p1 }, T = {t1 , t2 } I = 0 1 O = 1 0 M0 = 0

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.

Réseau non vivant et réseau non réinitialisable


L’erreur parfois commise est de penser que si un réseau n’est pas vivant alors il n’est pas réinitialisable.
Cette erreur vient probablement de la confusion entre un réseau vivant et un réseau bloquant (si un
réseau se bloque, il peut paraître impossible de le ramener à son marquage initial). La figure 2.1 réseau
de gauche donne un contre exemple d’un réseau non vivant mais réinitialisable, puisque bloqué sur son
marquage initial.

Réseau non vivant et réseau bloqué


Une lecture peu attentive des définitions peut pousser à rapprocher les termes non vivant et bloqué.
Toutefois, s’il est évident d’après les définitions qu’un réseau bloqué est un réseau non vivant, la
réciproque est fausse. Le réseau de la figure 2.1 avec le marquage initial M0 = [1] est un exemple de
réseau à la fois non vivant et non bloqué.

Dans certaines modélisations, on recherche l’absence de certaines bonnes propriétés


Imaginons un modèle dans lequel une des transitions (ti ) modélise un événement anormal (catastrophe).
Le modèle correspondant devra être non vivant pour que le système modélisé ait un comportement
acceptable (ti non vivante, la catastrophe ne peut pas se produire).

2.3 Techniques d’analyse des réseaux de Petri


2.3.1 Analyse par énumération des marquages accessibles
Il s’agit de tenter de construire le graphe d’états équivalent au réseau de Petri. Il se nomme le graphe des
marquages accessibles et est noté GM0 . Un sommet du graphe (état) est associé à un marquage, un arc
du graphe d’état est associé à l’événement tir de ti et étiqueté par cet événement ti .

Arbre de couverture (algorithme simplifié)


Avant d’avoir effectué l’analyse, on ne sait pas si le réseau est borné ou non. Il faut donc être prudent
pour ne pas se lancer dans la construction d’un graphe infini. On commence donc par établir l’arbre de
couverture, structure finie que le réseau soit borné ou non.
Principe : il est construit progressivement à partir du marquage initial associé à la racine de l’arbre. Un
successeur M 0 de M est créé si et seulement si ∃ti ∈ T |M ≥ I(, ti ).
Pour chaque nœud de l’arbre nouvellement créé, on applique l’algorithme suivant dont le but est
d’obtenir une arborescence dans laquelle toutes les feuilles sont qualifiées.
UPS - Master ISTR 1ère année 15

La racine est initialisée avec le marquage initial M0 .


F euilles = {M0 }
Répéter
choisir Mi ∈ F euilles
Si Mi existe dans la partie développée de l’arbre et est déjà ou va être entièrement développée
Alors
Ci ←DUPLICAT Sinon
Si ∀tj ∈ T : Mi < I(, tj )
Alors
Mi ← TERMINALE
Sinon
Si ∃Mj sur la branche M0 → Mi telle que Mi > Mj
Alors
Ci ← DIVERGENTE
Sinon
Créer les feuilles Msuiv correspondant aux transitions franchissables en Mi
Calculer les marquages correspondant à ces nouvelles feuilles
F euille ← F euille ∪ {Msuiv }
Fin Si
Fin Si
Fin Si
F euille ← F euille\{Mi }
Tant que (F euille 6= ∅)
La procédure s’arrête quand toutes les feuilles sont qualifiées. La détection d’une feuille qualifiée de
DIVERGENTE permet d’arrêter l’exploration d’un espace d’état infini pour un réseau non borné.

Conclusions sur l’arbre de couverture


Deux cas doivent être distingués :
1. On constate l’absence de feuille DIVERGENTE.
Le réseau est donc borné. On peut construire le graphe des marquages accessibles (rebouclage des
feuilles DUPLICAT sur leur image)
2. On constate la présence d’au moins une feuille DIVERGENTE
Le réseau n’est pas borné et les autres propriétés sont indécidables dans le cas général. Toutefois,
s’il existe une feuille TERMINALE, le réseau est bloqué et par conséquent non vivant. Comme il
existe une feuille DIVERGENTE le réseau n’est pas bloqué sur le marquage initial et donc il est
également non réinitialisable.
Un exemple d’analyse est développé sur la figure 2.2.
Que peut-on conclure ?
Il existe des feuilles divergentes, donc le réseau n’est pas borné.
Les autres propriétés ne sont pas décidables. En effet, l’absence de feuille terminale ne signifie pas que le
réseau est non bloquant. Pour s’en convaincre, il suffit d’imaginer deux franchissements de t2 suivi d’un
franchissement de t6 à partir de la feuille divergente [p1 , p3 , 2.p4 , p5 ]. Le marquage [p1 , p3 ] est atteint et
constitue une feuille TERMINALE dans cet arbre. Le réseau n’est donc ni vivant, ni réinitialisable.
Remarquons bien que le résultat ci-dessus concernant "non vivant" et "non réinitialisable" n’est pas
atteint par exécution de l’algorithme de couverture, mais par développement intuitif d’une branche
conduisant à un blocage dans la partie "divergente" de cet arbre. Il n’est donc pas inutile de réfléchir lors
d’un problème d’analyse de propriétés, toutefois la construction d’une telle branche bloquante n’est pas
toujours triviale...
UPS - Master ISTR 1ère année 16

Figure 2.2 – un réseau et son arbre de couverture

Graphe des marquages accessibles


Dans le cas d’un réseau borné, le graphe des marquages accessibles est construit en fusionnant chaque
feuille DUPLICAT avec les nœuds ayant le même marquage. Les propriétés du graphe (d’état) obtenu
permettent de conclure quant aux bonnes propriétés du réseau de Petri initial.
Vous trouverez facilement des cours concernant la théorie des graphes qui vous permettront, si besoin, de
revoir le concept de composante fortement connexe (cfc) —sous-graphe complet — nécessaire à la
compréhension de ce qui suit. Par ailleurs nous ne considérerons que les cfc ayant comportantau moins
deux sommets et n’étant pas un sous-graphe d’une cfc. Notons que dans un graphe orienté, une
composante fortement connexe est dite pendante (cfcp) si et seulement si il n’existe pas d’arc ayant pour
origine un sommet de la cfcp et pour destination un sommet extérieur à la cfcp.
1. Une transition appartenant à toutes les cfcp est vivante.
2. Si GM0 est une cfc, le réseau est réinitialisable.
La figure 2.3 développe un arbre de couverture et le graphe des marquages d’un réseau.

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

2.4 Analyse structurelle des réseaux de Petri


2.4.1 Composante répétitive stationnaire (t semi-flot)
Soit s un support de séquence tel que C.s = 0. L’équation d’évolution exprime que s’il existe une
séquence franchissable ayant pour support s, alors M 0 = M + C.s = M , cette séquence ne change pas le
marquage à partir duquel elle est franchie.
Le support de séquence s est appelé composante répétitive stationnaire.
La recherche de s passe par la résolution du système d’équations linéaires du premier ordre défini par
C.s = 0.

2.4.2 Invariant linéaire de transitions


Une séquence réellement franchissable pour M0 ayant une composante répétitive stationnaire s comme
support est appelée invariant linéaire de transitions. Cette définition implique naturellement que toutes
les composantes de s sont positives ou nulles.
Un invariant linéaire de transitions met en évidence dans le modèle un processus cyclique exécutable à
partir de M0 .
Il est tout à fait possible de mettre en évidence une composante répétitive stationnaire pour lequel un
ordre de franchissement existe bien mais à partir d’un marquage M différent de M0 . Même si cet ordre
de tir ne correspond pas à la définition d’un invariant de transitions, il s’agit, en terme d’analyse de
propriétés spécifiques à l’application modélisée, d’une information particulièrement utile. En effet, si M
est accessible à partir de M0 , une telle séquence met en évidence un fonctionnement cyclique suite à une
série d’évolutions non cycliques (phase d’initialisation par exemple).
Cette partie du cours, en rouge (l’implication ci-dessous et son utilisation) sort du
programme de l’examen de cette année compte tenu de l’erreur qu’elle contenait,
erreur corrigée le 30/12/2019 uniquement.
Remarque : Il existe un lien entre les bonnes propriétés et les invariants de transitions
Propriété : la recherche des invariants de transitions d’un réseau de Petri réinitialisable, vivant et borné
aboutit nécessairement à un invariant linéaire de transitions dans lequel toutes les transitions sont
franchies au moins une fois. (on exprime souvent ceci par un invariant contenant toutes les transitions
ou une couverture globale par les invariants de transitions ou encore un invariant global de transitions. Il
s’agit d’une implication que l’on peut écrire
Réseau réinitialisable ∧ Réseau vivant ∧ Réseau borné ⇒ invariant global de transitions
Le principe de démonstration de cette implication est le suivant : comme les trois bonnes propriétés sont
présentes, le graphe de marquages accessibles de ce réseau de Petri est une composante fortement
connexe. Par définition d’une cfc, il est possible de trouver un chemin passant tous les arcs à partir de
M0 . Le réseau étant vivant, ce chemin met en évidence une séquence franchissable à partir de M0
comportant toutes les transitions, ce qui définit bien un invariant linéaires global de transitions.

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.

En particulier, ceci n’implique pas la vivacité (Figure 2.4).


Recherchons l’existence d’invariants de transitions.
    
−1 0 +1  −s1 +s3 = 0 1
/C = +1 +1 −2 d’où +s1 +s2 −2s3 = 0 et la solution s = 1
+2 −1 −1 +2s1 −s2 −s3 = 0 1

UPS - Master ISTR 1ère année 18

Figure 2.4 – Un réseau de Petri borné et bloquant ; son graphe des marquages accessibles

L’invariant linéaire de transitions


t1 → t2 → t3
ramène bien au marquage initial (ce qui apparaît aussi sur le graphe des marquages), pourtant le réseau
est bloquant en [3p2 ].

2.4.3 Composante conservative (p semi-flot)


Soit la matrice colonne f ∈ Z card(P ) . Si nous multiplions à gauche l’équation fondamentale des réseaux
de Petri par f T , nous obtenons la relation :
f T .M 0 = f T .M + f T .C.s
dans laquelle, f T .M est une forme linéaire f1 .M (p1 ) + f2 .M (p2 ) . . . + fk .M (pk )
Nous cherchons une matrice colonne f pour lequel la valeur de cette forme linéaire est constante compte
tenu de la structure du réseau de Petri . Ceci peut s’écrire
∀s f T .C.s = 0
On recherche donc f en résolvant le système d’équations linéaires
f T .C = 0
La matrice colonne f ayant la propriété f T .C = 0 est appelé composante conservative (ou p semi-flot).
Exemple (figure 2.5)

Figure 2.5 – Un réseau de Petri et son graphe des marquages accessibles

Le calcul des composantes conservatives donne


    
−1 +1 −f1 +3f2 = 0 3
C= d’où et la solution s =
+3 −3 +f1 −3f2 = 0 1
Dans ce réseau, on a bien
3 × M (p1 ) + M (p2 ) = constante
c’est une propriété découle de la structure de contrôle du réseau de Petri uniquement, le marquage initial
n’intervenant ni dans la définition, ni dans le calcul.
UPS - Master ISTR 1ère année 19

2.4.4 Invariant linéaire positif de places


La forme linéaire construite avec la composante conservative f :
f1 .M (p1 ) + f2 .M (p2 ) + . . . + fk .M (pk ) = constante
est un invariant de places (ILP).
La valeur de la constante peut être calculée avec tout marquage connu, par exemple Mo . On a donc la
forme générale d’une composante conservative :
f1 .M (p1 ) + f2 .M (p2 ) + . . . + fk .M (pk ) = f T .M0
On dit qu’une place pi appartient à l’invariant de places si et seulement si fi 6= 0 (ceci est noté par abus
de langage pi ∈ ILP car un ILP n’est pas un ensemble de places).
Les invariants linéaires positifs de places (ILPP) sont très intéressants pour l’analyse des bonnes
propriétés du réseau de Petri. Un ILPP est un invariant linéaire de places dans lequel tous les fi sont
positifs (un fi au moins est non nul...). Dans ce cadre, il est simple de montrer qu’une place appartenant
à un ILPP est bornée.
En effet, considérons la forme générale d’un ILPP f1 .M (p1 ) + f2 .M (p2 ) + . . . + fk .M (pk ) = f T .M0 . Dans
cette expression, les produits fj .M (pj ) sont positifs ou nuls et leur somme est finie (f T .M0 ). Dans ce
cas, en considérant qu’il existe dans ce réseau de Petri un marquage dans lequel seul M (pj ) 6= 0, on a
T T
alors : fj .M (pj ) = f T .M0 et donc M (pj ) = f f.M
j
0
< E( f f.M
j
0
) + 1, d’où :

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é.

Figure 2.6 – Un réseau de Petri et son graphe des marquages accessibles

Sur la résolution d’un système de la forme C.s = 0


Mathématiquement, la matrice C peut être considérée comme la représentation d’une fonction liant deux
espaces vectoriels de dimension Card(T ) et Card(P ). Par exemple, QCard(T ) et QCard(P ) , le
raisonnement se faisant pour les réseaux de Petri en nombres entiers par définition.
A partir de l’équation d’évolution M 0 = M + C.s on peut en effet écrire :
C(s) = C.s = M 0 − M
et par ailleurs,
C T .f est homogène à une séquence s
La résolution de C.s = 0 (respectivement C T .f = 0) n’est donc rien d’autre que la recherche du noyau de
l’application représentée par C (respectivement par C T ).
Les bases de l’algèbre linéaire nous indiquent :
UPS - Master ISTR 1ère année 20

— 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

Les réseaux de Petri et la commande


des SED

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.

Figure 3.1 – Commande et réseaux de Petri

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) :

Action2 ⇔ M (p1) > 0 et Action3 ⇔ M (p3) > 0

- 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

3.1 Réseau de Petri interprété : définition formelle


Un réseau de Petri interprété est un quaduplet hN , E, Π(E), Ii dans lequel
- N est un réseau de Petri marqué,
- E = Ac ∪ P r est un ensemble d’étiquettes désignant des actions (ensemble Ac) et des prédicats
(ensemble P r).
- Π(E) est une fonction associant des étiquettes aux places ou aux transitions
Π(E)
P ∪ T −→ P(Ac) ∪ (P r ∪ {vrai}) × P(Ac))
∀pi ∈ P, Π(pi ) = l ∈ P(Ac)
∀tj ∈ T, Π(tj ) = (l1 ; l2 ) avec [l1 ∈ P r ∪ {vrai}] ∧ [l2 ∈ P(Ac)]

- 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.

Figure 3.2 – les trois types de sommets de l’interprétation du réseau de Petri

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.

Figure 3.3 – Les réservoirs de l’exemple

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

Figure 3.4 – Réseau de Petri interprété de commande de l’exemple de la figure 3.3

Figure 3.5 – Interprétation pour l’exemple de la figure 3.3

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

3.2 Construction d’une commande en réseaux de Petri


Comme avec des automates, la commande peut être générée suivants deux approches :
1. par une modélisation intuitive dans laquelle le réseau de Petri regroupe à la fois les
comportements possibles du procédé commandé et les objectifs de la commande
UPS - Master ISTR 1ère année 24

2. par composition du modèle du procédé G avec celui des objectifs de la commande O (vu ici).

3.2.1 Modèle du procédé


Ce modèle est un réseau de Petri interprété qui assure la connexion avec les capteurs et les actionneurs
du procédé. Il représente toutes les évolutions potentielles du système à commander. En cela, ce modèle
est proche du modèle “en boucle ouverte" utilisé en automatique classique.
G = PG , TG , P reG , P ostG , M0G
Dans ce modèle, nous prendrons la convention suivante pour les noms (symboles) désignant les éléments
structurels :
- pxG pour les places (x ∈ [1, Card(PG )])
- tyG pour les transitions (y ∈ [1, Card(TG )])
La modélisation d’un procédé par réseau de Petri est un problème qui mérite à lui seul de nombreux
exemples et de nombreuses heures de réflexion. L’objet de ce cours n’est pas de rentrer en détail dans ces
techniques, mais plutôt d’utiliser le modèle pour en déduire une commande.
Toutefois, deux éléments de base de la modélisation sont donnés ici.

Figure 3.7 – quelques éléments de modélisation

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

Figure 3.8 – Un aiguillage simplifié

Figure 3.9 – Un modèle de cet aiguillage simplifié

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.).

3.2.2 Le modèle des objectifs de la commande


L’objectif d’une commande est représenté par un réseau de Petri autonome O (sans interprétation) dans
lequel chaque transition est une image d’une transition du réseau modélisant le procédé.

O = PO , TO , P reO , P ostO , M0O

Il doitêtre défini en particulier en terme


-d’un marquage initial M0O ;
-d’un ensemble de marquages finaux (à atteindre) MfO .
-d’un ensemble ordonné de tirs de transitions du réseau modélisant le procédé en "boucle ouverte"
s
que nous noterons S O , avec S O = {s|M0O −→ Mf ∈ MfO }.
En utilisant une notation basée langage (pour faire un lien avec la démarche exposée dans la partie
automate de ce cours) on peut aussi écrire :

S O = {s ∈ TO∗ |s ∈ Lm [GM0 (O)]}

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 :

txOi |txG ∈ TG avec i ∈ N

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.

Figure 3.10 – Le modèle des objectifs de la commande

3.2.3 Synthèse d’une commande


Le modèle de commande est un réseau de Petri interprété contenant à la fois les séquences que le
procédé peut exécuter en "boucle ouverte" et les séquences "objectif" S O . La commande est donc
synthétisée en réunissant les deux modèles objets des deux sections précédentes. La synthèse elle même
s’effectue en deux étapes :
1. Fusion des deux modèles G et O pour faire apparaître toutes les évolutions communes aux deux
réseaux O et G et celles laissées libres sur G ou sur O.
2. Restriction du réseau de Petri résultant pour exclure les évolutions (séquences) ne correspondant
à aucun objectif.
UPS - Master ISTR 1ère année 27

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.

Restriction de G//O à la commande


La fusion de G et O laisse en général des transitions de G non fusionnées . Ces transitions peuvent être :
- des transitions dont le franchissement est nécessaire à la réalisation d’une séquence objectif de
S O , mais qui n’apparaissaient pas dans les objectifs. Elles devront appartenir au réseau de Petri
de commande final,
- des transitions correspondant à des potentialités du procédé non utilisées par la réalisation d’une
séquence des objectifs S O , et elles devront être supprimées pour obtenir le réseau final de
commande.
C’est sur cette dernière catégorie de transitions que se focalise l’étape de restriction de G//O.
La formalisation de cette opération est la suivante. Le modèle de commande
UPS - Master ISTR 1ère année 28

C = hPc , Tc , P reC , P ostc , M0c i est tel que :

(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.

Figure 3.11 – Fusion des deux réseaux O et G

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 obtient le graphe suivant :

Figure 3.12 – Graphe des marquages accessibles de G//O

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

Figure 3.13 – un autre objectif pour l’aiguillage

La fusion de ce réseau avec le modèle du procédé donne le réseau de Petri de la figure 3.14.

Figure 3.14 – Fusion de G et O

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.

Figure 3.15 – Graphe des marquages accessibles 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

Figure 3.16 – la commande après restriction aux séquences utiles

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.

Vous aimerez peut-être aussi