Vous êtes sur la page 1sur 18

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

Travaux Pratiques : Systèmes Linéaires Multivariables


Master 1 : Automatique et Informatique Industrielle
TP N° 01

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

Travaux Pratiques : Systèmes Multivariables


Master 1 : Informatique Industrielle
TP N° 01
I. Introduction au Langage MATLAB
1. Commandes de base
Pour démarrer le logiciel MATLAB il suffit de cliquer sur l’icône MATLAB. En s’ouvrant, la fenêtre de
commande affiche le prompt >> suivi d’un curseur clignotant pour indiquer que MATLAB est prêt à
exécuter vos commandes.

Taper les commandes suivantes et observer ce qui se passe :


>> help ( Cette commande met à votre disposition une liste de sujets pour lesquels vous
pouvez obtenir de l’aide)
>> clc ( Effacer la fenêtre de commande )
>> help clc ( help [commande Matlab] : affiche de l’aide sur la commande MATLAB entrée)
>> [ tapez votre nom ] %
>> % [ tapez votre nom ]
>> quit
Ou bien
>> exit
Redémarrer MATLAB et taper

2. Variables scalaires, workspace et opérations élémentaires


La déclaration d’une variable prend la forme suivante : >> variable=expression
Le symbole ‘’=’’ indique que l’expression est affectée à la variable. L’exécution de cette instruction se
traduit par le stockage de la variable déclarée et de son expression/valeur dans la mémoire de travail
(workspace) de MATLAB
>> x=12 <Entrée>
>> y= 2 <Entrée>
>> z=x+y <Entrée>
>> m=x-y <Entrée>
>> p=x*y <Entrée>
>> q=x/y <Entrée>
>> r=y^x <Entrée>
Les variables x, y, z, m, p, d et ex sont maintenant stockées avec leur valeurs dans le workspace de
MATLAB. Il suffit de taper le nom de la variable suivi d’un retour chariot (Entrée) pour visualiser :
>> x <Entrée>
x=
12
Taper maintenant :
>> x ; <Entrée>
Résultat : un point-virgule ‘’;’’ est utilisé en fin de ligne pour supprimer la visualisation des résultats du
calcul associé à cette ligne, lors de l’exécution d’un programme MATLAB
Taper :
>> fx= 2*x+3 % la valeur de la variable fx dépend de la valeur de x <Entrée>
2
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>

Quel est la différence entre la commande clc et la commande clear ?


Trouvez deux méthodes pour charger le fichier de votre workspace déjà sauvegardé.
3
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

3. Les vecteurs et les matrices


Par défaut, un vecteur est une matrice à une ligne et à plusieurs colonnes (une colonne et plusieurs
lignes). Un vecteur peut-être créé de plusieurs manières :
a) Vecteur ligne par énumération des composantes :
Taper :
>> v = [1 3.2 5 -4] <Entrée>
v=
1.0000 3.2000 5.0000 -4.0000
b) Vecteur ligne par description :
Taper :
>> t1 = [0 : 0.25 : 3] % [valeur initiale : incrément : valeur finale]
t=
0 0.2500 0.5000 0.7500 1.0000 1.2500 1.5000 1.7500 2.0000 2.2500 2.5000 2.7500
3.0000
Note : la commande t=0 : 0.25 : 3 (sans accolades) crée le même vecteur.
>> t2 = [0 : 3]
t2 =
0 1 2 3
>> t3 = [50 :-5 : 30]
t3 =
50 45 40 35 30

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>

4. Opérations sur les matrices


Taper et observer les résultats des opérations :
>> m1=[1 2 3 ; 4 5 6 ; 7 8 9] <Entrée>
>> m2=[5 2 5 ; 3 6 -1; 1 2 3] <Entrée>
>> m1+m2 <Entrée>
>> m1-m2 <Entrée>
>> m1*m2 <Entrée>
>> m1.*m2 <Entrée>
>> m1./m2 <Entrée>
>> inv(m2) <Entrée>
>> m1/m2 <Entrée>
>> m1*(inv(m2)) <Entrée>
>> m1.^2 <Entrée>
>> m1^2 <Entrée>
>> m1*m1 <Entrée>
>> det(m1) <Entrée>
>> m1(1,:) <Entrée>
5
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

>> m1(:,2) <Entrée>


>> length (t) <Entrée>
>> size(m1) <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. Instructions de contrôle et opérateurs logiques


