Vous êtes sur la page 1sur 32

Ecole Nationale Supérieure d’Arts et Métiers Casablanca

Analyse temporelle d’un système


dynamique du 1er ordre et du 2ème
ordre
Rapport TP n° 1 et n°2 de la Régulation
Industrielle

Réalisé par :

 ABOUDRAR Basma
 ACHOR Zineb
 EL BECHARI Reda
 EL BOUAMI Sarah
 EL KHAOURI Wiam

Encadré par :

Mr.Chikh
Analyse temporelle d’un système dynamique du 1er ordre et du 2ème ordre

TP n° 1 : Analyse
temporelle d’un système
dynamique du 1er ordre

2
Analyse temporelle d’un système dynamique du 1er ordre et du 2ème ordre

Introduction :
L’étude complète d’un système est composée de deux parties : son étude temporelle
et son étude
fréquentielle. En ce qui concerne l’étude temporelle, nous nous intéresserons ici à
identifier les
réponses s(t)de systèmes étudiés à des signaux d’entrée e(t) relativement simples,
appelés entrées
canoniques, qui sont l’impulsion de Dirac d(t), l’échelon unitaire u(t) et la rampe
unitaire v(t). La
réponse d’un système à une impulsion de Dirac est appelée réponse impulsionnelle ;
la réponse d’un
système à un échelon unitaire est appelé réponse indicielle.
Dans ce TP on va se familiariser avec le logiciel Matlab en essayant de dessiner la
réponse d’un
système du 1 er ordre pour trois entrées différentes ; échelon, rampe, et
accélération.

Objectif :
L'objectif de ce TP est de se familiariser avec tous les aspects des systèmes du
premier ordre. Cette
familiarisation introduit la fonction de transfert complexe, puis la fonction de
transfert en
représentation de Laplace pour aboutir à tous les diagrammes utilisés en
automatisme, en réalisant
un fichier exécutable sous Matlab.

Etude théorique :
Soit le circuit RC donné par le schéma du montage suivante :

1. Appliquons la loi de Kirchhoff des tensions, l’équation différentielle qui régit


le
fonctionnement de ce circuit est :

3
Analyse temporelle d’un système dynamique du 1er ordre et du 2ème ordre

2. La fonction de transfert du système :


En appliquant la transformé de Laplace, on a

3. Déterminons :
 Le gain statique:
K=1 d’après la fonction de transfert

La constante de temps :
T= RC = 3,15ms

4. Déterminons la réponse du système à l’application d’un échelon d’amplitude


On a

Le graphe obtenu est de la forme :

K=E0 et T= R*C

:
Analyse temporelle d’un système dynamique du 1er ordre et du 2ème ordre

Calculons le temps de montée et le temps de réponse :

5. Déterminons la réponse du système à l’application d’une rampe de pente a :


On a

D’où
On peut simuler cette réponse par le graphe suivant :

et y(t)= s(t)

Calculons l’erreur de trainage (erreur de vitesse)

On a

5
Analyse temporelle d’un système dynamique du 1er ordre et du 2ème ordre

6. Traçons la réponse du système lorsque nous appliquons une impulsion e(t)=


entrée du système.

comme

On a

Avec K=

et T=

Analyse sous Matlab :


La fonction de transfert calculée dans la partie théorique :
%%TP1 Analyse temporelle d'un système dynamique 1er ordre
% Reponse impulsionnelle
t=0:0.0001:0.1 ; % Discretisation du temps de 0 à 0.1 par un pas de 0.0001
R= 50;
C= 63*10^-6;
num=[ 1 ] ; % Numerateur de la fonction de transfert
den=[R*C 1] ; % le denominateur de la FT
sys=tf(num,den) ; % création de la FT
y1=impulse(sys,t) ; % La reponse impulsionnelle
y0=y1(1)
plot(t,y1); % Le graphe de la reponse impulsionnelle
title('Reponse impulsionnelle')

6
Analyse temporelle d’un système dynamique du 1er ordre et du 2ème ordre

