You are on page 1of 4

Année universitaire 2020-2021

SMP-S6
Initiation à la Modélisation
Travaux Dirigés et Travaux Pratiques
Série 1

I. Tracé de la fonction de transfert d’un circuit RLC

Le circuit RLC est attaqué par le signal sinusoïdal e(t )=exp( jω t )

avec r=100 Ω , L=0 . 1 H , C=1 mF et un domaine de pulsation allant de 0 à 5000rad/s


Dans le domaine fréquentiel, ce circuit est défini par la fonction de transfert suivante :
V s ( jω ) 1
H ( jω )= =
V e ( jω ) 1−LC ω 2 + jRC ω
Nous désirons calculer et tracer la réponse en fréquence de cette fonction de transfert dans une
bande de pulsations donnée. Lorsque le module décroit très rapidement, il est nécessaire
d’utiliser les échelles logarithmiques pour la pulsation et le module.
1- Tracer le module de la fonction de transfert.
2- Tracer la phase de la fonction de transfert.
3- Tracer la phase de la fonction de transfert en coordonnées semi logarithmiques.
4- Tracer le module de la fonction de transfert en coordonnées logarithmiques.
% Tracé de la fonction de transfert et sa phase d'un circuit RLC
clc; clear all;
% Valeurs des composants du circuits
R=100; C=1e-3; L=0.1;
w=0:5000; % domaine des pulsations
% fonction de transfert complexe
H=1./(1-L*C*w.^2+R*C*w*i);
figure (1)
% tracé du module de la fonction de transfert
plot(w,abs(H)); grid;
xlabel('pulsation rd/s')
title('module du transfert')
figure (2)

1
% Tracé de la phase de la fonction de transfert
plot(w, 180*angle(H)/pi);grid;
xlabel('pulsation rd/s')
title('phase de transfert en degrés')
% coordonnées logarithmiques
figure (3)
semilogx(w,180*angle(H)/pi) ; grid;
title('phase en coordonnées semilogarithmiques')
figure(4)
loglog(w,abs(H)); grid;
title('module en coordonnées logarithmiques')

II. Tracé d’une interpolation linéaire et non linéaire


Une interpolation consiste à relier des points expérimentaux par une courbe formée de
segments de droites ou de courbes polynômiales. Ceci est réalisé par la fonction interp1. La
commande interp1(x,y,z) retourne un vecteur de mêmes dimensions que z dont les valeurs
correspondent aux images des éléments de z déterminés par interpolation sur x et y. cette
fonction est définie par: f = interp1(x,y,z,’type’)
La chaîne ‘type’ spécifie un type d’interpolation parmi les suivants:
‘linear’ : interpolation linéaire
‘spline’ : interpolation par splines cubiques
‘cubic’ : interpolation cubique
Si l’on ne spécifie pas le type, l’interpolation linéaire est prise par défaut.
A/ Dans le script suivant, nous allons étudier ces différents types d’interpolations sur un
même exemple de valeurs des fonctions :
1
g( x )= exp(−x 2 /5 ) [ 4 cos( x )+3 sin (x ) ]
f (x )=cos(x ) et √2
1- Tracer sur la même figure la fonction f (x ) sur l’intervalle [ 0 10 ] avec un pas égal 1 et la
courbe d'interpolation de type linear, sur le même intervalle avec un pas inférieur à 1.
2- Refaire la question (1) pour une interpolation de type spline.
3- Refaire la question (1) pour une interpolation de type cubic.

4-Refaire les question 1, 2 et 3 pour la fonction g( x) .


B/ L’interpolation de données peut se faire dans le domaine fréquentiel par la méthode de la
FFT (Transformée de Fourier rapide). La commande interpft(x,n) retourne un vecteur n par
interpolation dans le domaine fréquentiel (Transformée de Fourier du vecteur x).

1- Tracer la fonction h(t )=cos(t )−0.5 sin(2t ) sur l’intervalle [ 0 6 π ] avec un pas égal π /18
et la courbe d'interpolation en utilisant la fonction Matlab interpft.

