Sync from remote server: 2025-10-12 18:56:41
This commit is contained in:
114
ATD/conv_grezzi3DEL.m
Executable file
114
ATD/conv_grezzi3DEL.m
Executable file
@@ -0,0 +1,114 @@
|
||||
% 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
|
||||
Reference in New Issue
Block a user