Vous êtes sur la page 1sur 17

TP1 SY04

Rhandy Cardenas IM02

Tout d’abord pour créer un fichier .m sur MatLab nous allons sélectionner le répertoire de
travail, après avoir fait cette procédure on peut commencer à faire du code, on commencera
pour écrire les commandes suivantes :
clear all;
close all;
Qui permettent d’effacer les variables et fermer les possibles fenêtres comme ouvertes
comme par example de graphiques. On peut ajouter aussi « clc » pour effacer ce qui était
précédemment sur le Command Window.
Maintenant on va essayer créer de variables sur notre script, on appuis sur le bouton Run pour
faire la compilation du script.

Qu’observez-vous ? Rôle du « ; » en fin de ligne ?


Le rôle de « ; » indique que l’instruction va s’exécuter, mais on ne va pas la visualiser sur le
Command Window, de cette façon on peut générer des variables (Visibles sur le Work Space)
et montrer juste ce qui nous intéresse dans le Command Window et ne pas le surcharger.
Déclaration d’un vecteur et création de matrice
On peut définir la matrice demandée de la manière suivante :
A= [1,2,3,4;5,6,7,8]

1
Tracé de courbes
Maintenant on va utiliser les fonctions plot, hold et figure pour générer le graphique d’un
y(t)=sin(t), x(t)=cos(t) et y(x), pour cela il faut créer tout d’abord des vecteurs, dans notre cas
on va créer un vecteur t avec de valeurs entre 0 et 4𝜋 par pas de 0.1, x et y sont générés a
partir de t.

On utilise la fonction hold pour rester sur un même graphique et pouvoir avoir 2 courbes, on
peut utiliser aussi les fonctions subplot et grid pour la mise en forme.

2
Déclaration de fonction de transfert
Pour créer des fonctions transfert on utilise la fonction tf et on écrit le numérateur et
dénominateur sous la forme des vecteurs, comme le code ci-dessous :

On les affiche sur le Command Window :

Calcul « à la main » des propriétés des systèmes


On obtient pour nos fonctions transfert les valeurs suivantes :
1
𝐻1 𝑛𝑜𝑢𝑠 𝑎𝑣𝑜𝑛𝑠 𝑤0 = = 0.25 , 𝑡0 = 4 𝑒𝑡 𝑘 = 3
4
1
𝐻2 𝑛𝑜𝑢𝑠 𝑎𝑣𝑜𝑛𝑠 𝑤0 = , 𝑡0 = 4, 𝑘 = 1 𝑒𝑡 𝑧 = 0.625
4
Pôles de 𝐻2 :

−5 + √39𝑖 −5 − √39𝑖
𝑒𝑡
32 32

3
Propriétés des systèmes
Avec les commandes damp, dcgain et pole on peut retrouver les valeurs du gain, coefficient
d’amortissement et les respectifs pôles.

On obtient pour 𝐻1

On obtient pour 𝐻2

4
Réponses impulsionnelles, réponse à un échelon, à un sinus
On va regarder les réponses impulsionnelles et indicielles de nos systèmes, pour cela on
utilise le command impulse et step sur chaque fonctions transfert déjà créées.

Réponses impulsionnelles pour 𝐻1 et 𝐻2 respectivement :

Les 2 systèmes sont-ils stables ? OUI, et on peut le vérifier car on a des pôles avec de partie
réel négative, ce qui indique que les systèmes sont stables.
On regarde la réponse indicielle avec :

5
Réponses indicielles pour 𝐻1 et 𝐻2 respectivement :

On regarde qu’il a des ondulations dans le cas de 𝐻2 et c’est vérifié car 𝑧 < 1.
On mesure le temps de réponse à 5% de chaque système, mais avant il faut changer le
paramètre settling time car par défaut on trouve 2%.

Temps de réponse à 5% H1 Temps de réponse à 5% H1

6
Maintenant on veut tester nos fonctions transfert, mais avec une entrée sinusoïdale, pour cela
on utilise la fonction gensig pour la générer, après le command lsim permet d’évaluer une
fonction exprimée sous la forme de 2 vecteurs sur nos fonctions transfert.

Graphique de 𝐻1 avec entré sinusoïdale 𝑠𝑖𝑛(𝑤0 𝑡) avec 𝑤0 = 1 𝑟𝑎𝑑/𝑠

On peut noter qu’il existe un déphasage et un décalage pour la fonction dans le régime
permanent, après on trouvera les respectif valeurs en utilisant le diagramme de bode.
On réalise le même code pour évaluer notre deuxième fonction transfert.

7
Graphique de 𝐻2 avec entré sinusoïdale 𝑠𝑖𝑛(𝑤0 𝑡) avec 𝑤0 = 1 𝑟𝑎𝑑/𝑠

