% Funzione che converte i dati grezzi in dati di accelerazione usando i % valori delle calibrazioni per i Tunnel Link % accTuL raccoglie le accelerazioni % magTuL raccoglie i dati di campo magnetico % ris_acc raccoglie le risultanti delle accelerazioni % ris_mag raccoglie le risultanti dei campi magnetici % T_TuL raccoglie i dati di temperatura function [accTuL,ris_acc_TuL,magTuL,ris_mag_TuL,T_TuL,ay_TuL,ay_TuL_AC] = conv_grezziTuL_Dati(... rTuL,accTuL,magTuL,tempTuL,DCalTuLTot,ay_TuL,t_TuL,ay_TuL_AC,t_TuL_AC,... NuovoZeroTuL,MEMS,FileName) fileID = fopen(FileName,'a'); fmt = '%s \r'; text = 'conv_grezziTuL function started'; fprintf(fileID,fmt,text); if MEMS == 2 % Spacchetto i parametri di calibrazione caX_Tu = DCalTuLTot(:,1); caY_Tu = DCalTuLTot(:,4); caZ_Tu = DCalTuLTot(:,7); pIntX_Tu = DCalTuLTot(:,2); pIntY_Tu = DCalTuLTot(:,5); pIntZ_Tu = DCalTuLTot(:,8); iIntX_Tu = DCalTuLTot(:,3); iIntY_Tu = DCalTuLTot(:,6); iIntZ_Tu = DCalTuLTot(:,9); caT_Tu = DCalTuLTot(:,10); intT_Tu = DCalTuLTot(:,11); %% Accelerometri cont = 1; cn = 1; t_TuL = t_TuL'; t_TuL_AC = t_TuL_AC'; % Contatore dei nodi, corregge le accelerazioni con le calibrazioni for ii=1:3*rTuL if cont==1 accTuL(:,ii) = accTuL(:,ii)*caX_Tu(cn)+(tempTuL(:,cn)*pIntX_Tu(cn)+iIntX_Tu(cn)); cont = cont+1; elseif cont==2 accTuL(:,ii) = accTuL(:,ii)*caY_Tu(cn)+(tempTuL(:,cn)*pIntY_Tu(cn)+iIntY_Tu(cn)); if NuovoZeroTuL == 1 ay_TuL(:,cn) = ay_TuL(:,cn)*caY_Tu(cn)+(t_TuL(:,cn)*pIntY_Tu(cn)+iIntY_Tu(cn)); ay_TuL_AC(:,cn) = ay_TuL_AC(:,cn)*caY_Tu(cn)+(t_TuL_AC(:,cn)*pIntY_Tu(cn)+iIntY_Tu(cn)); end cont = cont+1; else accTuL(:,ii) = accTuL(:,ii)*caZ_Tu(cn)+(tempTuL(:,cn)*pIntZ_Tu(cn)+iIntZ_Tu(cn)); cont = 1; cn = cn+1; end end magTuL = magTuL./1000; %% Conversione delle temperature [rT,~] = size(tempTuL); T_TuL = zeros(rT,1); for t = 1:rTuL T_TuL(:,t) = tempTuL(:,t)*caT_Tu(t,1) + intT_Tu(t,1); end end %% Calcolo della risultante [rAcc,cAcc] = size(accTuL); ris_acc_TuL = zeros(rAcc,cAcc/3); % matrice risultante accelerazioni clear ii clear cn cont = 1; % contatore cn = 0; %% Calcolo della risultante for ii = 1:(cAcc/3) % colonne for i = 1:rAcc % righe ris_acc_TuL(i,cont) = (accTuL(i,cn*3+1)^2+accTuL(i,cn*3+2)^2+accTuL(i,cn*3+3)^2)^0.5; ris_mag_TuL(i,cont) = (magTuL(i,cn*3+1)^2+magTuL(i,cn*3+2)^2+magTuL(i,cn*3+3)^2)^0.5; end cn = cn+1; cont = cont+1; end text = 'Raw Data of Tunnel Link converted into physycal units correctly. conv_grezziTuL function closed'; fprintf(fileID,fmt,text); fclose(fileID); end