2
% interpolation linéaire et non linéaire
%======================================================
% fonction cos(x)
%======================================================
clc; clear all;
x=0:10
y=cos(x); % point à interpoler
z=0:0.25:10 % le pas du vecteur z inférieur à celui de x
% interpolation linéaire
figure(1)
f=interp1(x,y,z); %interpolation linéaire
% tracé des valeurs réelles et de la courbe d'interpolation
h1=plot(x,y,'o',z,f,'r');
set(h1,'LineWidth',2.5);
grid
xlabel('interpolation linéaire')
% interpolation par splines cubique
figure(2)
f=interp1(x,y,z,'spline');
% tracé de la courbe d'interpolation splines
h2=plot(x,y,'o',z,f,'r');
set(h2,'LineWidth',2.5);
grid
xlabel('interpolation linéaire par splines cubiques')
% interpolation par cubique
figure(3)
f=interp1(x,y,z,'cubic');
% tracé de la courbe d'interpolation cubic
h3=plot(x,y,'o',z,f,'r');
set(h3,'LineWidth',2.5);
grid
xlabel('interpolation par cubiques')

%======================================================
% fonction exp(-x.^2/5).*(3*sin(x)+2*cos(x))
%======================================================
clc; clear all;
x=0:10 ;
%y=(-10*x.^3+4*x.^2+2*x+3).*sin(x); % point à interpoler
y=exp(-x.^2/5).*(3*sin(x)+2*cos(x));
z=0:0.25:10 ; % le pas du vecteur z inférieur à celui de x
% interpolation linéaire
figure(4)
f=interp1(x,y,z); %interpolation linéaire
% tracé des valeurs réelles et de la courbe d'interpolation
h1=plot(x,y,'o',z,f,'r');
set(h1,'LineWidth',2.5);
grid
xlabel('interpolation linéaire')
% interpolation par splines cubique
figure(5)
f=interp1(x,y,z,'spline');
% tracé de la courbe d'interpolation splines
h2=plot(x,y,'o',z,f,'r');
set(h2,'LineWidth',2.5);
grid
xlabel('interpolation linéaire par splines cubiques')
% interpolation par cubique
figure(6)

3
f=interp1(x,y,z,'cubic');
% tracé de la courbe d'interpolation cubic
h3=plot(x,y,'o',z,f,'r');
set(h3,'LineWidth',2.5);
grid
xlabel('interpolation par cubiques')

III. Tracé d’une fonction elliptique


Considérons l’intégrale elliptique de premier ordre suivant :
x
dt
u( x )=∫
0 √ ( 1−t 2)( 1−K 2 t2 ) avec K réel tel que |K|<1
On s’intéresse à la fonction inverse x(u). Abdel et Jacobi ont défini les fonctions suivantes:

{sn u=x(u)¿{cn u=√(1−sn u)¿¿¿¿


2

avec sn , cn et dn sont des fonctions elliptiques implémentées par la fonction Matlab ellipj.
Elles sont aussi appelées sinus et cosinus amplitude de Jacobi. On écrit donc:
[ sn cn dn ] =ellipj(u , M ) 2
avec K =M

Tracer les fonctions elliptiques sn , cn et dn dans l’intervalle pour M=1/2;


M=1/4 ; M=1/8 et M=1/16.
%===========================================================
% Fonction élliptique pour M=1/2; M=1/4 ; M=1/8 et M=1/16
%===========================================================
clc; clear all;
u=-10:1/100:10;
M=1/16 ;%M=0.5; %M=0.25 ; %M=0.125
[sn,cn,dn]=ellipj(u,M);
h1=plot(u,sn,'r',label,’u’); set(h1,'LineWidth',2.5); hold on;
h2=plot(u,cn,'b');
set(h2,'LineWidth',2.5); hold on;
h3=plot(u,dn,'k'); set(h3,'LineWidth',2.5);
axis([-10 10 -1.5 1.5]); grid;
title('fonctions elliptiques'); xlabel('u')

You might also like