Les instructions de contrôle sous MATLAB sont très proches de celles existant dans d'autres langages de
programmation.
a) La boucle for
La ‘boucle for’ répète l’exécution d’un ensemble d’instructions un nombre déterminé de fois :
>>for i = 1:5
xx(i)=1;
end
>> xx
x=
1 1 1 1 1
b) La boucle while
Une seconde possibilité pour exécuter une séquence d'instructions de manière répétée consiste à
effectuer une boucle tant qu'une condition reste vérifiée. On arrête de boucler dès que cette
condition n'est plus satisfaite.
Le syntaxe de la boucle while est le suivant :
while EXPRESSION LOGIQUE
<<INSTRUCTIONS>>
end
Example : calcul du factoriel n! d’un entier n.
>> n = 4;
>> k = 1; nfac = 1;
>> while k <= n
nfac = nfac*k;
k = k+1;
end
>> nfac
nfac =
24

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 :

Syntaxe 1 : Instruction conditionnée simple


If expression logique
séquence d'instructions
end

Syntaxe 2 : Instruction conditionnée avec deux alternatives logiques


if expression logique
séquence d'instructions 1
else
séquence d'instructions 2
end

Syntaxe 3 : Instruction conditionnée avec plusieurs alternatives logiques (choix en cascades)


If expression logique 1
séquence d'instructions 1
elseif expression logique 2
séquence d'instructions 2
...
elseif expression logique N
séquence d'instructions N
else
séquence d'instructions par défaut
end

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

L’exécution du programme donne la figure suivante :

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

II. Opérations sur les polynômes avec Matlab

1. Opérations sur les polynômes


Un polynôme est une fonction à une seule variable dont la forme générale s’écrit :
= + + + . . .+ +
Où ‘s’ est la variable du polynôme et les constantes , , . . . , , sont les coefficients du
polynôme. Le nombre entier est le degré ou l’ordre du polynôme.
Dans le langage Matlab, un polynôme est défini par le vecteur [ . . . ] de ses
coefficients. Par exemple, pour déclarer le polynôme = + 4 − 7 − 10 , on écrit :
>> p=[1 4 -7 -10]; Entrée
Pour évaluer la valeur du polynôme pour la valeur s=2.5, on écrit :
>> polyval(p,2.5) Entrée
ans =
13.1250
On peut aussi évaluer les valeurs du polynôme p(s) sur un intervalle est tracer la courbe de ses
variations :
>> s = linspace(-1,3,201);
>> P = polyval(p,s);
>> plot(s,P); grid; title('Polynomial Function p(s) = s^3+ 4s^2 -7s -10'); xlabel('s');
ylabel('p(s)’)

Polynomial Function A(s) = s3+ 4s 2 -7s -10


35

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

Pour la division des polynômes on utilise la commande [deconv(poly1,poly2)]


>> q=deconv(d,a) Entrée % cette commande donne q=d/a
q=
0 4 -2 5 -16
On remarque que q=d/a est égale à b.

En générale, la division de deux polynômes se présente sous la forme suivante :


" %
=$ +
# #
Où N(s) est numérateur, D(s) le dénominateur, Q(s) le quotient et R(s) le reste.
>> N = [1 5 11 13 ] ; Entrée
>> D = [1 2 4]; Entrée
>> [Q R] = deconv(N,D) Entrée
Q=
1 3
R=
0 0 1 1
Sous forme mathématique le programme précédent donne le résultat de la division de deux
polynômes :
&
+ 5 + 11 + 13 +1
= +3+
+2 +4 +2 +4

Matlab permet d’obtenir la dérivée d’un polynôme à l’aide de la commande [polyder(poly)] :


>> p = [1 4 -7 -10]; Entrée
>> d = polyder(p) Entrée
d=
3 8 -7
La commande [roots(poly)] est utilisée pour calculer les racine du polynôme poly :
>> d=[1 6 9]; Entrée
>> roots(d) Entrée
ans =
-3.0000 + 0.0000i
-3.0000 - 0.0000i
>> q=[1 -2 -3 10]; Entrée
>> r=roots(q) ; Entrée
r=
-2.0000
2.0000 + 1.0000i
2.0000 - 1.0000i
Avec Matlab, on peut reconstruire un polynôme à partir de ses racines :
>> y=poly(r) ; Entrée
y=
1.0000 -2.0000 -3.0000 10.0000
On remarque y=q.

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

2. Expansion des fractions de polynômes


* +
Pour exprimer une fonction rationnelle de polynômes en une somme de fractions partielles
, +
simples, on applique la commande [residue(N,D)] :
" +2
Soit, par exemple la fonction - =# = 3 +4 2 +3 :
>> N = [1 2];
>> D = [1 4 3 0];
>> [c,r]=residue(N,D)
c=
-0.1667
-0.5000
0.6667
r=
-3
-1
0
Ce qui permet d’écrire la fonction H(s) dans la forme :
0.1667 0.5 0.6667
- =− − +
+3 +1

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

III. Transformations de Laplace et Fonctions de transfert

1. Introduction sur l’expansion des fractions de polynômes


Dans le TP ‘ Opérations sur les Polynômes avec Matlab ‘, fut introduite la commande residue ( ) qui
permet d’obtenir les vecteur r , p et k qui représentent les valeurs des résidus (coefficients des fractions
simples), des pôles ainsi que le termes directe (quotient), respectivement.
" 2 3 +5 2+3 +6
Exemple : Expansion de la fonction : - =
#
= 3 +6 2 +11 +6

>> N=[2 5 3 6];


>> D=[1 6 11 6];
>> [r,p,k]=residue(N,D)

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

2. La transformée directe de Laplace


La transformée directe de Laplace d’une fonction réelle / 0 définie pour les valeurs positives de la
variable temps 0 (0 ≥ 0) est donnée par l’intégrale définie :
7
2 =3 / 0 4 +5
60
8
Où ′ ′ est une variable complexe.
La transformation de Laplace est écrite symboliquement : 2 = ℒ[/ 0 ].
Le symbole ℒ[. ] représente l’opérateur de Laplace défini par l’intégrale précédente.

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

ii. Ecriture de la fonction . .


iii. Application de la commande Matlab laplace() avec comme argument la fonction ; déclarée dans
l’étape (ii).

Exemple1 : calcul de la transformée directe de Laplace pour la fonction :


/ 0 = 704 <5
>> syms t s
>> f=7*t*exp(-5*t)
>> F=laplace(f)
F=
7/(s + 5)^2
>> pretty(F)
7
--------
2
(s + 5)

Exemple2 : calcul de la transformée directe de Laplace pour la fonction :


= 0 = 54 5 cos 50

>> 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

3. La transformée inverse de Laplace


La transformée inverse de Laplace pour une fonction complexe 2 est donnée par l’intégrale complexe
suivante :
H B7
/ 0 = AB CH B7 2 4 +5 6 ; E∈ℛ
La transformation inverse de Laplace est écrite symboliquement : / 0 = ℒ [2 ].
Le symbole ℒ [. ] représente l’opérateur inverse de Laplace défini par l’intégrale précédente.

Exemple1 : calcul de la transformée inverse de Laplace pour la fonction :


3 + 26
- = 2 + 4 + 20

>> 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)

