2 Partie Matlab

publicité
2 Partie Matlab
1 - sous-programme Matlab : calcul de l’itération de l’algorithme de
minimisation de la distance de structure
function [new_hm] = iteration_minimisation_distance_de_structure(hm,e,eps,lambda)
new_hm= hm-((lambda*eps)/(e'*e))*e;
2 – programme Matlab : calcul de l’itération de l’algorithme de
minimisation de la distance de structure
clear
load E.mat
load Yo.mat
p=3
lambda=1;
L=length(E);
E=[zeros(p-1,1);E];%concaténation de E
hm=zeros(p,1);
EPS = eps;
H = hm';
for k=0:L-1
e=flipud(E(k+1:k+p));
ym=e'*hm;
eps=ym-Yo(k+1);
hm = iteration_minimisation_distance_de_structure(hm,e,eps,lambda);
H = [H ; hm'];
EPS = [EPS;eps];
end
%graphe de l'évolution de hm(k)
figure(1),plot(H),grid ;
xlabel('k');
ylabel('hm(k)') ;
title('Graphe de hm(k), avec p=3);
%graphe p=3 évolution de epsilon de k
figure(2),plot(EPS),grid ;
xlabel('k');
ylabel('epsilon(k)') ;
title('Graphe de epsilon(k), avec p=3);
-9-

Tracé de l’évolution de hm(k)
Pour k = [0 ; L-1]
L = 250
- 10 -
P = {2, 3, 4, 5}
 L’ordre de la réponse impulsionnelle ho
On remarque que hm converge à l’ordre 3 et tend vers 0 au dessus de l’ordre 3.
- 11 -

Tracé de l’évolution de ε(k)
Pour k = [0 ;L-1]
L = 250
- 12 -
P=3
3 – Tracé de hm(k)
Pour λ = {0.5,1.5}
P=3
- 13 -
On remarque que
Pour λ = 0.5, hm converge à k = 20
Pour λ = 1, hm converge à k = 16
Pour λ = 1.5, hm converge à k = 40
D’où la vitesse de convergence est plus importante pour λ = 1 ; viens ensuite λ = 0.5, puis
λ=1.5
4 – sous-programme Matlab : calcul d’une itération de l’algorithme
des moindres carrés récursifs (minimisation de la distance d’état)
function [hm,N]=iteration_minimisation_mcr(hm,N,e,eps)
x=N*e;
gamma = 1/(1+e'*x);
K=gamma*x;
N = N -K*x';
hm = hm - K*eps;
5 – programme Matlab : identification de la réponse impulsionnelle
ho
clear
load E.mat
load Yo.mat
p=3;
lambda=1;
Q=0;
N=10^5*eye(p);
L=length(E);
E=[zeros(p-1,1);E];%concaténation de E
hm=zeros(p,1);
EPS = eps;
H = hm';
for k=0:L-1
e=flipud(E(k+1:k+p));
ym=e'*hm;
eps=ym-Yo(k+1);
[hm,N] = iteration_minimisation_mcr(hm,N,e,eps);
Q=Yo(k+1)-e;
H = [H ; hm'];
EPS = [EPS;eps];
end
%graphe de l'évolution de hm(k)
figure(1),plot(H),grid;
xlabel('k');
ylabel('hm(k)');
title('Graphe de hm(k), p=3');
text(255,1.35,'1.35');
- 14 -
text(255,0.7,'0.7');
text(255,-1.1,'-1.1');
%text(255,0,'0');
%graphe p=3 évolution de epsilon de k
figure(2),plot(EPS),grid;
xlabel('k');
ylabel('epsilon(k)');
title('Graphe de epsilon(k), p=3');
%graphe de Q
figure(3),plot(Q),grid;
xlabel('k');
ylabel('Q(k)');
title('Graphe de Q(k), p=3');

Tracé de l’évolution hm(k)
Pour k = [0 ;L-1]
L = 250
- 15 -
P = {2, 3, 4, 5}
- 16 -

L’ordre de la réponse impulsionnelle ho
On remarque que hm converge à l’ordre 3 et tend vers 0 au dessus de l’ordre 3.

Tracé de l’évolution ε(k)
Pour k = [0 ;L-1]
L = 250
- 17 -
P=3


Tracé de l’évolution Q(k)
Pour k = [0 ;L-1]
L = 250
P=3
Comparaison des vitesses de convergence
Pour l’algorithme de minimisation des distances de structure, la vitesse de convergence se
situe aux alentours de 20 échantillons et le coût calculatoire est relativement peu élevé.
Pour l’algorithme des moindres carrés récursifs, la vitesse de convergence se situe aux
alentours de 5 échantillons et le coût calculatoire est plus élevé.
La méthode la moins coûteuse est celle utilisant l’algorithme de minimisation des distances de
structure et la méthode qui converge le plus rapidement est celle utilisant l’algorithme des
moindres carrés récursifs.
- 18 -
Téléchargement