Réponse impulsionnelle
%%TP1 Analyse temporelle d'un système dynamique 1er ordre
% Reponse indicielle
t=0:0.0001:0.1 ; % Discretisation du temps de 0 à 0.1 par un pas de 0.0001
R= 50;
C= 63*10^-6;
num=[ 1 ] ; % Numerateur de la fonction de transfert
den=[R*C 1] ; % le dénominateur de la FT
sys=tf(num,den) ; % création de la FT
y1=step(sys,t) ; % La reponse impulsionnelle
y0=y1(1)
plot(t,y1); % Le graphe de la reponse indicielle
title('Reponse indicielle')

7
Analyse temporelle d’un système dynamique du 1er ordre et du 2ème ordre

Réponse indicielle
%%TP1 Analyse temporelle d'un système dynamique 1er ordre
% Réponse indicielle
t=0:0.0001:0.1 ; % Discretisation du temps de 0 à 0.1 par un pas de 0.0001
R= 50;
C= 63*10^-6;
num=[ 1 ] ; % Numérateur de la fonction de transfert
den=[R*C 1] ; % le dénominateur de la FT
sys=tf(num,den) ; % création de la FT
y1=step(sys,t) ; % La reponse indicielle
plot(t,y1); % Le graphe de la reponse indicielle
title('Reponse indicielle')
hold on
ym=max(y1 ) ;
yt=0.63*ym ;
max_idx=find(y1>=yt, 1 );
tau=t(max_idx)
plot([tau tau],[0 yt],'m--')
str=sprintf('tau=%3.4f s',tau);
gtext (str)

8
Analyse temporelle d’un système dynamique du 1er ordre et du 2ème ordre

Réponse indicielle
%%TP1 Analyse temporelle d'un système dynamique 1er ordre
% Reponse indicielle
t=0:0.0001:0.1 ; % Discretisation du temps de 0 à 0.1 par un pas de 0.0001
R= 50;
C= 63*10^-6;
num=[ 1 ] ; % Numerateur de la fonction de transfert
den=[R*C 1] ; % le denominateur de la FT
sys=tf(num,den) ; % création de la FT
y1=step(sys,t) ; % La reponse impulsionnelle
plot(t,y1); % Le graphe de la reponse indicielle
title('Reponse indicielle')
hold on
% Calcul de la constante du temps
ym=max(y1 ) ;
yt=0.63*ym ;
max_idx=find(y1>=yt, 1 );
tau=t(max_idx)
plot([tau tau],[0 yt],'m--')
str=sprintf('tau=%3.4f s',tau);
gtext (str)

9
Analyse temporelle d’un système dynamique du 1er ordre et du 2ème ordre

% Calcul du temps de montée


Tm=t(find(y2>=0.9*k,1))-t(find(y2>=0.1*k,1))
% Calcule de temps de réponse
Tr=t(find(y2>=0.95*k,1))
plot([Tr Tr],[0 k],':')
str1=sprintf('t. rep =%3.4f s',Tr);
gtext (str1)
hold off

Réponse indicielle

10
Analyse temporelle d’un système dynamique du 1er ordre et du 2ème ordre

%Réponses indicielles du système correspondantes aux différentes valeurs de


%tau(0.0016-rouge-, 0.0032-bleu-, 0.0064-vert-)

t=0:0.0001:0.1 ;

% Discretisation du temps de 0 à 0.1 par un pas de 0.0001

num=[ 1 ] ; % Numerateur de la fonction de transfert


% les denominateurs de la FT
den1=[0.0016 1] ;
den2=[0.0032 1];
den3=[0.0064 1];
% création des FT
sys1=tf(num,den1) ;
sys2=tf(num,den2);
sys3=tf(num,den3);
y1=step(sys1,t) ;
plot(t,y1,'r'); % Le graphe de la reponse indicielle
hold on
y2=step(sys2,t);
plot(t,y2,'b')
y3=step(sys3,t);
plot(t,y3,'g')
hold off
legend('tau= 0.0016','tau= 0.0032','tau= 0.0064')
title('Réponse indicielle "variation de tau"')

11
Analyse temporelle d’un système dynamique du 1er ordre et du 2ème ordre

Réponse indicielle variation de tau