On peut noter que le gain en régime permanent de 𝐻2 et beaucoup plus petit que celui de 𝐻1
Diagramme de Bode
Pour obtenir le diagramme de bode on utilise la fonction bode(). Pour mesurer le déphasage
et le gain on fait les mesures sur le diagramme de bode des fonctions et on cherche les valeurs
pour une fréquence 𝑤0 = 1 𝑟𝑎𝑑/𝑠, celle de notre sinusoïde.
On trouve pour 𝐻1 , 𝐺 = −2.8 𝑑𝐵 𝑒𝑡 ∅ = −75.9°

8
On trouve pour 𝐻2 , 𝐺 = −24 𝑑𝐵 𝑒𝑡 ∅ = −162°

Marges de phase et de gain


On veut évaluer la stabilité du schéma block suivant :

La fonction de deuxième dégrée que nous avons sur le schéma on l’déjà créée, c’est 𝐻2 , donc
on va créer la fonction intégrateur à l’aide du command tf , on peut ajouter un gain appelé k ,
après avec la fonction margin on regarde la marge de phase et de gain du boucle ouvert pour
connaitre le comportement du système en boucle fermée.

9
On obtient les données suivantes :

• Marge de gain = -10.1 < 0 donc en boucle fermé instable


• Marge de phase = -37.6 < 0 donc en boucle fermé instable
Si on veut que le système soit stable il faut diminuer le gain, exactement à partir d’un certain
valeur le système de k le système deviendra stable, pour trouver cette valeur on fait :
20 ∗ log(𝑘) = −10.1 𝑑𝐵
Et on trouve 𝑘 = 0.3126, donc on peut conclure que :

𝑘 < 0.3126 Système Stable


𝑘 = 0.3126 Système Astable
𝑘 > 0.3126 Système Instable

10
Système en boucle fermée
Maintenant on va réaliser notre système en boucle fermé, pour cela on va utiliser le command
feedback, une fois obtenue notre nouvelle fonction transfert laquelle on a appelée H5 on peut
regarder sa réponse indicielle avec le command step.

Maintenant on fait les valeurs de k pour regarder les différents cas :

𝒌 = 𝟎. 𝟏 Système Stable

11
𝒌 = 𝟎. 𝟑𝟏𝟐𝟔 Système Astable

On peut regarder aussi la marge de phase, dans ce cas est 0 donc Astable

12
𝒌 = 𝟎. 𝟏 Système Instable

Simulink
Maintenant on souhaite réaliser le même fonction transfert à l’aide de l’outil de
programmation graphique Simulink, pour cela on doit ajoute quelques blocks et les câbler
entre eux, en plus il faut placer un oscilloscope sur la sortie pour regarder la réponse, on
utilisera en entrée le block step qui représente l’échelon unitaire et en plus on ajoutera le block
out.sortie pour avoir accès aux donnés de simulation depuis le WorkSpace.

On obtient les réponses suivantes en faisant varier le gain K

13
𝒌 = 𝟎. 𝟏 Système Stable

𝒌 = 𝟎. 𝟑𝟏𝟐 Système Astable

14
𝒌 = 𝟎. 𝟓 Système Instable

15
Annexes

Code final “fichier.m”


clc
clear all ;
close all ;
x=3;
y=4;
z=5+6i;
%Partie reel et imaginaire de z
real(z);
imag(z);
%Creation de vecteurs
v1=[0 1 2 3 4];
v2=[0;1;2;3;4];
v3=v1.';
v4=0:0.1:10;
%Creation de matrice
A=[1,2,3,4;5,6,7,8];
%Creation de fonction sinousoidales
t=0:0.1:4*pi;
x= sin(t);
y= cos(t);
%Grpgique de fonctions
figure(1)
subplot(1,2,1);
plot(t,y); %cosinus
grid on;
hold on;
plot(t,x,'r'); %sinus
axis([0 4*pi -1 1]);
subplot(1,2,2);
plot(x,y); %sinus(cosinus)
grid on
% Fonctions Transfer
h1 = tf([3],[4 1]);
h2 = tf([1],[16 5 1]);
%Propriet[es des FT
damp(h1);
dcgain(h1);
pole(h2);
damp(h2);
dcgain(h2);
%Reponse aux systemes
figure(2)
subplot(1,2,1)
impulse(h1);

16
subplot(1,2,2)
impulse(h2)
figure(3)
subplot(1,2,1)
step(h1);
subplot(1,2,2)
step(h2);
%Generation de sinousoide
[u,t] = gensig('sin',2*pi,16*pi,0.1);
figure(4)
plot(t,u);
lsim(h1,u,t);
grid on;
axis([0 16*pi -1.5 1.5]);
figure(5)
plot(t,u);
lsim(h2,u,t);
grid on;
axis([0 16*pi -1.5 1.5]);
%Generation de Diagramme de Bode
figure(6)
bode(h1)
grid on;
figure(7)
bode(h2)
grid on;
%Marges de phase et de gain
h3=tf([1],[1 0]);
k=1 %fait varier ce parametre pour regarder un
stable,astable ou instable
h4=h3*h2*k;
figure(8)
margin(h4)
h5=feedback(h4,1);
figure(9)
step(h5)

17

Vous aimerez peut-être aussi