Académique Documents
Professionnel Documents
Culture Documents
TP1 Sys Lin MV 20 21
TP1 Sys Lin MV 20 21
Prof . Z. Ahmida
Dépt. Génie Electrique
Université 20 Août 1955 de Skikda
2020-21
1
TP Systèmes Linéaires Multivariables
M1 Automatique et Informatique industrielle Prof. Z. Ahmida
Faculté de Technologie, Dépt. Génie Electrique
Université 20 Août 1955 de Skikda
Résultat : le symbole % indique un commentaire ; tout text après un % est ignoré par MATLAB.
Taper :
>> who <Entrée>
Your variables are:
fx m p q r x y z
La commande ‘who’ visualise la liste de tous les noms des variables déclarées dans le workspace.
>> whos <Entrée>
Name Size Bytes Class Attributes
fx 1x1 8 double
m 1x1 8 double
p 1x1 8 double
q 1x1 8 double
r 1x1 8 double
x 1x1 8 double
y 1x1 8 double
z 1x1 8 double
La commande whos possède la même fonction que who en ajoutant les dimensions de chaque variable.
On peut aussi visualiser les variables en utilisant le ‘’Navigateur Workspace’’ en cliquant sur ‘Workspace’
dans le menu ‘Desktop’ de la barre d’outils principale de Matlab
Toutes ou une partie des variables peuvent-être sauvegardées dans le disque dur par la commande :
>>save [nom du fichier] % pour sauvegarder toutes les variables
>>save[nom du fichier] [variables] % pour sauvegarder les variables indiquées dans [variables]
Les variables sauvegardées peuvent-être chargées dans le workspace par la commande :
>> load [nom du fichier]
Le Workspace peut être sauvegardé intégralement dans un fichier binaire avec l’extension (.mat) en
cliquant sur ‘Save Workspace As…’ dans le menu ‘File’ de la barre d’outils principale de Matlab, puis en
donnant un [Nom de Fichier] pour le workspace sauvegardé.
Taper :
>> clc <Entrée>
>> x <Entrée>
>> y <Entrée>
…
>> ex <Entrée>
Taper maintenant :
>> clear <Entrée>
>> x <Entrée>
>> y <Entrée>
…
>> ex <Entrée>
c) Vecteur métrique :
MATLAB peut générer un vecteur dont les éléments sont équidistants sur un intervalle défini.
>> vec=linspace(0,pi,11) % générer un vecteur de 11 éléments réparties de 0 à pi
vec =
0 0.3142 0.6283 0.9425 1.2566 1.5708 1.8850 2.1991 2.5133 2.8274 3.1416
d) Vecteur colonne :
Taper :
>>vcol=[1 ;3.2 ;5 ;-4] <Entrée>
vcol =
1.0000
3.2000
5.0000
-4.0000
Taper :
>> tcol=t’ <Entrée>
tcol =
0
0.2500
0.5000
0.7500
1.0000
1.2500
1.5000
1.7500
4
TP Systèmes Linéaires Multivariables
M1 Automatique et Informatique industrielle Prof. Z. Ahmida
Faculté de Technologie, Dépt. Génie Electrique
Université 20 Août 1955 de Skikda
2.0000
2.2500
2.5000
2.7500
3.0000
Taper :
>>xcol=[1 2 3 4]’ <Entrée>
xcol =
1
2
3
4
e) Création d’une matrice par énumération des éléments
Taper :
>> mat=[1 2 3 ; 4 5 6 ; 7 8 9] <Entrée>
mat =
1 2 3
4 5 6
7 8 9
Note : les lignes de la matrice sont séparés par des point-virgules.
f) Matrices particulières
Taper les commandes suivantes et observer les résultats :
>> ones(3,3) <Entrée>
>> ones(3) <Entrée>
>> ones(3,2) <Entrée>
>> ones(2,3) <Entrée>
>> zeros(3) <Entrée>
>> zeros(3,4) <Entrée>
>> eye(3) <Entrée>
5. Les polynômes
Un polynôme est représenté par un vecteur commençant par le coefficient le plus élevé.
Taper :
>> pl=[3 -5 2] <Entrée>
pl =
3 -5 2
>> poly2str(pl,’x’) <Entrée>
ans =
3 x^2 - 5 x + 2
>> roots(pl) <Entrée>
ans =
1.0000
0.6667
6
TP Systèmes Linéaires Multivariables
M1 Automatique et Informatique industrielle Prof. Z. Ahmida
Faculté de Technologie, Dépt. Génie Electrique
Université 20 Août 1955 de Skikda
c) La boucle if
On a parfois besoin d'exécuter une séquence d'instructions seulement dans le cas où une condition
donnée est vérifiée au préalable. Ils existent plusieurs syntaxes pour la boucle if :
Example :
>> n=5; m=8;
>> if ((n>0) && (m>0))
display('Les Deux sont positifs');
elseif ((n<=0) && (m<=0))
display('Aucun n est positif');
else
display('Autre');
end
7. Graphisme
Pour tracer une courbe liant les valeurs d’une fonction y=f(t) aux valeurs de la variable t, on utilise la
commande plot (t,y).
Taper les instructions suivantes pour tracer la courbe de la fonction y=cos(2πt) sur l’intervalle [0, 2π] avec
un pas de 0.001.
>> t=[0 : 0.001 : 2*pi];
>> y=cos(2*pi*t) ; plot(t,y) ; xlabel(‘ variable t’) ; ylabel(‘variable y’) ; title(‘fonction y=cos(2*pi*t)’) ;grid ;
<Entrée>
7
TP Systèmes Linéaires Multivariables
M1 Automatique et Informatique industrielle Prof. Z. Ahmida
Faculté de Technologie, Dépt. Génie Electrique
Université 20 Août 1955 de Skikda
fonction y=cos(2*pi*t)
1
0.8
0.6
0.4
0.2
variable y
-0.2
-0.4
-0.6
-0.8
-1
0 1 2 3 4 5 6 7
variable t
8
TP Systèmes Linéaires Multivariables
M1 Automatique et Informatique industrielle Prof. Z. Ahmida
Faculté de Technologie, Dépt. Génie Electrique
Université 20 Août 1955 de Skikda
30
25
20
15
p(s
10
-5
-10
-15
-1 -0.5 0 0.5 1 1.5 2 2.5 3
s
Matlab permet aussi d’effectuer des opérations d’addition ou de multiplication sur les polynômes. Par
exemple, soit : = − − + et = − + − !
>> a=[1 -3 0 -1 2]; Entrée
>> b=[0 4 -2 5 -16]; Entrée
>> c=a+b Entrée
c=
1 1 -2 4 -14
Pour la multiplication des polynômes, on utilise la commande [conv(poly1,poly2)]
>> d=conv(a,b) Entrée % cette commande produit p=a x b
d=
0 4 -14 11 -35 58 -9 26 -32
9
TP Systèmes Linéaires Multivariables
M1 Automatique et Informatique industrielle Prof. Z. Ahmida
Faculté de Technologie, Dépt. Génie Electrique
Université 20 Août 1955 de Skikda
10
TP Systèmes Linéaires Multivariables
M1 Automatique et Informatique industrielle Prof. Z. Ahmida
Faculté de Technologie, Dépt. Génie Electrique
Université 20 Août 1955 de Skikda
11
TP Systèmes Linéaires Multivariables
M1 Automatique et Informatique industrielle Prof. Z. Ahmida
Faculté de Technologie, Dépt. Génie Electrique
Université 20 Août 1955 de Skikda
r=
-6.0000
-4.0000
3.0000
p=
-3.0000
-2.0000
-1.0000
k=
2
Ces résultats permettent d’écrire la fonction - dans la forme :
−6 −4 3
- = + + +2
+3 +2 +1
la même commande residue ( ) peut être utilisée pour revenir à la forme fraction de polynômes à partir des
valeurs des vecteurs r , p et k.
>> [N1 D1]=residue(r,p,k)
N1 =
2.0000 5.0000 3.0000 6.0000
D1 =
1.0000 6.0000 11.0000 6.0000
Le calcul de la transformée directe de Laplace 2 . d’une fonction / . est obtenu à l’aide d’un script Matlab
qui comprend les étapes suivantes :
i. Déclaration des symboles utilisés pour la définition de la fonction / . et variable complexe de Laplace.
12
TP Systèmes Linéaires Multivariables
M1 Automatique et Informatique industrielle Prof. Z. Ahmida
Faculté de Technologie, Dépt. Génie Electrique
Université 20 Août 1955 de Skikda
>> syms t s
>> g=5*exp(-2*t)*cos(5*t)
>> G=laplace(g)
G=
(5*(s + 2))/((s + 2)^2 + 25)
>> pretty(G)
5 (s + 2)
-------------
2
(s + 2) + 25
>> syms t s
>> F=(3*s+26)/(s^2+4*s+20)
>> f=ilaplace(F,s,t)
13
TP Systèmes Linéaires Multivariables
M1 Automatique et Informatique industrielle Prof. Z. Ahmida
Faculté de Technologie, Dépt. Génie Electrique
Université 20 Août 1955 de Skikda
f=
(3*(cos(4*t) + (5*sin(4*t))/3))/exp(2*t)
>> pretty(f)
/ 5 sin(4 t) \
3 | cos(4 t) + ---------- |
\ 3 /
---------------------------
exp(2 t)
>> syms t s
>> H=(2*s^3+5*s^2+3*s+6)/(s^3+6*s^2+11*s+6)
>> h=ilaplace(H,s,t)
h=
3/exp(t) - 4/exp(2*t) - 6/exp(3*t) + 2*dirac(t)
>> pretty(h)
3 4 6
------ - -------- - -------- + 2 dirac(t)
exp(t) exp(2 t) exp(3 t)
La représentation d’un système dynamique par un digramme-bloc permet une meilleure compréhension
de son fonctionnement et, donne une image claire sur les liaisons et les échanges d’informations (signaux)
entre ses différents éléments constitutifs.
Le diagramme-bloc permet aussi d’analyser les performances d’un système en le réduisant en une simple
fonction de transfert liant l’entrée à la sortie. On peut également exploiter le diagramme-bloc pour modifier
le système en ajoutant des éléments dans des points spécifiques pour améliorer les performances et les
qualités de la réponse.
Le tableau suivant donne quelques transformations qui peuvent aider dans la simplification et la
réduction d’un diagramme-bloc complexe en une simple fonction de transfert. Cette opération peut-être
rendue plus aisée en s’aidant avec la programmation en Matlab.
Dans un diagramme-bloc, les différents éléments sont représentés par des fonctions de transfert de la
variable complexe ‘s’. Dans ce qui suit, vous aller apprendre à utiliser les commandes Matlab suivante :
a) tf() permet de définir une fonction de transfert par les polynômes du numérateur et du
dénominateur .
b) Series() permet de calculer la fonction de transfert de blocs mis en série.
c) Parallel() calcule la fonction de transfert de blocs mis en parallèle.
d) Feedback() calcule la fonction de transfert d’une boucle de rétroaction.
14
TP Systèmes Linéaires Multivariables
M1 Automatique et Informatique industrielle Prof. Z. Ahmida
Faculté de Technologie, Dépt. Génie Electrique
Université 20 Août 1955 de Skikda
Tableau 1
Exemple :
>> N1=[1 1];
>> D1=[1 2];
>> G1=tf(N1,D1) % la commande tf() définie un système représenté par sa fonction de
% transfert G1
Transfer function:
s+1
-----
s+2
>> N2=[1];
>> D2=[500 0 0];
>> G2=tf(N2,D2)
Transfer function:
1
-------
500 s^2
La commande Matlab series() permet de calculer la fonction de transfert de blocs mis en série :
15
TP Systèmes Linéaires Multivariables
M1 Automatique et Informatique industrielle Prof. Z. Ahmida
Faculté de Technologie, Dépt. Génie Electrique
Université 20 Août 1955 de Skikda
>> G=series(G1,G2)
Transfer function:
s+1
----------------------
500 s^3 + 1000 s^2
La commande parallel() est utilisée pour calculer la fonction de transfert équivalente à deux blocs mis en
parallèle.
>> GP=parallel(G1,G2)
Transfer function:
500 s^3 + 500 s^2 + s + 2
-------------------------
500 s^3 + 1000 s^2
Transfer function:
s+2
-------------------------------
500 s^3 + 1000 s^2 + s + 1
>> GBFU=feedback(G,[1])
Transfer function:
s+1
--------------------------
500 s^3 + 1000 s^2 + s + 1
16
TP Systèmes Linéaires Multivariables
M1 Automatique et Informatique industrielle Prof. Z. Ahmida
Faculté de Technologie, Dépt. Génie Electrique
Université 20 Août 1955 de Skikda
Lorsqu’on réduit un système interconnecté en une fonction de transfert équivalente, il peut arriver que
la fonction obtenue possède des pôles et des zéros communs. Si des pôles et des zéros communs existent, il
faut d’abord les éliminer pour obtenir une fonction de transfert qui représente –correctement- la relation
entre l’entrée et la sortie du système.
Le langage Matlab permet l’élimination des pôles et des zéros communs avec la commande minreal() .
L’application de cette commande est illustrée par l’exemple suivant :
+ I
Soit la fonction : - = +J &+ 8
Transfer function:
3 s^2 + 29 s + 26
-----------------------
s^3 + 5 s^2 + 24 s + 20
>> TF=minreal(G)
Transfer function:
3 s + 26
--------------
s^2 + 4 s + 20
Observer comment la commande minreal() agit pour produire une fonction de transfert sans facteurs
communs entre le numérateur et le dénominateur.
17
TP Systèmes Linéaires Multivariables
M1 Automatique et Informatique industrielle Prof. Z. Ahmida
Faculté de Technologie, Dépt. Génie Electrique
Université 20 Août 1955 de Skikda
APPLICATIONS :
A. Soient les fonctions suivantes : x(t)=sin(2πt) , y(t)= cos(2πt) et z(t)=x(t)+0.5y(t).
Ecrire un programme pour tracer sur la même figure, les courbes des fonctions x(t), y(t) et z(t) , sachant que
t prend ses valeurs dans l’intervalle [0, 5] avec un incrément de 0.001.
1. Ecrire un programme Matlab pour tracer, sur la même figure, les courbes correspondantes aux fonctions
polynômes L et L sur l’intervalle [-2,5].
2. Calculer graphiquement les points d’intersection des deux courbes.
3. Ecrire un programme Matlab pour trouver les points d’intersection des deux polynômes. Comparer les
résultats obtenus avec ceux de la question précédente.
C. On donne le système connecté multi-boucles représenté par la figure avec les fonctions de transfert
suivantes :
1 1 2+1
N = ; N = ; N = 2 ;
+ 10 +1 +4 +4
+1 +1
N4 = ; -1 = ; -2 = 2 ; -3 =1
+6 +2
Système interconnecté
L’objectif est :
P
1. Calculer la fonction de transfert équivalente : O =%
(Pour réaliser cet objectif, on exploite le Tableau 1 (dans la page 4) pour réduire le diagramme-bloc et
en s’aidant des commande Matlab ( tf(), series(), feedback() et minreal()) pour le calcul de la fonction
O
18