Observateur d`état ()
Transcription
Observateur d`état ()
Introduction Observateur d’état Système dual Exemple complet Observateur d’état Guy Gauthier École de technologie supérieure Département de génie de la production automatisée 25 juin 2014 1 / 26 Introduction Observateur d’état Système dual Exemple complet Introduction Nous assumerons que l’on n’a pas accès à tous les états du système, mais seulement qu’à quelques uns. Le système est représenté par l’équation d’état : ẋ(t) = Ax(t) + Bu(t) (1) y(t) = Cx(t) (2) et : A ∈ Rn×n . B ∈ Rn×m . C ∈ Rp×n . 2 / 26 Introduction Observateur d’état Système dual Exemple complet Observateur d’état Approximation du système Supposons que le système (1) peut être approximé comme suit : ˙ x̃(t) = Ãx̃(t) + B̃u(t) + L y(t) − C̃x̃(t) (3) avec ˜•, l’approximation de • et L ∈ Rn×p une matrice de gains. Cette approximation est nommée "observateur d’états". L’observateur d’état utilise les valeurs du vecteur d’entrée u(t) et du vecteur de sortie y(t). 3 / 26 Introduction Observateur d’état Système dual Exemple complet Observateur d’état En posant : e(t) = x(t) − x̃(t) (4) l’erreur de l’observateur d’état, alors on peut calculer : ė(t) = Ax(t) + Bu(t) − Ãx̃(t) + B̃u(t) + L y(t) − C̃x̃(t) Que l’on peut réécrire : ė(t) = Ax(t) − Ãx̃(t) + B − B̃ u(t) + L Cx(t) − C̃x̃(t) 4 / 26 Introduction Observateur d’état Système dual Exemple complet Observateur d’état Si les paramètres de l’observateur sont identiques aux paramètres du système alors ˜ • = •, alors : ė(t) = Ae(t) − LCe(t) = (A − LC) e(t) La dynamique du vecteur d’erreurs de l’observateur d’état convergera à 0, si on fait un choix judicieux pour la matrice de gains L. Puisque l’observateur d’état est utilisé avec une commande par retour d’état, on choisi pour l’observateur d’état une dynamique beaucoup plus rapide que la dynamique du système réel (ou celle prévue en boucle fermée, si il y a commande par retour d’état). 5 / 26 Introduction Observateur d’état Système dual Exemple complet Observateur d’état Évidemment, pour pouvoir utiliser un observateur d’état, le système doit être ... observable. La matrice d’observabilité est : O= C CA .. . CAn−1 (5) Le système est observable si le rang de la matrice d’observabilité est égal à n. Si c’est le cas, on peut réaliser l’observateur d’état. Sinon,... Nous utiliserons l’approche présentée pour faire une commande par retour d’état pour concevoir l’observateur d’état. Pour cela il faut travailler avec le dual de notre système. 6 / 26 Introduction Observateur d’état Système dual Exemple complet Notion de système dual Soit un système représenté par : ẋ(t) = Ax(t) + Bu(t) et : y(t) = Cx(t) Le dual de ce système est : ż(t) = AT z(t) + CT γ(t) (6) ν(t) = BT z(t) (7) et : On constate que les matrices du système dual sont les transposées de celles du système réel. 7 / 26 Introduction Observateur d’état Système dual Exemple complet Système dual La matrice d’observabilité du système réel est représenté par : O= C CA .. . CAn−1 (8) et la matrice de commandabilité du système dual est : Cdual = CT A T CT ... AT n−1 CT (9) On remarquera que : T O = Cdual (10) Ainsi, concevoir un observateur d’état d’un système équivaut à construire un contrôleur par retour d’état pour son dual. 8 / 26 Introduction Observateur d’état Système dual Exemple complet Exemple système à une sortie Soit un système définit par : 3 1 2 A = −1 −4 0 0 3 −2 et h C= 0 1 1 (11) i (12) La matrice de commandabilité du dual de ce système est : Cdual 0 −1 −2 = 1 −1 −3 1 −2 2 (13) La dernière ligne de l’inverse de cette matrice est : h qC = −1/7 −1/7 1/7 i (14) 9 / 26 Introduction Observateur d’état Système dual Exemple complet Exemple système à une sortie La matrice de transformation T est : −1/7 −1/7 1/7 5/7 −5/7 T = −2/7 −11/7 −18/7 25/7 (15) Cela mène à la forme canonique commandable du dual. Ainsi : 0 1 0 AC = 0 0 1 16 9 −3 et : h BT C = 0 0 1 i (16) (17) La dernière ligne de la matrice AC est : h Am = 16 9 −3 i (18) 10 / 26 Introduction Observateur d’état Système dual Exemple complet Exemple système à une sortie Si on positionne les trois pôles à −0.1, le polynôme caractéristique désiré est : p(s) = s 3 + 0.3s 2 + 0.03s + 0.001 (19) ce qui fait que la dernière ligne désirée est : h i Ad = −0.001 −0.03 −0.3 (20) La matrice de gain est : h i (21) i (22) KC = Am − Ad = 16.001 9.03 −2.7 que l’on transforme en : h K = KC T = −0.623 11.107 −13.807 11 / 26 Introduction Observateur d’état Système dual Exemple complet Exemple système à une sortie La matrice de gains de l’observateur d’état est simplement la transposée de K. Pour ce système : −0.623 L = KT = 11.107 −13.807 (23) 12 / 26 Introduction Observateur d’état Système dual Exemple complet Exemple complet - Pendule inversé Soit un système modélisé par : 0 20 ẋ(t) = 0 −1/2 et : 1 0 0 0 " 0 0 0 0 0 0 0 −1 x(t) + u(t) 0 1 0 1/2 (24) # 1 0 0 0 y(t) = x(t) 0 0 1 0 (25) Les états sont : x1 – position angulaire, x2 – vitesse angulaire, x3 – position du chariot et x4 – vitesse du chariot. √ Les valeurs propres de la Jacobienne sont : 0, 0 et ±2 5, ce qui implique que le système est instable. 13 / 26 Introduction Observateur d’état Système dual Exemple complet Commande par retour d’état Il faut vérifier la commandabilité du système. La matrice de commandabilité est : 0 −1 0 −20 −1 0 −20 0 C= 0 1/2 0 1/2 1/2 0 1/2 0 (26) et elle est de plein rang (rang = n = 4). Le système est par conséquent commandable. 14 / 26 Introduction Observateur d’état Système dual Exemple complet Commande par retour d’état L’inverse de la matrice de commandabilité est : C −1 0 1 0 40 1 1 0 40 0 = 19 0 −1 0 −2 −1 0 −2 0 (27) et si l’on extrait la dernière ligne on obtient : qC = i 1 h −1 0 −2 0 19 (28) 15 / 26 Introduction Observateur d’état Système dual Exemple complet Commande par retour d’état La matrice de transformation est : −1/19 0 −2/19 0 1 0 −1/19 0 −2/19 T= 0 0 0 19 −1 0 −1 0 0 (29) La forme canonique commandable du système est alors : 0 0 AC = 0 0 et : h 1 0 0 1 0 0 0 20 0 0 1 0 i BT C = 0 0 0 1 (30) (31) 16 / 26 Introduction Observateur d’état Système dual Exemple complet Commande par retour d’état La dernière ligne de la matrice AC est : h i Am = 0 0 20 0 (32) On désire placer les pôles en −2 ± j2 et les deux autres à −10 (temps de réponse 2 secondes et amortissement de 0.707). Cela donne le polynôme cible suivant : p(s) = s 4 + 24s 3 + 188s 2 + 560s + 800 (33) et la dernière ligne que l’on désire pour la matrice ABF en boucle fermée est : h i Ades = −800 −560 −188 −24 (34) 17 / 26 Introduction Observateur d’état Système dual Exemple complet Commande par retour d’état La matrice de gains qui permettra de fixer les pôles en boucle fermée aux valeurs désirée est : h i KC = Am − Ades = 800 560 208 24 (35) Celle que l’on implantera sur le système réel est : h i K = KC T = −250.105 −53.474 −84.211 −58.947 (36) Cette commande par retour d’état assume que nous avons accès au 4 états du système. Supposons que nous n’avons accès qu’aux états x1 et x3 . Il faudra alors construire un observateur d’état. 18 / 26 Introduction Observateur d’état Système dual Exemple complet Commande par retour d’état Il faut vérifier l’observabilité du système. est : 1 0 0 0 0 1 0 0 O= 20 0 0 −1/2 0 20 0 −1/2 La matrice d’observabilité 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 (37) et elle est de plein rang (rang = n = 4). Le système est observable. 19 / 26 Introduction Observateur d’état Système dual Exemple complet Commande par retour d’état Le système dual sera le suivant : ż(t) = AT z + CT γ(t) = Adual z + Bdual γ(t) (38) et sa matrice de commandabilité sera la transposée de la matrice d’observabilité que l’on vient tout juste de calculer. Cdual = OT (39) 20 / 26 Introduction Observateur d’état Système dual Exemple complet Commande par retour d’état Le système dual comportant deux entrées il nous faut les indices de commandabilités ρ1 et ρ2 . Puisque les 4 premières colonnes de Cdual sont indépendantes, alors ρ1 = ρ2 = 2. Définissons la matrice W à partir de ces 4 colonnes comme suit h W = b1 Adual b1 b2 1 i 0 Adual b2 = 0 0 0 1 0 0 0 0 1 0 0 0 0 1 Puisque W est la matrice identité, son inverse est aussi la matrice identité. 21 / 26 Introduction Observateur d’état Système dual Exemple complet Commande par retour d’état La ρ1 -ème ligne (2e) de W−1 est : h i qC 1 = 0 1 0 0 (40) et la (ρ1 + ρ2 )-ème (la dernière) ligne est : h i qC 2 = 0 0 0 1 (41) La matrice de transformation résultante est : qC 1 0 q A 1 Td = C 1 dual = qC 2 0 qC 2 Adual 0 1 0 0 0 0 0 0 1 0 0 1 0 (42) 22 / 26 Introduction Observateur d’état Système dual Exemple complet Commande par retour d’état La forme canonique commandable du système dual est : AO = Td Adual T−1 d = et : 0 20 0 0 BO = Td Bdual = 0 0 1 0 −1/2 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 (43) (44) 23 / 26 Introduction Observateur d’état Système dual Exemple complet Commande par retour d’état La matrice Am est obtenue en extrayant les 2e et dernière lignes de AO (lignes ρ1 et ρ1 + ρ2 ) : " 20 0 −1/2 0 Am = 0 0 0 0 # (45) De même, on obtient Bm à partir de BO : " 1 0 Bm = 0 1 # (46) 24 / 26 Introduction Observateur d’état Système dual Exemple complet Commande par retour d’état Si on désire une dynamique 10 fois plus rapide pour l’observateur d’état que pour la commande par retour d’état, il faut que les pôles soient en : −20 ± j20 et les deux autres à −100. Cela donne le polynôme cible suivant : p(s) = s 4 + 240s 3 + 18800s 2 + 560000s + 8000000 (47) et : " Ades 0 0 1 0 = −8000000 −560000 −18800 −240 # (48) On obtient : " KCO = B−1 m (Am # 20 0 −3/2 0 − Ades ) = 8000000 560000 18800 240 25 / 26 Introduction Observateur d’état Système dual Exemple complet Commande par retour d’état On revient à notre système dual original : " KOdual # 0 20 0 −3/2 = KO Td = 560000 8000000 240 18800 (49) La matrice de gains de l’observateur d’état sera la transposée de ce résultat : 0 560000 20 8000000 L = KT = (50) Odual 0 240 −3/2 18800 26 / 26