114 lines
5.3 KiB
Matlab
Executable File
114 lines
5.3 KiB
Matlab
Executable File
% Funzione che converte i dati in Hz in dati di allungamento adimensionale
|
|
% mediante i valori di calibrazione.
|
|
% Il risultato è la matrico DatiExtensometer
|
|
|
|
function [DatiExtensometer3D,DatiExtensometer3D_Rif,DatiNTCExtensometer3D,...
|
|
Err3DExtensometerLink] = conv_grezzi3DEL(Extensometer3D,NTCExtensometer3D,...
|
|
Extensometer3D_Rif,DCalEL3DTot,Nodo3DExtensometerLink,Err3DExtensometerLink,...
|
|
r3DEL,EL3D_NTC,FileName)
|
|
|
|
text = 'conv_grezzi3DEL function started';
|
|
fileID = fopen(FileName,'a');
|
|
fmt = '%s \r';
|
|
fprintf(fileID,fmt,text);
|
|
|
|
[rA,cA] = size(Extensometer3D);
|
|
DatiExtensometer3D = zeros(rA,cA);
|
|
DatiExtensometer3D_Rif = zeros(1,cA);
|
|
DatiNTCExtensometer3D = zeros(rA,cA/3);
|
|
s = 1;
|
|
ii = 1;
|
|
for e=1:r3DEL % numero di Extensometer Link
|
|
if strcmp(Nodo3DExtensometerLink(e,3),'Hz')
|
|
% Spacchetto i parametri di calibrazione
|
|
GFx = DCalEL3DTot(e,1);
|
|
BFx = DCalEL3DTot(e,2);
|
|
GFy = DCalEL3DTot(e,3);
|
|
BFy = DCalEL3DTot(e,4);
|
|
GFz = DCalEL3DTot(e,5);
|
|
BFz = DCalEL3DTot(e,6);
|
|
% Lettura di riferimento
|
|
digit_Rif_x = (Extensometer3D_Rif(1,ii).^2)*0.001; % Freq. ^2 *E-3
|
|
DatiExtensometer3D_Rif(1,ii) = GFx*BFx*digit_Rif_x; % conversione in microEpsilon
|
|
digit_Rif_y = (Extensometer3D_Rif(1,ii+1).^2)*0.001; % Freq. ^2 *E-3
|
|
DatiExtensometer3D_Rif(1,ii+1) = GFy*BFy*digit_Rif_y; % conversione in microEpsilon
|
|
digit_Rif_z = (Extensometer3D_Rif(1,ii+2).^2)*0.001; % Freq. ^2 *E-3
|
|
DatiExtensometer3D_Rif(1,ii+2) = GFz*BFz*digit_Rif_z; % conversione in microEpsilon
|
|
% Dati successivi
|
|
digit_x = (Extensometer3D(:,ii).^2)*0.001; % Freq. ^2 *E-3
|
|
DatiExtensometer3D(:,ii) = GFx*BFx*digit_x(:,1); % conversione in microEpsilon
|
|
digit_y = (Extensometer3D(:,ii+1).^2)*0.001; % Freq. ^2 *E-3
|
|
DatiExtensometer3D(:,ii+1) = GFy*BFy*digit_y(:,1); % conversione in microEpsilon
|
|
digit_z = (Extensometer3D(:,ii+2).^2)*0.001; % Freq. ^2 *E-3
|
|
DatiExtensometer3D(:,ii+2) = GFz*BFz*digit_z(:,1); % conversione in microEpsilon
|
|
elseif strcmp(Nodo3DExtensometerLink(e,3),'4-20 mA')
|
|
% Spacchetto i parametri di calibrazione
|
|
ax = DCalEL3DTot(e,1);
|
|
bx = DCalEL3DTot(e,2);
|
|
cx = DCalEL3DTot(e,3);
|
|
ay = DCalEL3DTot(e,4);
|
|
by = DCalEL3DTot(e,5);
|
|
cy = DCalEL3DTot(e,6);
|
|
az = DCalEL3DTot(e,7);
|
|
bz = DCalEL3DTot(e,8);
|
|
cz = DCalEL3DTot(e,9);
|
|
% Lettura di Riferimento
|
|
Rif_X = (str2double(cell2mat(Extensometer3D_Rif(1,ii))));
|
|
DatiExtensometer3D_Rif(1,ii) = ax*Rif_X.^2 + bx*Rif_X+cx; % conversione in microEpsilon
|
|
Rif_Y = (str2double(cell2mat(Extensometer3D_Rif(1,ii+1))));
|
|
DatiExtensometer3D_Rif(1,ii+1) = ay*Rif_Y.^2 + by*Rif_Y+cy; % conversione in microEpsilon
|
|
Rif_Z = (str2double(cell2mat(Extensometer3D_Rif(1,ii+2))));
|
|
DatiExtensometer3D_Rif(1,ii+2) = az*Rif_Z.^2 + bz*Rif_Z+cz; % conversione in microEpsilon
|
|
% Dati successivi
|
|
DatiExtensometer3D(1,ii) = ax*Extensometer3D(1,ii).^2 + bx*Extensometer3D(1,ii) +cx; % conversione in microEpsilon
|
|
DatiExtensometer3D(1,ii+1) = ay*Extensometer3D(1,ii+1).^2 + by*Extensometer3D(1,ii+1) +cy; % conversione in microEpsilon
|
|
DatiExtensometer3D(1,ii+2) = az*Extensometer3D(1,ii+2).^2 + bz*Extensometer3D(1,ii+2) +cz; % conversione in microEpsilon
|
|
elseif strcmp(Nodo3DExtensometerLink(e,3),'mV/V')
|
|
gainx = DCalEL3DTot(:,1);
|
|
intx = DCalEL3DTot(:,2);
|
|
gainy = DCalEL3DTot(:,3);
|
|
inty = DCalEL3DTot(:,4);
|
|
gainz = DCalEL3DTot(:,5);
|
|
intz = DCalEL3DTot(:,6);
|
|
% Lettura di Riferimento
|
|
Rif_X = (str2double(cell2mat(Extensometer3D_Rif(1,ii))));
|
|
DatiExtensometer3D_Rif(1,ii) = gainx*Rif_X + intx; % conversione in microEpsilon
|
|
Rif_Y = (str2double(cell2mat(Extensometer3D_Rif(1,ii+1))));
|
|
DatiExtensometer3D_Rif(1,ii+1) = gainy*Rif_Y + inty; % conversione in microEpsilon
|
|
Rif_Z = (str2double(cell2mat(Extensometer3D_Rif(1,ii+2))));
|
|
DatiExtensometer3D_Rif(1,ii) = gainz*Rif_Z + intz; % conversione in microEpsilon
|
|
% Dati successivi
|
|
DatiExtensometer3D(:,ii) = gainx*Extensometer3D(:,ii) + intx; % conversione in microEpsilon
|
|
DatiExtensometer3D(:,ii+1) = gainy*Extensometer3D(:,ii+1) + inty; % conversione in microEpsilon
|
|
DatiExtensometer3D(:,ii+2) = gainz*Extensometer3D(:,ii+2) + intz; % conversione in microEpsilon
|
|
end
|
|
ii = ii+3;
|
|
A = 1.4051*10^(-3);
|
|
B = 2.369*10^(-4);
|
|
C = 1.019*10^(-7);
|
|
if EL3D_NTC(s,1)==1 % è presente il termometro
|
|
R = NTCExtensometer3D(:,s);
|
|
[rN,~] = size(R);
|
|
for n = 1:rN
|
|
if R(n) <= 0
|
|
if n > 1
|
|
R(n) = R(n-1);
|
|
else
|
|
R(n) = 5000;
|
|
end
|
|
if Err3DExtensometerLink(n,ii) == 0
|
|
Err3DExtensometerLink(n,ii) = 0.5;
|
|
end
|
|
end
|
|
end
|
|
L = reallog(R);
|
|
DatiNTCExtensometer3D(:,s) = (1./(A + B*L + C*(L.^3))) -273.2; % conversione in gradi centigradi
|
|
end
|
|
s = s+1;
|
|
end
|
|
|
|
text = 'Calibrations convertion of 3D Extensometer Link defined correctly. conv_grezzi3DEL function closed';
|
|
fprintf(fileID,fmt,text);
|
|
fclose(fileID);
|
|
|
|
end |