9
Compte rendu TP Matlab

Compte Rendu TP Matlab

Embed Size (px)

Citation preview

Page 1: Compte Rendu TP Matlab

Compte rendu TP Matlab

Préparé par   : El Bouchikhi Soulaimane

Page 2: Compte Rendu TP Matlab

EL Fatehi Salah eddine

Classe   : 4°IAII

Année   : 2011/2012

TP5 : de Quantification :

signal continu :F0=200; % frequence de signal continuT0=1/F0; % PeriodeTe=1e-5; % periode d'echantillonnaget=0:Te:T0; % intervale de tempsA=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 .4SqA=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 :

Page 3: Compte Rendu TP Matlab

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 ShannonF=200;S=5*cos(2*pi*F*t);Signal échantillonné avec Fech=2KHzFech=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 :

Page 4: Compte Rendu TP Matlab

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);

Page 5: Compte Rendu TP Matlab

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/dyb=py(1)-a*px(1); % b=y1-a*x1tg=a*t+b; % droit de la tengenteplot(t,Y);

Page 6: Compte Rendu TP Matlab

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'/TaT(:,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;endn=n-1; (on prend le n le juste inferieur)

Tup=Ta*T(n,2); % Tu' qui correspond a la valeur dans le tableau TrS=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');

Page 7: Compte Rendu TP Matlab

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'oscillationWosc=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)