Files
matlab-python/ATD/ATD_Dati.m

999 lines
38 KiB
Matlab
Executable File

function RC = ATD_Dati(IDcentralina,DTcatena)
%%% Programma per l'elaborazione dei dati di Cir Array, Rad Array, Tilt
%%% Link H, Tilt Link HR H, PreConv Array, PreConv Array HR e strumenti
%%% analogici per gallerie.
%%% Versione 3.4
tic
RC = 1; %#ok<NASGU>
text = ['Elaboration of chain ' DTcatena ' of control unit ' IDcentralina ' started correctly'];
d = datestr(datetime,'yyyy_mm_dd');
t = datestr(datetime,'HH_MM_SS');
FileName = ['LogFile-' IDcentralina '-' DTcatena '-' d '-' t '.txt'];
outdat = fopen(FileName,'wt+'); %#ok<NASGU>
fileID = fopen(FileName,'a');
fmt = '%s \r';
fprintf(fileID,fmt,text);
fclose(fileID);
%% Parte generale
% Associo ID company al relativo DB
% Definisco i parametri del Database
IDcompany = '1'; % DA INTEGRARE IN VERSIONI FUTURE
DB = database_definition(IDcompany,FileName);
% Apro la connessione al DB
dbname = cell2mat(DB{1,1});
username = cell2mat(DB{2,1});
password = cell2mat(DB{3,1});
driver = cell2mat(DB{4,1});
dburl = cell2mat(DB{5,1});
conn = database(dbname, username, password, driver, dburl);
% scarico Contol Unit ID
unitID = IDunit(IDcentralina,conn,FileName);
% questa funzione considera la prima data e ora da cui caricare i dati a seconda della catena
[date,time,date_AC,time_AC,Nodo_AC,unitID] = datainiziale(DTcatena,unitID,conn,FileName);
% funzione che elenca tutti i nodi ed il loro numero presenti per ogni tipo di sensore.
[idTool,NodoTunnelLink,NodoRadialLink,NodoTiltLinkH,...
NodoTiltLinkHRH,NodoPreConvLink,NodoPreConvLinkHR,NodoPressureLink,...
NodoLoadLink,NodoExtensometerLink,Nodo3DExtensometerLink,NodoWireExtensometerLink,...
NodoMultiPointRodExtensometer,NodoTiltLinkHR3DH,NodoPreConvLinkHR3D,...
NodoAnalogLink,NodoCrackLink,Nodo3DCrackLink,Nodo2DCrackLink,NodoStressMeter,...
rTuL,rRL,rTLH,rTLHRH,rPCL,rPCLHR,rPrL,rLL,rEL,r3DEL,rWEL,rMPBEL,rAL,rCrL,r3DCrL,...
r2DCrL,rSM,~,~] = tipologiaNodi(DTcatena,unitID,conn,FileName);
% funzione che ricostruisce i nodi della catena
catena = schema(idTool,conn,FileName);
% funzione che attiva/disattiva l'elaborazione per una determinata tipologia di nodo
[yesTuL,yesRL,yesTLH,yesTLHRH,~,yesPCL,yesPCLHR,~,yesPL,yesLL,...
yesEL,yes3DEL,yesWEL,yesMPBEL,yesAL,yesCrL,yes3DCrL,yes2DCrL,yesSM] = ...
YesNo(NodoTunnelLink,NodoRadialLink,NodoTiltLinkH,NodoTiltLinkHRH,...
NodoTiltLinkHR3DH,NodoPreConvLink,NodoPreConvLinkHR,NodoPreConvLinkHR3D,...
NodoPressureLink,NodoLoadLink,NodoExtensometerLink,Nodo3DExtensometerLink,...
NodoWireExtensometerLink,NodoMultiPointRodExtensometer,NodoAnalogLink,...
NodoCrackLink,Nodo3DCrackLink,Nodo2DCrackLink,NodoStressMeter,FileName);
% Definisco i parametri di elaborazione di un'installazione
[NdatiMedia,Ndatidespike,MEMS,tolleranzaAcc,Tmax,Tmin,Ndevst,Wdevst,...
Ndevst_HR,Wdevst_HR,NumBasi,elab_option] = Parametri_Installazione(idTool,...
conn,yesTuL,yesRL,yesTLH,yesTLHRH,yesPCL,yesPCLHR,yesMPBEL,yesWEL,FileName);
% funzione che ricostruisce segmenti di pertinenza etc
[SpeTuL,SpeRL,SpeTLH,PsTLH,SpeTLHRH,PsTLHRH,SpePCL,SpePCLHR]...
= schemaSP(yesTuL,yesRL,yesTLH,yesTLHRH,yesPCL,yesPCLHR,...
NodoTunnelLink,NodoRadialLink,NodoTiltLinkH,NodoTiltLinkHRH,...
NodoPreConvLink,NodoPreConvLinkHR,rTuL,rRL,rTLH,rTLHRH,rPCL,rPCLHR,catena,FileName);
%% Scarico dei dati
% funzione che carica i dati di calibrazione
[DCalTuLTot,DCalRLTot,DCalTLHTot,DCalTLHRHTot,DCalPCLTot,DCalPCLHRTot,...
DCalPLTot,DCalLLTot,DCalELTot,DCalEL3DTot,DCalWELTot,DCalMPBELTot,...
DCalALTot,DCalCrLTot,DCal3DCrLTot,DCal2DCrLTot,DCalSMTot,yesTuL,yesRL,yesTLH,yesTLHRH,...
yesPCL,yesPCLHR,yesPL,yesLL,yesEL,yes3DEL,yesWEL,yesMPBEL,yesCrL,yes3DCrL,yes2DCrL,...
yesAL,yesSM] = letturaCal(IDcentralina,DTcatena,catena,rTuL,rRL,rTLH,rTLHRH,...
rPCL,rPCLHR,rPrL,rLL,rEL,r3DEL,rWEL,rMPBEL,NumBasi,rAL,rCrL,r3DCrL,r2DCrL,rSM,...
NodoTunnelLink,NodoRadialLink,NodoTiltLinkH,NodoPreConvLink,NodoPressureLink,...
NodoLoadLink,NodoExtensometerLink,Nodo3DExtensometerLink,...
NodoWireExtensometerLink,NodoMultiPointRodExtensometer,NodoAnalogLink,...
NodoCrackLink,Nodo3DCrackLink,Nodo2DCrackLink,NodoStressMeter,yesTuL,yesRL,yesTLH,yesTLHRH,...
yesPCL,yesPCLHR,yesPL,yesLL,yesEL,yes3DEL,yesWEL,yesMPBEL,yesAL,yesCrL,yes3DCrL,yes2DCrL,...
yesSM,conn,FileName);
% Reinizializzazione scarico dati
[NuovoZeroTuL,NuovoZeroRL,NuovoZeroTLH,NuovoZeroTLHRH,NuovoZeroPCL,...
NuovoZeroPCLHR,NuovoZeroAL,NuovoZeroPrL,NuovoZeroLL,NuovoZeroEL,NuovoZero3DEL,...
NuovoZeroWEL,NuovoZeroMPBEL,NuovoZeroCrL,NuovoZero2DCrL,NuovoZero3DCrL,NuovoZeroSM,...
DatiElabTunnelLink,DatiElabRadialLink,DatiElabTiltLinkH,DatiElabTiltLinkHRH,...
DatiElabPreConvLink,DatiElabPreConvLinkHR,...
datainiTuL,datainiRL,datainiTLH,datainiTLHRH,datainiPCL,datainiPCLHR,...
tempoiniTuL,tempoiniRL,tempoiniTLH,tempoiniTLHRH,tempoiniPCL,tempoiniPCLHR,...
datainiPL,datainiLL,datainiEL,dataini3DEL,datainiWEL,datainiCrL,dataini2DCrL,...
dataini3DCrL,datainiAL,datainiMPBEL,datainiPrL,datainiSM,tempoiniPL,tempoiniLL,...
tempoiniEL,tempoini3DEL,tempoiniWEL,tempoiniCrL,tempoini2DCrL,tempoini3DCrL,tempoiniAL,...
tempoiniMPBEL,tempoiniPrL,tempoiniSM,DatiElabAnalogLink,Date_Rif_EL,Date_Rif_3DEL,...
Date_Rif_SM,ay_TuL,ay_TuL_AC,t_TuL_AC,t_TuL,data1_AC] = scarico(date,time);
if strcmp(IDcentralina,'ID0142') == 1 && strcmp(DTcatena,'DT0173')
[DatiTunnelLink,ErrTunnelLink,DatiRadialLink,ErrRadialLink,DatiTiltLinkH,ErrTiltLinkH,datainiTLH,...
DatiTiltLinkHRH,ErrTiltLinkHRH,DatiPreConvLink,ErrPreConvLink,DatiPreConvLinkHR,ErrPreConvLinkHR,...
DatiPressureLink,ErrPressureLink,DatiLoadLink,ErrLoadLink,DatiExtensometerLink,DatiNTCExtensometerLink,...
ErrExtensometerLink,Dati3DExtensometerLink,DatiNTC3DExtensometerLink,Err3DExtensometerLink,...
DatiWireExtensometerLink,DatiNTCWireExtensometerLink,ErrWireExtensometerLink,...
DatiMultiPointExtensometer,DatiNTCMultiPointExtensometer,ErrMultiPointExtensometer,...
DatiAnalogLink,ErrAnalogLink,DatiCrackLink,DatiNTCCrackLink,ErrCrackLink,Dati3DCrackLink,DatiNTC3DCrackLink,...
Err3DCrackLink,Dati2DCrackLink,DatiNTC2DCrackLink,Err2DCrackLink,DatiStressMeter,DatiNTCStressMeter,...
ErrStressMeter,yesTLH,ChEL,EL_NTC,Ch3DEL,EL3D_NTC,ChWEL,WEL_NTC,~,~,~,~,ChCrL,CrL_NTC,...
Ch3DCrL,CrL3D_NTC,Ch2DCrL,CrL2D_NTC,ChSM,SM_NTC,Batteria] = letturaHybrid(IDcentralina,DTcatena,datainiTLH,tempoiniTLH,...
NodoTiltLinkH,NuovoZeroTLH,yesTLH,rTLH,date,time,catena,conn,FileName);
else
% Lettura dati da DB
[Batteria,DatiTunnelLink,ErrTunnelLink,datainiTuL,...
DatiRadialLink,ErrRadialLink,datainiRL,DatiTiltLinkH,ErrTiltLinkH,datainiTLH,...
DatiTiltLinkHRH,ErrTiltLinkHRH,datainiTLHRH,DatiPreConvLink,ErrPreConvLink,datainiPCL,...
DatiPreConvLinkHR,ErrPreConvLinkHR,datainiPCLHR,DatiPressureLink,ErrPressureLink,...
DatiLoadLink,ErrLoadLink,DatiExtensometerLink,DatiExtensometerLink_Rif,...
DatiNTCExtensometerLink,ErrExtensometerLink,Dati3DExtensometerLink,ChEL,EL_NTC,...
Dati3DExtensometerLink_Rif,DatiNTC3DExtensometerLink,Err3DExtensometerLink,ErrNTC3DExtensometerLink,Ch3DEL,EL3D_NTC,...
DatiWireExtensometerLink,DatiNTCWireExtensometerLink,ErrWireExtensometerLink,ChWEL,WEL_NTC,...
DatiMultiPointExtensometer,DatiNTCMultiPointExtensometer,ErrMultiPointExtensometer,ErrNTCMultiPointExtensometer,~,~,...
DatiAnalogLink,ErrAnalogLink,datainiAL,~,~,...
DatiCrackLink,DatiNTCCrackLink,ErrCrackLink,ChCrL,CrL_NTC,...
Dati3DCrackLink,DatiNTC3DCrackLink,Err3DCrackLink,ErrNTC3DCrackLink,Ch3DCrL,CrL3D_NTC,...
Dati2DCrackLink,DatiNTC2DCrackLink,Err2DCrackLink,ErrNTC2DCrackLink,Ch2DCrL,CrL2D_NTC,...
DatiStressMeter,DatiStressMeter_Rif,DatiNTCStressMeter,DatiNTCStressMeter_Rif,ErrStressMeter,ChSM,SM_NTC,...
yesTuL,yesRL,yesTLH,yesTLHRH,yesPCL,yesPCLHR,yesPL,yesLL,yesEL,yes3DEL,...
yesWEL,yesMPBEL,yesAL,yesCrL,yes3DCrL,yes2DCrL,yesSM] = ...
lettura_Dati(IDcentralina,DTcatena,datainiTuL,tempoiniTuL,NodoTunnelLink,NuovoZeroTuL,date_AC,time_AC,Nodo_AC,...
datainiRL,tempoiniRL,NodoRadialLink,NuovoZeroRL,datainiTLH,tempoiniTLH,NodoTiltLinkH,NuovoZeroTLH,...
datainiTLHRH,tempoiniTLHRH,NodoTiltLinkHRH,NuovoZeroTLHRH,datainiPCL,tempoiniPCL,NodoPreConvLink,NuovoZeroPCL,...
datainiPCLHR,tempoiniPCLHR,NodoPreConvLinkHR,NuovoZeroPCLHR,datainiPL,tempoiniPL,NodoPressureLink,NuovoZeroPrL,...
datainiLL,tempoiniLL,NodoLoadLink,NuovoZeroLL,datainiEL,tempoiniEL,Date_Rif_EL,NodoExtensometerLink,NuovoZeroEL,...
dataini3DEL,tempoini3DEL,Date_Rif_3DEL,Nodo3DExtensometerLink,NuovoZero3DEL,...
datainiWEL,tempoiniWEL,NodoWireExtensometerLink,NuovoZeroWEL,...
datainiMPBEL,tempoiniMPBEL,NodoMultiPointRodExtensometer,NuovoZeroMPBEL,...
datainiAL,tempoiniAL,NodoAnalogLink,NumBasi,NuovoZeroAL,...
datainiCrL,tempoiniCrL,NodoCrackLink,NuovoZeroCrL,dataini3DCrL,tempoini3DCrL,Nodo3DCrackLink,NuovoZero3DCrL,...
dataini2DCrL,tempoini2DCrL,Nodo2DCrackLink,NuovoZero2DCrL,...
datainiSM,tempoiniSM,Date_Rif_SM,NodoStressMeter,NuovoZeroSM,yesTuL,yesRL,yesTLH,...
yesTLHRH,yesPCL,yesPCLHR,yesPL,yesLL,yesEL,yes3DEL,yesWEL,yesMPBEL,yesAL,yesCrL,...
yes3DCrL,yes2DCrL,yesSM,rTuL,rRL,rTLH,rTLHRH,rPCL,rPCLHR,rPrL,...
rLL,rEL,r3DEL,rWEL,rMPBEL,rAL,rCrL,r3DCrL,r2DCrL,rSM,conn,catena,date,time,FileName);
end
% Centralina
[DATA,Tcentralina] = centralina(IDcentralina,DTcatena,catena,datainiTuL,tempoiniTuL,...
datainiRL,tempoiniRL,datainiTLH,tempoiniTLH,datainiTLHRH,tempoiniTLHRH,...
datainiPCL,tempoiniPCL,datainiPCLHR,tempoiniPCLHR,datainiLL,tempoiniLL,datainiPrL,...
tempoiniPrL,datainiEL,tempoiniEL,dataini3DEL,tempoini3DEL,datainiWEL,tempoiniWEL,...
datainiCrL,tempoiniCrL,dataini3DCrL,tempoini3DCrL,datainiMPBEL,tempoiniMPBEL,conn);
DataLogger = [DATA cell2mat(Batteria(:,3)) cell2mat(Tcentralina(:,3))];
xlswrite('Dati.xlsx',DataLogger,1);
%% Parte di definizione dati, conversione in unità fisiche e calcolo medie
% --- Tunnel Link ---
if yesTuL == 1 % attiva l'elaborazione dei Tunnel Link
% definizione dei dati
[TimeTuL,accTuL,magTuL,tempTuL,ay_TuL,ay_TuL_AC,ErrTunnelLink] = defDatiTuL_Dati(...
DatiTunnelLink,ay_TuL,ay_TuL_AC,Ndatidespike,rTuL,NuovoZeroTuL,ErrTunnelLink,...
MEMS,FileName);
% Conversione dei dati grezzi
[accTuL,ris_acc_TuL,magTuL,ris_mag_TuL,T_TuL,ay_TuL,ay_TuL_AC] = conv_grezziTuL(...
rTuL,accTuL,magTuL,tempTuL,DCalTuLTot,ay_TuL,t_TuL,ay_TuL_AC,t_TuL_AC,...
NuovoZeroTuL,MEMS,FileName);
xlswrite('Dati.xlsx',accTuL,4);
xlswrite('Dati.xlsx',magTuL,5);
xlswrite('Dati.xlsx',ris_acc_TuL,6);
xlswrite('Dati.xlsx',ris_mag_TuL,7);
xlswrite('Dati.xlsx',T_TuL,8);
% media mobile dei dati
[ARRAYdate_TuL,accTuL,ACCdefRis_TuL,TempDef_TuL,ay_TuL,ay_TuL_AC] = ...
MediaDati_TuL(accTuL,TimeTuL,ris_acc_TuL,ay_TuL,ay_TuL_AC,NdatiMedia,...
T_TuL,NuovoZeroTuL,FileName);
else
ARRAYdate_TuL = [];
text = 'There are not data to convert for Tunnel Link';
fileID = fopen(FileName,'a');
fmt = '%s \r';
fprintf(fileID,fmt,text);
fclose(fileID);
clear text
end
% Pulisco le variabili non più utilizzate
clear DatiTunnelLink
clear tempTuL
clear DCalTuLTot
clear t_TuL
clear t_TuL_AC
clear ris_acc_TuL
clear T_TuL
clear TimeTuL
% --- Radial Link ---
if yesRL == 1 % attiva l'elaborazione dei Radial Link
% definizione dei dati
[TimeRL,accRL,tempRL,ErrRadialLink] = defDatiRL(DatiRadialLink,...
ErrRadialLink,Ndatidespike,rRL,MEMS,FileName);
xlswrite('Dati.xlsx',accRL,2);
xlswrite('Dati.xlsx',magRL,3);
% Conversione dei dati grezzi
[accRL,ris_acc_RL,T_RL] = conv_grezziRL(rRL,accRL,tempRL,DCalRLTot,MEMS,FileName);
xlswrite('Dati.xlsx',accRL,4);
xlswrite('Dati.xlsx',magRL,5);
xlswrite('Dati.xlsx',ris_acc_RL,6);
xlswrite('Dati.xlsx',ris_mag_RL,7);
xlswrite('Dati.xlsx',T_RL,8);
% media mobile dei dati
[ARRAYdate_RL,accRL,ACCdefRis_RL,TempDef_RL] = MediaDati_RL(accRL,...
TimeRL,ris_acc_RL,NdatiMedia,T_RL,FileName);
else
text = 'There are not data to convert for Radial Link';
fileID = fopen(FileName,'a');
fmt = '%s \r';
fprintf(fileID,fmt,text);
fclose(fileID);
ARRAYdate_RL = [];
clear text
end
% Pulisco le variabili non più utilizzate
clear DatiRadialLink
clear tempRL
clear DCalRLTot
clear ris_acc_RL
clear T_RL
clear TimeRL
% --- Tilt Link H ---
if yesTLH == 1 % attiva l'elaborazione dei Tilt Link H
% definizione dei dati
[TimeTLH,accTLH,tempTLH,ErrTiltLinkH] = defDatiTLH(...
DatiTiltLinkH,ErrTiltLinkH,Ndatidespike,rTLH,MEMS,FileName);
xlswrite('Dati.xlsx',accTLH,2);
xlswrite('Dati.xlsx',magTLH,3);
% conversione dei dati grezzi
[accTLH,ris_acc_TLH,tempTLH,ErrTiltLinkH] = conv_grezziTLH(rTLH,...
accTLH,tempTLH,DCalTLHTot,ErrTiltLinkH,MEMS,FileName);
xlswrite('Dati.xlsx',accTLH,4);
xlswrite('Dati.xlsx',magTLH,5);
xlswrite('Dati.xlsx',ris_acc_TLH,6);
xlswrite('Dati.xlsx',ris_mag_TLH,7);
xlswrite('Dati.xlsx',T_TLH,8);
% media mobile dei dati
[ARRAYdate_TLH,accTLH,ACCdefRis_TLH,TempDef_TLH] = MediaDati_TLH(...
accTLH,TimeTLH,ris_acc_TLH,NdatiMedia,tempTLH,FileName);
else
text = 'There are not data to convert for Tilt Link H';
fileID = fopen(FileName,'a');
fmt = '%s \r';
fprintf(fileID,fmt,text);
fclose(fileID);
ARRAYdate_TLH = [];
clear text
end
% Pulisco le variabili non più utilizzate
clear DatiTiltLinkH
clear tempTLH
clear DCalTLHTot
clear ris_acc_TLH
clear T_TLH
clear TimeTLH
% --- Tilt Link HR H ---
if yesTLHRH == 1 % attiva l'elaborazione dei Tilt Link HR H
% definizione dei dati
[TimeTLHRH,angTLHRH,tempTLHRH,ErrTiltLinkHRH] = defDatiTLHRH(...
DatiTiltLinkHRH,ErrTiltLinkHRH,Ndatidespike,NodoTiltLinkHRH,rTLHRH,...
IDcentralina,DTcatena,FileName);
% conversione dei dati grezzi
[angTLHRH,tempTLHRH] = conv_grezziTLHRH(angTLHRH,tempTLHRH,DCalTLHRHTot,...
rTLHRH,FileName);
% media mobile dei dati
[ARRAYdate_TLHRH,AngDef_TLHRH,TempDef_TLHRH] = MediaDati_TLHRH(angTLHRH,...
TimeTLHRH,NdatiMedia,tempTLHRH,FileName);
else
text = 'There are not data to convert for Tilt Link HR H';
fileID = fopen(FileName,'a');
fmt = '%s \r';
fprintf(fileID,fmt,text);
fclose(fileID);
ARRAYdate_TLHRH = [];
clear text
end
% Pulisco le variabili non più utilizzate
clear DatiTiltLinkHRH
clear tempTLHRH
clear DCalTLHRHTot
clear ang_TLHRH
clear TimeTLHRH
% --- PreConv Link ---
if yesPCL == 1 % attiva l'elaborazione dei PreConv Link
% definizione dei dati
[TimePCL,accPCL,tempPCL,ErrPreConvLink] = defDatiPCL(DatiPreConvLink,...
ErrPreConvLink,Ndatidespike,rPCL,MEMS,FileName);
xlswrite('Dati.xlsx',accPCL,2);
xlswrite('Dati.xlsx',magPCL,3);
% conversione dei dati grezzi
[accPCL,ris_acc_PCL,T_PCL] = conv_grezziPCL(rPCL,accPCL,tempPCL,DCalPCLTot,...
MEMS,FileName);
xlswrite('Dati.xlsx',accPCL,4);
xlswrite('Dati.xlsx',magPCL,5);
xlswrite('Dati.xlsx',ris_acc_PCL,6);
xlswrite('Dati.xlsx',ris_mag_PCL,7);
xlswrite('Dati.xlsx',T_PCL,8);
% media mobile dei dati
[ARRAYdate_PCL,accPCL,ACCdefRis_PCL,TempDef_PCL] = MediaDati_PCL(...
accPCL,TimePCL,ris_acc_PCL,NdatiMedia,T_PCL,FileName);
else
text = 'There are not data to convert for PreConv Link';
fileID = fopen(FileName,'a');
fmt = '%s \r';
fprintf(fileID,fmt,text);
fclose(fileID);
ARRAYdate_PCL = [];
clear text
end
% Pulisco le variabili non più utilizzate
clear DatiPreConvLink
clear tempPCL
clear TimePCL
clear DCalPCLTot
clear ris_acc_PCL
clear T_PCL
% --- PreConv Link HR ---
if yesPCLHR == 1 % attiva l'elaborazione dei PreConv Link HR
% definizione dei dati
[TimePCLHR,angPCLHR,tempPCLHR,ErrPreConvLinkHR] = defDatiPCLHR(...
DatiPreConvLinkHR,ErrPreConvLinkHR,NodoPreConvLinkHR,Ndatidespike,rPCLHR,...
IDcentralina,DTcatena,FileName);
% conversione dei dati grezzi
[angPCLHR,tempPCLHR] = conv_grezziPCLHR(angPCLHR,tempPCLHR,DCalPCLHRTot,...
rPCLHR,FileName);
% media mobile dei dati
[ARRAYdate_PCLHR,AngDef_PCLHR,TempDef_PCLHR] = MediaDati_PCLHR(...
angPCLHR,TimePCLHR,NdatiMedia,tempPCLHR,FileName);
else
text = 'There are not data to convert for PreConv Link HR';
fileID = fopen(FileName,'a');
fmt = '%s \r';
fprintf(fileID,fmt,text);
fclose(fileID);
ARRAYdate_PCLHR = [];
clear text
end
% Pulisco le variabili non più utilizzate
clear DatiPreConvLinkHR
clear angPCLHR
clear tempPCLHR
clear DCalPCLHRTot
clear T_PCLHR
clear TimePCLHR
% --- Pressure Link ---
if yesPL == 1 % arriva l'elaborazione dei Pressure Link
% definizione dei dati
[TimePL,Pressure,ErrPressureLink] = defDatiPL(DatiPressureLink,...
ErrPressureLink,Ndatidespike,rPrL,FileName);
% conversione dei dati grezzi
DatiPressure = conv_grezziPL(Pressure,DCalPLTot,NodoPressureLink,FileName);
% media mobile dei dati
[ARRAYdate_PL,DatiPressure] = MediaDati_PL(DatiPressure,TimePL,NdatiMedia,FileName);
else
ARRAYdate_PL = [];
DatiPressure = [];
text = 'There are not data to convert for Pressure Link';
fileID = fopen(FileName,'a');
fmt = '%s \r';
fprintf(fileID,fmt,text);
fclose(fileID);
clear text
end
% Pulisco le variabili non più utilizzate
clear DatiPressureLink
clear TimePL
clear Pressure
clear DCalPLTot
% --- Load Link ---
if yesLL == 1 % attiva l'elaborazione dei Load Link
% definizione dei dati
[TimeLL,Load,ErrLoadLink] = defDatiLL(DatiLoadLink,ErrLoadLink,...
Ndatidespike,rLL,FileName);
% Conversione dei dati grezzi
DatiLoad = conv_grezziLL(Load,DCalLLTot,NodoLoadLink,FileName);
% media mobile dei dati
[ARRAYdate_LL,DatiLoad] = MediaDati_LL(DatiLoad,TimeLL,NdatiMedia,FileName);
else
ARRAYdate_LL = [];
DatiLoad = [];
text = 'There are not data to convert for Load Link';
fileID = fopen(FileName,'a');
fmt = '%s \r';
fprintf(fileID,fmt,text);
fclose(fileID);
clear text
end
% Pulisco le variabili non più utilizzate
clear DatiLoadLink
clear TimeLL
clear Load
clear DCalLLTot
% --- Extensometer Link ---
if yesEL == 1
% definizione dei dati
[TimeEL,Extensometer,NTCExtensometer,ErrExtensometerLink]...
= defDatiEL(DatiExtensometerLink,DatiNTCExtensometerLink,ErrExtensometerLink,...
ChEL,EL_NTC,rEL,Ndatidespike,FileName);
% Conversione dei dati grezzi
[DatiExtensometer,DatiExtensometer_Rif,DatiNTCExtensometer,ErrExtensometerLink]...
= conv_grezziEL(Extensometer,NTCExtensometer,DatiExtensometerLink_Rif,DCalELTot,EL_NTC,...
NodoExtensometerLink,ErrExtensometerLink,FileName);
% media mobile dei dati
[ARRAYdate_EL,DatiExtensometer] = MediaDati_EL(DatiExtensometer,TimeEL,NdatiMedia,FileName);
% Sottraggo la misura di riferimento
DatiExtensometer = DatiExtensometer - DatiExtensometer_Rif(1,:);
else
ARRAYdate_EL = [];
DatiExtensometer = [];
DatiNTCExtensometer = [];
text = 'There are not data to convert for Extensometer Link';
fileID = fopen(FileName,'a');
fmt = '%s \r';
fprintf(fileID,fmt,text);
fclose(fileID);
clear text
end
% Pulisco le variabili non più utilizzate
clear DatiExtensometerLink
clear DatiNTCExtensometerLink
clear DatiExtensometerLink_Rif
clear TimeEL
clear Extensometer
clear NTCExtensometer
clear DCalELTot
clear DatiExtensometer_Rif
% --- 3D Extensometer Link ---
if yes3DEL == 1
% definizione dei dati
[Time3DEL,Extensometer3D,Extensometer3D_Rif,NTCExtensometer3D,...
Err3DExtensometerLink,ErrNTC3DExtensometerLink] = ...
defDati3DEL(Dati3DExtensometerLink,Dati3DExtensometerLink_Rif,...
DatiNTC3DExtensometerLink,Err3DExtensometerLink,ErrNTC3DExtensometerLink,...
Nodo3DExtensometerLink,r3DEL,Ch3DEL,EL3D_NTC,Ndatidespike,FileName);
% Conversione dei dati grezzi
[DatiExtensometer3D,DatiExtensometer3D_Rif,DatiNTCExtensometer3D,...
Err3DExtensometerLink] = conv_grezzi3DEL(Extensometer3D,NTCExtensometer3D,...
Extensometer3D_Rif,DCalEL3DTot,Nodo3DExtensometerLink,Err3DExtensometerLink,...
r3DEL,EL3D_NTC,FileName);
% media mobile dei dati
[ARRAYdate_3DEL,DatiExtensometer3D] = MediaDati_3DEL(DatiExtensometer3D,Time3DEL,...
NdatiMedia,FileName);
% Sottraggo la misura di riferimento
DatiExtensometer3D = DatiExtensometer3D - DatiExtensometer3D_Rif(1,:);
else
ARRAYdate_3DEL = [];
DatiExtensometer3D = [];
DatiNTCExtensometer3D = [];
text = 'There are not data to convert for 3D Extensometer Link';
fileID = fopen(FileName,'a');
fmt = '%s \r';
fprintf(fileID,fmt,text);
fclose(fileID);
clear text
end
% Pulisco le variabili non più utilizzate
clear Dati3DExtensometerLink
clear DatiNTC3DExtensometerLink
clear Dati3DExtensometerLink_Rif
clear Time3DEL
clear Extensometer3D
clear NTCExtensometer3D
clear DCal3DELTot
clear DatiExtensometer3D_Rif
% --- Wire Extensometer Link ---
if yesWEL == 1
% definizione dei dati
[TimeWEL,WireExtensometer,NTCWireExtensometer,ErrWireExtensometerLink]...
= defDatiWEL(DatiWireExtensometerLink,DatiNTCWireExtensometerLink,...
ErrWireExtensometerLink,ChWEL,WEL_NTC,rWEL,Ndatidespike,FileName);
% Conversione dei dati grezzi
[DatiWireExtensometer,DatiNTCWireExtensometer,ErrWireExtensometerLink] = conv_grezziWEL(...
WireExtensometer,NTCWireExtensometer,DCalWELTot,NodoWireExtensometerLink,...
ErrWireExtensometerLink,WEL_NTC,rWEL,Tmax,Tmin,FileName);
% media mobile dei dati
[ARRAYdate_WEL,DatiWireExtensometer] = MediaDati_WEL(DatiWireExtensometer,...
TimeWEL,NdatiMedia,FileName);
else
ARRAYdate_WEL = [];
DatiWireExtensometer = [];
DatiNTCWireExtensometer = [];
text = 'There are not data to convert for Wire Extensometer Link';
fileID = fopen(FileName,'a');
fmt = '%s \r';
fprintf(fileID,fmt,text);
fclose(fileID);
clear text
end
% Pulisco le variabili non più utilizzate
clear DatiWireExtensometerLink
clear DatiNTCWireExtensometerLink
clear TimeWEL
clear WireExtensometer
clear NTCWireExtensometer
clear DCalWELTot
% --- MultiPoint Rod Extensometer ---
if yesMPBEL == 1
% definizione dei dati
[TimeMPBEL,DatiMPBEL,~,ErrMultiPointExtensometer] = ...
defDatiMPBEL(DatiMultiPointExtensometer,DatiNTCMultiPointExtensometer,...
ErrMultiPointExtensometer,FileName);
% Conversione dei dati grezzi
DatiMultiBase = conv_grezziMPBEL(DatiMPBEL,NumBasi,DCalMPBELTot,FileName);
% media mobile dei dati
[ARRAYdate_MPBEL,DatiMultiBase] = MediaDati_MPBEL(DatiMultiBase,TimeMPBEL,NdatiMedia,FileName);
else
ARRAYdate_MPBEL = [];
DatiMultiBase = [];
text = 'There are not data to convert for MultiPoint Borehole Rod Extensometer';
fileID = fopen(FileName,'a');
fmt = '%s \r';
fprintf(fileID,fmt,text);
fclose(fileID);
clear text
end
% Pulisco le variabili non più utilizzate
clear DatiMultiPointExtensometer
clear DatiNTCMultiPointExtensometer
clear TimeMPBEL
clear DCalMPBELTot
% --- Analog Link ---
if yesAL == 1
% definizione dei dati
[TimeAL,ADCAnalog,ErrAnalogLink] = defDatiAL(DatiAnalogLink,ErrAnalogLink,FileName);
% Conversione dei dati grezzi
DatiAnalog = conv_grezziAL(ADCAnalog,DCalALTot,NodoAnalogLink,FileName);
% media mobile dei dati
[ARRAYdate_AL,DatiAnalog] = MediaDati_AL(DatiAnalog,TimeAL,NdatiMedia,FileName);
else
ARRAYdate_AL = [];
DatiAnalog = [];
text = 'There are not data to convert for Analog Link';
fileID = fopen(FileName,'a');
fmt = '%s \r';
fprintf(fileID,fmt,text);
fclose(fileID);
clear text
end
% Pulisco le variabili non più utilizzate
clear DatiAnalogLink
clear ADCAnalog
clear TimeAL
clear DCalALTot
% --- Crack Link ---
if yesCrL == 1
% definizione dei dati
[TimeCrL,Crack,NTCCrack,ErrCrackLink] = defDatiCrL(DatiCrackLink,...
DatiNTCCrackLink,ErrCrackLink,ChCrL,CrL_NTC,rCrL,Ndatidespike,FileName);
% Conversione dei dati grezzi
[DatiCrack,DatiNTCCrack,ErrCrackLink] = conv_grezziCrL(Crack,NTCCrack,DCalCrLTot,...
NodoCrackLink,ErrCrackLink,CrL_NTC,rCrL,NuovoZeroCrL,IDcentralina,DTcatena,FileName);
% media mobile dei dati
[ARRAYdate_CrL,DatiCrack] = MediaDati_CrL(DatiCrack,TimeCrL,NdatiMedia,FileName);
else
ARRAYdate_CrL = [];
DatiCrack = [];
DatiNTCCrack = [];
text = 'There are not data to convert for Crack Link';
fileID = fopen(FileName,'a');
fmt = '%s \r';
fprintf(fileID,fmt,text);
fclose(fileID);
clear text
end
% Pulisco le variabili non più utilizzate
clear DatiCrackLink
clear TimeCrL
clear Crack
clear NTCCrack
clear DCalCrLTot
% --- 2D Crack Link ---
if yes2DCrL == 1
% definizione dei dati
[Time2DCrL,Crack2D,NTCCrack2D,Err2DCrackLink,ErrNTC2DCrackLink] = ...
defDati2DCrL(Dati2DCrackLink,DatiNTC2DCrackLink,Err2DCrackLink,ErrNTC2DCrackLink,...
r2DCrL,Nodo2DCrackLink,Ch2DCrL,CrL2D_NTC,Ndatidespike,FileName);
% Conversione dei dati grezzi
[Dati2DCrack,DatiNTCCrack2D,Err2DCrackLink] = conv_grezzi2DCrL(...
Crack2D,NTCCrack2D,DCal2DCrLTot,Nodo2DCrackLink,Err2DCrackLink,CrL2D_NTC,...
r2DCrL,NuovoZero2DCrL,IDcentralina,DTcatena,FileName);
% media mobile dei dati
[ARRAYdate_2DCrL,Dati2DCrack] = MediaDati_2DCrL(Dati2DCrack,Time2DCrL,NdatiMedia,FileName);
else
ARRAYdate_2DCrL = [];
Dati2DCrack = [];
DatiNTCCrack2D = [];
text = 'There are not data to convert for 2D Crack Link';
fileID = fopen(FileName,'a');
fmt = '%s \r';
fprintf(fileID,fmt,text);
fclose(fileID);
clear text
end
clear Dati2DCrackLink
clear Time2DCrL
clear Crack2D
clear DCal2DCrLTot
clear DatiNTC2DCrackLink
% --- 3D Crack Link ---
if yes3DCrL == 1
% definizione dei dati
[Time3DCrL,Crack3D,NTCCrack3D,Err3DCrackLink,ErrNTC3DCrackLink] = ...
defDati3DCrL(Dati3DCrackLink,DatiNTC3DCrackLink,Err3DCrackLink,ErrNTC3DCrackLink,...
r3DCrL,Nodo3DCrackLink,Ch3DCrL,CrL3D_NTC,Ndatidespike,FileName);
% Conversione dei dati grezzi
[Dati3DCrack,DatiNTCCrack3D,Err3DCrackLink] = conv_grezzi3DCrL(...
Crack3D,NTCCrack3D,DCal3DCrLTot,Nodo3DCrackLink,Err3DCrackLink,CrL3D_NTC,...
r3DCrL,NuovoZero3DCrL,IDcentralina,DTcatena,FileName);
% media mobile dei dati
[ARRAYdate_3DCrL,Dati3DCrack] = MediaDati_3DCrL(Dati3DCrack,Time3DCrL,NdatiMedia,FileName);
else
ARRAYdate_3DCrL = [];
Dati3DCrack = [];
DatiNTCCrack3D = [];
text = 'There are not data to convert for 3D Crack Link';
fileID = fopen(FileName,'a');
fmt = '%s \r';
fprintf(fileID,fmt,text);
fclose(fileID);
clear text
end
clear Dati3DCrackLink
clear Time3DCrL
clear Crack3D
clear DCal3DCrLTot
clear DatiNTC3DCrackLink
% --- Stress Meter ---
if yesSM == 1
% definizione dei dati
[TimeSM,Stress,NTCStress,ErrStressMeter] = defDatiSM(DatiStressMeter,...
DatiNTCStressMeter,ErrStressMeter,ChSM,SM_NTC,rSM,Ndatidespike,FileName);
% Conversione dei dati grezzi
[DatiStress,DatiNTCStress,ErrStressMeter] = conv_grezziSM(Stress,NTCStress,...
DatiStressMeter_Rif,DatiNTCStressMeter_Rif,DCalSMTot,NodoStressMeter,ErrStressMeter,...
SM_NTC,rSM,FileName);
% media mobile dei dati
[ARRAYdate_SM,DatiStress] = MediaDati_SM(DatiStress,TimeSM,NdatiMedia,FileName);
else
ARRAYdate_SM = [];
DatiStress = [];
DatiNTCStress = [];
text = 'There are not data to convert for Stress Meter';
fileID = fopen(FileName,'a');
fmt = '%s \r';
fprintf(fileID,fmt,text);
fclose(fileID);
clear text
end
% Pulisco le variabili non più utilizzate
clear DatiStressMeter
clear DatiNTCStressMeter
clear TimeSM
clear Stress
clear NTCStress
clear DCalSMTot
%% Parte di Elaborazione
% --- Analisi Tunnel Link ---
if yesTuL == 1
margine = 1; % margine di n gg prima
[X_TuL,Xstar_TuL,Y_TuL,Z_TuL,Zstar_TuL,Xlocal_TuL,Ylocal_TuL,Zlocal_TuL,...
SegStar,HShift_local_TuL,TempDef_TuL,ARRAYdate_TuL,Area_TuL,Speed_local_TuL,...
Acceleration_local_TuL,ErrTunnelLink] = elab2D_TuL(rTuL,accTuL,ay_TuL,ay_TuL_AC,...
ACCdefRis_TuL,SpeTuL,IDcentralina,DTcatena,DatiElabTunnelLink,NuovoZeroTuL,...
TempDef_TuL,tolleranzaAcc,Ndevst,Wdevst,NdatiMedia,Ndatidespike,ARRAYdate_TuL,...
data1_AC,Nodo_AC,margine,ErrTunnelLink,Tmax,Tmin,datainiTuL,FileName);
xlswrite('Dati.xlsx',Xlocal_TuL',9);
xlswrite('Dati.xlsx',Ylocal_TuL',10);
xlswrite('Dati.xlsx',Zlocal_TuL',11);
xlswrite('Dati.xlsx',X_TuL',12);
xlswrite('Dati.xlsx',Y_TuL',13);
xlswrite('Dati.xlsx',Z_TuL',14);
xlswrite('Dati.xlsx',SegStar',15);
xlswrite('Dati.xlsx',HShift_local_TuL',16);
xlswrite('Dati.xlsx',TempDef_TuL,17);
xlswrite('Dati.xlsx',ARRAYdate_TuL,18);
xlswrite('Dati.xlsx',Area_TuL',19);
xlswrite('Dati.xlsx',Speed_local_TuL',20);
xlswrite('Dati.xlsx',Acceleration_local_TuL',21);
xlswrite('Dati.xlsx',ErrTunnelLink',22);
else
[X_TuL,Xstar_TuL,Y_TuL,Z_TuL,Zstar_TuL,Xlocal_TuL,Ylocal_TuL,Zlocal_TuL,...
SegStar,HShift_local_TuL,TempDef_TuL,Area_TuL,Speed_local_TuL,...
Acceleration_local_TuL] = matrici_vuote_TuL(FileName);
end
clear DatiElabTunnelLink
clear rTuL
clear accTuL
clear ay_TuL
clear ay_TuL_AC
clear data1_AC
clear ACCdefRis_TuL
clear SpeTuL
clear DatiElabTunnelLink
clear NuovoZeroTuL
clear Nodo_AC
clear data1_AC
% fine elaborazione Tunnel Link
% --- Analisi Radial Link ---
if yesRL == 1
[X_RL,Y_RL,Z_RL,Xlocal_RL,Ylocal_RL,Zlocal_RL,TempDef_RL,ARRAYdate_RL,...
ErrRadialLink] = elab2D_RL(rRL,accRL,ACCdefRis_RL,SpeRL,IDcentralina,DTcatena,...
DatiElabRadialLink,NuovoZeroRL,tolleranzaAcc,TempDef_RL,Ndevst,Wdevst,ARRAYdate_RL,...
elab_option,NdatiMedia,Ndatidespike,margine,ErrRadialLink,Tmax,Tmin,datainiRL,FileName);
xlswrite('Dati.xlsx',Xlocal_RL',9);
xlswrite('Dati.xlsx',Ylocal_RL',10);
xlswrite('Dati.xlsx',Zlocal_RL',11);
xlswrite('Dati.xlsx',X_RL',12);
xlswrite('Dati.xlsx',Y_RL',13);
xlswrite('Dati.xlsx',Z_RL',14);
xlswrite('Dati.xlsx',ARRAYdate_RL,15);
xlswrite('Dati.xlsx',ErrRadialLink',16);
else
[X_RL,Y_RL,Z_RL,Xlocal_RL,Ylocal_RL,Zlocal_RL,TempDef_RL] = matrici_vuote_RL(FileName);
end
clear DatiElabRadialLink
clear accRL
clear SpeRL
clear ACCdefRis_RL
clear NuovoZeroRL
clear rRL
% fine elaborazione Radial Link
% --- Tilt Link H ---
if yesTLH == 1
if strcmp(IDcentralina,'ID0142') == 1 && strcmp(DTcatena,'DT0173')
[Y_TLH,Z_TLH,Ylocal_TLH,Zlocal_TLH,AlfaX_TLH,AlfaY_TLH,TempDef_TLH,...
speed_TLH,speed_local_TLH,acceleration_TLH,acceleration_local_TLH,ARRAYdate_TLH,...
ErrTiltLinkH] = elab2D_TLH_Hybrid(IDcentralina,DTcatena,rTLH,accTLH,ACCdefRis_TLH,...
TempDef_TLH,SpeTLH,PsTLH,tolleranzaAcc,DatiElabTiltLinkH,Ndevst,Wdevst,...
ARRAYdate_TLH,NuovoZeroTLH,NdatiMedia,Ndatidespike,ErrTiltLinkH,margine,...
Tmax,Tmin,datainiTLH,FileName);
else
[Y_TLH,Z_TLH,Ylocal_TLH,Zlocal_TLH,AlfaX_TLH,AlfaY_TLH,TempDef_TLH,...
speed_TLH,speed_local_TLH,acceleration_TLH,acceleration_local_TLH,ARRAYdate_TLH,...
ErrTiltLinkH] = elab2D_TLH(IDcentralina,DTcatena,rTLH,accTLH,ACCdefRis_TLH,...
TempDef_TLH,SpeTLH,PsTLH,tolleranzaAcc,DatiElabTiltLinkH,Ndevst,Wdevst,...
ARRAYdate_TLH,NuovoZeroTLH,NdatiMedia,Ndatidespike,ErrTiltLinkH,margine,...
elab_option,Tmax,Tmin,datainiTLH,FileName);
end
else
[Y_TLH,Z_TLH,Ylocal_TLH,Zlocal_TLH,AlfaX_TLH,AlfaY_TLH,TempDef_TLH,...
speed_TLH,speed_local_TLH,acceleration_TLH,acceleration_local_TLH] = matrici_vuote_TLH(FileName);
end
clear DatiElabTiltLinkH
clear accTLH
clear ACCdefRis_TLH
clear SpeTLH
clear PsTLH
clear NuovoZeroTLH
% fine elaborazione Tilt Link H
% --- Tilt Link HR H ---
if yesTLHRH == 1
[Y_TLHRH,Z_TLHRH,Ylocal_TLHRH,Zlocal_TLHRH,AlfaX_TLHRH,AlfaY_TLHRH,...
TempDef_TLHRH,speed_TLHRH,speed_local_TLHRH,acceleration_TLHRH,acceleration_local_TLHRH,...
ARRAYdate_TLHRH,ErrTiltLinkHRH] = elab2D_TLHRH(rTLHRH,AngDef_TLHRH,TempDef_TLHRH,...
SpeTLHRH,PsTLHRH,DatiElabTiltLinkHRH,Ndevst_HR,Wdevst_HR,ARRAYdate_TLHRH,...
NuovoZeroTLHRH,NdatiMedia,Ndatidespike,ErrTiltLinkHRH,margine,elab_option,...
Tmax,Tmin,datainiTLHRH,FileName);
else
[Y_TLHRH,Z_TLHRH,Ylocal_TLHRH,Zlocal_TLHRH,AlfaX_TLHRH,AlfaY_TLHRH,TempDef_TLHRH,...
speed_TLHRH,speed_local_TLHRH,acceleration_TLHRH,acceleration_local_TLHRH] = matrici_vuote_TLHRH(FileName);
end
clear calotta_base
clear DatiElabTiltLinkHRH
clear AngDef_TLHRH
clear SpeTLHRH
clear PsTLHRH
clear NuovoZeroTLHRH
% fine elaborazione Tilt Link HR H
% --- PreConv Link ---
if yesPCL == 1
[Y_PCL,Z_PCL,Ylocal_PCL,Zlocal_PCL,AlfaX_PCL,AlfaY_PCL,TempDef_PCL,...
speed_PCL,speed_local_PCL,acceleration_PCL,acceleration_local_PCL,ARRAYdate_PCL,...
ErrPreConvLink] = elab2D_PCL(IDcentralina,DTcatena,rPCL,accPCL,ACCdefRis_PCL,...
TempDef_PCL,SpePCL,tolleranzaAcc,DatiElabPreConvLink,Ndevst,Wdevst,ARRAYdate_PCL,...
NuovoZeroPCL,NdatiMedia,Ndatidespike,ErrPreConvLink,margine,elab_option,...
Tmax,Tmin,datainiPCL,FileName);
else
[Y_PCL,Z_PCL,Ylocal_PCL,Zlocal_PCL,AlfaX_PCL,AlfaY_PCL,TempDef_PCL,...
speed_PCL,speed_local_PCL,acceleration_PCL,acceleration_local_PCL] = matrici_vuote_PCL(FileName);
end
clear DatiElabPreConvLink
clear accPCL
clear ACCdefRis_PCL
clear SpePCL
clear tolleranzaAcc
clear DatiElabPreConvLink
clear NuovoZeroPCL
clear rPCL
clear Ndevst
clear Wdevst
% fine elaborazione PreConv Link
% --- PreConv Link HR ---
if yesPCLHR == 1
[Y_PCLHR,Z_PCLHR,Ylocal_PCLHR,Zlocal_PCLHR,AlfaX_PCLHR,AlfaY_PCLHR,TempDef_PCLHR,...
speed_PCLHR,speed_local_PCLHR,acceleration_PCLHR,acceleration_local_PCLHR,ARRAYdate_PCLHR,...
ErrPreConvLinkHR] = elab2D_PCLHR(IDcentralina,DTcatena,rPCLHR,AngDef_PCLHR,...
TempDef_PCLHR,SpePCLHR,DatiElabPreConvLinkHR,Ndevst_HR,Wdevst_HR,ARRAYdate_PCLHR,...
NuovoZeroPCLHR,NdatiMedia,Ndatidespike,ErrPreConvLinkHR,margine,elab_option,Tmax,Tmin,...
datainiPCLHR,FileName);
else
[Y_PCLHR,Z_PCLHR,Ylocal_PCLHR,Zlocal_PCLHR,AlfaX_PCLHR,AlfaY_PCLHR,TempDef_PCLHR,...
speed_PCLHR,speed_local_PCLHR,acceleration_PCLHR,acceleration_local_PCLHR] = matrici_vuote_PCLHR(FileName);
end
clear DatiElabPreConvLinkHR
clear rPCLHR
clear AngDef_PCLHR
clear SpePCLHR
clear elab_option
clear Ndevst_HR
clear Wdevst_HR
clear NuovoZeroPCLHR
clear NdatiMedia
clear Ndatidespike
clear tolleranzaT
clear margine
clear elab_option
% --- 3D Extensometer Link ---
% Correzione 3D Extensometer Link
if yes3DEL == 1
[r,~] = size(Err3DExtensometerLink);
Matrice_err = zeros(r,r3DEL);
for i = 1:r % date
d = 1;
for n = 1:r3DEL % nodi
j = 1;
err = Err3DExtensometerLink(i,d:d+2);
while j <= 3
if err(1,j) == 1
Matrice_err(i,n) = 1;
end
j = j+1;
end
d = d+3;
end
end
Err3DExtensometerLink = Matrice_err;
Join = find(ErrNTC3DExtensometerLink);
[rJ,cJ] = size(Join);
for ii = 1:rJ
for jj = 1:cJ
if Err3DExtensometerLink(Join(ii,jj)) == 0
Err3DExtensometerLink(Join(ii,jj)) = 0.5;
end
end
end
end
clear ErrNTC3DExtensometerLink
% --- Crack Link ---
if yesCrL == 1
NomeFile = ['' IDcentralina '-' DTcatena '-RifCrL.csv'];
if NuovoZeroCrL == 0 % prima elaborazione
csvwrite(NomeFile,DatiCrack(1,:));
DatiCrack = DatiCrack - DatiCrack(1,:);
else % Ci sono già dei dati elaborati
RIF = csvread(NomeFile);
DatiCrack = DatiCrack - RIF;
end
end
% --- 3D Crack Link ---
if yes3DCrL == 1
[r,~] = size(Err3DCrackLink);
Matrice_err = zeros(r,r3DCrL);
for i = 1:r % date
d = 1;
for n = 1:r3DCrL % nodi
j = 1;
err = Err3DCrackLink(i,d:d+2);
while j <= 3
if err(1,j) == 1
Matrice_err(i,n) = 1;
end
j = j+1;
end
d = d+3;
end
end
Err3DCrackLink = Matrice_err;
Join = find(ErrNTC3DCrackLink);
[rJ,cJ] = size(Join);
for ii = 1:rJ
for jj = 1:cJ
if Err3DCrackLink(Join(ii,jj)) == 0
Err3DCrackLink(Join(ii,jj)) = 0.5;
end
end
end
end
clear ErrNTC3DCrackLink
% --- 2D Crack Link ---
if yes2DCrL == 1
[r,~] = size(Err2DCrackLink);
Matrice_err = zeros(r,r2DCrL);
for i = 1:r % date
d = 1;
for n = 1:r2DCrL % nodi
j = 1;
err = Err2DCrackLink(i,d:d+1);
while j <= 2
if err(1,j) == 1
Matrice_err(i,n) = 1;
end
j = j+1;
end
d = d+2;
end
end
Err2DCrackLink = Matrice_err;
Join = find(ErrNTC2DCrackLink);
[rJ,cJ] = size(Join);
for ii = 1:rJ
for jj = 1:cJ
if Err2DCrackLink(Join(ii,jj)) == 0
Err2DCrackLink(Join(ii,jj)) = 0.5;
end
end
end
end
clear ErrNTC2DCrackLink
% --- MultiPoint Borehole Extensometer Link ---
% Correzione MultiPoint Extensometer
if yesMPBEL == 1
[r,~] = size(ErrMultiPointExtensometer);
Matrice_err = zeros(r,rMPBEL);
for i = 1:r % date
d = 1;
for n = 1:rMPBEL % nodi
j = 1;
err = ErrMultiPointExtensometer(i,d:d+NumBasi-1);
while j <= NumBasi
if err(1,j) == 1
Matrice_err(i,n) = 1;
end
j = j+1;
end
d = d+NumBasi;
end
end
ErrMultiPointExtensometer = Matrice_err;
Join = find(ErrNTCMultiPointExtensometer);
[rJ,cJ] = size(Join);
for ii = 1:rJ
for jj = 1:cJ
if ErrMultiPointExtensometer(Join(ii,jj)) == 0
ErrMultiPointExtensometer(Join(ii,jj)) = 0.5;
end
end
end
end
clear ErrNTCMultiPointExtensometer
toc
text = ['ATD calculation ended in ' num2str(toc) ' seconds.'];
fileID = fopen(FileName,'a');
fmt = '%s \r';
fprintf(fileID,fmt,text);
fclose(fileID);
RC = 0;
end