%Réponses à une rampe du système correspondantes aux différentes valeurs de
%tau(0.0016-rouge-, 0.0032-bleu-, 0.0064-vert-)

t=0:0.0001:0.1 ; % Discretisation du temps de 0 à 0.1 par un pas de 0.0001


a=2;
num=[ 1 ] ; % Numerateur de la fonction de transfert
% les denominateurs de la FT
den1=[0.0016 1] ;
den2=[0.0032 1];
den3=[0.0064 1];
% création de la FT
sys1=tf(num,den1) ;
sys2=tf(num,den2);
sys3=tf(num,den3);
u=a*t ;
y1=lsim(sys1,u,t) ;
plot(t,y1,'r'); % Le graphe de la reponse

12
Analyse temporelle d’un système dynamique du 1er ordre et du 2ème ordre

hold on
y2=lsim(sys2,u,t) ;
plot(t,y2,'b')
y3=lsim(sys3,u,t) ;
plot(t,y3,'g')
hold off
legend('tau= 0.0016','tau= 0.0032','tau= 0.0064')
title('Réponse à une rampe 2*t "variation de tau"')

Réponse à une rampe 2*t variation de tau

%Erreur de trainage correspondantes aux différentes valeurs de


%tau(0.0016-rouge-, 0.0032-bleu-, 0.0064-vert-)

13
Analyse temporelle d’un système dynamique du 1er ordre et du 2ème ordre

t=0:0.0001:0.1 ; % Discretisation du temps de 0 à 0.1 par un pas de 0.0001


a=2;
num=[ 1 ] ; % Numerateur de la fonction de transfert
% les denominateurs de la FT
den1=[0.0016 1] ;
den2=[0.0032 1];
den3=[0.0064 1];
% création de la FT
sys1=tf(num,den1) ;
sys2=tf(num,den2);
sys3=tf(num,den3);
u=a*t' ;
y1=lsim(sys1,u,t) ;
plot(t,u-y1,'r'); % Le graphe de l'erreur de trainage
er_red= max(u-y1)
hold on
y2=lsim(sys2,u,t) ;
plot(t,u-y2,'b')
er_blue= max(u-y2)
y3=lsim(sys3,u,t) ;
plot(t,u-y3,'g')
er_green= max(u-y3)
hold off
legend('tau= 0.0016','tau= 0.0032','tau= 0.0064')
title('Erreur de trainage "variation de tau"')

14
Analyse temporelle d’un système dynamique du 1er ordre et du 2ème ordre

Erreur de trainage variation de tau

Conclusion:
A l’issu de ce TP, on a pu analyser les réponses de ces systèmes à des entrées
différentes et
déterminer les performances tout en utilisant le logiciel Matlab qui nous a
facilité l’étude qu’on fait
habituellement par la main.

15
Analyse temporelle d’un système dynamique du 1er ordre et du 2ème ordre

TP n° 2 : Analyse
temporelle d’un système
dynamique du 2ème
ordre

16
Analyse temporelle d’un système dynamique du 1er ordre et du 2ème ordre

Objectif :
L’objectif de ce TP est d’exploiter les connaissances acquises, pendant le cours
sur l’analyse
temporelle d’un système dynamique du 2eme ordre. L’étudiant, après une étude
théorique des
systèmes proposés, devra d’abord réaliser un fichier exécutable sous Matlab afin
d’analyser les
réponses de ces systèmes à des entrées différentes et de déterminer leurs
performances. La
représentation d’un modèle sous Simulink va permettre ensuite de visualiser les
réponses du
système étudié.

Etude théorique :
 Exemple 1 : Circuit RLC
Etant donné un circuit RLC suivant avec les caractéristiques suivantes : R=20Ω,
L=3mH, et C=5µF.

Figure1. Circuit RLC


1. La fonction de transfert :
D’après la loi des mailles on trouve :

Avec :

Remplaçons chaque terme par sa valeur, on trouve :

En utilisant la transformée de la place, et en tenant compte que :

17

on trouve :
Analyse temporelle d’un système dynamique du 1er ordre et du 2ème ordre
D’où la fonction de transfert du système :

