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 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172
| pathname = uigetdir('C:\MATLAB701\work\IMP\DATA\', 'Pick a Directory');
nomfichier0=fullfile(pathname,'PhData.int');
nomfichier1=fullfile(pathname,'Imp1.int');
nomfichier2=fullfile(pathname,'Imp2.int');
nomfichier3=fullfile(pathname,'Imp3.int');
nomfichier4=fullfile(pathname,'Imp4.int');
nomfichier5=fullfile(pathname,'Imp5.int');
nomfichier6=fullfile(pathname,'Imp6.int');
fid0=fopen(nomfichier0);
fid1=fopen(nomfichier1);
fid2=fopen(nomfichier2);
fid3=fopen(nomfichier3);
fid4=fopen(nomfichier4);
fid5=fopen(nomfichier5);
fid6=fopen(nomfichier6);
valeurs_ph=fread(fid0,'short')/10;
valeurs_Imp1=fread(fid1,'short');
valeurs_Imp2=fread(fid2,'short');
valeurs_Imp3=fread(fid3,'short');
valeurs_Imp4=fread(fid4,'short');
valeurs_Imp5=fread(fid5,'short');
valeurs_Imp6=fread(fid6,'short');
valeurs_Imp_global=[valeurs_Imp1;valeurs_Imp2;valeurs_Imp3;valeurs_Imp4;valeurs_Imp5;valeurs_Imp6];
%Histogrammes, nombres d'éléments, valeurs centrales et pourcentages
[nelements,xcenter]=hist(valeurs_Imp_global);
pourcentage=(nelements/sum(nelements))*100;
[nelements_1024,xcenter_1024]=hist(valeurs_Imp_global,1024);
pourcentage_1024=(nelements_1024/sum(nelements_1024))*100;
[nelements_2048,xcenter_2048]=hist(valeurs_Imp_global,2048);
pourcentage_2048=(nelements_2048/sum(nelements_2048))*100;
[nelements_4096,xcenter_4096]=hist(valeurs_Imp_global,4096);
pourcentage_4096=(nelements_4096/sum(nelements_4096))*100;
%On cherche à présent à déterminer les différents types de reflux : gazeux,
%mélange liquide gazeux et liquide. Pour ce faire on utilise une convention
%décidée lors du stage : on détermine le rectangle dit de base à l'aide de
%la fonction test_valeur qui le fournit pour une courbe d'impédance donnée.
%Tous les points d'ordonnée supérieure à 5000 (Ohm) sont ditz gazeux, ceux
%entre 5000 et le maximum en ordonnée du rectangle de base constituent un
%mélange liquide gazeux et enfin ceux en dessous sont dits liquides.
%On définit d'abord les rectangles de bases pour les différentes
%impédances.
y1=test_valeur(valeurs_Imp1);
y2=test_valeur(valeurs_Imp2);
y3=test_valeur(valeurs_Imp3);
y4=test_valeur(valeurs_Imp4);
y5=test_valeur(valeurs_Imp5);
y6=test_valeur(valeurs_Imp6);
%Détermination du domaine liquide : on considère toutes les données
%en-dessous de max(yi) selon l'impédance i regardée.
valeurs_Imp1_liquide=[find(valeurs_Imp1<max(y1)) valeurs_Imp1(find(valeurs_Imp1<max(y1)))];
valeurs_Imp2_liquide=[find(valeurs_Imp2<max(y2)) valeurs_Imp2(find(valeurs_Imp2<max(y2)))];
valeurs_Imp3_liquide=[find(valeurs_Imp3<max(y3)) valeurs_Imp3(find(valeurs_Imp3<max(y3)))];
valeurs_Imp4_liquide=[find(valeurs_Imp4<max(y4)) valeurs_Imp4(find(valeurs_Imp4<max(y4)))];
valeurs_Imp5_liquide=[find(valeurs_Imp5<max(y5)) valeurs_Imp5(find(valeurs_Imp5<max(y5)))];
valeurs_Imp6_liquide=[find(valeurs_Imp6<max(y6)) valeurs_Imp6(find(valeurs_Imp6<max(y6)))];
%Détermination du domaine liquide/gazeux : on considère toutes les données
%entre max(yi) selon l'impédance i regardée et la valeur 5000.
valeurs_Imp1_melange=[find((valeurs_Imp1>=max(y1)) & (valeurs_Imp1<5000)) valeurs_Imp1(find((valeurs_Imp1>=max(y1)) & (valeurs_Imp1<5000)))];
valeurs_Imp2_melange=[find((valeurs_Imp2>=max(y2)) & (valeurs_Imp2<5000)) valeurs_Imp2(find((valeurs_Imp2>=max(y2)) & (valeurs_Imp2<5000)))];
valeurs_Imp3_melange=[find((valeurs_Imp3>=max(y3)) & (valeurs_Imp3<5000)) valeurs_Imp3(find((valeurs_Imp3>=max(y3)) & (valeurs_Imp3<5000)))];
valeurs_Imp4_melange=[find((valeurs_Imp4>=max(y4)) & (valeurs_Imp4<5000)) valeurs_Imp4(find((valeurs_Imp4>=max(y4)) & (valeurs_Imp4<5000)))];
valeurs_Imp5_melange=[find((valeurs_Imp5>=max(y5)) & (valeurs_Imp5<5000)) valeurs_Imp5(find((valeurs_Imp5>=max(y5)) & (valeurs_Imp5<5000)))];
valeurs_Imp6_melange=[find((valeurs_Imp6>=max(y6)) & (valeurs_Imp6<5000)) valeurs_Imp6(find((valeurs_Imp6>=max(y6)) & (valeurs_Imp6<5000)))];
%Détermination du domaine gazeux : on stocke dans différents vecteurs les
%abscisses (points) et les ordonnées (Ohm) correspondants à des ordonnées
%>=
%5000.
valeurs_Imp1_gazeux=[find(valeurs_Imp1>=5000) valeurs_Imp1(find(valeurs_Imp1>=5000))];
valeurs_Imp2_gazeux=[find(valeurs_Imp2>=5000) valeurs_Imp2(find(valeurs_Imp2>=5000))];
valeurs_Imp3_gazeux=[find(valeurs_Imp3>=5000) valeurs_Imp3(find(valeurs_Imp3>=5000))];
valeurs_Imp4_gazeux=[find(valeurs_Imp4>=5000) valeurs_Imp4(find(valeurs_Imp4>=5000))];
valeurs_Imp5_gazeux=[find(valeurs_Imp5>=5000) valeurs_Imp5(find(valeurs_Imp5>=5000))];
valeurs_Imp6_gazeux=[find(valeurs_Imp6>=5000) valeurs_Imp6(find(valeurs_Imp6>=5000))];
%Tracé des courbes d'impédances séparées
figure(1)
plot(valeurs_Imp1);
xlabel('Nombres de points pour 1 Hz');
ylabel('Valeur Imp1');
hold on
plot(y1,'r');
figure(2)
plot(valeurs_Imp2);
xlabel('Nombres de points pour 1 Hz');
ylabel('Valeur Imp2');
hold on
plot(y2,'r');
figure(3)
plot(valeurs_Imp3);
xlabel('Nombres de points pour 1 Hz');
ylabel('Valeur Imp3');
hold on
plot(y3,'r');
figure(4)
plot(valeurs_Imp4);
xlabel('Nombres de points pour 1 Hz');
ylabel('Valeur Imp4');
hold on
plot(y4,'r');
figure(5)
plot(valeurs_Imp5);
xlabel('Nombres de points pour 1 Hz');
ylabel('Valeur Imp5');
hold on
plot(y6,'r');
figure(6)
plot(valeurs_Imp6);
xlabel('Nombres de points pour 1 Hz');
ylabel('Valeur Imp6');
hold on
plot(y6,'r');
%tracé de la courbe d'impédance globale et du pH
figure(7)
subplot(2,2,1)
plot(valeurs_Imp_global);
xlabel('Nombres de points pour 1 Hz');
ylabel('Valeur Imp_global');
subplot(2,2,2)
plot(valeurs_ph,'r');
xlabel('Nombres de points pour 1 Hz');
ylabel('Valeur pH');
%Tracé des différents histogrammes
figure(8)
subplot(2,2,1);
hist(valeurs_Imp_global);
title('histogramme standard : découpage en 10');
subplot(2,2,2);
hist(valeurs_Imp_global,1024);
title('histogramme : découpage en 1024');
subplot(2,2,3);
hist(valeurs_Imp_global,2048);
title('histogramme : découpage en 2048');
subplot(2,2,4);
hist(valeurs_Imp_global,4096);
title('histogramme : découpage en 4096');
%Ecriture des données utiles dans des fichier xls
T1='Reflux liquide pour Imp1';
T1_p='Point';
T1_o='Ohm';
rangeL1_p=strcat('A4:A',num2str(size(valeurs_Imp1_liquide,1)+1));
rangeL1_o=strcat('B4:B',num2str(size(valeurs_Imp1_liquide,2)+1));
xlswrite('reflux_Imp1',{T1},'P','A1');
xlswrite('reflux_Imp1',{T1_p},'P','A3');
xlswrite('reflux_Imp1',{T1_o},'P','B3');
xlswrite('reflux_Imp1',valeurs_Imp1_liquide(:,1),'P',rangeL1_p);
xlswrite('reflux_Imp1',valeurs_Imp1_liquide(:,2),'P',rangeL1_o);
% X = [rand(5,1) rand(5,1)];
% range = strcat('A4:A',num2str(size(X(:,1)+1)));
% xlswrite('test',X,'P',range); |
Partager