% Funzione che converte i dati in Hz in dati di allungamento adimensionale % mediante i valori di calibrazione. % Il risultato è la matrico DatiExtensometer function [DatiExtensometer,DatiExtensometer_Rif,DatiNTCExtensometer,ErrExtensometerLink,Carico_Sensore]... = conv_grezziEL(Extensometer,NTCExtensometer,DatiExtensometerLink_Rif,DCalELTot,EL_NTC,... NodoExtensometerLink,ErrExtensometerLink,Calcolo_Carico,FileName) text = 'conv_grezziEL function started'; fileID = fopen(FileName,'a'); fmt = '%s \r'; fprintf(fileID,fmt,text); %% Conversione [rA,cA] = size(Extensometer); DatiExtensometer = zeros(rA,cA); DatiExtensometer_Rif = zeros(1,cA); DatiNTCExtensometer = zeros(rA,cA); for ii=1:cA % numero di Extensometer Link if strcmp(NodoExtensometerLink(ii,3),'Hz') % Spacchetto i parametri di calibrazione GF = DCalELTot(ii,1); BF = DCalELTot(ii,2); A = 1.4051*10^(-3); B = 2.369*10^(-4); C = 1.019*10^(-7); % Lettura di Riferimento digit_Rif = (str2double(cell2mat(DatiExtensometerLink_Rif(1,ii))).^2)*0.001; % Freq. ^2 *E-3 DatiExtensometer_Rif(1,ii) = GF*BF*digit_Rif; % conversione in microEpsilon % Dati successivi digit = (Extensometer(:,ii).^2)*0.001; % Freq. ^2 *E-3 DatiExtensometer(:,ii) = GF*BF*digit(:,1); % conversione in microEpsilon elseif strcmp(NodoExtensometerLink(ii,3),'4-20 mA') % Spacchetto i parametri di calibrazione a = DCalELTot(ii,1); b = DCalELTot(ii,2); c = DCalELTot(ii,3); A = 1.4051*10^(-3); B = 2.369*10^(-4); C = 1.019*10^(-7); % Lettura di Riferimento Rif = (str2double(cell2mat(DatiExtensometerLink_Rif(1,ii)))); DatiExtensometer_Rif(1,ii) = a*Rif(1,ii).^2 + b*Rif(1,ii) +c; % conversione in microEpsilon % Dati successivi DatiExtensometer(:,ii) = a*Extensometer(:,ii).^2 + b*Extensometer(:,ii) +c; % conversione in microEpsilon elseif strcmp(NodoExtensometerLink(ii,3),'mV/V') A = 1.4051*10^(-3); B = 2.369*10^(-4); C = 1.019*10^(-7); gain = DCalELTot(:,1); int = DCalELTot(:,2); % Lettura di Riferimento Rif = (str2double(cell2mat(DatiExtensometerLink_Rif(1,ii)))); DatiExtensometer_Rif(1,ii) = gain*Rif(1,ii) + int; % conversione in microEpsilon % Dati successivi DatiExtensometer(:,ii) = gain*Extensometer(:,ii) + int; % conversione in microEpsilon end if EL_NTC(ii,1)==1 % è presente il termometro R = NTCExtensometer(:,ii); [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 ErrExtensometerLink(n,ii) == 0 ErrExtensometerLink(n,ii) = 0.5; end end end L = reallog(R); DatiNTCExtensometer(:,ii) = (1./(A + B*L + C*(L.^3))) -273.2; % conversione in gradi centigradi end end if Calcolo_Carico == 1 Carico_Sensore = DCalELTot(:,end); else Carico_Sensore = []; end text = 'Calibration convertion of Extensometer Link defined correctly. conv_grezziEL function closed'; fprintf(fileID,fmt,text); fclose(fileID); end