2. Détermination des éléments du système :


On sait le modèle de fonction de transfert d’un circuit d’ordre 2 est le suivant :

On identifie la fonction de transfert avec le modèle (1), on trouve :

3. Les réponses de l’équation de transfert à différentes entrées :


 Réponse à un échelon unitaire :

On a

donc le système à un comportement oscillatoire :

Cette réponse se compose de deux parties, la première correspond au régime


transitoire, la seconde au régime permanent.

Réponse à une rampe de pente a=2 :

Avec une entrée de type Dirac

Système sous amorti :

7482t)

18
Analyse temporelle d’un système dynamique du 1er ordre et du 2ème ordre

Réponse à une impulsion de 1 :

 Exemple 2 : Système mécanique oscillant


On considère le système mécanique donné par (Fig.2). L’application d’une force f
(t) (entrée du
système) sur le système provoque des oscillations de la masse m suivant la
direction x(t) (la sortie
du système). Le système est constitué, en plus de la masse m, d’un ressort de
raideur k et d’un
amortisseur de coefficient b.

L’équation différentielle correspondante à ce système est la suivante :


′+

"+

= (2)

1. La fonction de transfert du système :


On appliquant la transformée de la place sur l’équation (2) on obtient :
Ce qui donne :

2. Paramètres du système :
A un échelon f(t)= 2 N.m ce qui donne après une transformée de la place :

19
Analyse temporelle d’un système dynamique du 1er ordre et du 2ème ordre

La réponse est :

On cherche les paramètres m, b, K :


 On a d’après la Fig.3 :
 On a

et aussi

D’où :

Avec
-

=0,6 et

(pseudo-période)

On obtient :
.

Ce qui donne

et donc

Analyse sous Matlab :


 Exemple 1 :
%definition des parametres du problemes
R=20;
L=3*10^-3;
C=5*10^-6;
num=1;
den=[C*L R*C 1];
wn=1/sqrt(C*L);
z=(R/2)*sqrt(C/L);
t=0:0.0001:0.01;
%fonction de transfert
fct=tf(num,den)
%réponse à une impulsion
y1=impulse(fct,t);
figure(1)
plot(t,y1)
title('réponse à impulsion')
%réponse à un échelon
y2=step(fct,t);
figure(2)

20
Analyse temporelle d’un système dynamique du 1er ordre et du 2ème ordre

plot(t,y2)
title('réponse à échelon')
hold on
%calcul de tau
ym=max(y2);
yt=0.63*ym;
idx=find(y2>=yt, 1 );
tau=t(idx);
plot([tau tau],[0 yt],'m--')
str=sprintf('tau=\n%1.5fs',tau);
gtext(str)
tr=3/(z*wn)
%tm=atan((-sqrt(1-z^2)/z)*(180/pi))/(wn*sqrt(1-z^2))
tp=pi/(sqrt(1-z^2)*wn)
D=exp(-z*pi/sqrt(1-z^2))*100
%valeur pour laquelle z=1 - amortissement critique
R1=2*sqrt(L/C)
hold off
%reponse a un echelon unitaire pour R= 0, 20, 60
R0=[0 20 60];
figure(3)
hold on
den1=[C*L R0(1)*C 1];
den2=[C*L R0(2)*C 1];
den3=[C*L R0(3)*C 1];
sys1=tf(num,den1);
y1=step(sys1,t);
plot(t,y1,'r')
sys2=tf(num,den2);
y2=step(sys2,t);
plot(t,y2,'b')
sys3=tf(num,den3);
y3=step(sys3,t);
plot(t,y3,'y')
ksi=(R0/2).*sqrt(C/L);
legend(strcat('R=0 , ksi=', num2str(ksi(1))),...
strcat('R=20 , ksi=', num2str(ksi(2))),...
strcat('R=60 , ksi=', num2str(ksi(3))));
title('Reponse a echelon unitaire')
hold off
%reponse a une rampe
figure(4)
R0=60;
u=2*t';
den2=[C*L R0*C 1];
fonct=tf(num,den2);
yr=lsim(fonct,u,t);
plot(t,yr,t,u);

