Espase d'Etat
-
Upload
hichamchocha -
Category
Documents
-
view
27 -
download
0
Transcript of Espase d'Etat
-
Commande par espace dtat
Luc Jaulin
18 octobre 2007
-
2 Commande par espace dtat
-
Table des matires
1 Introduction 13
2 Modlisation des systmes 17
2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.2 Reprsentation dtat de quelques systmes linaires . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.2.1 Intgrateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.2.2 Systme dordre 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.3 Modlisation des systmes mcaniques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.3.1 Mthodologie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.3.2 Modlisation dun satellite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.3.3 Modlisation dun systme masses-ressorts . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.3.4 Modlisation dun pendule simple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.3.5 Modlisation dun pendule invers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.4 Modlisation des vhicules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.4.1 Modlisation dun monocycle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.4.2 Modlisation dun char . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.4.3 Modlisation dune voiture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.4.4 Modlisation dun voilier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.5 Systmes hydrauliques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.5.1 Rappel sur la relation de Bernouilli . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.5.2 Ecoulement dans trois bacs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.5.3 Modlisation dun vrin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
2.6 Systme lectrique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3
-
4 Commande par espace dtat
2.6.1 Circuit RLC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
2.6.2 Moteur courant continu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
2.7 Systme de Fibonacci . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3 Simulation 39
3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.2 Notion de champ de vecteur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.2.1 Exemple dune fonction linaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
3.2.2 Exemple dune fonction de type gradient . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.3 Champ de vecteur associ un systme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.3.1 Systme proies-prdateurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.3.2 Pendule simple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
3.4 Reprsentation graphique des systmes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
3.4.1 Motif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.4.2 Matrice de rotation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
3.4.3 Coordonnes homognes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
3.4.4 Dessin de la voiture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
3.4.5 Dessin dun bras manipulateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
3.5 Simulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
3.5.1 Mthode dEuler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
3.5.2 Simulation dun pendule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
3.5.3 Simulation dune voiture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
3.6 Ajout de linteractivit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
4 Systmes linaires 57
4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
4.2 Solution des quations dtat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
4.2.1 Systme temps continu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
4.2.2 Systme temps discret . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
4.3 Stabilit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
-
Table des matires 5
4.3.1 Solution des quations dtat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
4.3.2 Critre de stabilit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
4.3.3 Polynme caractristique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
4.4 Changement de base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
4.4.1 Principe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
4.4.2 Exemple de changement de base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
4.5 Dune reprsentation dtat vers une reprsentation entres-sorties . . . . . . . . . . . . . . . . . . 62
4.6 Dune reprsentation entres-sorties vers une reprsentation dtat . . . . . . . . . . . . . . . . . . 64
4.6.1 Forme canonique de commande . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
4.6.2 Forme canonique dobservation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
4.6.3 Forme modale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
4.6.4 Forme de Jordan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
5 Commande des systmes linaires 71
5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
5.2 Commandabilit et observabilit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
5.2.1 Rappel sur les quations linaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
5.2.2 Commandabilit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
5.2.3 Observabilit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
5.2.4 Dcomposition de Kalman . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
5.3 Commande par retour dtat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
5.3.1 Equation de placement de ples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
5.3.2 Rsolution de lquation de placement de ples . . . . . . . . . . . . . . . . . . . . . . . . . 77
5.3.3 Rajout dun effet intgral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
5.4 Commande par retour de sortie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
5.4.1 Principe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
5.4.2 Calcul de la matrice de correction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
5.4.3 Reprsentation dtat du rgulateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
5.5 Principe de sparation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
5.5.1 Equation dtat du systme boucl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
-
6 Commande par espace dtat
5.5.2 Changement de base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
5.5.3 Polynme caractristique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
5.6 Insertion dun prcompensateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
6 Commande linaire des systmes non linaires 87
6.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
6.2 Linarisation dun systme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
6.2.1 Rappel sur la linarisation dune fonction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
6.2.2 Linarisation du systme autour dun point . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
6.2.3 Linarisation du systme autour dun point de fonctionnement . . . . . . . . . . . . . . . . 89
6.2.4 Exemple du systme proies-prdateurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
6.2.5 Exemple du pendule simple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
6.2.6 Exemple du vrin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
6.3 Stabilisation dun systme non linaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
6.3.1 Principe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
6.3.2 Avec un observateur tendu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
6.4 Stabilisation du pendule invers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
6.5 Stabilisation dun monocycle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
6.6 Conduite automatique dune voiture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
6.6.1 Fonction dobservation pour le systme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
6.6.2 Fonction dobservation pour le rgulateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
6.6.3 Bouclage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
7 Commande non linaire des systmes non linaires 107
7.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
7.2 Un petit exemple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
7.3 Principe de la linarisation par bouclage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
7.3.1 Principe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
7.3.2 Commande dune chane dintgrateurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
7.4 Rgulation des trois bacs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
-
Table des matires 7
7.5 Rgulation du char . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
7.6 Rgulation de la voiture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
7.6.1 Voiture dcrivant un hexagone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
7.6.2 Voiture dcrivant un cercle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
7.7 Rgulation du bateau voile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
7.7.1 Drivations successives des variables dtat . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
7.7.2 Linarisation par bouclage du bateau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
7.7.3 Rgulateur hybride . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
8 Identification 125
8.1 Fonctions quadratiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
8.1.1 Dfinition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
8.1.2 Drive dune forme quadratique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
8.1.3 Valeurs propres dune fonction quadratique . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
8.1.4 Minimisation dune fonction quadratique . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
8.2 Mthode des moindres-carrs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
8.2.1 Introduction lestimation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
8.2.2 Mthode des moindres carrs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
8.2.3 Exemple de la parabole . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
8.2.4 Moteur courant continu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
8.2.5 Estimation dune fonction de transfert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
8.2.6 Cas non-linaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
8.3 Localisation dun robot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
8.4 Moindres-carrs rcursifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
8.4.1 Principe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
8.4.2 Premire simplification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
8.4.3 Deuxime simplification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
8.5 Filtrage de Kalman . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
8.5.1 Matrice de covariance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
8.5.2 Distribution Gaussienne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
-
Table des matires 11
8.5.3 Filtre de Kalman . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
8.6 Application lestimation en temps rel dune fonction de transfert . . . . . . . . . . . . . . . . . . 138
8.6.1 Principe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
8.6.2 Perspectives : commande adaptative, surveillance . . . . . . . . . . . . . . . . . . . . . . . . 140
8.7 Localisation dun robot sous-marin dans une piscine . . . . . . . . . . . . . . . . . . . . . . . . . . 141
8.7.1 Prsentation du problme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
8.7.2 Dtection des murs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
8.7.3 Localisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
8.7.4 Reprsentation graphique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
Bibliographie 146
Glossaire 149
Index 150
-
12 Commande par espace dtat
-
Chapitre 1
Introduction
Une trs grande classe de systmes physiques, biologiques, conomiques, etc. qui nous entourent peuvent tre
dcrits par une quation diffrentielle du type{x(t) = f(x(t),u(t))
y(t) = g(x(t),u(t)),(1.1)
sous lhypothse que le temps t dans lequel volue le systme est continu (cest--dire appartient R). Le vecteur
u(t) est lentre (ou commande) du systme. Sa valeur peut tre choisie arbitrairement pour tout t. Le vecteur
y(t) est la sortie du systme et peut tre mesur avec une certaine prcision. Le vecteur x(t) est appel tat du
systme. Comme nous lillustrerons dans la suite, il reprsente la mmoire du systme, cest--dire, lensemble des
informations dont le systme a besoin pour prdire son propre avenir, pour une entre u(t) connue. La premire
des deux quations de (1.1) sappelle quation dvolution. Il sagit dune quation diffrentielle qui permet de
savoir vers o va se diriger ltat x(t) sachant sa valeur linstant prsent t et la commande u(t) que nous sommes
en train dexercer. La deuxime quation sappelle quation dobservation. Elle permet de calculer le vecteur de
sortie y(t), connaissant ltat et la commande linstant t. Attention, contrairement lquation dvolution, cette
quation nest pas une quation diffrentielle car elle ne fait pas intervenir les drives des signaux. Les quations
(1.1) forment la reprsentation dtat du systme.
Il est parfois utile de considrer aussi un temps k discret, o k sera un lment de Z, lensemble des entiers relatifs.
En effet, si lunivers que nous considrons est un ordinateur, il est concevable de considrer que le temps k qui
le rgit est discret, synchronis sur lhorloge du microprocesseur. De tels systmes, dits temps discret , obissent
gnralement une quation de rcurrence du type{x(k + 1) = f(x(k),u(k))
y(k) = g(x(k),u(k)).(1.2)
Dans ce cours (qui est fortement inspir de mon livre [8], paru en 2005), sauf mention particulire, nous allons
uniquement nous intresser aux systmes temps continu (cest--dire de type (1.1)).
Le premier objectif de ce cours est de bien comprendre cette reprsentation dtat. Pour cela, nous allons considrer
dans le chapitre 2 un grand nombre dexemples varis et montrer comment naturellement nous arrivons une
reprsentation dtat pour modliser le systme qui nous intresse. Ensuite, nous montrerons au chapitre 3 comment
simuler sur ordinateur un systme pour lequel une reprsentation dtat est connue.
13
-
14 Commande par espace dtat
Le second objectif de ce cours est de proposer des mthodes pour commander les systmes dcrits par des qua-
tions dtat. Cest--dire que nous allons tenter de fabriquer des machines automatiques (o lhomme nintervient
quasiment pas, sauf pour donner ses ordres, o consignes), appeles rgulateurs capables de domestiquer (changer
le comportement dans le sens que lon souhaite) les systmes considrs. Pour cela, le rgulateur devra calculer
les entres u(t) appliquer au systme partir de la connaissance (plus ou moins bruites) des sorties y(t) et de
la consigne w(t) donne (voir figure).
Principe de la rgulation dun systme
Vu de lutilisateur, le systme, dit systme boucl, dentrew(t) et de sortie y(t) aura un comportement convenable.
On dira que lon a asservi le systme.
Dans cet objectif de rgulation, nous allons, dans une premire phase, nous intresser uniquement aux systmes
linaires, cest--dire que les fonctions f et g sont supposes linaires. Ainsi, dans le cas du temps continu, (1.1)
scrit {x(t) = Ax(t) +Bu(t),
y(t) = Cx(t) +Du(t),(1.3)
et dans le cas du temps discret, (1.2) devient{x(k + 1) = Ax(k) +Bu(k),
y(k) = Cx(k) +Du(k).(1.4)
Les matrices A,B,C,D sont appeles matrices dvolution, de commande, dobservation et directe. Une analyse
dtaille de ces systmes sera faite au chapitre 4. Nous expliquerons ensuite, dans le chapitre 5 comment stabiliser
ces systmes.
Dans une seconde phase, nous montrerons, au chapitre 6, quautour de certains points, dits de fonctionnement ,
les systmes non linaires se comportent comme des systmes linaires et quil alors possible de les stabiliser par
des mthodes dveloppes pour le cas linaire. Nous donnerons aussi dautres types dapproches, moins gnrales
mais plus adaptes, pour stabiliser des systmes non linaires.
Les programmes informatiques utiliss pour tester nos rgulateurs et effectuer nos simulations seront tous donns
pour un environnement S[2]. Ces derniers sont disponibles sur
http ://www.hermes-science.com/jaulin/progscilab.zip.
Rappelons que S est un logiciel de calcul numrique qui intgre les oprations courantes du calcul matriciel
(tout comme M), et offre lavantage dtre gratuit (contrairement M). Il peut tre tlcharg
ladresse
http ://www-rocq.inria.fr /scilab/.
Le calcul formel sera quant lui effectu sous Musc[1] qui est un logiciel proche de M. Notons que
contrairement M, Musc est gratuit et peut tre tlcharg sur
http ://www.mupad.com.
Dans le fichier compress progscilab.zip, vous trouverez les programmes S suivants :
-
Introduction 15
BacsAsservi.sce, BacsLibres.sce,
BateauHybride, BateauLibre.sce,
BrasManipulateur, CharLibre,
PenduleInverseAsservi.sce, PenduleInverseLibre.sce,
PenduleSimpleChamp.sce, PenduleSimpleLibre.sce,
PenduleSimpleTrajectoire.sce, SegWayAsservi,
SegwayLibre, VerinLibre,
VoitureAsservieCircuit, VoitureAsservieCycle,
VoitureAsservieHexagone.sce, VoitureAsservieNord,
VoitureChampCycle.sce, VoitureLibre.sce,
VoitureLibreCircuit.sce, VoitureLibreNord.sce,
VolterraChamp.sce.
Dans les noms des fichiers, on retrouve le nom du systme trait (voiture, pendule, etc), un qualificatif (libre
signifie non asservi) et lextension sce rattache aux programmes S.
-
16 Commande par espace dtat
-
Chapitre 2
Modlisation des systmes
2.1 Introduction
Rappelons que de nombreux systmes peuvent se mettre sous une reprsentation dtat,{x(t) = f(x(t),u(t))
y(t) = g(x(t),u(t)),
pour les systmes temps continus et {x(k + 1) = f(x(k),u(k))
y(k) = g(x(k),u(k)),
pour les systmes temps discret. Nous appellerons modlisation ltape qui consiste trouver une reprsentation
dtat, plus ou moins prcise, du systme qui nous intresse. En gnral, apparaissent dans les quations dtats des
paramtres constants (comme la masse ou le moment dinertie dun corps, le coefficient du frottement visqueux,
la capacit dun condensateur, etc). Dans de tels cas, une tape didentification peut savrer ncessaire. Dans ce
cours, nous supposerons que tous les paramtres sont connus et dans le cas contraire, nous invitons le lecteur
consulter le livre dEric Walter et Luc Pronzato [7] pour une panoplie des mthodes didentification.
Bien sr, il nexiste pas de mthodologie systmatique appliquer pour modliser un systme. Le but de ce chapitre
est de prsenter sur quelques exemples varis comment arriver une reprsentation dtat afin de permettre au
lecteur dacqurir une certaine exprience qui laidera modliser ses propres systmes.
2.2 Reprsentation dtat de quelques systmes linaires
Dans ce paragraphe, nous prsentons quelques exemples de systmes linaires temps continus, qui, rappelons-le,
peuvent tre dcrits par les quations dtat{x(t) = Ax(t) +Bu(t),
y(t) = Cx(t) +Du(t).
17
-
18 Commande par espace dtat
2.2.1 Intgrateur
Lintgrateur est un systme linaire dcrit par lquation diffrentielle y = u. Une reprsentation dtat possible
pour ce systme est {x(t) = u(t)
y(t) = x(t).
Les matrices associes ce systme sont A = (0), B = (1), C = (1) et D = (0) . Elles sont toutes de dimension
1 1.
2.2.2 Systme dordre 2
Soit le systme dentre u et de sortie y dcrit par lquation diffrentielle suivante
y + a1y + a0y = bu.
Puisque, (y
y
)=
(y
a1y a0y + bu
),
y = y,
en posant x = (y, y), cette quation diffrentielle peut scrire sous la forme(x1x2
)=
(x2
a1x2 a0x1 + bu
),
y = x1,
ou encore, sous une forme standard faisant apparatre les matrices dtat A, B, C et D :
x =
(0 1
a0 a1
)x+
(0
b
)u
y =(
1 0)x.
2.3 Modlisation des systmes mcaniques
2.3.1 Mthodologie
Le principe fondamental de la dynamique permet de trouver simplement les quations dtat de systmes mca-
niques (ou robots). Les calculs engendrs sont relativement lourds pour les systmes complexes et lutilisation du
logiciel de calcul formel (Musc par exemple) peut savrer utile. La mthode sera illustre travers plusieurs
exemples.
Pour obtenir les quations dtat dun systme mcanique compos de plusieurs sous-systmes S1,S2, . . . ,Sm,supposs rigides, on procde en trois tapes.
-
Modlisation des systmes 19
1. Obtention des quations diffrentielles. Il faut appliquer pour chaque sous-systme Sk, de masse m et dematrice dinertie J, les relations
i fi = maiMfi = J
o les fi sont les forces agissant sur le sous-systme Sk,Mfi reprsente le moment engendr par la force fi surSk, par rapport son centre de gravit. Le vecteur a reprsente lacclration tangentielle de Sk et le vecteur reprsente lacclration angulaire de Sk. Aprs dcomposition de ces 2 m quations vectorielles suivantleurs composantes, on obtient 6 m quations diffrentielles scalaires dont certaines peuvent tre dgnres
(cest--dire du type 0 = 0).
2. Suppression des composantes des forces intrieures. Dans les quations diffrentielles interviennent des forces,
dites de liaisons, qui sont intrieures au systme mcanique global, bien quextrieures chaque sous-systme
qui le compose. Elles reprsentent laction dun sous-systme Sk sur un autre sous-systme S. Daprs leprincipe daction-raction, lexistence dune telle force, notons la fk,, implique lexistence dune autre force
f ,k, reprsentant laction de S sur Sk, telle que f ,k = fk,. Par une manipulation formelle des quationsdiffrentielles et en prenant en compte les quations dues au principe daction-raction, il est possible de se
dbarrasser des composantes fx, fy et fz de ces forces intrieures. Le nombre des quations diffrentielles
rsultantes doit se rduire au nombre n de degr de libert q1, . . . , qn du systme.
3. Obtention des quations dtat. Il nous faut alors isoler les drives secondes q1, . . . , qn de lensemble des n
quations diffrentielles de faon obtenir une relation vectorielle du type
q = f (q, q,u) ,
o u est le vecteur des forces extrieures et ne drivant pas dun potentiel (cest--dire, celles que nous
appliquons au systme). Les quations dtat scrivent alors
d
dt
(q
q
)=
(q
f (q, q,u)
).
Le lecteur intress par plus de dtails sur la modlisation des systmes mcaniques pourra consulter [5] et
[13]. Nous allons maintenant illustrer la mthodologie prsente sur divers exemples.
2.3.2 Modlisation dun satellite
Considrons le satellite, reprsent sur la figure ci dessous, et repr par ses coordonnes (x1, x2). Ce satellite est
en orbite autour de la terre.
Satellite en orbite autour de la terre
-
20 Commande par espace dtat
La loi de gravitation universelle de Newton affirme que la terre exerce une force dattraction f sur le satellite
donne par
f = G Mmx21+x2
2
u =G Mmx21+x2
2
. 1x21+x2
2
(x1x2
)
= G Mmx21+x2
2
3
(x1x2
),
o M est la masse de la terre, m est celle du satellite, G = 6.67 1011Nm2kg2 est la constante de gravitationde Newton et u est le vecteur unitaire pointant vers le satellite. Daprs la seconde loi de Newton (cest--dire le
principe fondamental de la dynamique),
f = mdv
dt= m
(x1x2
),
o v est le vecteur vitesse du satellite. Ainsi(x1x2
)= G M
x21 + x22
3
(x1x2
).
Puisque {x1 = x3x2 = x4,
les quations dtat scrivent
x1 = x3x2 = x4x3 = GMx1
x21+x2
2
3
x4 = GMx2x21+x2
2
3 .
2.3.3 Modlisation dun systme masses-ressorts
(a) systme au repos, (b) systme dans un tat quelconque
On considre le systme dentre f et de sortie z1 de la figure ci-dessus (f : force applique sur le deuxime
chariot, zi cart du iime chariot par rapport sa position dquilibre, ki raideur du iime ressort, coefficient
de frottement visqueux). Prenons pour vecteur dtat
x = (z1, z1, z2, z2)T .
-
Modlisation des systmes 21
Le principe fondamentale de la dynamique appliqu au chariot 2 puis au chariot 1 donne{f z2 k2(z2 z1) = m2z2,k1z1 z1 + k2(z2 z1) = m1z1.
Nous avons donc la reprsentation dtat suivantex =
0 1 0 0
k1+k2m1 m1 k2m1 00 0 0 1k2m2
0 k2m2 m2
x +
0
0
01m2
fz1 =
(1 0 0 0
)x
qui est celle dun systme linaire.
2.3.4 Modlisation dun pendule simple
On considre le pendule de la figure ci dessous. Lentre de ce systme est le couple c exerc sur le pendule. La
sortie est y(t), la distance entre la masse m et laxe vertical. Cherchons les quations dtat de ce systme.
Pendule simple
Daprs le principe fondamental de la dynamique,
mg sin q + c = Jq,o est la longueur du pendule. Or, pour notre exemple, J = m2, donc
m2q + mg sin q = c.
Comme indiqu au point 3 du paragraphe 2.3.1 de la page 18, nous devons prendre pour vecteur dtat x = (q, q).
Les quations dtat du systme scrivent alors :
ddt
(q
q
)=
(q
mg sin q+cm2
),
y = sin q.
(2.1)
Remarque 2.3.1 Lnergie mcanique du pendule est donne par
Em =1
2m2q2
nergie cintique
+mg (1 cos q) nergie potentielle
.
-
22 Commande par espace dtat
Lorsque le couple c est nul, on a
dEmdt =
12m
2 (2qq) +mgq sin q
= m2(qmg sin q
m2
)+mgq sin q = 0.
Lnergie mcanique du pendule reste donc bien constante, ce qui est cohrent avec le fait que le pendule sans
frottement est un systme conservatif.
2.3.5 Modlisation dun pendule invers
Pendule invers
On considre le systme, appel pendule invers, form dun pendule pos en quilibre instable sur un chariot
roulant, comme reprsent sur la figure. La quantit u est la force exerce sur le chariot de masse M , x indique
la position du chariot, est langle entre le pendule et la verticale et R est la force exerce par le chariot sur le
pendule. A lextrmit B du pendule est fixe une masse m. On ngligera la masse de la tige du pendule. Enfin,
A est le point darticulation entre la tige et le chariot et = k est le vecteur de rotation associ la tige.
Pour obtenir les quations dtat de ce systme, nous allons nouveau suivre la procdure prsente au paragraphe
2.3.1 de la page 18. Le principe fondamental de la dynamique appliqu sur le chariot et le pendule nous donne
(uRx)i = Mxi (chariot en translation)Rxi+Ryj mgj = mvB (pendule en translation)
Rx cos +Ry sin = 0. (pendule en rotation)
(2.2)
o vB est le vecteur vitesse du point B. Pour la troisime quation, le moment dinertie du pendule a t pos
nul. Puisque OB = (x sin )i+ cos j,
nous avons
vB =(x cos
)i sin j.
Donc, lacclration du point B est donne par
vB =(x cos + 2 sin
)i
( sin +
2cos
)j.
Aprs dcomposition scalaire des quations de la dynamique (2.2), on obtientMx = uRx, (i)Rx = m
(x cos + 2 sin
), (ii)
Ry mg = m( sin +
2cos
), (iii)
Rx cos +Ry sin = 0. (iv)
-
Modlisation des systmes 23
Ces quatre quations dcrivent respectivement (i) le chariot en translation, (ii) le pendule en translation suivanti, (iii) le pendule en translation suivant j et (iv) le pendule en rotation. On vrifie bien que le nombre de degr de
libert (ici x et ) additionn au nombre de composantes des forces intrieures (ici Rx et Ry) est gal au nombre
dquations. Sous forme matricielle, ces quations scrivent
M 0 1 0
m m cos 1 00 m sin 0 1
0 0 cos sin
x
RxRy
=
u
m2sin
mg m2 cos 0
.
Donc
(x
)=
(1 0 0 0
0 1 0 0
).
M 0 1 0
m m cos 1 00 m sin 0 1
0 0 cos sin
1
.
u
m2sin
mg m2 cos 0
.
Ce calcul se fait aisment grce Musc par les instructions suivantes
B :=matrix([u,m*l*w^2*sin(a),m*g-m*l*w^2*cos(a),0])
P :=matrix([[1,0,0,0],[0,1,0,0]])
A :=matrix([[M,0,1,0],[-m,m*l*cos(a),1,0],
[0,m*l*sin(a),0,1],[0,0,cos(a),sin(a)]])
normal(P/A*B)
Linstruction normal(P/A*B) renvoie la matrice PA1B avec des coefficients rduits au mme dnominateur.
Musc nous donne
(x
)=
m sin (2g cos )M+m sin2 sin ((M+m)gm
2cos )
(M+m sin2 )
+( (M+m sin2 )cos (M+m sin2 )
)u.
Les quations dtat scrivent donc
ddt
x
x
=
x
m sin (
2g cos )
M+m sin2 sin ((M+m)gm
2cos )
(M+m sin2 )
+
0
0
(M+m sin2 )cos
(M+m sin2 )
u. (2.3)
-
24 Commande par espace dtat
2.4 Modlisation des vhicules
2.4.1 Modlisation dun monocycle
Le Segway possde deux roues et un seul
essieu
Le Segway reprsent sur la figure est un vhicule deux roues pour un seul essieu. Il est stable car il est rgul.
Dans une phase de modlisation, nous allons bien sr supposer que lengin nest pas rgul. Son comportement
en boucle ouverte est trs proche du monocycle planaire reprsent sur la figure ci-dessous. Sur cette figure, u
reprsente le couple exerc entre le corps et la roue.
Monocycle constitu dune roue et dune tige lies par une liaison pivot
La liaison entre ces deux lments est une liaison pivot. Nous noterons B le centre de gravit du corps et A celui
de la roue. C est un point fix sur le disque. Notons langle entre le vecteurAC et lhorizontale et langle entre
le corps du monocycle et la verticale. Ce systme possde deux degrs de libert et . Daprs les explications
donnes au paragraphe 2.3.1 de la page 18, ltat de notre monocycle est donn par le vecteur x =(, , ,
).
Les paramtres de notre systme sont
pour le disque : sa masse M , son rayon a, son moment dinertie JM ,
pour le pendule : sa masse m, son moment dinertie Jp, la distance entre son centre de gravit et le centre du
disque.
-
Modlisation des systmes 25
Afin de trouver les quations dtat, nous appliquons le principe fondamental de la dynamique sur chaque sous-
systme, savoir la roue et le corps. Nous avons :Rx + Fx = Ma (roue en translation)Fxa+ u = JM (roue en rotation)
Rxi+Ryj mgj = mvB (corps en translation)Rx cos +Ry sin u = Jp (corps en rotation),
(2.4)
o vB, le vecteur vitesse du point B. Puisque
OB = (a sin )i+ ( cos + a)j,
par drivation, nous obtenons
vB =(a cos
)i sin j.
ou encore
vB =(a cos + 2 sin
)i
( sin +
2cos
)j.
Aprs dcomposition scalaire, des quations de la dynamique (2.4), on obtient
Rx + Fx = MaFxa+ u = JM
Rx = m(a cos + 2 sin )Ry mg = m( sin + 2 cos )
Rx cos +Ry sin u = JpOn vrifie bien que le nombre de degr de libert (ici et ) additionn au nombre de composantes des forces
intrieures (ici Rx, Ry et Fx) est gal au nombre dquations. Sous forme matricielle, ces quations scriventMa 0 1 0 1JM 0 0 0 ama m cos 1 0 0
0 m sin 0 1 0
0 Jp cos sin 0
RxRyFx
=
0
u
m2sin
mg m2 cos u
.
Donc
(x
)=
(1 0 0 0 0
0 1 0 0 0
).
Ma 0 1 0 1JM 0 0 0 ama m cos 1 0 0
0 m sin 0 1 0
0 Jp cos sin 0
1
.
0
u
m2sin
mg m2 cos u
.
Ce calcul se fait grce Musc par les instructions suivantes
B :=matrix([0,u,m*l*w^2*sin(T),m*g-m*l*w^2*cos(T),u])
P :=matrix([[1,0,0,0],[0,1,0,0]])
A :=matrix([[M*a,0,-1,0,1],[JM,0,0,0,-a],
[m*a,m*l*cos(T),1,0,0],[0,m*l*sin(T),0,1,0],
[0,-Jp,l*cos(T),l*sin(T),0]])
N0 :=normal(P/A*B),
N1 :=subs(N0,sin(T)^2=1-cos(T)^2)
N2 :=normal(N1)
-
26 Commande par espace dtat
Musc nous donne =3
(2
2g cos
)sin +(2+3 cos )u
122
3cos2
=
(1g
2
32cos
)sin (1+3 cos )u
122
3cos2
avec1 = JM + a
2 (m+M) , 2 = Jp +m2,
3 = aml, g = glm.
Les quations dtat scrivent donc
d
dt
=
3
(2
2g cos
)sin +(2+3 cos )u
122
3cos2 (
1g2
32cos
)sin (1+3 cos )u
122
3cos2
. (2.5)
2.4.2 Modlisation dun char
Fauteuil roulant (ou char), vu de dessus
Le char (ou le fauteuil roulant) de la figure comprend deux chenilles (ou roues) parallles motrices dont les
acclrations (qui forment les entres u1 et u2 du systme) sont commandes par deux moteurs indpendants.
Dans le cas o le fauteuil roulant est considr, la stabilit du systme est assure par une ou deux roues folles,
non reprsentes sur la figure. Les variables dtat sont constitues par les coordonnes x, y du centre de lessieu,
de lorientation du char, et des vitesses v1 et v2 du centre de chacune des roues motrices. Remarquons que le
vecteur dtat ne peut tre choisi gal (x, y, , x, y,
), ce qui pourtant nous aurait sembl naturel au regard de
la thorie lagrangienne brivement rappele au paragraphe 2.3.1. En, effet, si tel tait notre choix, certains tats
nauraient aucune signification physique. Par exemple ltat(x = 0, y = 0, = 0, x = 1, y = 1, = 0
)na pas de sens car le char nest pas autoris draper. Ce phnomne est d lexistence des roues qui entrane
des contraintes entre les variables dtat naturelles. Ici, nous avons ncessairement la contrainte de dite de non
holonomie :
y = x tan .
Les systmes mcaniques pour lesquels il existe de telles contraintes dgalits sur les variables dtat naturelles
(par variable dtat naturelles, nous entendons le vecteur (q, q) o q est le vecteur des degrs de libert de notre
-
Modlisation des systmes 27
systme) sont dit non holonomes. Lorsquune telle situation arrive, il convient dutiliser ces contraintes afin de
rduire le nombre de variables dtat et ceci, jusqu ce quaucune contrainte de non holonomie ne subsiste. Ici,
nous choisissons pour vecteur dtat (x, y, , v1, v2). Ce choix se comprend aisment dans le sens o ces variables
nous permettent de dessiner le char (x, y, ) et la connaissance de v1,v2 nous permet de calculer les variables x, y, .
De plus, tout choix arbitraire du vecteur (x, y, , v1, v2) correspond une situation physiquement possible. Les
quations dtat du systme sobtiennent directement sans aucun calcul.
Elles scrivent x
y
v1v2
=
v1+v22 cos
v1+v22 sin v2v1
Ru1Ru2
.
2.4.3 Modlisation dune voiture
Voiture se dplaant sur un plan (vue de dessus)
Le conducteur de la voiture reprsente sur la figure gauche possde deux commandes : lacclration des
roues avant (supposes motrices) et la vitesse de rotation du volant. Le frein apparat ici comme une acclration
ngative. Nous noterons langle entre les roues avant et laxe de la voiture, langle que fait la voiture par rapport
lhorizontale et (x, y) les coordonnes du milieu de lessieu arrire. En raisonnant comme dans le paragraphe
2.4.2, il est clair que les variables dtat de notre systme sont constitues par
les coordonnes de position, cest--dire, toute la connaissance ncessaire pour dessiner la voiture, savoir les
coordonnes x, y du centre de lessieu arrire, lorientation de la voiture, et langle des roues avant ;
et la coordonne cinmatique v reprsentant la vitesse du milieu de lessieu avant (en effet, la seule connaissance
de cette quantit et des coordonnes de position permet de retrouver toutes les vitesses de tous les autres
lments de la voiture).
Obtention des quations dtat [12]. Supposons pour simplifier que les deux roues avant tournent la mme
vitesse v. Comme illustr sur la figure droite, tout de passe comme sil existait seulement deux roues virtuelles
situes au centre des essieux. Considrons un observateur fixe par rapport au sol. Daprs la rgle de composition
des vitesses, nous avons
vA = vM +AM ,
-
28 Commande par espace dtat
o est le vecteur de rotation instantane de la voiture. Dans le repre de la voiture, cette quation scrit : v cos v sin 0
= vM0
0
+ L0
0
00
,o L est la distance entre les trains avant et arrire. Soit(
v cos
v sin
)=
(vM0
)+
(0
L
).
Ainsi,
=v sin
L,
et {x = vM cos = v cos cos
y = vM sin = v cos sin .
Lquation dvolution de la voiture scrit doncx
y
v
=
v cos cos
v cos sin v sin L
u1u2
. (2.6)
Nous reverrons cette voiture au paragraphe 6.6 page 98 et au paragraphe 7.6 page 114 pour tenter de la rguler.
Rajoutons une remorque cette voiture dont le point dattache est le milieu de lessieu arrire de la voiture. Les
quations rgissant la remorque peuvent tre obtenues directement partir de celles de la voiture.
Une voiture suivie dune remorque
En saidant de la figure, on obtient, pour la remorque les quations suivantes xryrr
= vr cos r cos rvr cos r sin r
vr sin rLr
avec
vr =x2 + y2 =
(v cos cos )2 + (v cos sin )2 = v cos ,
r = r.
-
Modlisation des systmes 29
Le paramtre Lr reprsente la distance entre le point dattache et le milieu de lessieu de la remorque. Or seule
r doit tre rajoute comme variable dtat celles de la voiture. En effet, il est clair que xr, yr, vr, r, xr, yr, . . .
peuvent tre obtenues analytiquement partir des seules connaissances de ltat de la voiture et de langle r.
Ainsi, les quations dtat du systme voiture-remorque sont donnes par
x
y
rv
=
v cos cos
v cos sin v sin L
v cos sin(r)Lr
u1u2
.
2.4.4 Modlisation dun voilier
Bateau voile que lon cherche modliser
La figure reprsente le voilier que nous voulons modliser. Le vecteur dtat x, de dimension 7, est compos
des coordonnes de position, cest--dire les coordonnes x, y du centre de gravit G du bateau (la drive se
trouve en G), lorientation , et les angles v et g de la voile et du gouvernail,
et des coordonnes cinmatiques v et reprsentant respectivement la vitesse du centre de gravit G et la
vitesse angulaire du bateau autour de G.
Les entres u1 et u2 du systme sont les drives des angles v et g. Les paramtres (supposs connus et constants)
sont
V la vitesse du vent,
rg la distance du gouvernail G,
-
30 Commande par espace dtat
rv la distance du mt G,
g la portance du gouvernail (si le gouvernail se trouve perpendiculaire la marche du bateau, leau exerce une
force de gv Newton sur le gouvernail),
v la portance de la voile (si la voile se trouve immobile, perpendiculaire au vent, ce dernier exerce une force
de vV Newton),
f le coefficient de frottement du bateau sur leau dans le sens de la marche (leau exerce sur le bateau une
force oppose au sens de la marche gale fv),
le coefficient angulaire de frottement (leau exerce sur le bateau un couple de frottement gal ; tantdonn la forme du bateau, plutt profil pour garder un cap, sera grand devant f ),
J le moment dinertie du bateau,
la distance entre le centre de pousse de la voile et le mt,
le coefficient de drive (lorsque la voile du bateau est relche, le bateau tend driver, dans le sens du vent,
une vitesse gale V ).
Cherchons obtenir des quations dtat pour notre systme, cest--dire, une quation diffrentielle de la forme
x = f(x,u),
o x = (x, y, , v, g, v, )T et u = (u1, u2)
T . Pour cela, nous allons utiliser le principe fondamental de la dy-
namique [14] en translation (afin dobtenir une expression de lacclration tangentielle v) puis en rotation (afin
dobtenir une expression de lacclration angulaire ).
Acclration tangentielle v : Le vent exerce sur la voile une force orthogonale celle-ci et dintensit gale
fv = v (V cos ( + v) v sin v) .
Quant leau, elle exerce sur le gouvernail une force gale
fg = gv sin g,
orthogonale celui-ci. La force de frottement quelle exerce sur le bateau est suppose visqueuse, cest--dire
dintensit proportionnelle la vitesse. Lquation fondamentale de la dynamique, projete suivant laxe du bateau
donne
mv = sin vfv sin gfg fv.
Lacclration radiale peut tre considre comme nulle si nous supposons que la drive est parfaite.
Lacclration angulaire : Parmi les forces qui agissent sur la rotation du bateau, on trouve les forces fv et fgexerces par la voile et le gouvernail, mais aussi une force de frottement angulaire que nous supposons visqueuse.
Lquation fondamentale de la dynamique nous donne
J = dvfv dgfg ,
o {dv = rv cos vdg = rg cos g.
Les quations dtat du bateau scrivent donc
-
Modlisation des systmes 31
x = v cos , (i)
y = v sin V, (ii) = , (iii)
v = u1, (iv)
g = u2, (v)
v =fv sin vfg sin gfv
m , (vi)
=(rv cos v)fvrg cos gfg
J , (vii)
fv = v (V cos ( + v) v sin v) , (viii)fg = gv sin g. (ix)
(2.7)
Notons que les deux dernires quations ne sont pas diffrentielles mais algbriques. Afin de coller compltement
avec une quation dtat comme dfinie par lquation (1.1) de la page 13, il conviendrait de faire disparatre ces
deux quations ainsi que les deux forces internes fv et fg apparaissant dans les quations (vi) et (vii). Nous allons
toutefois les garder afin de conserver des quations relativement simples et de pouvoir visualiser ces forces lors de
nos simulations. Nous reviendrons plus tard cet exemple du bateau voile pour sa rgulation.
2.5 Systmes hydrauliques
2.5.1 Rappel sur la relation de Bernouilli
On considre 2 bacs disposs comme sur la figure.
Systme hydraulique form de deux bacs remplis deau relis par un canal
Dans le bac de gauche, leau scoule sans frottement en direction du bac de droite. Dans le bac de gauche, leau
scoule de faon fluide, contrairement au bac de droite, o des turbulences existent. Ce sont ces turbulences qui
absorbent lnergie cintique de leau et la transforme en chaleur. Sans ces turbulences, nous aurions un ternel
mouvement de va et vient de leau entre les deux bacs. Dans le but dappliquer la relation de Bernouilli dans le
bac de gauche, considrons un tube de courant, cest dire, une tube virtuel (voir figure) lintrieur duquel leau
possde un mouvement fluide et ne traverse pas les parois. La relation de Bernouilli nous dit que dans ce tube, en
-
32 Commande par espace dtat
tout point,
P + v2
2+ gz = constante,
o P est la pression au point considr, z son altitude, v la vitesse de leau en ce point. Le coefficient est la
masse volumique de leau et g est la constante de gravitation. Daprs la relation de Bernouilli, nous avons
PD + v2D2
+ gzD = PA + v2A2
+ gzA,
cest--dire
PD = PA + g (zA zD) v2D
2. (2.8)
De plus, nous pouvons supposer que C est loin de la zone de turbulence et que leau ne bouge pas. Ainsi, nous
avons, daprs Bernouilli
PC + gzC = PB + gzB,
cest--dire
PC = PB + g (zB zC) . (2.9)
Or, dans cette zone de turbulence, leau se trouve ralentie, mais nous pouvons supposer que la pression de varie
pas, cest--dire, PC = PD. Ainsi, daprs (2.8) et (2.9), nous avons
PB + g (zB zC) = PA + g (zA zD) v2D
2.
Comme PA = PB = Patm, et que zC = zD, cette quation se traduit par
g (zA zB) = v2D
2,
ou encore
vD =2g (zA zB).
Dans le cas ou le niveau du bac droit est suprieur celui du bac gauche, une tude similaire nous donne
vD = 2g (zB zA).
Le signe moins de lexpression indique que le courant circule maintenant du bac droit vers le bac gauche. Donc,
la relation gnrale pour la vitesse de leau dans le canal est
vD = sign (zA zB)2g|zA zB|.
Si a est la section du canal, le dbit deau du bac droit vers le bac gauche est
QD = a.sign (zA zB)2g|zA zB|. (2.10)
2.5.2 Ecoulement dans trois bacs
Considrons maintenant le systme comprenant trois bacs et reprsent sur la figure.
-
Modlisation des systmes 33
Systme constitu de trois bacs contenant de leau et relis par deux canaux
Leau des bacs 1 et 3 peut se dverser vers le bac 2, mais aussi vers lextrieur se trouvant pression atmosphrique.
Les dbits associs sont, daprs la relation (2.10), donns par
Q1ext = a.2gh1,
Q3ext = a.2gh3.
De mme le dbit dun bac i vers un bac j est donn par
Qij = a.sign (hi hj)2g|hi hj |.
Les variables dtat de ce systme qui peuvent tre considres sont les hauteurs dans les bacs. Pour simplifier,
nous supposerons que la surface des bacs sont toutes gales 1 m2, ainsi, le volume deau dans un bac se confond
avec la hauteur. Les quations dtat sont obtenues en crivant que la variation du volume deau dans un bac est
gale la somme des dbits entrants moins la somme des dbits sortants, cest--dire,
h1 = Q1ext Q12 + u1,h2 = Q12 Q23,h3 = Q3ext +Q23 + u2,
ou encore
h1 = a.2gh1 a.sign (h1 h2)
2g|h1 h2|+ u1
h2 = a.sign (h1 h2)2g|h1 h2| a.sign (h2 h3)
2g|h2 h3|
h3 = a.2gh3 + a.sign (h2 h3)
2g|h2 h3|+ u2.
Nous reprendrons cet exemple pour effectuer sa rgulation au paragraphe 7.4 page 112.
2.5.3 Modlisation dun vrin
On considre le vrin pneumatique avec ressort de rappel reprsent sur la figure. Un tel vrin est souvent qualifi
de simple effet car lair sous pression nexiste que dans une des deux chambres.
-
34 Commande par espace dtat
Vrin simple effet
Ce type de vrin est dusage courant en robotique pour bouger les lments mcaniques. Les paramtres de ce
systme sont la raideur du ressort k, la surface du piston a et la masse m en bout de piston (les masses de tous
les autres objets sont ngliges). On suppose que tout se passe temprature constante T0. Nous prendrons pour
vecteur dtat x = (z, z, p) o z est la position du vrin, z sa vitesse et p la pression dans la chambre. Pour
simplifier, nous supposerons que le vide rgne dans la chambre du ressort et que lorsque pour z = 0 (le vrin est
en bute gauche) le ressort se trouve en position dquilibre. Lentre du systme est le dbit volumique u dair
vers la chambre du vrin. Nous avons donc
u =
(V
n
)n, (2.11)
o n est le nombre de moles de gaz dans la chambre et V est le volume de la chambre. Pour bien comprendre la
relation (2.11), il suffit de considrer le petit volume dair V qui sapprte entrer dans la chambre entre linstant
t et t+ t. la loi des gaz parfait applique au petit volume et la chambre, tous les deux la mme pression, nous
donne
p.V = n.R.T0 et p.V = n.R.T0.
Do nV =nV , cest--dire V =
Vn n. Donc
u V
t=
(V
n
)n
t=
(V
n
)n,
qui se trouve tre la relation (2.11). Attention, ici, nous avons approxim nt par n car n correspond bien un
accroissement de n. En revanche, nous naurions pas pu crire V = Vt car V ne correspond pas ncessairement
un accroissement du volume V . On peut par exemple concevoir un V positif alors que le volume V diminue. Le
principe fondamental de la dynamique nous donne pa kz = mz. Donc, les deux premires quations dtat sont{z = z,
z = apkzm .
La loi des gaz parfaits (pV = nRT ) est donne par pza = nRT . En diffrenciant, on obtient
a (pz + pz) = R(nT + nT
).
En supposant lvolution isotherme, cette relation se traduit par
a (pz + pz) = RnT(2.11)= R
nu
VT = pu.
En isolant p, on obtient la troisime quation dtat pour notre systme, savoir
p =p
z
(ua z
).
-
Modlisation des systmes 35
Les quations dtat du systme sont donc z = z
z = apkzmp = pz
(ua z
)ou bien, puisque x = (z, z, p) ,
x1 = x2x2 =
ax3kx1m
x3 = x3x1(x2 ua
).
2.6 Systme lectrique
2.6.1 Circuit RLC
Le systme de la figure ci-dessous a pour entre la tension u(t) et pour sortie la tension y(t). Cherchons modliser
ce systme.
Circuit lectrique modliser
Equations diffrentielles qui rgissent le systme
Soit i1 le courant lectrique dans la rsistance R1 (de haut en bas). Daprs les lois des mailles et des nuds, on au(t) v(t)R1i1(t) = 0 (loi des mailles)Ldidt +R2i(t)R1i1(t) = 0 (loi des mailles)i(t) + i1(t)C dvdt = 0 (loi des nuds).
Equations dtat pour ce systme
Intuitivement on peut comprendre que la mmoire du systme correspond la charge du condensateur et au
flux lectomagntique dans la bobine. En effet, si ces quantits sont connues linstant t = 0, pour une entre
connue, le futur du systme est dtermin de faon unique. Ainsi des variables dtat possibles sont donnes par
les quantits i(t) (proportionnelle au flux) et v(t) (proportionnelle la charge). On obtient les quations dtat en
cherchant se dbarrasser de i1 dans les quations prcdentes et en isolantdidt et
dvdt . Bien sr, une quation doit
disparatre. On obtient {dvdt = 1CR1 v(t) + 1C i(t) + 1CR1u(t)didt = 1Lv(t) R2L i(t) + 1Lu(t).
-
36 Commande par espace dtat
Or, la sortie est donne par y(t) = R2i(t). Finalement, nous arrivons la reprsentation dtat dun systme
linaire donne par
ddt
(v(t)
i(t)
)=
( 1CR1 1C 1L R2L
) (v(t)
i(t)
)+
(1
CR11L
)u(t)
y(t) =(
0 R2
) ( v(t)i(t)
).
2.6.2 Moteur courant continu
Un moteur courant continu peut tre dcrit par la figure suivante, o u est la tension dalimentation du moteur,
i est le courant absorb par le moteur, R est la rsistance de linduit, L est linductance de linduit, e est la force
lectromotrice, est le coefficient de frottement dans le moteur, est la vitesse angulaire du moteur et Tr est le
couple exerc par le moteur sur la charge.
Moteur courant continu
Les quations qui rgissent le systme sont donnes par
u = Ri+ Ldidt + e (partie lectrique)
J = T Tr (partie mcanique).
Or les quations dune machine courant continu sont e = K et T = Ki. Donc
u = Ri+ Ldidt +K
J = Ki Tr.
Dans le cas dun moteur excitation indpendante, ou aimants permanents, est constant. On alors les quations
dtat linaires suivantes {didt = RL i KL + uL = KJ i J TrJ
o les entres sont u et Tr et les variables dtat sont i et . Ces quations peuvent scrire sous forme matricielle
d
dt
(i
)=
(RL KLKJ J
)(i
)+
(1L 0
0 1J
)(u
Tr
).
Dans le cas dun moteur excitation srie, le flux est proportionnel i, cest--dire = ki. On obtient les
quations dtat suivantes {didt = RL i KkL i + uL = KkJ i
2 J TrJ
-
Modlisation des systmes 37
qui sont devenues non-linaires. De tels moteurs sont utiliss lorsque lon souhaite un fort couple au dmarrage,
comme par exemple pour dmarrer les moteurs explosion.
Lorsque le moteur fonctionne, le couple Tr devient impos. La table suivante donne quelques caractristiques
mcaniques, en rgime permanent, du couple (Tr, ).
Tr = Cte moteur utilis pour le levage
Tr = locomotive, mixeur, pompe
Tr = machine outil (tour, fraiseuse)
Tr = 2 ventilateur, voiture rapide.
En fonctionnement, un moteur est donc un systme qui ne possde plus quune seule entre qui est la tension
dinduit u(t).
2.7 Systme de Fibonacci
Bien que dans ce cours, nous ayons dcid de nous limiter aux systmes temps continu, nous allons, dans ce
paragraphe, modliser un exemple de systme temps discret. Ceci permettra dillustrer que la mthodologie
utilise pour les systmes temps continus peut stendre aisment au cas discret.
Il sagit dtudier lvolution du nombre y(k) de couples de lapins dans un levage en fonction de lanne k. Lanne
0, il y a un seulement un couple de lapins nouveau-ns dans llevage (donc y(0) = 1). Les lapins ne deviennent
fertiles que un an aprs leur naissance. Donc lanne 1, il y a toujours un seul couple de lapins, mais ce couple
est fertile (donc y(1) = 1). Un couple fertile donne naissance chaque anne un autre couple de lapins. Donc
lanne 2, il y a un couple de lapin fertile et un couple de nouveaux-ns. Cette volution peut tre dcrite par le
tableau suivante, o N signifie nouveau n et A signifie adulte.
k = 0 k = 1 k = 2 k = 3 k = 4
N A A A A
N A A
N A
N
N
Appelons x1(k) le nombre de couples nouveaux-ns, x2(k) le nombre de couples fertiles et y(k) le nombre total de
couples. Les quations dtat sont donnes parx1(k + 1) = x2(k)
x2(k + 1) = x1(k) + x2(k)
y(k) = x1(k) + x2(k),
avec x1(0) = 1 et x2(0) = 0 pour conditions initiales. Ce systme est appel systme de Fibonacci. Cherchons
maintenant trouver la relation de rcurrence associe ce systme. Il nous faut pour cela exprimer y(k), y(k+1) et
-
38 Commande par espace dtat
y(k + 2) en fonction de x1(k) et x2(k). Le calcul rsultant est le suivant
y(k) = x1(k) + x2(k),
y(k + 1) = x1(k + 1) + x2(k + 1) = x1(k) + 2x2(k)
y(k + 2) = x1(k + 2) + x2(k + 2) = x1(k + 1) + 2x2(k + 1)
= 2x1(k) + 3x2(k)
Cest--dire y(k)y(k + 1)y(k + 2)
= 1 11 2
2 3
( x1(k)x2(k)
).
En liminant x1(k) et x2(k) de ce systme de trois dquations linaires, on obtient plus quune seule quation
donne par
y(k + 2) y(k + 1) y(k) = 0.Les conditions initiales sont y(0) = y(1) = 1. Cest gnralement sous cette forme quest dcrit le systme de
Fibonacci.
-
Chapitre 3
Simulation
3.1 Introduction
Dans ce chapitre, nous allons montrer comment effectuer une simulation sur ordinateur dun systme non linaire
dcrit par ses quations dtat {x(t) = f(x(t),u(t)),
y(t) = g(x(t),u(t)).
Cette tape est importante pour tester le comportement dun systme (rgul ou non). De plus, les techniques que
nous prsenterons aux chapitres 5 et 6 nous permettront dobtenir des quations dtat pour les rgulateurs que
nous concevrons. Lordinateur pourra nous tre utile pour raliser nos rgulateurs et devra pour cela simuler ces
derniers.
Avant de prsenter la mthode de simulation, nous introduirons dans les paragraphes 3.2 et 3.3 la notion de
champ de vecteur. Cette notion nous permettra de mieux comprendre la mthode de simulation qui sera prsente
au paragraphe 3.5 ainsi que certains comportements pouvant apparatre dans les systmes non linaires. Au
paragraphe 3.4, nous donnerons quelques notions de graphisme ncessaires la reprsentation graphique de nos
systmes. Lintrt de linteractivit dans les programmes de simulation ainsi que la faon de limplmenter seront
prsents au paragraphe 3.6.
3.2 Notion de champ de vecteur
Dans ce paragraphe, nous allons prsenter la notion de champ de vecteur et montrer en quoi elle est utile pour
mieux comprendre les diffrents comportements des systmes. Nous invitons le lecteur consulter louvrage de
Lamnabhi-Lagarrigue [10] pour plus dtails ce sujet.
Nous appellerons champ de vecteur une fonction continue f de Rn vers Rn. Lorsque n = 2, une reprsentation
graphique de la fonction f peut tre imagine. Nous allons maintenant traiter deux exemples afin dillustrer la
notion de champ de vecteur. Le premier traite le cas dune fonction linaire et nous permettra de donner une
interprtation graphique de la notion de vecteur propre. Pour le deuxime exemple, la fonction f reprsente le
gradient dune fonction valeur dans R.
39
-
40 Commande par espace dtat
Programme ChampLineaire.sce
1 a=0.5
2 x1=-2 :a :2 ; x2=-2 :a :2 ;
3 deff(z=f1(u,v),z=u+v) ;
4 deff(z=f2(u,v),z=u-v) ;
5 y1=feval(x1,x2,f1) ; y2=feval(x1,x2,f2) ;
6 champ(x1,x2,y1,y2) ;
Tableau 3.1: Programme pour tracer un champ de vecteur
3.2.1 Exemple dune fonction linaire
Considrons la fonction
f :
R2 R2(
x1x2
)
(x1 + x2x1 x2
).
Une illustration graphique de cette fonction est donne par la figure ci-dessous. Pour obtenir cette figure, nous
avons pris un ensemble de vecteurs de lensemble de dpart, suivant un maillage. Puis, pour chacun des vecteurs
du maillage x, nous avons dessin son vecteur image f(x) en lui donnant pour origine le vecteur x.
Champ de vecteur associ une application linaire
Le programme S qui nous a permis de faire ce dessin est donn par le tableau 3.1. Au pas 2, on dfinit le
maillage pour x1 et x2, a reprsente la prcision du maillage. Aux pas 3 et 4, on dfinit les fonctions coordonnes
f1(u, v) = u + v et f2(u, v) = u v de notre fonction f . Ici, u et v sont des variables muettes. Le pas 5 effectuelvaluation de f sur tout le maillage. Enfin le pas 6 trace le champ de vecteur.
Essayons maintenant dinterprter le champ de vecteurs reprsent sur la figure. La matrice de notre application
linaire est donne par
A =
(1 1
1 1
).
-
Simulation 41
Ses valeurs propres sont2 et 2 et les vecteurs propres associs sont
v1 =
(0.9239
0.3827
)et v2 =
(0.38270.9239
).
Pour obtenir ce rsultat sous S, il faut dabord saisir la matrice en faisant A=[1 1 ;1 -1]. Puis on excute
linstruction [D,V]=bdiag(A). La matrice D contient la matrice diagonale (et donc les valeurs propres de A) alors
que V est la matrice de passage dont les colonnes sont les vecteurs propres. Notons que le vecteur x reprsent
sur la figure nest pas un vecteur propre car x et f(x) ne sont pas colinaires. En revanche, tous les vecteurs
appartenant aux sous-espaces propres (reprsents en pointill sur la figure) sont des vecteurs propres. Le long du
sous-espace propre associ la valeur propre ngative, les vecteurs du champ tendent pointer vers 0 alors que
ces vecteurs pointent vers linfini le long du sous-espace propre associ la valeur propre positive.
3.2.2 Exemple dune fonction de type gradient
Considrons la fonction
f :
R2 R(
x1x2
) x1 exp
(x21 x22) .
Son gradient est donn par
(fx1fx2
)=
((1 2x21) exp(x21 x22)2x1x2 exp(x21 x22)
).
Le champ de vecteur associ est donn par la figure ci-dessous. Notons que le gradient sannule en deux points,
reprsents par les petits disques noirs de la figure. Celui de droite correspond au maximum de la fonction f (le
maximum se trouve l o convergent les flches) alors que celui de gauche correspond au minimum (l o les
flches divergent). Notons que si nous simulons le systme
(x1x2
)=
((1 2x21) exp(x21 x22)2x1x2 exp(x21 x22)
),
nous avons une forte chance de converger vers le maximum de la fonction f . Simuler le systme x =grad f(x),
dans le but de trouver le maximum de f correspond la mthode du gradient.
-
42 Commande par espace dtat
Champ de vecteur associ au gradient une fonction scalaire f , reprsent dans le plan (x1, x2)
3.3 Champ de vecteur associ un systme
Considrons un systme autonome (cest--dire sans entre) dont lvolution est donne par lquation x(t) =
f(x(t)). Lorsque f est une fonction de R2 vers R2, nous pouvons obtenir une reprsentation graphique de f en
traant le champ de vecteur associ f . Le graphique nous permettra alors de mieux comprendre le comportement
de notre systme. A titre dillustration nous allons considrer deux exemples : le systme proies-prdateurs et le
pendule simple.
3.3.1 Systme proies-prdateurs
Le systme proies-prdateurs aussi appel systme de Lotka-Volterra est donn par{x1(t) = (1 x2(t))x1(t)x2(t) = (1 + x1(t))x2(t) ,
o = 0.01 et = 0.02. Les variables dtat x1(t) et x2(t) reprsentent la taille des populations des proies et
des prdateurs. Le terme quadratique reprsente des interactions entre les deux espces. Notons que la population
des proies augmente de faon exponentielle lorsque quil ny a pas de prdateur. De mme, la population des
prdateurs dcrot lorsquil ny a pas de proie. Pour tracer le champ de vecteur associ la fonction dvolution
f(x) =
((1 x2(t))x1(t)(1 + x1(t))x2(t)
),
sur le pav [0, 100] [0, 200], on tape le programme du tableau 3.2 et on obtient la figure ci-dessous. Cette figureillustre le comportement du systme. En effet, lvolution du vecteur dtat du systme se fait dans le sens des
flches (car x = f(x)). Ainsi, nous pouvons comprendre que lvolution de systme est priodique et que ltat
parcourt une courbe quasi-circulaire (dont le centre est (50, 100)) dans le sens direct trigonomtrique. Le point
(50, 100) semble tre un point dquilibre pour notre systme. Vrifions-le par calcul. Les points dquilibre se
-
Simulation 43
Programme ChampVolterra.sce
a=10 ; x1=0 :a :100 ; x2=0 :a :200 ;
deff(z=f1(u,v),z=(1-0.01*v)*u) ;
deff(z=f2(u,v),z=(-1+0.02*u)*v) ;
y1=feval(x1,x2,f1) ; y2=feval(x1,x2,f2) ;
champ(x1,x2,y1,y2) ;
Tableau 3.2: Programme Scilab pour tracer le champ de vecteur associ au systme proies-prdateurs
trouvent l o le champ de vecteur sannule. Il y en a deux, reprsents par les petits disques noirs sur la figure.
Ils satisfont lquation f(x) = 0, cest--dire{(1 x2)x1 = 0,(1 + x1)x2 = 0.
Le premier point dquilibre est (x1x2
)=
(0
0
)qui correspond une situation o aucune des deux espces nexiste. Le deuxime est donn par(
x1x2
)=
(11
)=
(50
100
),
qui correspond une situation dquilibre cologique.
Champ de vecteur associ au systme de Lotka-Volterra, dans le plan (x1, x2)
La notion de point dquilibre sera revue de faon plus approfondie dans le paragraphe 6.2 de la page 87.
3.3.2 Pendule simple
Considrons le pendule simple modlis au chapitre prcdent au paragraphe 2.3.4 page 21. On suppose ici que
le couple dentre est nul. Avec S, traons le champ de vecteur associ la fonction dvolution f(x), pour
-
44 Commande par espace dtat
Programme ChampPendule.sce
a=0.4 ; x1=-7 :a :7 ; x2=-4 :a :4 ;
L=2 ;g=9.81 ;m=1 ;
deff(y1=f1(x1,x2),y1=x2) ;
deff(y2=f2(x1,x2),y2=-g*sin(x1)) ;
y1=feval(x1,x2,f1) ; y2=feval(x1,x2,f2) ;
champ(x1,x2,y1,y2) ;
Tableau 3.3: Programme pour tracer le champ de vecteur associ au pendule
u = 0, m = 1, g = 9.81 et L = 1. Le programme ChampPendule.sce, qui effectue cette tche, est donn sur le
tableau 3.3.
Ce programme gnre la figure ci-dessous.
Champ de vecteur associ au pendule simple dans le plan (, )
Les petits disques noirs reprsentent les points dquilibre. Le premier, le troisime et le dernier correspondent la
situation o le pendule est en bas, en quilibre stable. Le deuxime et le quatrime correspondent la situation o
le pendule est en haut, en quilibre instable. Autour dun point dquilibre stable, le vecteur dtat tend tourner
autour de ce point, formant ainsi un cycle. Si on initialise le pendule en haut de la figure (par exemple en (7, 3)),ce qui correspond une situation o est lev, la variable tendra crotre indfiniment. Cela correspond
une situation o le pendule tourne toujours dans le sens direct trigonomtrique autour de son axe et sans jamais
sarrter.
3.4 Reprsentation graphique des systmes
Dans ce paragraphe, nous donnons quelques notions ncessaires la reprsentation graphique des systmes lors
des simulations.
-
Simulation 45
3.4.1 Motif
Un motif est une matrice deux ou trois lignes (suivant que lobjet est dans le plan ou lespace) et n colonnes
qui reprsentent les n sommets dun polygone indformable, cens reprsenter lobjet. Il est important que lunion
de tous les segments forms par deux points conscutifs du motif forme toutes les artes du polygone que lon
souhaite reprsenter.
Exemple 3.4.1 Le motif M du chssis (voir figure ci-dessous) de la voiture (avec les roues arrires) est donn
par (1 4 5 5 4 1 1 0 0 12 2 1 1 2 2 2 2 3 3
1 0 0 1 1 0 0 3 3 33 3 3 3 3 3 2 2 3 3
)(3.1)
Il est clair que sur le dessin de la voiture en mouvement, les roues avant peuvent bouger par rapport au chssis,
mais aussi lune par rapport lautre. Elles ne peuvent donc tre incorpores au motif du chssis. Pour le dessin
de la voiture, nous devrons donc utiliser 3 motifs : celui du chssis, celui de la roue avant gauche et celui de la
roue avant droit. Sous S, le motif M (ici en deux dimensions) peut tre dessin par linstruction
xpoly(M(1, :),M(2, :)).
Sous S, M(i, :) renvoie la i ime ligne de la matrice M.
Dessin de la voiture que nous cherchons simuler
Exemple 3.4.2 Le motif
M =
0 1 1 0 0 0 1 1 0 0 0 0 1 1 1 10 0 0 0 0 1 1 1 1 1 1 0 0 1 1 00 0 1 1 0 0 0 1 1 0 1 1 1 1 0 0
(3.2)est associ au cube unit [0, 1]3 de R3. Notons que ce motif dispose de 16 colonnes, alors quon aurait pu sattendre
13 colonnes (en effet, le cube possde 12 artes). Cela vient du fait que pour dessiner dans lespace toutes les
artes dun cube, sans lever le stylo, nous devons ncessairement passer par un minimum de 16 sommets du cube.
Il est parfois utile de concevoir un modeleur afin de faciliter llaboration de nos motifs. Voici un exemple simple
de modeleurM=[ ] ;isoview(-10,10,-10,10) ;
for k=1 :10,
M=[M,round(locate(1))] ;
xpoly(M(1, :),M(2, :)) ;
endfunction
-
46 Commande par espace dtat
La fonction locate(1) retourne les coordonnes du point de la fentre graphique cliqu la souris. Aprs 10 clics,
la programme sarrte. La matrice M contient alors les coordonnes des 10 points cliqus.
3.4.2 Matrice de rotation
Rappelons que la jime colonne de la matrice dune application linaire de Rn Rn reprsente limage du jimevecteur ej de la base canonique. Ainsi, lexpression dune matrice de rotation dangle dans le plan R
2 est bien
videmment donne (voir figure ci-dessous) par
R =
(cos sin sin cos
). (3.3)
En ce qui concerne les rotations dans lespace R3, il est important de prciser laxe de rotation. Nous pouvons
distinguer 3 rotations principales : la rotation dangle autour de laxe Ox, celle autour de Oy et celle autour de
Oz. Les matrices associes sont respectivement donnes par
Rotation dangle
Rx =
1 0 00 cos sin 0 sin cos
, Ry = cos 0 sin 0 1 0 sin 0 cos
et Rz = cos sin 0sin cos 0
0 0 1
. (3.4)
3.4.3 Coordonnes homognes
Le dessin dobjets bidimensionnels ou tridimensionnels sur un cran ncessite une suite de transformations affines
(rotations, translations, homothties) de la forme
fi :Rn Rn
x Aix+ biavec n = 2 ou 3. Or, la manipulation de compositions de fonctions affines est moins aise que celle dapplications
linaires. Lide la transformation en coordonnes homognes est de transformer un systme dquations affines
en systme dquations linaires. Remarquons tout dabord quune quation affine du type y = Ax+ b peut se
rcrire (y
1
)=
(A b
0 1
)(x
1
).
-
Simulation 47
Nous dfinirons donc la transformation homogne dun vecteur comme suit
x xh =(x
1
).
Ainsi, une quation du type
y = A3 (A2 (A1x+ b1) + b2) + b3,
o intervient la composition de 3 transformations affines pourra se rcrire
yh =
(A3 b3
0 1
)(A2 b2
0 1
)(A1 b1
0 1
)xh.
En nous aidant des matrices de la formule (3.4), nous pouvons crire une fonction S pour gnrer une matrice
homogne de rotation de R3 autour du iime axe de la base canonique.
function R=Rot(a,i)
R=eye(4,4) ;
J=modulo([i,i+1],3)+[1,1] ;
R(J,J)=[cos(a) -sin(a) ;sin(a) cos(a)] ;
endfunction
La fonction eye gnre une matrice identit de dimension 4 4. La fonction modulo(a,b) renvoie le reste de ladivision euclidienne de a par b (puisque ici a est un vecteur, ce calcul se fait composante par composante). Le
vecteur J correspond aux indices de la matrice modifier. Par exemple, si i = 1, alors J= [2, 3], si i = 2, alors
J= [3, 1], et si i = 3, alors J= [1, 2].
Une fonction pour gnrer une matrice homogne de translation dun vecteur v dans R3 est donne ci-dessous
function T=Trans(v)
T=eye(4,4) ;
T(1 :3,4)=v ;
endfunction
3.4.4 Dessin de la voiture
Pour dessiner le chssis de la voiture, il nous faut tout dabord prendre le motif de la voiture (voir quation (3.1))
et le rendre homogne, en lui rajoutant une ligne de 1. Le motif M ainsi obtenu est donn par 1 4 5 5 4 1 1 0 0 12 2 1 1 2 2 2 2 3 31 1 1 1 1 1 1 1 1 1
1 0 0 1 1 0 0 3 3 33 3 3 3 3 3 2 2 3 31 1 1 1 1 1 1 1 1 1
Ensuite, il nous faut lui faire subir une rotation dangle et une translation de vecteur (x, y). Pour il suffit de
multiplier M gauche par la matrice
R =
cos sin xsin cos y0 0 1
.
-
48 Commande par espace dtat
1 function draw_voiture(x)
2 M=[-1,4,5,5,4,-1,-1,-1,0,0,-1,
3 1,0,0,-1,1,0,0,3,3,3 ;
4 -2,-2,-1,1,2,2,-2,-2,-2,-3,-3,
5 -3,-3,3,3,3,3,2,2,3,-3 ;
6 ones(1 :21)] ;
7 Rav=[-1 1 ;0 0 ;1 1] ;
8 R=[cos(x(3)),-sin(x(3)),x(1) ;
9 sin(x(3)),cos(x(3)),x(2) ;0,0,1] ;
10 M=R*M ;
11 Ravd=R*[cos(x(5)),-sin(x(5)),3 ;
12 sin(x(5)),cos(x(5)),3 ;0 0 1]*Rav ;
13 Ravg=R*[cos(x(5)),-sin(x(5)) 3 ;
14 sin(x(5)),cos(x(5)) -3 ;0 0 1]*Rav ;
15 xbasc() ;xset(thickness,2) ;
16 isoview(-20,40,-10,30) ;
17 xpoly(M(1, :),M(2, :)) ;
18 xpoly(Ravd(1, :),Ravd(2, :)) ;
19 xpoly(Ravg(1, :),Ravg(2, :)) ;
20 endfunction ;
Tableau 3.4: Fonction de dessin dune voiture
Pour dessiner la roue avant gauche, on dfinit son motif (en coordonnes homognes)
M =
1 10 01 1
.
On lui affecte une rotation dangle suivie dune translation de (3, 3), puis nouveau une rotation de suivi
dune translation de (x, y). La matrice de transformation rsultante est
cos sin xsin cos y0 0 1
cos sin 3sin cos 3
0 0 1
.
Une matrice similaire peut tre obtenue pour la roue avant droite. Sur ces principes, une fonction S qui
dessine la voiture dans un tat donn peut tre conue. La fonction draw_voiture du tableau 3.4 en donne un
exemple. Les lignes 2 6 dfinissent le motif du chssis de la voiture et des roues arrires. La ligne 7 dfinit le
motif dune roue avant.
-
Simulation 49
3.4.5 Dessin dun bras manipulateur
Robot manipulateur trois degrs de libert
Le robot manipulateur reprsent sur la figure est compos de trois bras en srie. Le premier, de longueur 3, peut
pivoter en lorigine autour de laxe Oz. Le second, de longueur 2, plac au bout du premier peut lui aussi pivoter
autour de laxe Oz. Quant au troisime, de longueur 1, plac au bout du second, il peut pivoter autour de laxe
form par le second bras. Ce robot admet 3 degrs de libert x = (1, 2, 3), o les i reprsentent les angles
forms par chacun des bras. Le motif de base choisi pour la reprsentation de chacun des bras est le cube unit.
Chacun des bras est suppos tre un paralllpipde dpaisseur 0.3. Afin de prendre la forme du bras, le motif
doit subir une affinit, reprsente par une matrice diagonale. Ensuite, il doit subir une suite de rotations et de
translations afin de le positionner correctement.
Le tableau 3.5 reprsente la suite des transformations faire subir au motif afin de reprsenter chaque bras.
Comme indiqu sur ce tableau, le bras 2 doit subir, au final, toutes les transformations faites au bras 1 et le bras
3 doit subir toutes celles faites au bras 2. Le tableau 3.6 donne le programme S qui simule un dplacement
de ce bras.
Bras 1 Bras 2 Bras 3
Diag(3, 0.3, 0.3) Diag(2, 0.3, 0.3) Diag(1, 0.3, 0.3)
Rotz(1) Rotz(2) Rotx(3)
Rotx(0.5) Trans(3, 0, 0) Trans(2, 0, 0)
Rotz(1) Rotz(2)
Rotx(0.5) Trans(3, 0, 0)
Rotz(1)
Rotx(0.5)
Tableau 3.5: Tableau des transformations effectuer pour chacun des bras
-
50 Commande par espace dtat
Programme BrasManipulateur.sce
function draw(x)
M=[0 1 1 0 0 0 1 1 0 0 0 0 1 1 1 1 ;
0 0 0 0 0 1 1 1 1 1 1 0 0 1 1 0 ;
0 0 1 1 0 0 0 1 1 0 1 1 1 1 0 0 ;
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1] ;
M=[1 0 0 0 ;0 1 0 -0.5 ; 0 0 1 -0.5 ;0 0 0 1]*M ;
M1=diag([3,0.3,0.3,1])*M ; R1=Rot(0.5,1)*Rot(x(1),3) ;
M2=diag([2,0.3,0.3,1])*M ; R2=Rot(x(2),3) ;
M3=diag([1,0.3,0.3,1])*M ; R3=Rot(x(3),1) ;
T2=Trans([3 ;0 ;0]) ; T3=Trans([2 ;0 ;0]) ;
M1=R1*M1 ; M2=R1*T2*R2*M2 ; M3=R1*T2*R2*T3*R3*M3 ;
xbasc() ;xset(thickness,2) ;
isoview(-4,4,-3,3) ;
xpoly(M1(1, :),M1(3, :)) ;
xpoly(M2(1, :),M2(3, :)) ;
xpoly(M3(1, :),M3(3, :))
endfunction ;
x=[0 ;1 ;0] ;w=[3 ;-1 ;7] ; dt=0.001
for k=1 :10000, x=x+dt*w ; draw(x) ;end ;
Tableau 3.6: Programme de simulation dun bras manipulateur
3.5 Simulation
Dans ce paragraphe, nous allons prsenter la mthode dEuler pour effectuer une simulation sur ordinateur dun
systme non linaire dcrit par ses quations dtat{x(t) = f(x(t),u(t)),
y(t) = g(x(t),u(t)).(3.5)
Cette mthode est assez approximative, mais reste simple comprendre et suffit pour dcrire les comportements
de la plupart des systmes. Aprs avoir brivement prsent cette mthode, nous traiterons la simulation dun
pendule simple puis dune voiture.
3.5.1 Mthode dEuler
Soit dt, un nombre trs petit devant les constantes de temps du systme et qui correspond la priode dchan-
tillonnage de la mthode (par exemple dt = 0.01). Lquation dvolution de lquation (3.5) sapproxime par
x(t+dt)x(t)dt f(x(t),u(t)),
cest--dire
x (t+ dt) x (t) + f(x(t),u(t)).dt.Cette quation peut tre interprte comme une formule de Taylor lordre 1. On en dduit lalgorithme de
simulation (dit mthode dEuler) du tableau 3.7. Lchantillonneur produit une interruption priodique toutes
-
Simulation 51
Algorithme Eusc(in : x0)
1 x := x0; t := 0; dt = 0.01;
2 rpter
3 saisir u lentre de lordinateur ;
4 y := g(x,u);
5 sortir y;
6 x := x+ f(x,u).dt;
7 attendre une interruption de lchantillonneur ;
8 t = t+ dt;
9 ternellement.
Tableau 3.7: Algorithme de simulation par la mthode dEuler
les dt secondes. Ainsi, si lordinateur est suffisamment rapide, la simulation se droule la mme vitesse que
notre systme physique. On parlera alors de simulation temps rel . Dans certaines circonstances, ce qui nous
intresse est dobtenir le rsultat de la simulation le plus rapidement possible (par exemple pour prdire comment
va se comporter un systme dans le futur). Dans ce cas, il nest pas ncessaire de ralentir lordinateur pour le
synchroniser avec notre temps physique.
On appelle erreur locale la quantit
et = ||x(t+ dt) x(t+ dt)|| sachant que x(t) = x(t).
o x(t+dt) est la solution exacte de lquation diffrentielle x = f(x,u) et x(t+dt) est la valeur estime du vecteur
dtat, pour le schma dintgration utilisis. Pour la mthode dEuler, on peut montrer que et est dordre 1, cest-
-dire et = o(dt). Il existe des mthodes dintgration plus efficaces o lerreur locale est dordre 2 o plus. Cest le
cas de la mthode de Runge Kutta lordre 2, qui consiste remplacer la rcurence x(t+dt):= x(t)+f(x(t),u(t)).dt
par
x(t+ dt) = x(t) + dt.
(1
4.f(x(t),u(t) +
3
4.f
(x(t) +
2.dt
3.f(x(t),u(t)),u(t+
2.dt
3)
)).
Lerreur locale et est ici dordre 2 et la mthode dintgration est par consquent beaucoup plus prcise.
3.5.2 Simulation dun pendule
On considre nouveau le pendule de longueur de masse ngligeable et portant une masse m son extrmit
(voir paragraphe 2.3.4 page 21). Rappelons, que, en son axe, on peut exercer un couple u et que sa reprsentation
dtat est donne par (x1x2
)=
(x2
g sinx1 + um2
).
Le programme S PenduleSimpleLibre.sce du tableau 3.8 simule ce pendule par la mthode dEuler. Ce
programme, qui dbute en ligne 8, est compos des fonctions draw_pendule(x), qui dessine le pendule, et de la
fonction dvolution f(x,u). Le pas 8 initialise les constantes et le vecteur initial. La boucle 9-12 lance la mthode
dEuler.
La figure ci-dessous reprsente la trajectoire du pendule dans lespace dtat pour la condition initiale = 1 et
= 0. Sur cet exemple, le pendule, qui ne possde aucun frottement, devrait normalement effectuer un cycle. Or,
-
52 Commande par espace dtat
Programme PenduleSimpleLibre.sce
1 function draw_pendule(x)
2 xbasc() ;isoview(-4,4,-3,3) ;
3 xpoly([0,L*sin(x(1))],[0 -L*cos(x(1))])
4 endfunction ;
5 function v=f(x,u)
6 v=[x(2) ; -g/L*sin(x(1))+u/(m*L^2)] ;
7 endfunction ;
8 L=2 ;g=9.81 ;m=1 ;u=0 ;dt=0.006 ;x=[1 ;0] ;
9 for k=1 :1500,
10 draw_pendule(x) ;
11 x=x+f(x,u)*dt ;
12 end ;
Tableau 3.8: Simulation dun pendule simple
la mthode dEuler donne chaque pas un peu dnergie au pendule, ce qui explique sa trajectoire qui tend
diverger. Cela vient du fait que le champ, bien que tangent la trajectoire du systme, tend sortir vers lextrieur
celle-ci. Le programme PenduleSimpleTrajectoire.sce, qui nous a permis de dessiner la figure ci-dessous, illustre
ce phnomne. Il apparat clairement que la mthode dEuler ne doit pas tre utilise pour simuler des systmes
conservatifs (comme le systme plantaire), qui nont pas de frottements et tendent effectuer des cycles. En
revanche, pour les systmes dissipatifs (avec frottements), une mthode dEuler savre souvent suffisante pour
dcrire correctement le comportement du systme. Pour notre pendule, la mthode dEuler tend donner de
lnergie au pendule, qui, aprs une dizaine doscillations, se met effectuer des rvolutions compltes autour de
son axe, dans le sens indirect trigonomtrique.
Trajectoire du pendule dans lespace dtat
-
Simulation 53
Programme VoitureLibre.sce
1 function v=f(x,u)
2 v=[x(4)*cos(x(5))*cos(x(3)) ;
3 x(4)*cos(x(5))*sin(x(3)) ;
4 x(4)*sin(x(5))/3 ; u(1) ;u(2) ] ;
5 endfunction ;
6 x=[0 ;0 ;0 ;7 ;0] ;u=[0 ;0.2] ;dt=0.02 ;
7 for k=1 :3000,
8 draw_voiture(x) ; x1=x+f(x,u)*dt ; x=x1 ;
9 end ;
Tableau 3.9: Programme de simulation dune voiture
3.5.3 Simulation dune voiture
Considrons nouveau la voiture modlise au paragraphe 2.4.3 de la page 27. Nous allons ici tenter de la simuler
et visualiser graphiquement son mouvement. Rappelons que les quations dtat de cette voiture sont donnes parx
y
v
=
v cos cos
v cos sin v sin L
u1u2
.
A un vecteur dtat donn x = (x, y, , v, )T correspond une configuration possible pour la voiture. Le programme
complet de la simulation de la voiture est donn par le tableau 3.9. En plus de la fonction draw_voiture qui dessine
la voiture, il appelle la fonction dvolution du systme. Ltat initial de la voiture est (0 0 0 7 0)T , ce qui signifie
qu linstant 0, la voiture est centre lorigine, avec un angle nul, sa vitesse est de 7 ms1 et les roues avant sont
parallles laxe de la voiture. La commande vectorielle u(t) reste constante et gale (0 0.2)T. Ce qui signifie que
la voiture nacclre pas (car u1 = 0) et que le volant tourne une vitesse constante de 0.2 rad.s1 (car u2 = 0.2).
3.6 Ajout de linteractivit
Au moment de tester le programme de simulation, il est fondamental de pouvoir agir sur le programme de faon
dceler des ractions anormales du systme, comprendre mieux son comportement, dtecter dventuelles er-
reurs de programmation. Dans ce but, nous pouvons autoriser lutilisateur crer des vnements (par exemple en
appuyant sur une touche du clavier, ou en bougeant la souris) qui seront interprtes par le programme grce un
gestionnaire dvnement (eventhandler). Le gestionnaire dvnement tourne en parallle avec le programme prin-
cipal. Il attend quun vnement se produise et sexcute ds que cela arrive. Le programme (VoitureLibre.sce)
list et comment ci-dessous simule une voiture avec gestion dvnement. Ce programme contient trois fonctions
et un programme principal. Lorsque lutilisateur appuie sur une touche, la fonction my_eventhandler sexcute
immdiatement. Cette dernire modifie une variable globale (u, sortie ou ech) en permettant ainsi lutilisateur
dagir sur le programme. Afin de se rapprocher dun comportement temps rel de notre voiture, nous chronom-
trons, laide dun timer qui compte en microsecondes, le temps de calcul dun parcours de la boucle while. La
valeur de ce temps de calcul est alors affecte la variable dt.
-
54 Commande par espace dtat
//---------------------------------------------
function my_eventhandler(win,x,y,a)
//variable partagees avec le programme principal
global u sortie ech;
xinfo(Volant:w,x; Acceleration:p,l; Zoom:z,Z; Fin:F)
if ascii(a)==l then u=[-500,0]; end //freinage
if ascii(a)==p then u=[ 500,0]; end //acceleration
if ascii(a)==w then u=[0,20]; end //a gauche
if ascii(a)==x then u=[0,-20]; end //a droite
if ascii(a)==z then ech=ech*0.95; end //zoom in
if ascii(a)==Z then ech=ech/0.95; end //zoom out
if ascii(a)==F then sortie=%T; end //fin
endfunction
//---------------------------------------------
function draw_voiture(x)
//Chassis
M=[-1 4 5 5 4 -1 -1 -1 0 0 -1 1 0 0 -1 1 0 0 3 3 3;
-2 -2 -1 1 2 2 -2 -2 -2 -3 -3 -3 -3 3 3 3 3 2 2 3 -3;
ones(1:21)] ;
Rav=[-1 1;0 0;1 1]; //motif dune roue avant
R=[cos(x(3)),-sin(x(3)),x(1);
sin(x(3)), cos(x(3)),x(2);
0 0 1] ;
M=R*M;
Ravd=R*[cos(x(5)),-sin(x(5)) 3;
sin(x(5)),cos(x(5)) 3 ;
0 0 1]*Rav; // roue avant droite
Ravg=R*[cos(x(5)),-sin(x(5)) 3;
sin(x(5)),cos(x(5)) -3;
0 0 1]*Rav; // roue avant gauche
xbasc(); // efface lecran
xset(thickness,2); // regle lepaisseur du stylo//
isoview(-ech,ech,-ech,ech); // regle les echelles
xpoly(M(1,:),M(2,:));
xpoly(Ravd(1,:),Ravd(2,:))
xpoly(Ravg(1,:),Ravg(2,:))
endfunction;
//---------------------------------------------
function Dx=f(x,u) //fonction devolution
Dx=[x(4)*cos(x(5))*cos(x(3));
-
Simulation 55
x(4)*cos(x(5))*sin(x(3));
x(4)*sin(x(5))/3;
u(1);
u(2) ];
endfunction;
//---------------------------------------------
//debut du programme principal
//----