Files
matlab-python/RSN/conv_grezziLL.m

39 lines
1.3 KiB
Matlab
Executable File

% Funzione che converte i dati ADC della cella di carico in dati di forza
% mediante i valori di calibrazione.
% Il risultato è la matrico DatiLoad
function DatiLoad = conv_grezziLL(ADCLoad,DCalLLTot,NodoLoadLink,FileName)
text = 'conv_grezziLL function started';
fileID = fopen(FileName,'a');
fmt = '%s \r';
fprintf(fileID,fmt,text);
if strcmp(NodoLoadLink(1,4),'mV/V') || strcmp(NodoLoadLink(1,4),'ADC')
caLoad = DCalLLTot(:,1);
intLoad = DCalLLTot(:,2);
elseif strcmp(NodoLoadLink(1,4),'4-20 mA')
a_Load = DCalLLTot(:,1);
b_Load = DCalLLTot(:,2);
c_Load = DCalLLTot(:,3);
end
%% Conversione dei punti ADC in dati di carico
[rL,cL] = size(ADCLoad);
DatiLoad = zeros(rL,cL);
for j=1:rL % date
for i=1:cL % nodi
if strcmp(NodoLoadLink(i,4),'mV/V') || strcmp(NodoLoadLink(i,4),'ADC')
DatiLoad(j,i) = caLoad(i,1)*ADCLoad(j,i) + intLoad(i,1); % conversione lineare
elseif strcmp(NodoLoadLink(i,4),'4-20 mA')
DatiLoad(j,i) = a_Load(i,1)*ADCLoad(j,i).^2 + b_Load(i,1)*ADCLoad(j,i) + c_Load(i,1); % conversione parabolica
end
end
end
text = 'Raw Data of Load Link converted into physycal units correctly. conv_grezziLL function closed';
fprintf(fileID,fmt,text);
fclose(fileID);
end