21
Analyse temporelle d’un système dynamique du 1er ordre et du 2ème ordre

title('Reponse à une rampe')


figure(5)
plot(t,u-yr);
err=max(u-yr);
hold on
plot([0 0.01],[err err],'r--');
hold off

22
Analyse temporelle d’un système dynamique du 1er ordre et du 2ème ordre

 Exemple 2 :
clear
clc
m=5.187;
k=20;
b=12.223;
wn=sqrt(k/m)
z=b*wn/(2*k)
t=0:0.001:10;
num=1;
den=[m b k];
fct=tf(num,den)
%réponse à une impulsion
y1=impulse(fct,t);
figure(1)
plot(t,y1)
title('réponse à une impulsion')

%réponse à un échelon
y2=2.*step(fct,t);

23
Analyse temporelle d’un système dynamique du 1er ordre et du 2ème ordre

figure(2)
plot(t,y2)
title('réponse à échelon')
hold on
tau=1/(z*wn)
tr=3*tau
tm=2.2*tau
tp=2*pi/(sqrt(1-z^2)*wn)
D=100*(max(y2)-0.1)/0.1
z0=[1 0.4 0.7];
figure(3)

b0=2*z0.*k/wn;
den1=[m b0(1) k];
den2=[m b0(2) k];
den3=[m b0(3) k];
hold on
fonct1=tf(num,den1);
y01=2*step(fonct1,t);
plot(t,y01,'r');
fonct2=tf(num,den2);
y02=2*step(fonct2,t);
plot(t,y02,'b');
fonct3=tf(num,den3);
y03=2*step(fonct3,t);
plot(t,y03,'y');
legend(strcat('ksi=', num2str(z0(1))),...
strcat('ksi=', num2str(z0(2))),...
strcat('ksi=', num2str(z0(3))));
title('reponse a echelon unitaire')
hold off
figure(4)
u=2*t;
yr=lsim(fct,u,t);
plot(t,yr,t,u);
legend('sortie', 'entree')
title('reponse a rampe')

24
Analyse temporelle d’un système dynamique du 1er ordre et du 2ème ordre

25
Analyse temporelle d’un système dynamique du 1er ordre et du 2ème ordre

Analyse sous SUMILINK :




On commence par créer un nouveau modèle Sumilink sous le nom de tp2.mdl


On ajoute une fonction de transfert depuis la librairie de Sumilink :
SumilinkContinuousTransfer Fcn
On définit le numérateur et le dénominateur

26
Analyse temporelle d’un système dynamique du 1er ordre et du 2ème ordre

Pour définir les constantes k, m et b diagramMaskEdit MaskEdit MaskParameters


& Dialog ,ou par le raccourcis clavier (Ctrl+M)

Pour visualiser le résultat on ajoute un oscilloscope SinksScope, et on entrée du


système on raccord une constante (échelon 2N) SourcesConstant.

Pour visualiser les résultats run , et double clic sur l’oscilloscope

1- On fixe k=3, m=5 et on varie b de 2 à 6:

27
Analyse temporelle d’un système dynamique du 1er ordre et du 2ème ordre

2- b=4 :

3- b=6 :

28
Analyse temporelle d’un système dynamique du 1er ordre et du 2ème ordre

Lorsqu’on augmente la valeur de b, le coefficient du facteur d’amortissement


augmente, du
coup les oscillations diminue.
4- On fixe k=3, m=2,5 et b=3

Pour une entrée rampe on remplace Constant par Ramp : SourceRamp:

29
Analyse temporelle d’un système dynamique du 1er ordre et du 2ème ordre

30
Analyse temporelle d’un système dynamique du 1er ordre et du 2ème ordre

Conclusion :
En guise de conclusion, nous pouvons dire que la performance des systèmes du second
ordre dépend fortement de leurs paramètres par exemple lorsque le b du système
mécanique varie, l’amortissement fait de même. Il est remarquable que les résultats
obtenus à partir de l’étude sur MATLAB et sur Simulink soient semblables. Enfin
nous
avons pu constater que le Simulink est facilement plus utilisable que MATLAB pour
l’analyse des systèmes automatiques.

31