Polycopies Arichi
Polycopies Arichi
1
Liste des travaux pratiques :
TP 1 : Introduction à Matlab
2
TP 1 : Introduction à Matlab
1- Objectif :
Il s’agit de familiariser les étudiants avec l'usage de Matlab et découvrir les fonctions et
outils de Matlab relatifs à l’étude des systèmes asservis.
2- Introduction :
Matlab est un logiciel de calcul mathématique basé sur la manipulation de variables
matricielles. Il propose la résolution numérique d'un grand nombre de problèmes
mathématiques classiques, du plus grand intérêt pour les ingénieurs et les chercheurs.
Matlab est d'ailleurs un raccourci pour « Matrix Laboratory ». Il possède une boite à outils
dédiée à l’étude des systèmes de commande « Control system Toolbox », ainsi qu’un
environnement graphique de simulation numérique des systèmes dynamiques : Simulink.
3- Démarrage de Matlab :
On démarre MATLAB en double cliquant sur l’icône MATLAB présente sur le bureau de
votre ordinateur. Une fois cette commande est exécutée il y’aura l’affichage de la fenêtre
active suivante :
3
Cette fenêtre est divisée en plusieurs parties :
- COMMAND WINDOW: invite de commande permettant de taper des instructions,
d'appeler des scripts, et d'exécuter des fonctions Matlab. Notez que le prompt Matlab
(>>) indique que Matlab attend des instructions. Une fois l’instruction tapée
correctement, on peut l’exécuter en appuyant sur la touche entrée.
- COMMAND HISTORY: Matlab garde en mémoire les dernières commandes effectuées.
Elles sont visibles dans l’ongle Command History. On peut également y accéder
directement dans la Command Window au moyen des touches [ ] et [ ]. Ceci est
particulièrement utile pour répéter la dernière commande.
- WORKSPACE: permet d’afficher les variables utilisées et également de parcourir
graphiquement le contenu des variables.
- CURRENT DIRECTORY : un navigateur de fichier intégré à Matlab pour visualiser le
répertoire de travail courant et y effectuer les opérations classiques tel que renommer
ou supprimer un fichier.
4- Les variables dans Matlab :
Le nom d’une variable doit toujours commencer par une lettre. Matlab fait la différence entre
les MAJUSCULES et les minuscules. Sauf cas d’extrême pénurie de lettres, évitez de panacher
majuscules et minuscules. Précisons que les commandes Matlab sont toujours tapées en
minuscules.
Les variables sont créées lors de la première affectation, sous Matlab, l'affectation se fait à
l'aide de l'opérateur « = » :
10
On peut alors utiliser une variable dans un calcul ou pour affecter son contenu à une autre
variable.
>> A=B % A←B on affecte la valeur contenue dans B à la variable A,
A vaut à présent 10.
A=
10
11 4
Matlab dispose de plusieurs variables dont les noms sont, en principe, réservés et les valeurs
préaffectées :
- ans : à défaut d’une variable crée par l’utilisateur pour recueillir un résultat, Matlab
l’affecte à la variable ans (answer). Bien sûr le contenu de ans change à chaque
affectation.
- pi : contient le nombre π, eps (comme epsilon) contient le nombre 2−52, realmin et
realmax sont respectivement le réel le plus petit et le plus grand disponibles dans
Matlab.
Si, volontairement ou par erreur, on affecte une valeur à l’une de ces variables (pi=2.51), c’est
cette nouvelle valeur qui sera véhiculée par pi. Pour retrouver la bonne valeur de pi, il faut
supprimer pi du workspace en tapant clear pi. On utilise la commande clear all pour effacer
toutes les variables de l'espace de travail.
La première correspond à une aide générale très intéressante pour obtenir un renseignement
sur une simple fonction. Afin d’obtenir l’information, il suffit de taper help topic où topic est
le nom d’une fonction Matlab.
La deuxième est une aide en ligne qui est très précieuse si l’on veut éviter de consulter
en permanence l’aide générale.
5
Une fois, vous cliquer sur « M-file », la fenêtre suivante apparait :
C’est dans cette fenêtre qu’on peut écrire l’ensemble des instructions Matlab. Il est en effet
beaucoup plus simple de modifier des instructions dans un script que de retaper un
ensemble d'instructions Matlab dans la fenêtre de commandes.
Exercice 1 :
a=2 ;
b=5 ;
c=(a+b)/2 ;
6
Remarques importantes :
Pour exécuter un script, on écrit tout simplement son nom dans la fenêtre de commandes
puis on clique sur entrer.
Le nom du script.
Si le script contient une (des) erreur(s), la ligne contenant l’erreur ainsi le type d’erreurs
sont affichées dans la fenêtre des commande.
7
7- Travaux élémentaires sur les matrices :
Tous les objets manipulés par Matlab peuvent être considérés comme des matrices. La
matrice :
est définie sous Matlab comme suit: A= [valeur1 valeur 2 valeur3 ; valeur4 valeur5 valeur6].
Un espace ou une virgule sépare deux éléments d’une même ligne et le point-virgule indique
la séparation de ligne.
>> A=[ 2 0 -1 ; 1 2 2]
A=
2 0 -1
1 2 2
Matlab dispose également des moyens très simples pour créer des listes. Par exemple :
-2 -1 0 1 2
Commande Description
8
A\B Le résultat est une matrice X tel que AX=B,
Si A est inversible, alors X=A-1B ;
[Link] de A doit être le même que [Link] de B.
A’ Transposition et conjugaison.
Commande Description
eye(n) Matrice identité carrée n par n
Commande Description
A(2, :) Sélection de la ligne 2
A( :, 4) Sélection de la colonne 4.
9
Exercice 2:
4 5 1
Saisir la matrice A 8 6 2 et effectuer la série de calculs suivants :
1 9 5
1. B = A + A
4. Transposée de la matrice A.
5. Calculer le déterminant de A.
9. Concaténation horizontale de A et B.
Polynômes
P am a2 a1 a0
Les fonctions Matlab roots et poly permettent de trouver les racines d'un polynôme et les
coefficients du polynôme connaissant ses racines. Pour déterminer les racines du polynôme
P(s) s3 3s2 4 on utilise les instructions suivantes:
10
» p=[1 3 0 4];
r=
-3.3553
0.1777 + 1.0773i
0.1777 - 1.0773i
Pour déterminer les coefficients du polynôme connaissant ses racines par exemple :
Si les racines d’un polynôme sont -1, -2, -3, alors on fait :
» P=poly([-1 -2 -3 ]);
» P=
1 6 11 6
»n=conv(p,q)
n=
3 14 9 4
Exercice 3 :
11
8- Graphisme :
Pour tracer un graphe dans Matlab, on fait appel à la commande « plot ». La fonction plot(x,y)
trace le vecteur y en fonction du vecteur x. Par exemple, pour tracer, la fonction y définie par :
𝑦(𝑡) = sin(0.3𝜋𝑥) :
Il faut tout d’abord déclarer le vecteur x (on suppose que x varie entre [0, 2𝜋]).
Taper en suite la formule de y. [c.à.d.: 𝑦 = sin(0.3𝜋𝑥)].
Finalement tracer le graphe de y(t) en utilisant la fonction « plot ».
y=sin(0.3*pi*x);
plot(x,y)
¨Pour tracer plusieurs courbes dans la même fenêtre graphique, on fait appel à la commande
plot(x1,y1,x2,y2,...). Lorsqu’on trace deux graphes dans une même fenêtre, il est conseillé
d’utiliser deux couleurs différentes ou bien deux types de trait différents.
y=sin(0.3*pi*x);
x1=x ;
y1=cos(x1) ;
plot(x,y,’+r’,x1,y1,’ob’)
Matlab possède plusieurs fonctions pour améliorer la qualité d’un graphe, les plus
importantes sont :
Commande Description
12
ylabel(’texte’) place la chaîne de caractère ’texte’ sur l’axe des Y.
Exercice 4 :
Générer un vecteur x variant de 1 à 10 avec un pas de 0.1. y1 est le carré de x et y2 est son
sinus.
9- Simulink
Simulink est un programme pour la simulation des systèmes dynamiques. Il utilise le principe
des représentations en schémas blocs. Simulink possède deux phases d'utilisation:
- La définition du modèle
- L'analyse du modèle
On lance Simulink en cliquant sur l’icône dans la barre d’outils de Matlab, ou bien
par la commande >>simulink à l’invite, dans la fenêtre de commande comme indiquer dans
la figure suivante :
13
Cette commande affiche une nouvelle fenêtre contenant les icônes des blocs des sous-
systèmes constituant la librairie standard de Simulink.
14
Après avoir obtenu la fenêtre principale, sélectionnez New...Model dans le menu File. Une
fenêtre s’ouvre dans laquelle vous allez pouvoir saisir vos schémas-blocs. La nouvelle fenêtre
est nommée "untitled" ; on peut lui changer de nom lors de la sauvegarde.
Pour construire votre schéma-bloc, il suffit d’aller chercher les blocs désirés à partir de la
fenêtre principale de Simulink présentant les différentes bibliothèques disponibles. Ces blocs
peuvent être insérés dans votre fenêtre de travail soit en utilisant la méthode du « copier-coller » soit
en faisant glisser le bloc d’une fenêtre à une autre à l’aide de la souris.
Avant de lancer la simulation, il faut impérativement définir les paramètres de votre simulation :
instant de début de simulation, instant de fin de simulation, période de simulation, méthode
d’intégration numérique utilisée... Pour cela, il faut aller dans le menu « Simulation » puis sur
«parameters » et spécifier les paramètres adaptés à votre simulation.
Pour lancer ensuite votre simulation il suffit d’aller dans le menu « Simulation » et de sélectionner «
start ». Si des blocs de visualisation (graph, scope, …) apparaissent dans votre schéma-bloc, veillez à
paramétrer ceux-ci en fonction des paramètres de votre simulation.
Si vous avez spécifié un instant de fin de simulation, la simulation prendra fin lorsque cet instant sera
atteint. Vous pouvez néanmoins arrêter à tout moment une simulation en cours en allant dans le menu
« Simulation » et en cliquant sur « stop » ou en cliquant sur le bouton stop.
15
Exemple: Simulation d’un signal sinusoïdal :
4- A l'aide d'un double clic, ouvrir un ou plusieurs blocs et changer certains des paramètres
internes correspondant à ces blocs.
16
TP 2 : Analyse temporelle des systèmes du premier et deuxième ordre.
1- Objectif :
L’objectif de ce TP est de pouvoir déterminer les réponses temporelles des systèmes
dynamiques du 1er et du 2eme ordre (réponse indicielle, réponse impulsionnelle, …) ainsi que
la détermination des caractéristiques temporelles d’un système (temps de réponse,
constante du temps, erreur, …).
2- Fonction de transfert :
Où, m n . Les racines du numérateur sont les zéros du système. Les zéros du dénominateur
sont les pôles du système. La réponse transitoire du système est liée aux pôles et zéros du
système. L'équation caractéristique est donnée par : s n bn1s n1 b1s b0 0 .
Pour définir une fonction de transfert sous Matlab, on utilise la commande « tf » en spécifiant
le polynôme de numérateur et le polynôme de dénominateur. Par exemple pour afficher
s 1
H( s ) , on utilise les instructions suivantes:
s s2
2
» h= tf(num,den)
Transfer function:
s-1
-------------
s^2 + s + 2
17
» pole(h)
ans =
-0.5000 + 1.3229i
-0.5000 - 1.3229i
» zero(h)
ans =
1
La fonction pzmap permet de représenter la position des pôles et des zéros dans le plan
complexe. La syntaxe est la suivante:
poles
-0.5000 + 1.3229i
-0.5000 - 1.3229i
zeros =
Si on invoque uniquement pzmap(num,den) ou pzmap(h) , une figure sur laquelle est indiqué
la position des pôles et des zéros du système s'ouvrira.
La fonction zpkdata permet de calculer les zéros, les pôles et le gain statique k.
» [z,p,k]=zpkdata(h)
Inversement, toutes représentation d’un système linéaire à temps invariant à partir de la liste
de ses pôles et zéros se fait à partir de la fonction zpk(zer,pol,gain). Elle consiste à factoriser
les racines des polynômes numérateur et dénominateur. Par exemple :
Zero/pole/gain:
5 (s-1) (s+2)
-----------------
(s-1) (s-2) (s+3)
18
3- Opération sur les fonctions de transfert :
En série:
>> [num,den]=series(num1,den1,num2,den2)
>> G=series(G1,G2)
>> G=G1*G2;
En parallèle:
G1(s)
+
e(t) y(t)
G2(s) +
>> [num,den]=parallel(num1,den1,num2,den2)
>> G=parallel(G1,G2)
>> G=G1+G2;
19
4- Réponses temporelles des systèmes de premier ordre :
On appelle réponse temporelle d’un système l’évolution de sa sortie en fonction du
temps, suite à l’application d’une entrée en partant de l’état de repos.
Un système du premier ordre est donné sous la forme suivante :
𝐾
𝐺(𝑠) =
1 + 𝜏𝑠
avec :
K : Gain statique.
𝝉 : Constante de temps du système.
𝐾 −𝑡⁄ 𝑡
𝑆(𝑡) = 𝐾(1 − 𝑒 − ⁄𝜏 )
Réponse impulsionnelle 𝑆(𝑡) = 𝑒 𝜏 réponse indicielle
𝜏
Matlab met à la disposition de l’utilisateur plusieurs commandes dont le rôle est d’injecter un
certain signal à un système et de fournir la réponse temporelle à ce signal. Parmi ces
commandes, distinguons celles qui nous semblent les plus utiles.
20
5- Réponses temporelles des systèmes de deuxième ordre :
On considère comme système de 2nd ordre tout système décrit par une équation
différentielle du second ordre dont la fonction de transfert peut se mettre sous la forme :
𝐾𝜔𝑛2
𝐺(𝑠) = 2
𝑠 + 2𝜉𝜔𝑛 𝑠 + 𝜔𝑛2
Où:
K : Le gain statique du système
𝜉 : Le coefficient d’amortissement du système
𝜔𝑛 : La pulsation propre du système.
6- Travail demandé :
Partie I:
Soit le circuit RC donné par la figure suivante
Partie II:
- Donner un exemple de système physique du 2ème ordre (schéma du système)
- Donner l’équation différentielle et la fonction de transfert de ce système.
- Calculer la réponse indicielle, en mettant en valeur les cas suivants : ξ = 1, ξ < 0, ξ > 0
- donner l’allure de la réponse indicielle dans la même figure pour différentes valeurs de ξ.
- Donner vos observations, commentaires et conclusions.
Partie I:
Soit le système sys1 représenté par une fonction de transfert du premier ordre de
gain égale à 5 et de constante de temps égale à 3.
1- Dans un fichier script, écrire le programme qui permet de :
a- Donner la fonction de transfert.
b- Tracer la réponse impulsionnelle.
c- Tracer la réponse indicielle.
d- Tracer la réponse à une rampe.
e(t) s(t)
sys1 sys2
22
a- Dans le même fichier script :
- Déterminer la fonction de transfert en boucle fermé.
- Tracer les réponses impulsionnelle et indicielle du système bouclé.
Partie II:
1- Soit un système du second ordre de la forme suivante :
𝐾𝜔𝑛2
𝐺(𝑠) = 2
𝑠 + 2𝜉𝜔𝑛 𝑠 + 𝜔𝑛2
3.06
F ( s)
(s s 1)(s 2 0.5s 3.06)
2
23
TP 3 : Analyse fréquentielle des systèmes du premier et deuxième ordre.
1- Objectif :
Le but de ce TP est d’étudier les systèmes dynamiques dans le domaine fréquentiel en
introduisant les commandes permettant de tracer les réponses harmoniques (fréquentielle),
et de tirer les caractéristiques fréquentielles d’un système.
2- Réponses fréquentielles:
L’amplitude est modifiée par le gain du système à la pulsation ω, |G(ω)|. Il est déphasé de
Arg [G(ω)] par rapport à l’entrée.
Pour ω fixée, G(jω) est un nombre complexe caractérisé par son amplitude(le gain du
système) et son argument (la phase du système) qui seront donc des fonctions de la pulsation
de la sinusoïde d’entrée. Quand ω varie l’ensemble des gains et des arguments constitue la
réponse fréquentielle qui peut être alors représenté graphiquement dans différents types de
plans.
24
Comme G(jω) est une fonction de la variable complexe, on a le choix entre plusieurs types de
représentation.
25
3- Représentation de réponses fréquentielles sous Matlab :
L'étude fréquentielle est souvent envisagée pour le réglage en boucle fermée d'un système.
Cette approche permet d'établir la notion de marge de gain et marge de phase d'un système.
Afin de représenter la réponse harmonique d’un système, Matlab met à la disposition de
l’utilisateur plusieurs commandes. Parmi ces commandes, distinguons celles qui nous
semblent les plus utiles.
Tracé de Bode :
Soit un système de fonction de transfert G(s)
Num . Les différentes commandes pour
Den
analyser la réponse fréquentielle à l’aide de tracé de bode sont arrangées dans le tableau
suivant :
Commande Descriptif
26
Margin(G) Permet de tracer le lieu de Bode et d’indiquer dessus les
marges de gain et de phase.
Tracé de Black
Le tracé dans le plan de Black est obtenu avec la fonction nichols. L’utilisation de cette
fonction est semblable à celle de la fonction bode aussi nous ne donnerons que la syntaxe :
nichols(G)
nichols(G,w)
nichols(G1,G2,…)
Tracé de Nyquist
Le tracé de Nyquist s’obtient à l’aide de l’instruction nyquist (G).
L’utilisation de cette fonction, pour la plupart des cas de figures, est semblable à celle de
la fonction bode. La syntaxe d’utilisation est la suivante :
nyquist (G,w)
nyquist (G1,G2,…)
4- Travail demandé :
Etude théorique :
27
1- Soit le circuit RC donné par la figure suivante :
On prend 𝑇 = 0.1𝑒𝑡𝐾 = 1
1. Tracer les allures des courbes dans le tracé de Bode, Nyquist et black.
2. Calculer les marges de stabilité.
3. Quel est l’effet d’une variation de la valeur du gain K (𝑇 = 𝑐𝑡𝑒) sur la stabilité, la
rapidité et la précision à partir de tracé de Bode.
4. Quel est l’effet d’une variation de la valeur de 𝑇 (K = 𝑐𝑡𝑒) sur la stabilité, la rapidité
et la précision à partir de tracé de Bode.
28
𝑘
𝐹(𝑃) =
𝑠² 2𝜁
+𝑤 𝑠+1
𝑤²𝑛 𝑛
On prend 𝜔𝑛 = 10𝑟𝑑/𝑠𝑒𝑡𝐾 = 1
1- Tracer les allures des courbes dans le diagramme de Bode, Nyquist et black pour
ζ=0.3 ; 0.7 ; 1. Conclure.
2- Quel est l’effet d’une variation de la valeur du gain K sur la stabilité, la rapidité et la
précision à partir de tracé de Bode.
e(t) s(t)
29
TP 4 : Correction des systèmes dynamiques.
1- Objectif :
Le but de ce TP est de fournir les outils afin d’améliorer les performances d’un système
dynamique (en termes de stabilité, précision et rapidité). Ces outils sont, bien sûr, les
correcteurs.
2- Introduction :
Une configuration générale de système bouclé avec un retour unitaire est la suivante:
E S
𝐶(𝑠) 𝐺(𝑠)
Le correcteur C(p) est placé en série avec le système G(p) (il doit toujours être placé en amont).
Le problème est de choisir le correcteur C(p) et de régler ses paramètres pour que
l'asservissement fonctionne correctement c'est-à-dire faire suivre le mieux possible la sortie
du système S vers le signal de référence E malgré la présence de perturbations qui
agissent sur le système.
Ce réglage est effectué de manière à respecter des spécifications imposées par un cahier des
charges. Ainsi, il peut être demandé d'avoir :
30
1
b- Correcteur Proportionnel et Intégrale (PI) : 𝐶(𝑠) = 𝐾𝑝 (1 + 𝑇 𝑠)
𝑖
Kp : Le gain de l’action proportionnelle.
Ti : La constante de temps de l’action Intégrale.
1
d- Correcteur Proportionnel Intégral et Dérivé (PID) : 𝐶(𝑠) = 𝐾𝑝 (1 + 𝑇 𝑠 + 𝑇𝑑 𝑠)
𝑖
Kp : Le gain de l’action proportionnelle
Ti : La constante de temps de l’action Intégrale.
Td : La constante de temps de l’action Dérivée.
Le correcteur PID permet de bénéficier des avantages du correcteur PD et ceux du PI. Il peut :
4- Travail demandé :
On considère un système donné par la fonction de transfert suivante :
1
𝐺(𝑠) =
(𝑠 + 1)(1 + 0.5𝑠)
31
1- Tracer la réponse indicielle, le tracé de Bode et le diagrame de Niqyist de G(p).
Conclure sur la stabilité de G(p).
32
Ki
5- Correcteur Proportionnel, Intégral et Dérivé (PID) : C( s ) K p Kd s
s
1. Nous fixons Kd = 10, Ki= 30 et nous varions la valeur de Kp(Kp= 20, 40 et 80).
Quel est l’effet d’une variation de Kp sur la réponse indicielle ?
a- Nous fixons Kd = 10, Kp= 20 et nous varions la valeur de Ki(Ki= 20, 30 et 40).
Quel est l’effet d’une variation de Ki sur la réponse indicielle ?
b- Nous fixons Kp = 20, Ki= 30 et nous varions la valeur de Kd(Kd= 1, 2 et 10).
Quel est l’effet d’une variation de Kd sur la réponse indicielle ?
c- Quel correcteur vous parait le plus adapté. Conclure.
33
TP 5 : Commande des systèmes par retour d’état dans l’espace d’état
1- Objectif :
L’objectif de ce TP a est de présenter Les principes et propriétés de commande par retour
d'état de systèmes linéaires continus. Les concepts d'une commande par retour d'état sont
étudiés en simulation à travers de l'environnement logiciel MATLAB/SIMULINK.
Afin de définir les matrices A, B, C et D sous Matlab, on déclare alors que le système de nom
« sys » admet cette représentation d’état avec la commande « ss » (i.e. state-space)
~
z( t ) A ~
x( t ) Ax( t ) Bu( t ) z( t ) Bu( t )
et ~ ~
y( t ) Cx( t ) Du( t ) y( t ) Cz( t ) Du( t )
Sont équivalents s’il existe un changement de variable régulier entre eux, i.e. s’il existe une
matrice inversible T telle que :
~ ~ ~ ~
z Tx , A TAT 1 , B TB , C CT 1 , D D.
3- Commandabilité et observabilité :
3.1- Commandabilité
Avant de synthétiser un système de commande, il est important de savoir si le système
est commandable ou pas. Un système est commandable si et seulement s’il est possible
de déterminer un signal de commande u(t) sur t 1 ,t 2 conduisant tout état x(t1 ) x1 vers
l’état voulu x(t 2 ) x2 en un temps fini t1 ≤ t ≤ t2.
Formellement, un système est complètement commandable si et seulement si la
matrice de commandabilité, défini par :
CAB B AB A2 B ... An1B
est de rang n.
Pour vérifier la commandabilité sous Matlab, on calcule la matrice de commandabilité
CAB par la commande « ctrb » et puis le rang de cette matrice.
>> Cr=ctrb(A,B)
Co =
1 10 36
0 2 0
1 -1 14
>> rank(Co)
ans =
3
3.2- Observabilité :
Un système est dit observable à un instant t1 , si la connaissance du signal d’entrée et du
signal de sortie sur un intervalle de temps t1,t2 permet de calculer l’état du système à
l’instant t1 .
Un système est observable si et seulement si la matrice d’observabilité définie par :
OCA C CA CA2 ... CAn1
T
est de rang n.
Pour vérifier l’observabilité sous Matlab, on calcule la matrice d’observabilité OCA par la
commande « obsv » et puis le rang de cette matrice.
35
>> Ob=obsv(A,C)
Co =
1 0 0
4 1 6
22 11 14
>> rank(Ob)
ans =
3
soit :
on a donc :
y( s ) Cx( s ) Du( s ) C( sI A )1 x( 0 ) ( sI A )1 B D u( s )
y( s )
G( s ) C( sI A )1 B D
u( s )
L’inverse d’une matrice carrée étant égale à sa matrice adjointe divisée par son déterminant,
nous pouvons en déduire que les pôles de la fonction de transfert sont les valeurs de s qui
sont solutions de l’équation :
det( sI A )1 0
Ce sont donc les valeurs propres de la matrice A.
36
>> [num,den]= ss2tf(A,B,C,D)
num =
4.0000 -11.0000 -49.0000 72.0000
den =
1.0000 -3.0000 -14.0000 20.0000
>> G=tf(num,den)
Transfer function:
4 s^3 - 11 s^2 - 49 s + 72
--------------------------
s^3 - 3 s^2 - 14 s + 20
Système
x(0)
x(t)
K
Retour d’état
On utilise l’état x(t) du système pour construire le signal de commande u(t) par un bouclage
de la forme :
x1
x
u( t ) e( t ) Kx( t ) e( t ) k1 k2 ... kn 2
x
n
L’objectif de la synthèse de la commande par retour d’état consiste à déterminer le vecteur
ligne K (vecteur de gain) de façon à satisfaire des spécifications qui reposent sur un placement
des valeurs propres en boucle fermée (performances dynamiques) ou sur un placement de
37
structure (fonction de transfert en boucle fermée ou équation d’état). Cette commande par
retour d’état impose que le système (A, B) est commandable.
On a alors :
X ( s ) sI A BK BE( s ) ,
1
C pI A BK B .
Y( p ) 1
F( p )
E( p )
Dans le cas d’un placement de pôles pour un système commandable, on identifie le
dénominateur de la fonction de transfert en boucle fermée tenant compte du retour d’état
avec le dénominateur de la fonction de transfert obtenue à partir du cahier de charges.
7- Travail demandé :
Etude théorique :
Soit un système dynamique décrit par ses équations d’état :
x( t ) Ax( t ) Bu( t )
y( t ) Cx( t )
où :
1 5 4
A , B et C 1 0
2 8 1
38
- Vérifier que les pôles du système correspondent aux valeurs propres de la
matrice d’état A.
- Peut-on réaliser une commande par retour d’état, justifier votre réponse.
On souhaite placer ce système dans une boucle à retour d’état avec un vecteur de gain K.
- Calculer le vecteur de gain K pour que le système, en boucle fermée et soumis à
un échelon unitaire de consigne, soit caractérisé par une marge de phase de 45◦
et par un temps de montée tm = 0,4 s.
Etude pratique (étude sous Matlab) :
On considère un système dynamique décrit par sa représentation d’état:
x( t ) Ax( t ) Bu( t )
y( t ) Cx( t )
avec :
1 0 1 1
A 1 2 0 , B 0 et C 1 0 0
1 1 1 1
39
9- Vérifier que les pôles du système correspondent aux valeurs propres de la matrice (A-
BK).
A l’aide de Simulink, visualiser en même temps sur un oscilloscope :
- La réponse indicielle en boucle ouverte (sans la commande de retour d’état).
- La réponse indicielle en boucle fermée (avec la commande de retour d’état).
40