Vous êtes sur la page 1sur 16

‫الجمهورية الجزائرية الديمقراطية الشعبية‬

‫وزارة التعليم العالي والبحث العلمي‬


‫جامعة وهران للعلوم والتكنولوجيا محمد بو ضياف‬
People’s Democratic Republic of Algeria
Ministry of Higher Education and Scientific Research
University of Science and Technology of Oran Mohammed BOUDIAF

Faculty of Electrical Engineering


Automatics department ‫كلية الهندسة الكهربائية‬
‫قسم االلية‬

TP SYSTEME ASSERVIS

PRESENTÉ PAR:
 MESSELM HAJER BEN WAFAE IDRISE.
 SHAHER REHAB ABDULRAHMAN ABDULLAH MOHAMMED.
Group: GTP04
TP00 : introduction des transferts fonctions sur Matlab :

Introduction:
Une fonction de transfert est un moyen pratique de représenter un système linéaire
invariant dans le temps en termes de relation entrée-sortie. Elle est obtenue en appliquant une
transformée de Laplace aux équations différentielles décrivant la dynamique du système, en
supposant des conditions initiales nulles. En l'absence de ces équations, une fonction de transfert
peut également être estimée à partir de données d'entrée-sortie mesurées.
Partie théorique :
1
 T(p) = 1+p

K: Zéros
1+tp: poles
S = jw ; w = 2pi ∗ f
 Pour declarer un aliment par exemple «a»
En écrit : a=
 Pour affiche une matrice en écrit :
A = [a, b, c] pour la ligne
A = [a ; b ; c] pour la colonne
Exemple :
Matrice c = [ 6 , 8 , 10 ; 6 , 8 , 10]
|6 8 10|
|6 8 10|
 On utilise la commande Disp() pour Afficher
Partie pratique :
On entre MATLAB et on ouvre « new script »
On tape:
Close all
Clear all
Clc
Pour supprime la mémoire de workspace
Fonction de transfert de 1er ordre
1
T(s) =
1 + taus
%Instructions :
>> K=10;
>> tau=0.5;
>> num = [K];
>> den = [tau 1];
>> sys = tf(num,den)
%Sortie:
Transfer function:
10
---------
0.5 s + 1

2
Example 2:
𝑇(𝑠) = (𝑠 + 1)/ (𝑠^2 + 4)
%Instructions:
>> sys = tf([1 1],[1 0 4])
%Sortie:
Transfer function:
s+1
-------
s^2 + 4

Example 3:
𝑝2 + p + 1
T(p) =
(p + 1)(p + 2)
%Instructions:
>> sys1 = tf([1 1 1],[1 1]);
>> sys2 = tf(1,[1 2]);
>> sys=sys1*sys2
%Sortie:
Transfer function:
s^2 + s + 1
-------------
s^2 + 3 s + 2

Simulink:
Simulink est une extension graphique de MATLAB pour la modélisation et la simulation de
systèmes. L'un des principaux avantages de Simulink est la possibilité de modéliser un système non
linéaire, ce qu'une fonction de transfert est incapable de faire. Un autre avantage de Simulink est la
possibilité de prendre des conditions initiales. Lorsqu'une fonction de transfert est construite, les
conditions initiales sont supposées être nulles.
Dans Simulink, les systèmes sont dessinés à l'écran sous forme de diagrammes de blocs. De nombreux
éléments de diagrammes de blocs sont disponibles, tels que des fonctions de transfert, des jonctions de
sommation, etc., ainsi que des dispositifs d'entrée et de sortie virtuels tels que des générateurs de
fonctions et des oscilloscopes. Simulink est intégré à MATLAB et les données peuvent être facilement
transférées entre les programmes.

Éléments de base
Il existe deux grandes classes d'éléments dans Simulink: les blocs et les lignes. Les blocs sont
utilisés pour générer, modifier, combiner, sortir et afficher des signaux. Les lignes sont utilisées pour
transférer des signaux d'un bloc à un autre.

I. Blocs

Il existe plusieurs classes générales de blocs dans la bibliothèque Simulink:

Sources: utilisées pour générer divers signaux


Sinks: utilisés pour sortir ou afficher des signaux