Exemple2 : calcul de la transformée inverse de Laplace pour la fonction :


2 +5 2+3 +6
3
- = 3 + 6 2 + 11 + 6

>> 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)

4. Fonctions de transfert des systèmes connectés

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

La commande feedback() calcule la fonction de


transfert équivalente d’une boucle de rétroaction
négative ou positive :

>> GBF=feedback(G2,G1) % Fonction de transfert de la boucle Fermée (BF)

Transfer function:
s+2
-------------------------------
500 s^3 + 1000 s^2 + s + 1

Remarque : le syntaxe de la commande feedback et le suivant :


feedback(sys_cd,sys_cr,signe) ;
sys_cd= fonction de transfert du chemin directe (G2(s) dans l’exemple)
sys_cr= fonction de transfert du chemin de retour (G1(s) dans l’exemple)
signe= +1 pour une rétroaction positive
= -1 pour une rétroaction négative
= -1 par défaut

Dans le cas d’une boucle fermée avec retour unitaire, on écrit:

>> 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

Si le numérateur et le dénominateur de la fonction - sont multipliés par le facteur (s+1), la fonction


de transfert devient :
2
3 + 29 + 26
- =
3 +5 2 + 24 + 20
Cette dernière fonction possède le facteur (s+1) en commun entre le numérateur et le dénominateur et
donc, ce n’est pas une fonction de transfert. On utilise la commande minreal() pour éliminer ce facteur :

>> num=[3 29 26]


>> den=[1 5 24 20];
>> G=tf(num,den)

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.

B. On donne les polynômes suivants : L =− +M + et L = + + .

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

2. Vérifier la stabilité du système en calculant les pôles de O


3. Tracer la réponse du système à une fonction échelon par l’utilisation de la commande Matlab step()
.
N.B. Consulter le help du matlab pour savoir comment utiliser la commande step().

18

Vous aimerez peut-être aussi