Files
matlab-python/ATD/conv_grezziAL.m

42 lines
1.6 KiB
Matlab
Executable File

% Funzione che converte i dati in mV/V della cella di carico in dati di
% forza mediante i valori di calibrazione.
% Il risultato è la matrico DatiLoad
function DatiAnalog = conv_grezziAL(ADCAnalog,DCalALTot,NodoAnalogLink,FileName)
fileID = fopen(FileName,'a');
fmt = '%s \r';
text = 'conv_grezziAL function started';
fprintf(fileID,fmt,text);
numAL = size(NodoAnalogLink); % numero di Analog Link
[rA,cA] = size(ADCAnalog);
DatiAnalog = zeros(rA,cA);
for jj=1:numAL
if strcmp(NodoAnalogLink(jj,3),'4-20 mA')
%% Conversione da 4-20 mA parabolica
% Spacchetto i parametri di calibrazione
a = DCalALTot(:,1);
b = DCalALTot(:,2);
c = DCalALTot(:,3);
DatiAnalog(:,jj) = a(jj,1)*(ADCAnalog(:,jj).^2)+b(jj,1)*ADCAnalog(:,jj)+c(jj,1); % conversione
elseif strcmp(NodoAnalogLink(jj,3),'mV/V')
%% Conversione da mV/V lineare
% Spacchetto i parametri di calibrazione
a = DCalALTot(:,1);
DatiAnalog(:,jj) = a(jj,1)*ADCAnalog(:,jj); % conversione
elseif strcmp(NodoAnalogLink(jj,3),'Hertz')
%% Conversione da Hertz lineare
% Spacchetto i parametri di calibrazione
GF = DCalALTot(:,1);
BF = DCalALTot(:,2);
digit = (ADCAnalog(:,jj).^2)*0.001; % Freq. ^2 *E-3
DatiAnalog(:,jj) = GF(jj,1)*BF(jj,1)*digit(:,1); % conversione in microEpsilon
end
end
text29 = 'Calibrations of Analog Link defined correctly. conv_grezziAL function closed';
fprintf(fileID,fmt,text29);
fclose(fileID);
end