Vous êtes sur la page 1sur 7

Compte rendu TP

Matlab

Préparé par : El Bouchikhi


Soulaimane
EL Fatehi Salah
eddine
Classe : 4°IAII
Année : 2011/2012

TP5 : de Quantification :

signal continu :
F0=200; % frequence de signal continu
T0=1/F0; % Periode
Te=1e-5; % periode d'echantillonnage
t=0:Te:T0; % intervale de temps
A=5;
S=A*sin(2*pi*F0*t);

Quantification par troncature :


q=.04; % pas de quantification

on devise le signal par q pour avoir des multibles de pas de quantification apres on
a besoin que des multibles entier, on utilise floor de la tranquature et apres on
multplie par le pas

SqT=floor(S/q)*q;
figure(1);
subplot(2,1,1); plot(t,S,t,SqT,'r'); axis([0 .75*T0 -5 5]); title('Signal quantifier par
Trancature');

Bruit de Troncature :
SbT=S-SqT;
subplot(2,1,2);plot(t,SbT); axis([0 .5*T0 -.1 .5]); title('Signal Bruit par Trancature');

Quantification pas arrondie :


on devise le signal par q pour avoir des multible de pas de quantification apres on
a besoin des multible entier on utilise floor de la tranquature et apres on multplie
pas .4
SqA=round(S/q)*q;

figure(2);
subplot(2,1,1); plot(t,S,t,SqA,'r'); axis([0 .75*T0 -5 5]); title('Signal quantifier par
Arrandi');grid;

Bruit de quantification :
SbA=S-SqA;
subplot(2,1,2);plot(t,SbA); axis([0 .5*T0 -.5 .5]); title('Signal Bruit par Arrandi');grid;

Puissance de bruit par Troncature :


p_bruit_theoT=(q^2/3);
p_mesurerT=var(SbT)
S_BT=(A^2)/(2*p_mesurerT);
puissance de bruit par Arrandi
p_bruit_theoA=(q^2/12);
p_mesurerA=var(SbA)
S_BA=(A^2)/(2*p_mesurerA);

TP5 : de Reconstitution :

Création de signal Peigne :


Fp=2e3; (fréquence de signal Peigne)
Tp=1/Fp; (Période de signal Peigne)
past=1e-6; (le pas de temps t)
t=0:past:100*Tp; (signal temps)
Peigne=.5*(square(2*pi*Fp*t,1)+1);

Echantillonnage de signal continue :


on respectant le théorème de Shannon
F=200;
S=5*cos(2*pi*F*t);
Signal échantillonné avec Fech=2KHz
Fech=1/past; (Période de signal spectre de la Peigne échantillonné)
Sech=S.*Peigne;
subplot(2,1,1);
plot(t,Sech);
axis([0 40*Tp -6 6]);
title('Signal, cos, Fech=2KHz');
grid;

Spectre de signal échantillonné avec Fech=2KHz :


[f,ModSPech]=Spectre(Sech,Fech);
subplot(2,1,2);
plot(f,ModSPech);
axis([-3e3 3e3 0 .03]);
title('Spectre de signal, cos,Fe=2Khz');
grid;
xlabel('fréquence');
ylabel('amplitude');
Filtre de reconstitution :
Wn=300*2*pi; (en (Rad/s))
order=4;
[num den]=butter(order,Wn,'s');
filtre=tf(num,den);

Reconstitution :
Srec=lsim(filtre,Sech,t);
subplot(2,1,2); plot(t,Srec);
axis([0 .02 -.06 .06]);
title('Reconstitution de signal, cos, Fech=2KHz');
grid;

TP6 : Analogique Numérique :


systme analogique :
K=5;
to1=.1;
to2=.5;
HP=tf(K,[to1*to2 (to1+to2) 1]);

generation de la repense indicielle :


past=1e-5;
t=0:past:6*to2;
rep_anal=step(HP,t);

programmation de l'équation de récurrence :


Te=.04; (période d'échantillonnage)
Fe=1/Te;
M=floor(6*to2/Te);
a0=K*Te^2/((to1*to2)+Te*(to1+to2)+ (Te^2));
b1=(2*to1*to2 + Te*(to1+to2))/((to1*to2)+Te*(to1+to2)+ (Te^2));
b2=-(to1*to2)/((to1*to2)+Te*(to1+to2)+ (Te^2));
u=0;
s(1)=a0;
s(2)=a0+b1;
for n=3:M
u(n)=1; (une entrer échelon unitaire)
s(n)=(a0*u(n))+(b1*s(n-1))+(b2*s(n-2)); (équation de récurrence)
end

comparaison des repense indicielle des deux systèmes :


tech=0:Te:(M-1)*Te;
figure(1);
plot(t,rep_anal);title('repense de systeme analogique');
hold on;
stem(tech,s);
comparaison des repense de fréquence des deux systèmes :
w=0:.1:10/to2;
rep_freq_ana=freqs(K,[to1*to2 (to1+to2) 1],w);
numz=a0;
denz=[1 -b1 -b2];
rep_freq_num=freqz(numz,denz,w/(2*pi),Fe);
figure(2);
plot(w,abs(rep_freq_ana),'r');
hold on;
plot(w,abs(rep_freq_num));

TP 7 : Regulateur
P=tf('s');
Simulation du Model réel en simulink :
sim('identif');

Chargement de fichier data.mat :


load('data.mat','R')

Extraction du vecteur temps,sortie et la derivé, de la structure R :


t=R.Time;
D=R.Data(:,2);
Y=R.Data(:,1);

Algorithme de Strejc pour un système Apériodique Stable :


Point d'inflextion Pf=max(F') :
Pf=max(D);
Pfn=Pf*ones(size(t)); ( Point d'inflexion)
plot(t,Y,t,Pfn,'r');
title('Strejc: Relever le point d''inflexion');

[x d]=ginput(1); (relever du point d'inflexion)


axis([x-.2 x+.2 d-.2 d+.2]);
title('Strejc: Relever deux points, celle du temps le plus grand la 1er');

Création de la tangente qui passe par le point d'inflexion :


Relever de dx et dy :
[px,py]=ginput(2);

Construction de la tangente :
a=(py(1)-py(2))/(px(1)-px(2)); % a=dx/dy
b=py(1)-a*px(1); % b=y1-a*x1
tg=a*t+b; % droit de la tengente
plot(t,Y);
title('Strejc: Relever la valeur en regime permanant');
Création de la droit du régime permanent :
Gs=max(Y); (relever du gain statique directement de la réponse)
Gsn=Gs*ones(size(t)); (valeur Finale)
Vin=0*ones(size(t)); (valeur Finale)

Tracer des trois courbe :


plot(t,Y,t,tg,t,Gsn,'r',t,Vin,'r')
axis([0 10 -.3 3]);
title('Strejc: Relever les deux instants Tu et Ta (Tu la 1er)');

Relever des instants Tu et Ta :


[tx,ty]=ginput(2);
Tu=tx(1);
Ta=tx(2)-tx(1);
Rs=Tu/Ta;

Tableau de Strejc T(9,3) :


T(:,1)=[1; 2; 3; 4; 5; 6; 7; 8; 9]; (l'ordre du Système)
T(:,2)=[0; .105; .22; .32; .41; .49; .57; .64; .71]; % Tu'/Ta
T(:,3)=[1; 2.718; 3.695; 4.463; 5.119; 5.699; 6.226; 6.711; 7.164]; (Ta/to)
n=1;
while T(n,2)<Rs
n=n+1;
end
n=n-1; (on prend le n le juste inferieur)

Tup=Ta*T(n,2); % Tu' qui correspond a la valeur dans le tableau T


rS=Tu-Tup; % calcule du retard
toS= Ta/T(n,3); % calcule de la constante de temps

Construction du modèle de Strejc :


HpS=exp(-rS*P)*Gs/(toS*P+1)^n;
[YS tS]=step(HpS,10); (Réponse du modèle de Strejc a un échelon)

Algorithme de Broida pour un système Apériodique Stable :


Construction des Droits qui passe par 28% et 40% de la valeur final :
Y28=.28*Gs; (y a 28% de la valeur finale)
Y28n=Y28*ones(size(t)); (Droit qui passe par Y28)
Y40=.4*Gs; (y a 40% de la valeur finale)
Y40n=Y40*ones(size(t)); (Droit qui passe par Y28)
plot(t,Y,t,Y28n,'r',t,Y40n,'r');
title('Broida: Relever des deux instants t1 puis t2');

Relever des Instant t1 et t2 :


[tB yB]=ginput(2);

Calcule de la constante de temps et du retard du Modèle de Broida :


toB=5.5*(tB(2)-tB(1));
rB=2.8*tB(1)-1.8*tB(2);

Construction du modèle de Broida :


HpB=exp(-rB*P)*Gs/(toB*P+1);
[YB tB]=step(HpB,10); % reponse du modele de Boida a un echellon

TP8 : Modélisation de MCC

Resolution de l'equation :
K=2; (gain statique du système)
Kcr=6.25; % gain critique
n=2.2:.01:4;
y=(1./(cos(pi./n))).^n;
plot(n,y,n,Kcr*K*ones(size(n)));

Strejc :
Tosc=.5; % periode d'oscillation
Wosc=2*pi/Tosc;
[N x]=ginput(1);
to=1*tan(pi/N)/Wosc;
order=floor(N);
ret=N-order;
P=tf('s');
to1=.1;
to2=.4;
Hp=K/((1+to1*P)^2*(1+to2*P));
HpS=K/((1+to*P)^order*(1+ret*P));
HpSr=exp(-ret*P)*K/(1+to*P)^order;

Broida :
toB=sqrt((Kcr*K)^2-1)/Wosc;
rB=(pi-atan(sqrt((Kcr*K)^2-1))/Wosc);
HpBr=K*exp(-rB*P)/(1+toB*P);
HpB=K/((1+toB*P)*(1+rB*P));
nyquist(Hp,HpS,HpB)

Vous aimerez peut-être aussi