3
Continu : éléments de système à temps continu (fonctions de transfert, modèles d'espace
d'état, contrôleurs PID, etc.)
Discret : éléments de systèmes linéaires à temps discret (fonctions de transfert discrètes,
modèles d'espace d'état discrets, etc.)
Opérations mathématiques : contient de nombreuses opérations mathématiques courantes
(gain, somme, produit, valeur absolue, etc.).
Ports et sous-systèmes : contient des blocs utiles pour construire un système.

II. Lignes
Les lignes transmettent les signaux dans la direction indiquée par la flèche. Les lignes doivent
toujours transmettre les signaux de la borne de sortie d'un bloc à la borne d'entrée d'un autre
bloc.

Conclusion:
Les fonctions de transfert sont fréquemment utilisées dans les représentations de schémas-blocs
de systèmes et sont populaires pour effectuer des analyses dans le domaine temporel et dans le domaine
fréquentiel et pour concevoir des contrôleurs. Le principal avantage des fonctions de transfert est qu'elles
permettent aux ingénieurs d'utiliser des équations algébriques simples au lieu d'équations différentielles
complexes pour analyser et concevoir des systèmes.

4
TP01: Systeme du premier ordre:

I. Etude theorique de RC circuit:


Soit le circuit RC donee par la Figure.1, avec E=40V,
R=50 , C= 63F .les conditions initiales sont nulls
On considere la tension 𝑉𝑒 comme entrée e (t), et la tension 𝑉𝑠 Comme sortie s (t).

1. On etablier l’equation differentielle de le circuit utilisant la


loi de Kerchhoff de tension
𝑉𝑒 Entrée e (t).
𝑉𝑠 Sortie s (t).

𝑉𝑒 = 𝑅. 𝐼(𝑡) + 𝑉𝑠
𝑉𝑠 est la tension au borne de condencateur
1 𝑑𝑉𝑠
𝑉𝑠 = 𝐶 ∫ 𝑑𝐼(𝑡)𝑑𝑡  𝐼(𝑡) = 𝐶 𝑑𝑡
𝑑𝑉𝑠 Figure.1
𝑉𝑒 = 𝑅. 𝐶 + 𝑉𝑠
𝑑𝑡
𝑑𝑠(𝑡) Equation differentielle de RC circuit
𝑒(𝑡) = 𝑅. 𝐶 + 𝑠(𝑡)
𝑑𝑡

2. On donne la function de transfert comme suit :

𝑑𝑠(𝑡)
𝑒(𝑡) = 𝑅. 𝐶 + 𝑠(𝑡) Utilisant la transforme de Laplace
𝑑𝑡
𝐸(𝑝) = 𝑅. 𝐶𝑝 ∗ 𝑆(𝑝) + 𝑆(𝑝)
𝐸(𝑝) = 𝑆(𝑝)( 𝑅. 𝐶𝑝 + 1)
𝑆(𝑝) 1
=
𝐸(𝑝) 𝑅. 𝐶𝑝 + 1

1 La fonction de transfert de systeme


𝑇(𝑝) =
𝑅. 𝐶𝑝 + 1

3. Calcule de constante de temps  et gain statique K


Pour calculer  et K on doit mettre la function de transfert dans la forme nominal

𝐾
𝑇(𝑝) = 𝑝+1 Avec K=1; et =𝑅 ∗ 𝐶

Constante de temps =50 *63F   = 3.1 ∗ 10−3 𝑠

Gain statique K=1

5
4. Determination et traçage de la reponse du systeme s(t) a l’application d’un echllon d’amplitude
𝐸° . Et calcule de temps de montee et temps de reponse .
1 𝐸°
𝑆(𝑝) = 𝐸(𝑝) 𝑎𝑣𝑒𝑐 𝐸(𝑝) =
𝑅. 𝐶𝑝 + 1 𝑝
1 𝐸° 𝐸°
𝑆(𝑝) = ∗ 𝑆(𝑝) =
𝑅. 𝐶𝑝 + 1 𝑝 𝑝(𝑅. 𝐶𝑝 + 1)
𝐸° ⁄𝑅. 𝐶
𝑆(𝑝) =
𝑝(𝑝 + 1⁄𝑅. 𝐶 )
On utilise La transformee de Laplace inverse
1 1
ℒ −1 [ ] = (1 − 𝑒 −𝑎𝑡 )
𝑝(𝑝+𝑎) 𝑎
𝐸° ⁄𝑅. 𝐶 𝐸° 1
ℒ −1 [ ]= (𝑅. 𝐶 (1 − 𝑒 −𝑅.𝐶 𝑡 ))
𝑝(𝑝 + 1⁄𝑅. 𝐶 ) 𝑅. 𝐶
1
𝐷𝑜𝑛𝑐 𝑠(𝑡) = 𝐸° (1 − 𝑒 −𝑅.𝐶 𝑡 )

S(t)

1.05𝐸°
𝑬° 0.95𝐸°
0.90𝐸°

0.64𝑬° s(0)=0
s()=𝐸°
s()=0.64𝐸°

0.20𝐸°

t
t1  t2 tr

Reponse indicielle

A partir de la reponse on peut deduir temp de reponse et temp de montee


tr= 3*  𝐭𝐫 = 𝟗. 𝟒𝟓 ∗ 𝟏𝟎−𝟑 𝒔
tm=t2-t1=2.2 𝐭𝐦 = 𝟔. 𝟗𝟑 ∗ 𝟏𝟎−𝟑 𝒔

5. Determination et traçage de la reponse du systeme s(t) a l’application d’une ramp de pente a et


calcule d’erreur de trinage (vitess)

6
1 1
𝑆(𝑝) = 𝑅(𝑝) 𝑎𝑣𝑒𝑐 𝑅(𝑝) = 𝑎 ∗ 2
𝑅. 𝐶𝑝 + 1 𝑝
1 𝑎 𝑎
𝑆(𝑝) = ∗ 𝑆(𝑝) = 2
𝑅. 𝐶𝑝 + 1 𝑝2 𝑝 (𝑅. 𝐶𝑝 + 1)
𝑎⁄𝑅. 𝐶
𝑆(𝑝) = 2
𝑝 (𝑝 + 1⁄𝑅. 𝐶 )
On utilise La transformee de Laplace inverse
1 1
ℒ −1 [𝑝2 (𝑝+𝑎)] = 𝑎2 (𝑎𝑡 − 1 + 𝑒 −𝑎𝑡 )
𝑎⁄𝑅. 𝐶 𝑎 1 1
ℒ −1 [ ]= ((𝑅. 𝐶)2 ( 𝑡 − 1 + 𝑒 −𝑅.𝐶 𝑡 ))
𝑝2 (𝑝
+ 1⁄𝑅. 𝐶 ) 𝑅. 𝐶 𝑅. 𝐶
1 1
𝐷𝑜𝑛𝑐 𝑠(𝑡) = 𝑎 ∗ 𝑅. 𝐶 ( 𝑡 − 1 + 𝑒 −𝑅.𝐶 𝑡 )
𝑅. 𝐶
𝑠(𝑡) = 𝑎 ∗ 3.1 ∗ 10−3 (322.58𝑡 − 1 + 𝑒 −322.58𝑡 )

S(t)

S (0) =0
a S () =
S () =0.36a

0.36a

Reponse de ramp

 Calcule d’erreur de trinage(vitess)


1 1
𝐸𝑣 = lim (1+𝑇(𝑝) ∗ 𝑝2 )
𝑝→0

1 1
𝐸𝑣 = lim ( 1
∗ 2
= 0)
𝑝→0
1+( ) 𝑝
3.1 ∗ 10−3 𝑝 + 1

6. Traçage de la reponse de la systeme lorsque nous appliquons une impulsion e(t)= 𝐸° .(t) comme
entrée du systeme

7
1
𝑆(𝑝) = 𝐸(𝑝) 𝑎𝑣𝑒𝑐 𝐸(𝑝) = 𝐸° *1
𝑅.𝐶𝑝+1
1 𝐸°
𝑆(𝑝) = ∗ 𝐸° 𝑆(𝑝) =
𝑅. 𝐶𝑝 + 1 (𝑅. 𝐶𝑝 + 1)
𝐸° ⁄𝑅. 𝐶
𝑆(𝑝) =
(𝑝 + 1⁄𝑅. 𝐶 )
On utilise La transformee de Laplace inverse
1
ℒ −1 [(𝑝+𝑎)] = 𝑒 −𝑎𝑡
𝐸° ⁄𝑅. 𝐶 𝐸° 1
ℒ −1 [ ]= (𝑒 −𝑅.𝐶 𝑡 )
(𝑝 + 1⁄𝑅. 𝐶 ) 𝑅. 𝐶
1
𝐸
𝑠(𝑡) = 𝑅.𝐶° (𝑒 −𝑅.𝐶 𝑡
S(t)) s(t)= (322.58𝐸° ∗ 𝑒
−322.58𝑡 )

𝐸°
𝑬° S (0) =

 S () =0
𝐸°
S () = 0.36
0 

𝑬°
𝟎. 𝟑𝟔

t

Reponse impulsionnelle

II. Analys sous Matlab


a. Calcule de la function de transfert du Circuit RC
clc
clear all
close all
R=50;
C=63*10^(-3);
E=40;
tau=R*C;
num=[1];
den=[tau 1];
sys=tf(num,den)

1
-------------
0.00315 s + 1

8
b. Traçage la reponse de la function de transfert a une impulsion unite.
t=[0:1:5];
y1=impulse(sys,t);
figure(1)
plot(t,y1)

Reponse d’une impulsion unitair

c. Traçage la reponse de la function de transfer a echelon e (t) =1.


t=[0:1:5];
y2=step(sys,t)
figure(2)
plot(t,y2)

9
Reponse d’un echellon unitair
d. Retrouve la constante de temps graphiquement.
hold on
ym=max(y2);
yt=0.63*ym;
max_idx=min(find(y2>=yt));
tau=t(max_idx);
plot([tau tau],[0 yt],'m--')
str=sprintf('tau=\n%.2f s',tau)
gtext(str)
hold off

Determination graphique de constant de temp

10
e. Calcule de temps de repose et temps de montee, et affichage sur la figure de la reponse
indicielle.

hold on
gtext(str)
tr=3*tau
plot([tr tr],[0 yt],'r--')
str1=sprintf('tr=\n%.2f s',tr)
gtext(str1)
hold on
tm=2.2*tau
plot([tm tm],[0 yt],'g--')
str2=sprintf('tm=\n%.2f s',tm)
gtext(str2)
hold off

tr =

tm =

2.2000

Affichage de tr et tm sur la figure de la


reponse indicielle.

11
f. Variation de constant de temps (=0.0016, =0.0032, =0.0064) du systeme et traçage des
reponse indicielles correspondantes dans la meme figure.
tau1=0.0016;
tau2=0.0032;
tau3=0.0064;
den1=[tau1 1];
den2=[tau2 1];
den3=[tau3 1];
sys1=tf(num,den1);
sys2=tf(num,den2);
sys3=tf(num,den3);
y3=step(sys1,t)
y4=step(sys2,t)
y5=step(sys3,t)
figure(3)
plot(t,y3,'g')
hold on
plot(t,y4,'r')
hold on
plot(t,y5,'y--')

Reponse indicielle de systeme avec dse variation


de constant de temps dans la meme figure

On conclue que si on fait varier les valeurs de la constante de temps, cela ne changera pas
la forme de la courbe de la réponse indicielle.

12
g. Traçage la reponse de systeme a une ramp de pent a=2,refaire de travail de (etapes f)et calcule
d’erreur de trinage.

 Traçage la reponse de systeme a une ramp de pent a=2


a=2;
u=a*t;
y6=lsim(sys,u,t)
figure(4)
plot(t,y6)

Reponse de systeme a une ramp de pente a=2

13
 Refaire de travail de (etapes f).
tau1=0.0016;
tau2=0.0032;
tau3=0.0064;
den1=[tau1 1];
den2=[tau2 1];
den3=[tau3 1];
sys1=tf(num,den1);
sys2=tf(num,den2);
sys3=tf(num,den3);
y7=lsim(sys1,u,t)
y8=lsim(sys2,u,t)
y9=lsim(sys3,u,t)
figure(5)
plot(t,y7,'g')
hold on
plot(t,y8,'r')
hold on
plot(t,y9,'y--')

Reponse de systeme a une ramp de pente a=2 avec


variation de constant de temps dans la meme figure

14
 Calcule d’erreur de trinage.
syms s
y=(1/0.00315*s+1);
f = (1/(1+y)*s^2);
Erreur = limit(f, 0)

Command Window
Erreur =

Code complete de TP01 avec commentaries:

clc
clear all
close all
% declaration des constant
R=50;
C=63*10^(-6);
E=40;
tau=R*C;
%Detrmination de fonction de transfert
num=[1];
den=[tau 1];
sys=tf(num,den) % Création de la fonction de transfert
t=[0:1:5] % Définir un vecteur de fin points linéairement
% espace d'un pas entre init et fin système de premier
%Réponse impulsionnelle d'un systeme de premier ordre
y1=impulse(sys,t); % Réponse à une impulsion unité
figure(1) % Ouverture d'une figure
plot(t,y1) % Traçage de la réponse impulsionnelle
%Réponse indicielle d'un systeme de premier ordre
y2=step(sys,t) % Réponse indicielle du système
figure(2)
plot(t,y2)
%Determination de la constant de temps graphiquement
hold on % Maintenir les graphes courants
ym=max(y2); % Détermine la valeur maximale de y2 ( Rep.indicielle )
yt=0.63*ym; % Détermine la valeur de yt correspondante au temps de réponse
max_idx=min(find(y2>=yt)); % find permet de trouver l'indice de l'élément auquel y2 > =yt
tau=t(max_idx); % tau est le temps correspondant à cet indice dans le vecteur t
plot([tau tau],[0 yt],'m--') % Tracer une ligne verticale à tr
str=sprintf('tau=\n%.2f s',tau) % Créer l'étiquette volante
gtext(str) % Permet de cliquer dans la fenêtre pour positionner le texte
%Determination de tr,tm et Affichage de tr et tm à partir de la reponse indicielle
hold on
tr=3*tau % tr (temps de reponse)
plot([tr tr],[0 yt],'r--')
str1=sprintf('tr=\n%.2f s',tr)
gtext(str1)
hold on
tm=2.2*tau % tm (temps de montee)

15
plot([tm tm],[0 yt],'g--')
str2=sprintf('tm=\n%.2f s',tm)
gtext(str2)
hold off
%Variation de constant de temps (tau1=0.0016, tau2=0.0032, tau3=0.0064) du systeme et traçage des
reponse indicielles correspondantes dans la meme figure
tau1=0.0016;
tau2=0.0032;
tau3=0.0064;
den1=[tau1 1];
den2=[tau2 1];
den3=[tau3 1];
sys1=tf(num,den1);
sys2=tf(num,den2);
sys3=tf(num,den3);
y3=step(sys1,t)
y4=step(sys2,t)
y5=step(sys3,t)
figure(3)
plot(t,y3,'g')
hold on
plot(t,y4,'r')
hold on
plot(t,y5,'y--')
%Réponse à une ramp d'un systeme de premier ordre
a=2; % dclaration de valeur de pent a=2
u=a*t; %Détermination de la rampe u de pente a
y6=lsim(sys,u,t) % Réponse du système à une entrée u quelconque ( t : temps )
figure(4)
plot(t,y6)
%Variation de constant de temps (tau1=0.0016, tau2=0.0032, tau3=0.0064) du systeme et traçage des
reponse a une ramp correspondantes dans la meme figure
tau1=0.0016;
tau2=0.0032;
tau3=0.0064;
den1=[tau1 1];
den2=[tau2 1];
den3=[tau3 1];
sys1=tf(num,den1);
sys2=tf(num,den2);
sys3=tf(num,den3);
y7=lsim(sys1,u,t)
y8=lsim(sys2,u,t)
y9=lsim(sys3,u,t)
figure(5)
plot(t,y7,'g')
hold on
plot(t,y8,'r')
hold on
plot(t,y9,'y--')
%• Determination d’erreur de trinage
syms s
y=(1/0.00315*s+1);
f = (1/(1+y)*s^2);
Erreur = limit(f, 0)

16

Vous aimerez peut-être aussi