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
| clear all;
load('test_1.mat'); %charger le fichier
D = test_1;
tk_max = ((2e30)-1)*2e-6 ;
%Time = test_.X.Data; %Isoler les données
tk_FL = D.Y(1,5).Data; %qui nous interesse
tk_FR = D.Y(1,6).Data; % du fichier
tk_RL = D.Y(1,7).Data;
tk_RR = D.Y(1,8).Data; %charger les valeurs d'un enregistrement
% calcul des largeurs des impulsions
%Conversion FL
j1=0;
deltak_FL=zeros(size(tk_FL)); %Init deltak_FL et t_deltak_FL à 0
t_deltak_FL=zeros(size(tk_FL));
for i1=1:size(tk_FL,2)-1
if (tk_FL(i1)~=tk_FL(i1+1)) % test passage de dent
j1=j1+1;
if (tk_FL(i1+1)-tk_FL(i1))>0 %&& (tk_FL(i1+1)-tk_FL(i1))<0.1
deltak_FL(j1)=(tk_FL(i1+1)-tk_FL(i1))*1e2; % tk resolution -> 10ms sinon le tk est en s
t_deltak_FL(j1)=D.X.Data(i1);
else
deltak_FL(j1)= tk_max - tk_FL(i1)+tk_FL(i1+1);
t_deltak_FL(j1)=D.X.Data(i1);
end
end
end
delta_ind_FL=find(deltak_FL~=0); %range les valeurs de deltak_FL != 0 dans un vecteur
t_ind_FL=find(t_deltak_FL~=0); % idem mais pour t_deltak_FL
figure
plot(t_deltak_FL(delta_ind_FL),deltak_FL(delta_ind_FL));
xlabel('Time (s)')
ylabel('indice')
grid on
title ('valeurs delta t_k');
% calcul des largeurs des impulsions--------------------------------------
%Conversion FR
j2=0;
deltak_FR=zeros(size(tk_FR)); %Init deltak_FL et t_deltak_FL à 0
t_deltak_FR=zeros(size(tk_FR));
for i2=1:size(tk_FR,2)-1
if (tk_FR(i2)~=tk_FR(i2+1)) % test passage de dent
j2=j2+1;
if (tk_FR(i2+1)-tk_FR(i2))>0 %&& (tk_FL(i1+1)-tk_FL(i1))<0.1
deltak_FR(j2)=(tk_FR(i2+1)-tk_FR(i2))*1e2; % tk resolution -> 10ms sinon le tk est en s
t_deltak_FR(j2)=D.X.Data(i2);
else
deltak_FR(j2)= tk_max - tk_FR(i2)+tk_FR(i2+1);
t_deltak_FR(j2)=D.X.Data(i2);
end
end
end
delta_ind_FR=find(deltak_FR~=0); %range les valeurs de deltak_FL != 0 dans un vecteur
t_ind_FR=find(t_deltak_FR~=0); % idem mais pour t_deltak_FL
% calcul des largeurs des impulsions--------------------------------------
%Conversion RL
j3=0;
deltak_RL=zeros(size(tk_RL)); %Init deltak_FL et t_deltak_FL à 0
t_deltak_RL=zeros(size(tk_RL));
for i3=1:size(tk_RL,2)-1
if (tk_RL(i3)~=tk_RL(i3+1)) % test passage de dent
j3=j3+1;
if (tk_RL(i3+1)-tk_RL(i3))>0 %&& (tk_FL(i1+1)-tk_FL(i1))<0.1
deltak_RL(j3)=(tk_RL(i3+1)-tk_RL(i3))*1e2; % tk resolution -> 10ms sinon le tk est en s
t_deltak_RL(j3)=D.X.Data(i3);
else
deltak_RL(j3)= tk_max - tk_RL(i3)+tk_RL(i3+1);
t_deltak_RL(j3)=D.X.Data(i3);
end
end
end
delta_ind_RL=find(deltak_RL~=0); %range les valeurs de deltak_FL != 0 dans un vecteur
t_ind_RL=find(t_deltak_RL~=0); % idem mais pour t_deltak_FL
% calcul des largeurs des impulsions--------------------------------------
%Conversion RR
j4=0;
deltak_RR=zeros(size(tk_RR)); %Init deltak_FL et t_deltak_FL à 0
t_deltak_RR=zeros(size(tk_RR));
for i4=1:size(tk_RR,2)-1
if (tk_RR(i4)~=tk_RR(i4+1)) % test passage de dent
j4=j4+1;
if (tk_RR(i4+1)-tk_RR(i4))>0 %&& (tk_FL(i1+1)-tk_FL(i1))<0.1
deltak_RR(j4)=(tk_RR(i4+1)-tk_RR(i4))*1e2; % tk resolution -> 10ms sinon le tk est en s
t_deltak_RR(j4)=D.X.Data(i4);
else
deltak_RR(j4)= tk_max - tk_RR(i4)+tk_RR(i4+1);
t_deltak_RR(j4)=D.X.Data(i4);
end
end
end
delta_ind_RR=find(deltak_RR~=0); %range les valeurs de deltak_FL != 0 dans un vecteur
t_ind_RR=find(t_deltak_RR~=0); % idem mais pour t_deltak_FL
% reconstitution de la vitesse
v = (48/(2*pi))./deltak_FL(delta_ind_FL); %en rad/s
v=v*2;
figure
plot(t_deltak_FL(delta_ind_FL), v,'r',D.X.Data, D.Y(2).Data);
legend('Vitesse calculee','vitesse mesuree par ABS')
xlabel('Time (s)')
ylabel('Speed (rad/s)')
grid on
title ('Vitesse calculée');
M = nan(max([numel(t_deltak_FL) numel(t_deltak_FR) numel(t_deltak_RL) numel(t_deltak_RR)]),4);
M(1:numel(t_deltak_FL),1) = t_deltak_FL( : );
M(1:numel(t_deltak_FR),2) = t_deltak_FR( : );
M(1:numel(t_deltak_RL),3) = t_deltak_RL( : );
M(1:numel(t_deltak_RR),4) = t_deltak_RR( : );
N = sprintf(format,M);
save('delta3.asc','M','-ascii');
% fid = fopen('test.asc','wt');
% fprintf(fid,'%f %f %f %f\n', [tk_FL(:) tk_FR(:) tk_RL(:) tk_RR(:)].');
% fclose(fid);
%
%whos t_deltak_FL t_deltak_FR t_deltak_RL t_deltak_RR
%Convertir les données choisies en extension ascii et les rassembler dans
%le fichier TK.asc |
Partager