% Funzione che converte i dati della cella di carico in dati di % forza mediante i valori di calibrazione. % Il risultato è la matrico DatiLoad function [DatiCrack,DatiNTCCrack,ErrCrackLink] = conv_grezziCrL(Crack,NTCCrack,DCalCrLTot,... NodoCrackLink,ErrCrackLink,CrL_NTC,rCrL,NuovoZeroCrL,IDcentralina,DTcatena,FileName) fileID = fopen(FileName,'a'); fmt = '%s \r'; text = 'conv_grezziCrL function started'; fprintf(fileID,fmt,text); [rA,cA] = size(Crack); DatiCrack = zeros(rA,cA); DatiNTCCrack = zeros(rA,cA); scrivo = 0; RIF = zeros(rCrL,1); for e = 1:rCrL if strcmp(NodoCrackLink(e,3),'4-20 mA') %% Conversione da mA a mm % Spacchetto i parametri di calibrazione a = DCalCrLTot(e,1); b = DCalCrLTot(e,2); c = DCalCrLTot(e,3); DatiCrack(:,e) = a*(Crack(:,e).^2)+b*Crack(:,e)+c; % conversione elseif strcmp(NodoCrackLink(e,3),'mV/V') %% Conversione da mV/V a mm % Spacchetto i parametri di calibrazione a = DCalCrLTot(e,1); b = DCalCrLTot(e,2); DatiCrack(:,e) = a*Crack(:,e)+b; % conversione elseif strcmp(NodoCrackLink(e,3),'Hz') %% Conversione da Hz a digit a mm % Spacchetto i parametri di calibrazione a = DCalCrLTot(e,1); b = DCalCrLTot(e,2); c = DCalCrLTot(e,3); digit = (Crack(:,e).^2)*0.001; % Freq. ^2 *E-3 if c == 0 % Sensori Geosense NomeFile = ['' IDcentralina '-' DTcatena '-RifCrL_Geo.csv']; if NuovoZeroCrL == 0 % Prima elaborazione scrivo = 1; c = -a*digit(1).^2-b*digit(1); RIF(e,1) = c; else RIF = csvread(NomeFile); c = RIF(e,1); end end DatiCrack(:,e) = a*digit.^2+b*digit+c; % conversione in mm elseif strcmp(NodoCrackLink(e,3),'Hz mm') %% Conversione da Hz a mm % Spacchetto i parametri di calibrazione a = DCalCrLTot(e,1); b = DCalCrLTot(e,2); c = DCalCrLTot(e,3); DatiCrack(:,e) = a*(Crack(:,e).^2)+b*Crack(:,e)+c; % conversione end A = 1.4051*10^(-3); B = 2.369*10^(-4); C = 1.019*10^(-7); if CrL_NTC(e,1)==1 % è presente il termometro R = NTCCrack(:,e); [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 ErrCrackLink(n,e) == 0 ErrCrackLink(n,e) = 0.5; end end end L = reallog(R); DatiNTCCrack(:,e) = (1./(A + B*L + C*(L.^3))) -273.2; % conversione in gradi centigradi [rT,~] = size(DatiNTCCrack); for T = 1:rT if DatiNTCCrack(T,e) > 70 || DatiNTCCrack(T,e) < -20 if T == 1 DatiNTCCrack(T,e) = DatiNTCCrack(T+1,e); else DatiNTCCrack(T,e) = DatiNTCCrack(T-1,e); end if ErrCrackLink(T,e) == 0 ErrCrackLink(T,e) = 0.5; end end end end end if scrivo == 1 csvwrite(NomeFile,RIF); end text = 'Calibrations of Crack Link defined correctly. conv_grezziCrL function closed'; fprintf(fileID,fmt,text); fclose(fileID); end