ˆX - Femto-ST
Transcription
ˆX - Femto-ST
P OLYCOPI É DE T RAVAUX P RATIQUES ———————————————- Master - Mécatronique - 1ère Année (S7) Université de Franche-Comté à Besançon C OMMANDE DES S YST ÈMES M ULTIVARIABLES (CSM) Micky R AKOTONDRABE tél : 03 81 40 28 03 mail : [email protected] document téléchargeable sur http://www.femto-st.fr/˜micky.rakotondrabe/teaching.php 1 Table des matières 1 P OUTRE PI ÉZO ÉLECTRIQUE À 2 DDL : COMMANDE PAR PLACEMENT DE P ÔLES ET COMMANDE LIN ÉAIRE QUADRATIQUE 1.1 1.2 1.3 2 Le système . . . . . . . . . . . . . . . . . . . . . 1.1.1 Création du système . . . . . . . . . . . . 1.1.2 Pôles et valeurs propres . . . . . . . . . . 1.1.3 Simulation du système . . . . . . . . . . . Commande par retour d’état par placement de pôles 1.2.1 Commandabilité . . . . . . . . . . . . . . 1.2.2 Mise en équation du système bouclé . . . . 1.2.3 Calcul de la matrice de retour Kc . . . . . 1.2.4 Calcul du préfiltre L . . . . . . . . . . . . 1.2.5 Simulation du système bouclé . . . . . . . Commande optimale Linéaire Quadratique (LQ) . . 1.3.1 Satisfaction des conditions . . . . . . . . . 1.3.2 Calcul de la matrice de retour Kc . . . . . 1.3.3 Simulation du système bouclé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 5 7 7 7 7 8 8 8 8 9 9 10 10 10 S YST ÈME HYDRAULIQUE À TROIS BACS : COMMANDE PAR PLACEMENT DE P ÔLES L UENBERGER 11 2.1 Le système . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.1.1 Création du système . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2.1.2 Pôles et valeurs propres . . . . . . . . . . . . . . . . . . . . . . . . . 13 2.1.3 Simulation du système . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2.2 Commande par retour d’état par placement de pôles . . . . . . . . . . . . . . . 13 2.2.1 Commandabilité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 2.2.2 Mise en équation du système bouclé . . . . . . . . . . . . . . . . . . . 14 2.2.3 Calcul de la matrice de retour Kc . . . . . . . . . . . . . . . . . . . . 14 2.2.4 Calcul du préfiltre L . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 2.2.5 Simulation du système bouclé . . . . . . . . . . . . . . . . . . . . . . 14 2.3 Observateur complet ou observateur de Luenberger . . . . . . . . . . . . . . . 14 2.3.1 Observabilité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 2.3.2 Mise en équation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 2.3.3 Calcul du gain de l’observateur Ko . . . . . . . . . . . . . . . . . . . 17 ET OBSERVATEUR DE 2 2.4 3 2.3.4 Simulation du système avec observateur . . . . . . . . . . . . . . . . . Observateur et commande par placement de pôles . . . . . . . . . . . . . . . . H ÉLICOPT ÈRE : RETOUR D ’ ÉTAT AVEC ACTION INT ÉGRALE ET OBSERVATEUR Le système . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1.1 Création du système . . . . . . . . . . . . . . . . . . . . 3.1.2 Pôles et valeurs propres . . . . . . . . . . . . . . . . . . 3.1.3 Simulation du système . . . . . . . . . . . . . . . . . . . Commande par retour d’état avec action intégrale . . . . . . . . . 3.2.1 Commandabilité . . . . . . . . . . . . . . . . . . . . . . 3.2.2 Calcul de la matrice de retour K par placement de pôles . 3.2.3 Simulation du système bouclé . . . . . . . . . . . . . . . Observateur réduit . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3.1 Création des sous-systèmes . . . . . . . . . . . . . . . . . 3.3.2 Observabilité . . . . . . . . . . . . . . . . . . . . . . . . 3.3.3 Calcul du gain de l’observateur Ko . . . . . . . . . . . . 3.3.4 Implémentation de l’observateur réduit et de la commande . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 18 19 19 20 20 22 22 23 23 25 25 26 26 AVION : COMMANDE MODALE ET ESTIMATEUR DE L UENBERGER 4.1 Le système . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.1.1 Création du système . . . . . . . . . . . . . . . . . . . . 4.1.2 Pôles et valeurs propres . . . . . . . . . . . . . . . . . . 4.1.3 Simulation du système . . . . . . . . . . . . . . . . . . . 4.2 Commande modale . . . . . . . . . . . . . . . . . . . . . . . . . 4.2.1 Commandabilité . . . . . . . . . . . . . . . . . . . . . . 4.2.2 Calcul de la matrice de retour Kc et du préfiltre L . . . . . 4.2.3 Simulation du système bouclé . . . . . . . . . . . . . . . 4.3 Observateur complet ou observateur de Luenberger . . . . . . . . 4.3.1 Observabilité . . . . . . . . . . . . . . . . . . . . . . . . 4.3.2 Calcul du gain de l’observateur Ko . . . . . . . . . . . . 4.4 Observateur et commande modale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 27 28 28 29 29 32 32 32 33 33 33 34 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 35 35 36 36 36 37 37 38 38 39 R ÉDUIT 3.1 3.2 3.3 4 17 17 A Algèbre linéaire A.1 Taille d’une matrice . . . . . . . . A.2 Rang d’une matrice . . . . . . . . A.3 Opérateurs transposée et adjoint . A.4 Matrices particulières . . . . . . . A.4.1 Matrice identité . . . . . . A.4.2 Matrice nulle . . . . . . . A.5 Valeurs propres et vecteurs propres A.6 Spectre et rayon spectral . . . . . A.7 Comatrice . . . . . . . . . . . . . A.8 Inverse d’une matrice . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A.9 Pseudo-inverse d’une matrice . . . . . . . . . . . . . . . . . . . . . . . . . . . B Outils de base pour les modèles d’état B.1 Ordre du système . . . . . . . . . B.2 Stabilité . . . . . . . . . . . . . . B.3 Commandabilité . . . . . . . . . . B.4 Observabilité . . . . . . . . . . . 40 . . . . . . . . . . . . . . . . . . . . . . . . 41 41 41 42 42 C Quelques fonctions de M ATLAB C.1 Calcul de base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C.2 Calcul matriciel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . C.3 Quelques fonctions de base utilisées en Automatique . . . . . . . . . C.4 Quelques fonctions d’analyse et de synthèse utilisées en Automatique . . . . . . . . . . . . . . . . . . . . 43 43 43 46 48 . . . . . . . . 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Chapitre 1 P OUTRE PI ÉZO ÉLECTRIQUE À 2 DDL : COMMANDE PAR PLACEMENT DE P ÔLES ET COMMANDE LIN ÉAIRE QUADRATIQUE 1.1 Le système Une poutre piézoélectrique est une poutre qui, lorsqu’on applique une tension électrique sur ses électrodes, fléchit. Une poutre à deux degrés de libertés (2ddl) fléchit dans les deux axes x ou y selon que la tension soit appliquée sur les électrodes dans l’un ou dans l’autre axe (Fig. 1.1). poutre piézoélectrique δy δx F IG . 1.1 – Photo d’une poutre piézoélectrique. Le modèle d’état linéaire d’une poutre piézoélectrique est : dX dt = AX + BU Y = CX + DU 5 (1.1.1) La première équation s’appelle équation d’état tandis que la deuxième équation de sortie. On a : – – – – – – – X est le vecteur d’état, Y est le vecteur de sortie, U est le vecteur de commande, A s’appelle matrice d’état, B s’appelle matrice de commande, C s’appelle matrice de sortie, et D s’appelle matrice de liaison directe. D est une matrice nulle dans toute la suite. On a : Y = δx δy U= Ux Uy δx vx X= δy vy (1.1.2) et : 0 1 0 0 −3.949 × 107 −251.4 0 0 A= 0 0 0 1 7 0 0 −2.744 × 10 −314.3 C= 1 0 0 0 0 0 1 0 0 0 31595372 9479408 B= 0 0 23324224 6860066 (1.1.3) La Fig. 1.2-a montre le schéma fonctionnel de la poutre tandis que la Fig. 1.2-b donne le schéma-bloc détaillé. 6 U Ux Uy Y dX = AX + BU dt Y = CX + DU dX = AX + BU dt Y = CX + DU δx δy (a) U B ++ X& ∫ X C Y A (b) F IG . 1.2 – Schéma fonctionnel et schéma-bloc. 1.1.1 Création du système Créer le système d’état appelé G et de réalisation (A,B,C,0) dans Matlab puis dans Simulink. 1.1.2 Pôles et valeurs propres En utilisant Matlab : – calculer les pôles du système G, – calculer les valeurs propres de la matrice A. Que peut-on dire sur les valeurs propres de A et les pôles du système, – à partir de ces valeurs, que peut-on dire sur la stabilité du système. 1.1.3 Simulation du système – Dans Matlab, simuler la réponse indicielle, la réponse impulsionnelle et le diagramme de Bode du système, – dans Simulink, simuler la réponse indicielle du système. 1.2 Commande par retour d’état par placement de pôles Dans le but d’améliorer les performances et de rejeter les effets des perturbations éventuelles, on souhaite commander le système d’état G. Pour cela, on utilise le schéma-bloc de la Fig. 1.3. Dans cette figure, on a : – la consigne (ou référence) notée Yc , – la matrice de retour (ou matrice de retour d’état) notée Kc , – et le préfiltre (ou la matrice de préfiltre) noté L. 7 système Yc L +- U B ++ X& ∫ X C Y A Kc F IG . 1.3 – Schéma-bloc du système bouclé. 1.2.1 Commandabilité Avant de synthétiser un système de commande, il est important de savoir si le système est commandable ou pas. Définir la commandabilité d’un système. En utilisant Matlab : – calculer la matrice de commandabilité notée Co , – déterminer le rang de la matrice Co , – en déduire si le système est commandable ou pas. 1.2.2 Mise en équation du système bouclé A partir de la Fig. 1.3, donner le nouveau modèle d’état, c’est-à-dire, le modèle d’état du système bouclé. 1.2.3 Calcul de la matrice de retour Kc – d’après le nouveau modèle d’état, déterminer l’utilité de la matrice de retour Kc ? – choisir des valeurs propres pour la nouvelle matrice d’état (A − BKc ). Pour cela, vous partez des valeurs propres de A. Pourquoi ce choix ? – calculer Kc avec Matlab. 1.2.4 Calcul du préfiltre L – Lorsque le régime est permanent (p = 0 ou t → ∞ ou encore dX dt = 0), donner l’expression de la sortie Y en fonction de la consigne Yc , – afin d’annuler l’erreur statique, c’est-à-dire Y = Yc , que doit être la matrice L ? calculer L avec Matlab. 8 1.2.5 Simulation du système bouclé – En utilisant Matlab, simuler la réponse indicielle, la réponse impulsionnelle et le diagramme de Bode du système bouclé, – de même, en utilisant Simulink, simuler la réponse indicielle du système bouclé, – commenter sur les performances du système bouclé par rapport au système G. Remarque : si les performances du régime transitoire ne vous conviennent pas, n’hésitez pas à modifier les valeurs propres de (A − BKc ) puis à recalculer Kc et L. 1.3 Commande optimale Linéaire Quadratique (LQ) Dans la section précédente, nous avons choisi nous-mêmes les pôles (ou valeurs propres) du système bouclé afin de pouvoir calculer la matrice de retour Kc , d’où le nom de placement de pôles. Dans cette section, un algorithme détermine automatiquement les pôles du système bouclé selon un critère, le correcteur Kc s’en déduira par la suite. Ce critère s’appuie sur la minimisation de l’énergie de sortie Y ainsi que l’énergie de l’entrée U . L’énergie étant une forme quadratique des variables concernées, la fonction de coût à minimiser est donc : Z ∞ J= Y T Qy Y + U T RU dt (1.3.1) 0 où Qy est une matrice symétrique définie positive et R une matrice symétrique définie positive. Les éléments du diagonal de Qy (resp. R) permettent de mettre en avant les sorties yi de Y (resp ui de U ). Puisqu’on s’intèresse à une commande par retour d’état, il est intéressant de mettre le coût J définie par l’équa. 1.3 en fonction de l’état X. En utilisant Y = CX et Y T = X T C T , on obtient : Z ∞ J= X T QX + U T RU dt (1.3.2) 0 avec Q = C T Qy C. Si les éléments de Q (resp. de R) permettent de pondérer les éléments de X (resp. de U ) entre eux, on poura introduire un coefficient supplémentaire ρ qui pondère l’énergie de sortie (ou de l’état) par rapport à l’énergie de l’entrée. L’énergie totale à minimiser devient donc : Z ∞ J= ρX T QX + U T RU dt (1.3.3) 0 Si la paire (A, B) est commandable et la paire (A, C) observable, il existe une solution unique P , matrice symétrique définie positive, solution de l’Equation Algébrique de Riccati suivante : AT P + P A + ρQ − P BR−1 B T P = [0] 9 (1.3.4) Ainsi, la matrice de retour d’état qui minimise J est donnée par : Kc = R−1 B T P 1.3.1 (1.3.5) Satisfaction des conditions Dans les questions précédentes, on a vu que (A, B) est commandable. Vérifier que (A, C) est observable. 1.3.2 Calcul de la matrice de retour Kc – Choisir les matrices Q et R ainsi que le coefficient ρ, – calculer la matrice de retour Kc , – calculer également le préfiltre L. 1.3.3 Simulation du système bouclé – En utilisant Matlab, simuler la réponse indicielle, la réponse impulsionnelle et le diagramme de Bode du système bouclé, – de même, en utilisant Simulink, simuler la réponse indicielle du système bouclé, – commenter sur les performances du système bouclé par rapport au système G. Remarque : si les performances du régime transitoire ne vous conviennent pas, n’hésitez pas à modifier les matrices Q et R ainsi que le coefficient ρ puis à recalculer Kc et L. 10 Chapitre 2 S YST ÈME HYDRAULIQUE À TROIS BACS : COMMANDE PAR PLACEMENT DE P ÔLES ET OBSERVATEUR DE L UENBERGER 2.1 Le système On considère le système hydraulique à 3 bacs de la Fig. 2.1. Le modèle d’état de ce système est : dX dt = AX + BU (2.1.1) Y = CX + DU On a : Y = x1 x3 U= U1 U2 x1 X = x2 x3 (2.1.2) et : −0.332 0.332 0 A = 0.332 −0.664 0.332 0 0.332 −0.524 0.764 0 0 B= 0 0 0.764 (2.1.3) C= 1 0 0 0 0 1 dans lesquelles : 11 – les niveaux d’eau x1 , x2 et x3 constituent le vecteur d’états du système, – et les débits U1 et U2 constotuent le vecteur d’engtrée. U1 x1 x2 U2 x3 F IG . 2.1 – Un système hydraulique à 3 bacs. Les Fig. 2.2 représentent le schéma fonctionnel et le schéma-bloc détaillé du système. U dX = AX + BU dt Y = CX + DU U1 U2 Y dX = AX + BU dt Y = CX + DU (a) U B ++ X& ∫ X C Y A (b) F IG . 2.2 – Schéma fonctionnel et schéma-bloc détaillé. 12 x1 x3 2.1.1 Création du système Créer le système d’état appelé G et de réalisation (A,B,C,0) dans Matlab puis dans Simulink. 2.1.2 Pôles et valeurs propres En utilisant Matlab : – calculer les pôles du système G, – calculer les valeurs propres de la matrice A. Que peut-on dire sur les valeurs propres de A et les pôles du système, – à partir de ces valeurs, que peut-on dire sur la stabilité du système. 2.1.3 Simulation du système – Dans Matlab, simuler la réponse indicielle, la réponse impulsionnelle et le diagramme de Bode du système, – dans Simulink, simuler la réponse indicielle du système. 2.2 Commande par retour d’état par placement de pôles Dans le but d’améliorer les performances et de rejeter les effets des perturbations éventuelles, on souhaite commander le système d’état G. Pour cela, on utilise le schéma-bloc de la Fig. 2.3. Dans cette figure, on a : – la consigne (ou référence) notée Yc , – la matrice de retour (ou matrice de retoure d’état) notée Kc , – et le préfiltre (ou la matrice de préfiltre) noté L. système Yc L +- U B ++ X& ∫ X A Kc F IG . 2.3 – Schéma-bloc du système bouclé. 13 C Y 2.2.1 Commandabilité Avant de synthétiser un système de commande, il est intéressant de connaı̂tre si le système est commandable ou pas. En utilisant Matlab : – calculer la matrice de commandabilité notée Co , – déterminer le rang de la matrice Co , – en déduire si le système est commandable ou pas. 2.2.2 Mise en équation du système bouclé A partir de la Fig. 2.3, donner le nouveau modèle d’état, c’est-à-dire, le modèle d’état du système bouclé. 2.2.3 Calcul de la matrice de retour Kc – d’après le nouveau modèle d’état, déterminer l’utilité de la matrice de retour Kc ? – choisir des valeurs propres pour la nouvelle matrice d’état (A − BKc ). Pour cela, vous partez des valeurs propres de A. Pourquoi ce choix ? – calculer Kc avec Matlab. 2.2.4 Calcul du préfiltre L – Lorsque le régime est permanent (p = 0 ou t → ∞ ou encore dX dt = 0), donner l’expression de la sortie Y en fonction de la consigne Yc , – afin d’annuler l’erreur statique, c’est-à-dire Y = Yc , que doit être la matrice L ? calculer L avec Matlab. 2.2.5 Simulation du système bouclé – En utilisant Matlab, simuler la réponse indicielle, la réponse impulsionnelle et le diagramme de Bode du système bouclé, – de même, en utilisant Simulink, simuler la réponse indicielle du système bouclé, – commenter sur les performances du système bouclé par rapport au système G. Remarque : si les performances du régime transitoire ne vous convient pas, n’hésiter pas à modifier les valeurs propres de (A − BKc ) puis à recalculer Kc et L. 2.3 Observateur complet ou observateur de Luenberger Dans la section précédente, afin de pouvoir utiliser la commande par retour d’état, nous avons supposé que l’ensemble des états (les éléments de X) était accessible à la mesure. Cependant, ce n’est pas toujours le cas. Entre autres, ici, nous considérons que seule la sortie Y est 14 mesurable. Ainsi, x2 n’est pas mesurable. On souhaite donc reconstruire le vecteur d’état X à partir des éléments disponibles. La première idée qui vient à l’esprit pour reconstruire X est de simuler le modèle. Si dX̂ est l’état estimé (observé, ou reconstruit), le simulateur aura pour équation : ( dX̂ dt = AX̂ + BU (2.3.1) Ŷ = C X̂ Or, une telle simulation n’est pas convenable si l’on veut avoir une bonne estimation de X : – le procédé réel et le simulateurs n’ont pas les mêmes conditions initiales, cela décalerait dX̂ par rapport à X, – les paramètres A, B et C du modèle sont toujours soumis à incertitudes, cela donnerait de faux résultats sur dX̂, – si le système est instable 1 , il est impossible de simuler dX̂. Pour éviter ces problèmes, on introduit donc un terme correcteur dans le modèle l’équa. 2.3.1. Ainsi, le modèle de l’observateur est défini par : ( dX̂ = A X̂ + BU + Ko Y − Ŷ dt (2.3.2) Ŷ = C X̂ dans laquelle : – dX̂ est (le vecteur d’) l’état estimé, – dŶ est la sortie estimée, – Ko est le (la matrice de) gain de l’observateur. L’observateur utilise comme entrée les éléments disponibles Y et U (Fig. 2.4). Comme on reconstruira l’ensemble des éléments du vecteur d’état, cet observateur s’appelle observateur complet ou observateur de Luenberger 2 . 1 Le modèle d’état de réalisation (A, B, C, D) est instable si une au moins des valeurs propres de A est à partie réelle positive. 2 Dû à David G. Luenberger, 1966. 15 système U B ++ X& ∫ X C Y A observateur X̂ F IG . 2.4 – Utilisation d’un observateur pour reconstruire l’état X. La Fig. 2.5 représente le schéma-bloc détaillé de l’observateur ainsi que du système. système U B + + X& ∫ X C Y X̂ C Ŷ A B X̂ + + ∫ -+ + A Ko observateur X̂ F IG . 2.5 – Schéma-bloc détaillé de l’observateur et du système. 16 2.3.1 Observabilité Afin de synthétiser un observateur pour un système, il est important de connaı̂tre si le système est observable ou pas. Définir l’observabilité d’un système. – En utilisant Matlab, calculer la matrice d’observabilité notée Ob , – puis, déterminer le rang de la matrice Ob , – en déduire si le système est observable ou pas. 2.3.2 Mise en équation A partir du modèle du système définie par l’équa. 2.1.1 (avec D = [0]) et du modèle de x l’observateur définie par l’équa. 2.3.2, donner l’expression de dε dt telle que l’erreur d’estimation εx est définie par : εx = X − X̂ 2.3.3 (2.3.3) Calcul du gain de l’observateur Ko – d’après l’équation de l’erreur obtenue précédemment, à quoi sert exactement le gain de l’observateur Ko ? – choisir des valeurs propres pour la matrice (A − Ko C). Pour cela, vous partez des valeurs propres de (A − BKc ) choisies dans les questions précédentes. Pourquoi ce choix ? – calculer Ko avec Matlab. 2.3.4 Simulation du système avec observateur En utilisant Simulink, appliquer un échelon à l’entrée du système et comparer le vecteur d’état X ainsi que l’état estimé dX̂. Pour cela, mettre des conditions initiales différentes de zéro dans le système. Essayer également de mettre des valeurs différentes pour les paramètres A, B et C dans le système réelle (non pas dans l’observateur) afin de simuler l’incertitude, par exemple on pourra utiliser : −0.335 0.33 0.01 0.76 0 0 A = 0.331 −0.66 0.331 B= 0 0 0.33 −0.52 0 0.77 (2.3.4) 0.998 0 0 C= 0 0 1.02 2.4 Observateur et commande par placement de pôles Combiner maintenant l’observateur précédemment calculé ainsi que la commande par placement de pôles synthétisée auparavant dans Simulink puis simuler le système bouclé. 17 Chapitre 3 H ÉLICOPT ÈRE : RETOUR D ’ ÉTAT AVEC ACTION INT ÉGRALE ET OBSERVATEUR R ÉDUIT 3.1 Le système On considère l’hélicoptère de la Fig. 3.1, où α désigne l’angle de lacet (angle autour de l’axe z) et θ désigne l’angle de tangage (angle autour de l’axe y). (a) rotor de queue (pour le lacet α) rotor principal (pour le tangage θ) z (b) y F IG . 3.1 – Un hélicoptère Ce système est non-linéaire. Toutefois, autour d’un point de fonctionnement, l’hélicoptère peut être modélisé par un système linéaire de modèle d’état : 18 dX dt = AX + BU Y = CX (3.1.1) On a : Y = α θ U= U1 U2 X= vα γα vθ γθ α θ 1.1 0.8 18 2 0.7 1.2 3 21 0 0 0 0 (3.1.2) et : A= C= 0 −1.347 0 −0.21 1 0 1 0 0 0 0 0 −0.12 0 −2.32 −1.1 0 0 1 0 0 0 −1.87 0 −0.23 −3 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 B= (3.1.3) dans lesquelles : – les états vi et γi indiquent respectivement la vitesse et l’accélération angulaires associées à l’angle i ( i ∈ {α, θ} ), – et les entrées élémentaires U1 et U2 désignent des signaux de commande. Les Fig. 3.2 représentent le schéma fonctionnel et le schéma-bloc détaillé du système. 3.1.1 Création du système Créer le système d’état appelé G et de réalisation (A,B,C,0) dans Matlab puis dans Simulink. 3.1.2 Pôles et valeurs propres En utilisant Matlab : – calculer les pôles du système G, – calculer les valeurs propres de la matrice A. Que peut-on dire sur les valeurs propres de A et les pôles du système, – à partir de ces valeurs, que peut-on dire sur la stabilité du système. 19 U dX = AX + BU dt Y = CX + DU U1 U2 Y dX = AX + BU dt Y = CX + DU α θ (a) U B + + X& ∫ X C Y A (b) F IG . 3.2 – Schéma fonctionnel et schéma-bloc détaillé. 3.1.3 Simulation du système – Dans Matlab, simuler la réponse indicielle, la réponse impulsionnelle et le diagramme de Bode du système, – dans Simulink, simuler la réponse indicielle du système. 3.2 Commande par retour d’état avec action intégrale On s’intéresse dans cette section à la commande de l’hélicoptère pour différentes raisons : – le stabiliser, – obtenir de meilleures performances de suivi de consigne : erreur statique nulle, dynamique sans oscillation, etc. – rejeter les effets des perturbations éventuelles. On a vu que la matrice de retour Kc permet d’améliorer la dynamique du système bouclé. Pour annuler l’erreur statique, nous avons utilisé le préfiltre L. Dans ce sujet, nous remplacerons ce préfiltre par une action intégrale. En effet, l’utilisation d’un préfiltre n’assure pas toujours l’erreur statique nulle si le modèle n’est pas parfaitement connu. Le schéma-bloc du système bouclé utilisé est représenté par la Fig. 3.3, dans lequel Ki désigne la matrice de gain de l’intégrateur. 20 système Yc Z& +- ∫ Z Ki U B -- ++ X& X ∫ C Y A Kc F IG . 3.3 – Schéma-bloc du système bouclé. D’après la Fig. 3.3, on a : dX dt = AX + BU Y = CX (3.2.1) dZ = Y − CX c dt X , on obtient le nouveau modèle d’état, En prenant comme nouveau vecteur d’état Z appelé système augmenté, suivant : d dt X Z = A [0] −C [0] Y = X Z C [0] + X Z B [0] U+ [0] I Yc (3.2.2) Par ailleurs, toujours d’après la Fig. 3.3, on a : U = − (Kc X + Ki Z) (3.2.3) c’est-à-dire : U =− K c Ki X Z (3.2.4) Ainsi, on a un modèle d’état défini par l’équa. 3.2.2 et bouclé par un gain de retour K = Kc Ki . Les matrices du système augmenté sont : Aaug = A [0] −C [0] Baug = Le système bouclé aura pour représentation : 21 B [0] Caug = C [0] (3.2.5) d dt X Z = A [0] −C [0] X Z Y = ou encore : X Z X [0] B K c Ki + Yc − Z I [0] X C [0] Z (3.2.6) A − BKc −BKi X [0] = + Yc −C [0] I Z (3.2.7) X Y = C [0] Z Le but est donc de chercher le gain de retour K = Kc Ki pour obtenir de valeurs propres convenables pour la nouvelle matrice d’état notée A, telle que : A − BKc −BKi A= (3.2.8) −C [0] X d En ce qui concerne l’erreur statique, on peut la calculer lorsque dt = [0]. AppliZ quant cette condition au système d’équa. 3.2.2, on obtient : (A − BKc ) X = BKi Z CX = Yc (3.2.9) Y = CX d dt Les deux dernières équations du système d’équa. 3.2.9 affirme que Y = Yc , c’est-à-dire l’erreur statique est automatiquement nulle. 3.2.1 Commandabilité En utilisant Matlab : – calculer la matrice de commandabilité notée Co du système, – déterminer le rang de la matrice Co , – en déduire si le système est commandable ou pas. 3.2.2 – – – – – Calcul de la matrice de retour K par placement de pôles Créer les matrices du système augmenté Aaug , Baug et Caug avec Matlab, quelle est la dimension de la matrice d’état A ? proposer des valeurs propres pour la matrice d’état A, en utilisant la fonction place de Matlab, en déduire la matrice de retour K, en déduire la matrice de retour Kc et le gain de l’intégrateur Ki . 22 3.2.3 Simulation du système bouclé En utilisant Simulink, simuler du système bouclé la réponse pour une consigne de type αc 30◦ 10s échelon égale à Yc = = appliquée à l’instant . ◦ θc 50 30s Remarque : si les performances du régime transitoire ne vous conviennent pas, n’hésitez pas à modifier les valeurs propres et recalculer la matrice K. 3.3 Observateur réduit Dans la section 2.3, nous avons utilisé un observateur pour estimer le vecteur d’état. Cet observateur, appelé observateur de Luenberger ou observateur complet, estime l’ensemble du vecteur X. Toutefois, si une partie de ce vecteur est déjà mesurée par le biais de la sortie Y , il n’est pas nécessaire d’utiliser un obsrevateur complet. Dans cette partie, on s’intéresse à estimer un observateur réduit pour estimer la partie non-mesurée de X. Soit le système décrit par : dX dt = AX + BU Y = CX (3.3.1) dans lequel la matrice de sortie est du type : C= [0] I (3.3.2) Alors, on peut partitionner le vecteur d’état X en 2 : la partie non-mesurée notée V et la partie mesurée notée Y . On peut ré-écrire le système défini par l’équa. 3.3.1 comme suit : A A B V V 11 12 1 dX d = + U dt = dt Y A21 A22 Y B2 (3.3.3) V Y = [0] I Y D’après le modèle précédent, on a : dV dt = A11 V + A12 Y + B1 U dY dt (3.3.4) = A21 V + A22 Y + B2 U c’est-à-dire : dV dt = A11 V + (A12 Y + B1 U ) (3.3.5) dY dt − A22 Y − B2 U = A21 V cette dernière est équivalente à un modèle d’état (réduit par rapport au système d’équa. 3.3.1), de vecteur d’état V , de sortie dY dt − A22 Y − B2 U et d’entrée (A12 Y + B1 U ) : 23 dV dt = A11 V + entree (3.3.6) sortie = A21 V Ainsi, on peut estimer l’état V en utilisant l’observateur de Luenberger (voir section 2.3). Comme V est une partie de X, on parle d’observateur réduit. La Fig. 3.5 présente le schéma fonctionnel. système U B ++ X& X ∫ C Y A Vˆ X̂= Y V̂ observateur réduit F IG . 3.4 – Schéma fonctionnel du ystème avec observateur réduit. L’observateur a pour modèle : Λ dV̂ dt = A11 V̂ + entree + Ko sortie − sortie (3.3.7) Λ sortie = A21 V̂ c’est-à-dire : dV̂ = A11 V̂ + (A12 Y + B1 U ) + Ko dt dY − A22 Y − B2 U dt − A21 V̂ (3.3.8) ou encore : dV̂ = (A11 − Ko A21 ) V̂ + (A12 Y + B1 U ) + Ko dt dY − A22 Y − B2 U dt (3.3.9) Le gain Ko est le gain de l’observateur réduit. Cette équation nécessite la dérivation de Y , ce qui est un inconvénient. On se propose donc de réaliser le changement de variable suivant : 24 Z = V̂ − Ko Y ⇔ dZ dt = dV̂ dt − Ko dY dt (3.3.10) En appliquant ce changement de variable dans l’équa. 3.3.9, on a : dY dY dZ +Ko = (A11 − Ko A21 ) (Z + Ko Y )+(A12 Y + B1 U )+Ko +Ko (−A22 Y − B2 U ) dt dt dt (3.3.11) Après simplification et mise en forme, on obtient le modèle suivant pour notre observateur : dZ dt = (A11 − Ko A21 ) Z + ((A11 − Ko A21 ) Ko + A12 − Ko A22 ) Y + (B1 − Ko B2 ) U V̂ = Z + Ko Y (3.3.12) La Fig. 3.5 donne le schéma-bloc détaillé du système avec l’observateur réduit. système U B + + X& ∫ X Y C A Vˆ X̂= Y (A11-KoA21)Ko+A12-KoA22 Ko B1-KoB2 + ++ ∫ ++ A11-KoA21 V̂ observateur réduit F IG . 3.5 – Système avec observateur réduit. 3.3.1 Création des sous-systèmes Avec Matlab, créer les sous-matrices A11 , A12 , A21 , A22 , B1 et B2 . 3.3.2 Observabilité Le système réduit a pour modèle le système d’équa. 3.3.6. Afin de pouvoir observer sont état V , il est important de connaı̂tre si ce système est observable ou non. 25 En utilisant Matlab : – calculer la matrice d’observabilité notée Ob , – puis, déterminer le rang de la matrice Ob , – en déduire si le système est observable ou pas. 3.3.3 Calcul du gain de l’observateur Ko – Choisir des valeurs propres pour la matrice (A11 − Ko A21 ). Pour cela, vous partez des valeurs propres de (A − BKc ) choisies dans la synthèse de la commande dans la section précédente. Pourquoi ce choix ? – calculer Ko avec Matlab. 3.3.4 Implémentation de l’observateur réduit et de la commande – Implémenter sous Simulink l’observateur réduit, – le système n’étant pas stable, implémenter également dans le même fichier la commande synthétisée dans la section précédente, – simuler le système avec observateur et commande. Pour cela, mettre des conditions initiales non-nulles dans le système. Essayer également de mettre des valeurs différentes pour les paramètres A, B et C dans le système réelle (non pas dans l’observateur) afin de simuler l’incertitude, par exemple on pourra utiliser : A= C= 0 1.1 0 0 0 0.02 −1.35 0 −0.2 0 −2.3 −1 0 0 0 1 0 0 −0.2 0 −1.89 0 −0.21 −3 1.1 0.05 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 26 B= 1.2 0.8 18.1 2 0.71 1.2 3.1 20 0 0 0 0 (3.3.13) Chapitre 4 AVION : COMMANDE MODALE ET ESTIMATEUR DE L UENBERGER 4.1 Le système On considère l’avion de la Fig. 4.1, où α désigne l’angle de lacet (angle autour de l’axe z), θ désigne l’angle de tangage (angle autour de l’axe y) et v désigne la vitesse longitudinale (suivant l’axe x de l’avion). z α θ y x v F IG . 4.1 – Un avion. Le modèle de l’avion peut être approximé par un système linéaire de modèle d’état : dX dt = AX + BU (4.1.1) Y = CX On a : θ α Y = v U1 U2 U= U3 27 X= θ vθ α vα v (4.1.2) et : A= 0 1 0 0 0 −3 −1.2 −1.1 1.3 −24 0 0 0 1 0 2.1 1.8 −9 −5.5 −2 0 −0.8 0 −0.4 −3.3 B= 0 0 0 1.1 0.1 0.2 0 0 0 0.2 1.3 0 −0.05 −0.1 3 (4.1.3) 1 0 0 0 0 C= 0 0 1 0 0 0 0 0 0 1 dans lesquelles : – les états vi indiquent la vitesse angulaire associée à l’angle i ( i ∈ {α, θ} ), – et les entrées élémentaires U1 , U2 U3 désignent des signaux de commande. Les Fig. 4.2 représentent le schéma fonctionnel et le schéma-bloc détaillé du système. U U1 U2 U3 Y dX = AX + BU dt Y = CX + DU (a) U B + + X& ∫ X dX = AX + BU dt Y = CX + DU α θ v C Y A (b) F IG . 4.2 – Schéma fonctionnel et schéma-bloc détaillé. 4.1.1 Création du système Créer le système d’état appelé G et de réalisation (A,B,C,0) dans Matlab puis dans Simulink. 4.1.2 Pôles et valeurs propres En utilisant Matlab : – calculer les pôles du système G, 28 – calculer les valeurs propres de la matrice A. Que peut-on dire sur les valeurs propres de A et les pôles du système, – à partir de ces valeurs, que peut-on dire sur la stabilité du système. 4.1.3 Simulation du système – Dans Matlab, simuler la réponse indicielle, la réponse impulsionnelle et le diagramme de Bode du système, – dans Simulink, simuler la réponse indicielle du système. 4.2 Commande modale La commande modale consiste à calculer une commande dans la base modale (base des valeurs propres). Reprenons le système d’état : dX dt = AX + BU (4.2.1) Y = CX + DU Soit T la matrice de transformation modale diagonale notée Λ. On a : λ1 0 · · · 0 λ2 0 Λ= .. .. . . 0 0 ··· qui transforme la matrice A en une matrice 0 .. . = T −1 AT λn (4.2.2) où λi sont les valeurs propres de A. En appliquant le changement de variable X = T Z sur le modèle défini par le système d’équa. 4.2.1, on obtient : dZ −1 AT Z + T −1 BU dt = T (4.2.3) Y = CT Z + DU c’est-à-dire, on obtient le modèle d’état dans la base modale : dZ dt = ΛZ + βU Y = ΣZ + DU (4.2.4) Dans cette nouvelle base, on a : – Z qui est le vecteur d’état correspondant, dont les éléments sont appelés coordonnées modales, – Λ = T −1 AT qui est la matrice d’état, – β = T −1 B qui est la matrice d’entrée, – Σ = CT qui est la matrice de sortie, 29 – et D qui est la matrice de liaison directe. Appelons q le nombre d’entrée, égal au nombre de sortie, du système : q = dim (U ) = dim (Y ) (4.2.5) Naturellement, l’ordre du système noté n (telle que n = dim (X) = dim (Z)) est supérieur ou égal au nombre d’entrées : n>q (4.2.6) L’objectif de la commande modale considérée ici consiste à imposer une valeur propre (ou un pôle) entrée élémentaire entreei et état élémentaire etati . Pour cela, il a fallu découpler le système, d’où l’analyse et la synthèse dans la base modale. Comme n > q, on partitionne l’état Z en deux parties : Zq Z= (4.2.7) Zn−q où Zq est le vecteur composé des q états élémentaires dont on souhaite améliorer les performances par placement de pôles et Zn−q les n − q états restant. L’équation d’état du système d’équa. 4.2.4 devient donc : d Zq Λq [0] Zq βq = + U [0] Λn−q Zn−q βn−q dt Zn−q (4.2.8) c’est-à-dire : ( dZq dt dZn−q dt = Λq Zq + βq U = Λn−q Zn−q + βn−q U (4.2.9) On souhaite placer les pôles de la première équation d’état du système d’équations précédent. Le placement se fera plus facilement, par identification, vu que l’équation est dans la base modale. Proposons les pôles suivant : λc1 0 · · · 0 0 λc2 0 Pcq = . (4.2.10) .. .. .. . . 0 0 · · · λcq alors on peut écrire : dZq = Λq Zq + βq U = Pcq Zq dt (4.2.11) βq U = − (Λq − Pcq ) Zq (4.2.12) c’est-à-dire : 30 On peut donc dire que la commande U à appliquer, pour obtenir les valeurs propres définies dans Pcq , doit être : U = −βq−1 (Λq − Pcq ) Zq (4.2.13) Or, le vecteur d’état disponible n’est pas Z mais le vecteur X. A partir du changement de variable Z = T −1 X, on a : Zq = Tq−1 X (4.2.14) U = −βq−1 (Λq − Pcq ) Tq−1 X (4.2.15) On obtient finalement : La Fig. 4.3 représente le schéma-bloc du système bouclé et la matrice de retour est donc donnée par : Kc = βq−1 (Λq − Pcq ) Tq−1 (4.2.16) Considérant D = [0] 1 Le préfiltre L est calculée à partir de la relation suivante : −1 L = C (BKc − A)−1 B (4.2.17) système Yc L +- U B ++ X& ∫ X C Y A Kc F IG . 4.3 – Schéma-bloc du système bouclé. Remarques. Dans la commande modale, nous avons placé les q premières valeurs propres du système bouclé. On démontre ici que cela n’influence pas sur les n − q valeurs propres restantes et que ces dernières sont égales aux n − q valeurs propres du système à commander. En introduisant U = −βq−1 (Λq − Pcq ) Zq dans les deux équa. 4.2.9, on a : 1 Il est toujours possible de se ramener au cas où D = [0] en faisant un changement de variable sur Y . 31 ( dZn−q dt dZq dt = Pcq Zq = Λn−q Zn−q + βn−q βq−1 (Λq − Pcq ) Zq (4.2.18) ou encore : d dt Zq Zn−q = Pcq [0] −βn−q βq−1 (Λq − Pcq ) Λn−q Zq Zn−q = Λbf Zq Zn−q (4.2.19) Les valeurs propres du système en boucle fermée sont les solutions du polynômes caractéristique donné par : det (λbf I − Λbf ) = det (Pcq ) det (Λn−q ) (4.2.20) Il apparaı̂t donc que les q premières valeurs propres (ou pôles) du système en boucle fermée sont les valeurs propres définies dans Pcq tandis que les n − q restantes sont celles données par Λn−q , ces dernières étant celles du système à commander. 4.2.1 Commandabilité En utilisant Matlab : – calculer la matrice de commandabilité notée Co de l’avion, – déterminer le rang de la matrice Co , – en déduire si le système est commandable ou pas. 4.2.2 Calcul de la matrice de retour Kc et du préfiltre L – quelle est la valeur de q pour le cas de l’avion ? – calculer la matrice des valeurs propres Λ et la matrice de transformation modale T de l’avion, – calculer T −1 et en déduire β, – déduire des calculs précédents les matrices Λq , βq et Tq−1 , – proposer la matrice Pcq des q premières valeurs propres pour le système bouclé, – calculer la matrice de retour Kc , – calculer le préfiltre L. 4.2.3 Simulation du système bouclé – Implémenter sous Simulink le correcteur puis simuler la réponse indicielle du système bouclé, – commenter sur les performances du système bouclé. Remarque : si les performances du régime transitoire ne vous conviennent pas, n’hésitez pas à modifier les valeurs propres de dans Pcq puis à recalculer Kc et L, ou changer complètement les q états à commander. 32 4.3 Observateur complet ou observateur de Luenberger Le vecteur d’état X, ou du moins une partie de ses éléments, n’est pas directement mesurable. Il est donc nécessaire de l’estimer. Pour cela, on utilise l’observateur complet ou observateur de Luenberger vu dans la section 2.3. La Fig. 4.4 présente le schéma-bloc de l’avion et de l’observateur. système U B + + X& ∫ X C Y X̂ C Ŷ A B X̂ + + ∫ -+ + A Ko observateur X̂ F IG . 4.4 – Schéma-bloc détaillé de l’observateur et du système. 4.3.1 Observabilité Afin de synthétiser un observateur pour un système, il est important de savoir si le système est observable ou pas. Définir l’observabilité d’un système. – En utilisant Matlab, calculer la matrice d’observabilité notée Ob , – puis, déterminer le rang de la matrice Ob , – en déduire si le système est observable ou pas. 4.3.2 Calcul du gain de l’observateur Ko – Choisir des valeurs propres pour la matrice (A − Ko C). Pour cela, vous partez des valeurs propres du système en boucle fermée données dans les questions précédentes, ces valeurs propres étant données par Pcq et Λn−q . Pourquoi ce choix ? – calculer Ko avec Matlab. 33 4.4 Observateur et commande modale Combiner maintenant l’observateur précédemment calculé ainsi que la commande modale synthétisée auparavant dans Simulink. Appliquer un échelon à l’entrée du système et comparer le vecteur d’état X ainsi que l’état estimé X̂. Pour cela, mettre des conditions initiales différentes de zéro dans le système. 34 Annexe A Algèbre linéaire A.1 Taille d’une matrice La taille (dimension) d’une matrice est notée (n, m) (ou dim (A) = (n, m)), n étant le nombre de lignes et m le nombre de colonnes : a11 a12 · · · a1m .. a21 a22 · · · . A= . (A.1.1) .. .. . an1 · · · anm Si la matrice est carrée, c’est-à-dire m = n, on parle d’une matrice carrée de taille ou d’ordre n. La matrice A est rectangulaire si elle n’est pas carrée. A.2 Rang d’une matrice Soit une matrice de taille (n, m). Le rang de la matrice A noté rang (A) est la taille maximale des sous-matrices carrées inversibles extraites de A. On a les propriétés suivantes : rang (A) 6 min (n, m) rang (A + B) 6 rang (A) + rang (B) (A.2.1) rang (AB) 6 min (rang (A) , rang (B)) Si A est une matrice carrée d’ordre n et inversible, alors : rang (A) = n 35 (A.2.2) A.3 Opérateurs transposée et adjoint Soit A ∈ Cn.m une matrice complexe de taille (n, m). La transposée, notée AT et de taille (m, n), de la matrice A est obtenue en échangeant les lignes et les colonnes de A. Exemple : j 9 A = −1 2 − j (A.3.1) 3 0 alors : T A = j −1 3 9 2−j 0 (A.3.2) L’adjoint d’une matrice complexe noté A∗ est la matrice transposée et conjuguée (transconjuguée) correspondante : A(j)∗ = A(−j)T (A.3.3) exemple : ∗ A = −j −1 3 9 2+j 0 (A.3.4) On a : (A − Ko C)T = AT − C T KoT A.4 Matrices particulières A.4.1 Matrice identité (A.3.5) La matrice identité, d’ordre n et notée In , est une matrice carrée diagonale dont les éléments du diagonal sont 1 : 1 0 ··· 0 0 1 ... 0 In = (A.4.1) .. . . . . .. . . . . 0 0 ··· 1 36 A.4.2 Matrice nulle La matrice nulle, de taille (n, m), est une matrice dont tous les éléments sont nuls. 0 0 ··· 0 0 0 0 [0] = 0n×m = . (A.4.2) . . . . . 0 0 A.5 0 Valeurs propres et vecteurs propres Les valeurs propres, notées λi (i = 1 · · · n), d’une matrice carrée A d’ordre n sont les racines du polynôme suivant : det (λIn − A) = 0 (A.5.1) où l’opérateur det () désigne le déterminant. Le polynôme det (λIn − A) s’appelle polynôme caractéristique de A. On a la propriété suivante : λi (A) = λi AT (A.5.2) On note Λ la matrice diagonale dont les éléments sont les valeurs propres λi de A : λ1 0 · · · 0 .. 0 λ2 0 . Λ= . (A.5.3) .. .. . 0 0 · · · λn A chaque valeur propre λi , on associe un vecteur propre vi telle que la matrice A se comporte comme un scalaire : Avi = λi vi (A.5.4) Par ailleurs, on peut retrouver la matrice Λ à partir de A grâce à une matrice de transformation T , appelée matrice de transformation modale : Λ = T −1 AT (A.5.5) les colonnes de la matrice de transformation modale T étant les vecteurs propres vi de A : T = v1 v2 · · · vn 37 (A.5.6) A.6 Spectre et rayon spectral Le spectre indique l’ensemble des valeurs propres λi (A) de la matrice carrée A. Le rayon spectral noté ρ(A) est le plus grand des modules des λi : ρ (A) = max |λi (A)| A.7 (A.6.1) Comatrice Soit la matrice carrée A : a11 a12 a21 a22 A= .. .. . . an1 an2 · · · a1n .. . a2n .. .. . . · · · ann (A.7.1) Alors la comatrice de A est : A11 A12 A21 A22 com (A) = .. .. . . An1 An2 · · · A1n .. . A2n .. .. . . · · · Ann (A.7.2) où les coefficients Aij , appelés cofacteurs de A, se calculent comme suit : Aij = (−1)i+j mij (A) (A.7.3) Dans l’expression précédente, mij (A) est appelé mineur de A et est égal au déterminant de la sous-matrice obtenue en éliminant la ième ligne et la j ème colonne de A (Fig. A.1). 38 a11 a21 M A = ai1 M a n1 a12 L a1 j L a22 O aij O an 2 L anj L a1n a2 n M ain M ann Aij = sous-matrice F IG . A.1 – Construction de la sous-matrice afin de calculer le mineur mij (A). A.8 Inverse d’une matrice Soit la matrice carrée A de taille n définie précédemment. A est inversible, ou régulière ou encore non-singulière, si et seulement si son déterminant est non-nul : det (A) 6= 0 (A.8.1) Cela revient à dire que son rang est complet : rang (A) = n (A.8.2) La matrice inverse, ou simplement l’inverse, de A est définie par : A−1 = 1 (com (A))T det (A) (A.8.3) On a la relation suivante : AA−1 = A−1 A = In 39 (A.8.4) A.9 Pseudo-inverse d’une matrice L’inverse d’une matrice ne s’appliquant que sur les matrices carrées, on utilise la pseudoinverse pour la généralisation. La pseudo-inverse, appelée également pseudo-inverse de MoorePenrose, d’une matrice M de taille (n, m) est notée M + et a les propriétés suvantes : M M +M = M M +M M + = M + ∗ MM+ = MM+ ∗ M +M = M +M (A.9.1) Décomposons la matrice M par M = BC, avec B de taille (n, k) et C de taille (k, m). Alors, on peut calculer M + par : M + = C ∗ (CC ∗ )−1 (B ∗ B)−1 B ∗ 40 (A.9.2) Annexe B Outils de base pour les modèles d’état Soit le système décrit par le modèle d’état suivant : dX dt = AX + BU Y = CX + DU (B.0.1) La première équation s’appelle équation d’état tandis que la deuxième équation de sortie. On a : – – – – – – – B.1 X est le vecteur d’état, Y est le vecteur de sortie, U est le vecteur de commande, A s’appelle matrice d’état, B s’appelle matrice de commande, C s’appelle matrice de sortie, et D s’appelle matrice de liaison directe. Ordre du système L’ordre du système est égal à la dimension du vecteur d’état X, ou encore à l’ordre de la matrice carrée A. On a : n = dim (X) B.2 (B.1.1) Stabilité Le système de réalisation (A, B, C, D) est strictement stable si et seulement si toutes les valeurs propres notées λi de la matrice d’état A sont à parties réelles strictement négatives : Re (λi (A)) < 0 41 (B.2.1) Les valeurs propres de A sont également les pôles du système. B.3 Commandabilité Soit la matrice de commandabilité définie par : Co = B AB A2 B · · · An−1 B (B.3.1) Le système de réalisation (A, B, C, D) est commandable si le rang de Co est égal à l’ordre du système : rang (Co ) = n B.4 (B.3.2) Observabilité Soit la matrice d’observabilité définie par : Ob = C CA CA2 .. . CAn−1 (B.4.1) Le système de réalisation (A, B, C, D) est observable si le rang de Ob est égal à l’ordre du système : rang (Ob ) = n 42 (B.4.2) Annexe C Quelques fonctions de M ATLAB C.1 Calcul de base a = cos(5) ⇒ a = 0.283662185463226 b = (3 − 1.5 ∗ exp (12)) / log (5) ⇒ b = −151685.992508581 log 10 (1e − 5) ⇒ −5 sin(pi/2) ⇒ 1 tan(pi) ⇒ −1 .22464679914735e − 016 (Normalement zéro, mais il y a la précision numérique de M ATLAB) atan(− inf) ⇒ −1 .5707963267949 = − π2 C.2 A= Calcul matriciel 3 2 −5 8; 1 5 6 2; 4 −58 −100 1e5 43 3 2 −5 8 5 6 2 ⇒ A= 1 4 −58 −100 105 c = A (3, 2) ⇒ c = −58 V = A (:, 2) 2 ⇒V = 5 −58 U = A (3, :) ⇒U = 4 −58 −100 105 M = (2 : 3, 2 : 4) 5 6 2 ⇒M = −58 −100 105 A∗B ⇒ multiplication de deux matrices A. ∗ B ⇒ multiplication élément par élément A+B ⇒ addition A−B ⇒ soustraction Aˆn ⇒ A ∗ A ∗ A... ∗ A (n fois), A doit être carrée A0 ⇒ adjoint (transposée conjuguée) de A transpose (A) 44 ⇒ transposée de A. Cette fonction ne fait pas la conjuguée, contrairement à la fonction précédente inv(A) ⇒ inverse de A (si A carrée) pinv(A) ⇒ pseudo-inverse de A (si A rectangulaire) A/B ⇒ division à gauche de A par B A\B ⇒ division à droite de A par B A./B ⇒ division élément par élément de A par B, division à gauche A.\B ⇒ division élément par élément de A par B, division à droite A/c ⇒ division des éléments de A par un scalaire c A∗c ⇒ multiplication des éléments de A par un scalaire c A+c ⇒ addition des éléments de A par un scalaire c A−c ⇒ soustraction des éléments de A par un scalaire c ones(n, m) ⇒ matrice de taille n · m d’éléments 1 zeros(n, m) 45 ⇒ matrice de taille n · m d’éléments 0 eye(n, m) ⇒ matrice de taille n · m et dont la première diagonale est 1, le reste des éléments sont 0 rank(A) ⇒ rang de la matrice A det(A) ⇒ déterminant de la matrice A size(A) ⇒ taille (dimension) de la matrice A length(V ) ⇒ taille (dimension) d’un vecteur V . Si V est une matrice, la fonction renvoye max (size (V )) [T, Λ] = eig (A) ⇒ donne la matrice de transformation modale T et la matrice des valeurs propres Λ de A A = diag (V ) ⇒ création d’une matrice diagonale A dont les éléments du diagonal sont fournis par le vecteur V C.3 Quelques fonctions de base utilisées en Automatique G = tf ([num], [den]) ⇒ création d’une fonction de transfert. Les paramètres [num] et [den] sont des vecteurs contenant les coefficients du numérateur et du dénominateur G = tf ([ 3 2 ], [ 0.1 1.2 1 ]) ⇒G= 3p+2 0.1p2 +1.2p+1 G = ss(A, B, C, D) 46 ⇒ création d’un modèle d’état de réalisation (A, B, C, D). Si D est une matrice nulle, on peut écrire G = ss(A, B, C, 0) eig (A) ⇒ calcul des valeurs propres de la matrice d’état A pole (G) ⇒ calcul des pôles du système G. Le système G peut être une fonction de transfert ou également un modèle d’état zero (G) ⇒ calcul des zéros du système G. Le système G peut être une fonction de transfert ou également un modèle d’état Getat = ss(Gtransf ert ) ⇒ création d’un modèle d’état à partir de la fonction de transfert Gtransf ert Gtransf ert = tf (Getat ) ⇒ création d’une fonction de transfert à partir du modèle d’état Getat impulse(G) ⇒ traçage de la réponse impulsionnelle de G step(G) ⇒ traçage de la réponse indicielle de G bode(G) ⇒ traçage du diagramme de B ODE de G nyquist(G) ⇒ traçage du diagramme de N YQUIST de G nichols(G) ⇒ traçage du diagramme de B LACK -N ICHOLS de G bodemag(G) 47 ⇒ traçage de la magnitude (diagramme de B ODE en amplitude) de B ODE de G plot(t, y) ⇒ traçage d’une courbe dont l’abscisse est donnée par le vecteur t et l’ordonnée par y grid ⇒ mise en place d’une grille sur la courbe hold on ⇒ garder la dernière figure afin de tracer sur celle-ci une autre courbe plot(t, y,0 r0 ) ⇒ traçage d’une courbe y en fonction de t avec une couleur rouge. la fonction help plot permet d’afficher la liste des couleurs ainsi que d’autres options xlabel(0 t(s)0 ) ⇒ mise en place de titre t(s) sur l’axe des abscisses ylabel(0 y(mètre)0 ) ⇒ mise en place de titre y(mètre) sur l’axe des ordonnées title(0 Courbe de réponse0 ) ⇒ mise en place de titre Courbe de réponse sur la figure legend(00 ,00 ,00 , etc) ⇒ mise en place de légendes des différentes courbes sur la figure C.4 Quelques fonctions d’analyse et de synthèse utilisées en Automatique Co = ctrb (A, B) ⇒ calcul de la matrice de commandabilité Co = B AB A2 B · · · An B Ob = obsv (A, C) ⇒ calcul de la matrice d’observabilité Ob = C CA CA2 · · · CAn 48 T Kc = place (A, B, Pc ) ⇒ calcul de la matrice de retour d’état Kc par placement de pôles, les pôles étant définis dans le vecteur Pc et sont les valeurs propres de la matrice (A − BKc ) [Kc, P, Pc ] = lqr (A, B, Q, R) ⇒ calcul de la matrice de retour d’état Kc optimale par la synthèse Linéaire Quadratique (LQ). La fonction donne également la matrice P solution de l’équation algébrique de Riccati ainsi que les valeurs propres de (A − BKc ) dans le vecteur Pc 49