1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118
| %Verifier le contenu :
rf1_real=reaction_node{1};
rf2_real=reaction_node{2};
rf1_img=reaction_node{3}.*i;
rf2_img=reaction_node{4}.*i;
rf1=rf1_real+rf1_img;
rf2=rf2_real+rf2_img;
%rf1 et rf2 sont des nombres complexes chaque ligne correspond à une frequence de sortie et chaque colonne correspond à une amplitude
%A et B sont les cosinus et sinus d'angles, on veut pour chaques frequences
%faire une projection
n_max=nb_frequences;
for n=1:1:n_max;
for z=1:1:nombre_noeuds;
rf_{n}(z)=rf1(n,z)*A(z)+rf2(n,z)*B(z);
rf_radial{n}=rf_{n}';
end
end
%rappel en complexe
%z=a+ib z'=a-ib donc le module=(z*z')^(1/2)
%partie reelle a=(Z+Z')/2
%partie img b=(Z-Z')/2i
%argument n'est pas atan=b/a car cela est defini à k.pi pres or un
%argument est toujours defini a 2.k.pi pres donc on utilise acos=a/module
for n=1:1:n_max;
for z=1:1:nombre_noeuds
conjugue_rf_radial{n}(z)=conj(rf_radial{n}(z));
module_rf_radial{n}(z)=(rf_radial{n}(z)*conjugue_rf_radial{n}(z))^(1/2);
partie_reel{n}(z)=(rf_radial{n}(z)+conjugue_rf_radial{n}(z))/2;
partie_imaginaire{n}(z)=(rf_radial{n}(z)-conjugue_rf_radial{n}(z))/(2*i);
argument_degres_rf_radial{n}(z)=(asin(partie_imaginaire{n}(z)/module_rf_radial{n}(z)))*(180/pi);
end
end
%MOYENNE
%A present on va trier les données pour que X soit la representation de %theta mais dans l'ordre
%croissant, et Y les composantes de U qui sont ds l'ordre correspondant a X
%on pourra ensuite facilement integrer avec TRAPZ
n_max=nb_frequences;
for n=1:1:n_max;
[X1 I1] = sort(Theta);%sort permet de mettre ds ordre croissant, ici on met theta ds ordre
Y1{n} = module_rf_radial{n}(I1); %puis on attribur cet ordr ds X1, Y1sera composantes aux theta ss perdre l'ordre
for(z=1:1:nombre_noeuds) ;
X1_rad(z)=X1(z)*(pi/180); %on passe X en radians pour l'integration
end
max_X1_rad=max(X1_rad);
min_X1_rad=min(X1_rad);
periode1=abs(max_X1_rad)+abs(min_X1_rad);
module_RF_mean{n}=(1/periode1)*trapz(X1_rad,Y1{n});
end
n_max=nb_frequences;
for n=1:1:n_max;
[X2 I2] = sort(Theta);%sort permet de mettre ds ordre croissant, ici on met theta ds ordre
Y2{n} = argument_degres_rf_radial{n}(I2); %puis on attribur cet ordr ds X1, Y1sera composantes aux theta ss perdre l'ordre
for(z=1:1:nombre_noeuds);
X2_rad(z)=X2(z)*(pi/180); %on passe X en radians pour l'integration
end
max_X2_rad=max(X2_rad);
min_X2_rad=min(X2_rad);
periode2=abs(max_X2_rad)+abs(min_X2_rad);
argument_degres_RF_mean{n}=(1/periode2)*trapz(X2_rad,Y2{n});
end
for n=1:1:n_max;
module(n)=module_RF_mean{n};
argument(n)=argument_degres_RF_mean{n};
end
%ON TRACE A PRESENT module_RF_mean EN FONCTION DE LA FREQUENCE
n_max=nb_frequences;
for n=1:1:n_max;
figure(21)
hold on
bar(n,module(n));
title(' SPECTRE D''AMPLITUDE', 'color', 'b'); %titre du graphique
xlabel('fréquence [Hz]');
ylabel('module-amplitude [MPa]'); %legende abscisse et ordonnée
end
%ON TRACE A PRESENT argument_RF_mean EN FONCTION DE LA FREQUENCE
n_max=nb_frequences;
for n=1:1:n_max;
figure(22)
hold on
bar(n,argument(n));
title(' SPECTRE DE PHASE', 'color', 'b'); %titre du graphique
xlabel('fréquence [Hz]');
ylabel('argument [degrès]'); %legende abscisse et ordonnée
end
%reconstruirction de la fonction à partir des spectre
%phy=arg(Pk)
%|Pk|=module de Pk
%p(t)=Pk.exp(jkwt)=|Pk|.exp(j(kwt+phy))=|Pk|.cos(kwt+phy)+|Pk|.j.sin(kwt+phy)
z = 1; %initialisation d'un compteur pour les indices de P
P = zeros(1,length(0:0.0005:2)); % on initialise P cela donne P=0, utilie pour 1ere boucle
for t=0:0.0005:2;
for n=1:1:n_max;
P(z)=P(z)+module(n)*cos(2*pi*n*t+argument(n))+module(n)*i*sin(2*pi*n*t+argument(n));
end
z = z+1;
end
P_physique=real(P);
T=[0:0.0005:2];
figure(23)
hold on
plot(T,P_physique)
title(' P(t) Physique', 'color', 'b'); %titre du graphique
xlabel('temps [s]');
ylabel('P(t) [MPa]') |
Partager