Vous êtes sur la page 1sur 2

TP : COMMANDE PAR RETOUR D’ETAT

1 Introduction
Ce TP a pour objectif d’illustrer les concepts de commande par retour d’état de systèmes linéaires monovariables. Les
principes et propriétés d’une commande par retour d’état sont étudiés en simulation dans l’environnement logiciel MAT-
LAB/SIMULINK.
La méthode employée est une méthode de placement de pôles c’est-à-dire que l’on doit déterminer une commande telle que
les pôles du système en boucle fermée soient convenablement placés dans le plan complexe et satisfassent des spéci…cations
d’amortissement, de rapidité... Les pôles de la fonction de transfert étant les valeurs propres de la matrice d’état, le but est
donc de réaliser un asservissement modi…ant convenablement la matrice d’évolution du système.

2 But du TP
On s’intéresse donc à la synthèse d’une loi de commande numérique par retour d’état permettant de stabiliser un système
quelconque à condition qu’il soit commandable et que son état soit entièrement observable. Le système à commander a pour
fonction de transfert :
! 20
G(s) = 2
s + 2 ! 0 s + ! 20
! 0 et représentent respectivement la pulsation propre et le coe¢ cient d’amortissement du système.
On peut montrer que la fonction de transfert du système échantillonné bloqué correspondant à G(s) a pour expression :

b1 z 1 + b2 z 2
G(z) =
1 + a1 z 1 + a2 z 2

Remarque : le système, qui a été choisi, est du second ordre principalement pour des raisons de simplicité de calcul mais
la méthodologie qui sera appliquée peut être étendue à tout système qui possède la propriété d’être commandable et pour lequel
l’ensemble des variables d’état sont accessibles à la mesure.
1 ) Déterminer la représentation d’état canonique de commandabilité (F, G, P, Q) du système à commander G(z). On
appellera u(k), y(k) et x(k) respectivement la commande, la sortie et l’état du système à l’instant k.
2 ) On synthétise une loi de commande par retour d’état sous la forme : u(k) = Kx(k) . A quelle condition peut-on
mettre en œuvre une commande par retour d’état ? Est-ce le cas pour le système considéré ?
3 ) Lorsque u(k) = Kx(k), s’agit-il d’un objectif de poursuite ou de régulation ? Dans ce cas, quelle doit être la valeur
asymptotique de la sortie y(k) du système bouclé ?
4 ) Le vecteur de gain K = [k1 k2 ] doit être calculé de façon à placer les pôles du système en boucle fermée …xant ainsi
le temps de réponse. Calculer le gain de retour d’état tel que le comportement du système en boucle fermée soit semblable à
celui d’un système du second ordre continu de pulsation propre ! c et de coe¢ cient d’amortissement c (il est donc nécessaire
de dé…nir les pôles désirés à partir des pôles du système continu dé…nis par les spéci…cations précédentes). On notera z1 et
z2 ces pôles.
5 ) On désire répondre à un objectif de régulation et de poursuite en appliquant une commande de type : u(k) =
Kx(k) + y (k) . Déterminer les matrices du modèle d’état en boucle fermée entre y(k) et y*(k). Conclure sur l’e¤et d’un
retour d’état concernant la position des pôles et des zéros.
6 ) Déterminer l’expression du gain en fonction des paramètres de G(z) et de K permettant d’assurer le suivi d’un
signal de référence en échelon sans erreur statique en boucle fermée.
7 ) Soient ! c = ! 0 =0.2 rad/ s , = 0; 1 c = 0; 7 et Ts la période d’échantillonnage …xée à 0,5 seconde. Calculer la
position désirée des pôles du système en boucle fermée.
8 ) Avec ces spéci…cations, quelles performances temporelles et fréquentielles est-on susceptible d’obtenir en boucle fermée
? Les comparer avec celles du système en boucle ouverte en termes de dépassement, de bande passante et de facteur de
qualité ou de résonance.
Rappel :
La réponse temporelle à un échelon d’un système du second ordre peut être caractérisée par deux paramètres qui
sont directement liés à la valeur de la pulsation propre et de l’amortissement :

A partir de , on peut dé…nir le facteur de résonance : Q = p1 2


2 1
3 Manipulation

Le travail demandé nécessite de réaliser un programme Matlab qui permet de répondre aux questions suivantes. Il doit être
réalisé de manière à o¤rir une grande souplesse d’utilisation. Ce programme doit être sauvegardé dans un …chier Matlab
(extension .m) et dans votre répertoire de travail. La période d’échantillonnage Ts est …xée à 0,5 seconde.
1 ) En utilisant la fonction Matlab tf, dé…nir le système continu avec une pulsation propre de 2 rad/s et un coe¢ cient
d’amortissement de 0,1. On appellera sys l’objet système correspondant.
2 ) Discrétiser le système continu en utilisant la fonction Matlab c2d (option ’zoh’). On appellera sysd l’objet système
correspondant.
3 ) Analyser les performances temporelles et fréquentielles du système à commander ainsi que la position des pôles et des
zéros. Est-il stable en boucle ouverte ? Justi…er. Rappeler les liens entre ces représentations. Utiliser les fonctions Matlab :
…gure, step, bode, pzmap.
Remarque : il est intéressant de comparer les réponses indicielles et fréquentielles (Bode) des systèmes G(s) et G(z) en
les traçant sur les mêmes …gures.
4 ) En utilisant les résultats du travail préparatoire, construire les matrices permettant de dé…nir la représentation d’état
canonique de commandabilité du système à commander. Créer un objet contenant la représentation d’état du système.
Utiliser la fonction Matlab ss.
5 ) Véri…er la commandabilité du système en utilisant la matrice de commandabilité. Utiliser les fonctions Matlab ctrb,
det et rank.
6 ) En utilisant les résultats du travail préparatoire et les valeurs numériques suivantes : ! c =! 0 et c = 0,7 , faire réaliser
par votre programme le calcul du gain de retour d’état. Comparer le résultat avec celui fourni en utilisant les fonctions
Matlab place ou acker.
7 ) Observer la position des pôles et des zéros du système en boucle fermée et les comparer à celle du système en boucle
ouverte. Conclure sur l’e¤et d’une commande par retour d’état concernant la con…guration des pôles et des zéros. Utiliser
la fonction Matlab pzmap.
Pour réaliser un objectif de poursuite, en l’occurrence faire suivre à y(t) une séquence de référence y*(t), la loi de
commande doit maintenant s’écrire sous la forme u(k) = Kx(k) + y (k) .
8 ) Faire réaliser automatiquement le calcul du précompensateur par votre programme. Créer un objet système en
boucle fermée pour la poursuite. Analyser les performances temporelles et fréquentielles du système bouclé.
9 ) Sous Simulink, réaliser le schéma éclaté du système bouclé par retour d’état ainsi synthétisé en faisant apparaître
chacun des états du système.
10 ) Simuler le système bouclé en poursuite en choisissant un échelon de consigne unitaire. Observer les signaux de sortie
et de commande et les états du système.
11 ) Appliquer une consigne nulle et …xer la valeur initiale de l’état x(0) à une position arbitraire (la valeur initiale de
chaque état peut être spéci…ée dans le bloc intégrateur qui lui est associé). Analyser l’évolution de l’état du système x(k).

Vous aimerez peut-être aussi