espase d'etat

Upload: hichamchocha

Post on 10-Oct-2015

34 views

Category:

Documents


0 download

TRANSCRIPT

  • 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

    //----