Files
matlab-python/ATD/ATD.m

1102 lines
46 KiB
Matlab
Executable File
Raw Permalink Blame History

function RC = ATD(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 = 'jdbc:mysql://212.237.30.90:3306/ase_lar?useLegacyDatetimeCode=false&serverTimezone=Europe/Rome&';
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,NodoDistoMTLink,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,~,~,rDM] = 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,yesTLHR3DH,yesPCL,yesPCLHR,yesPCLHR3D,...
yesPL,yesLL,yesEL,yes3DEL,yesWEL,yesMPBEL,yesAL,yesCrL,yes3DCrL,yes2DCrL,...
yesDM,yesSM] = YesNo(NodoTunnelLink,NodoRadialLink,NodoTiltLinkH,NodoTiltLinkHRH,...
NodoTiltLinkHR3DH,NodoPreConvLink,NodoPreConvLinkHR,NodoPreConvLinkHR3D,...
NodoDistoMTLink,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,Calcolo_Carico,Area,Mod_Elastico,...
Carico_Ini] = Parametri_Installazione(idTool,conn,yesTuL,yesRL,...
yesTLH,yesTLHRH,yesPCL,yesPCLHR,yesMPBEL,yesWEL,yesEL,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);
% tipologia di centralina
Unit = centralina(IDcentralina,conn,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);
if strcmp(Unit,'Nesa evolution') == 0
% funzione che scarica i dati da utilizzare come nuovo zero (ultimo dato
% elaborato, con un certo margine
[DatiElabTunnelLink,NuovoZeroTuL,ay_TuL,t_TuL,ay_TuL_AC,t_TuL_AC,...
datainiTuL,tempoiniTuL,data1_AC,DatiElabRadialLink,NuovoZeroRL,datainiRL,tempoiniRL,...
DatiElabTiltLinkH,NuovoZeroTLH,datainiTLH,tempoiniTLH,...
DatiElabTiltLinkHRH,NuovoZeroTLHRH,datainiTLHRH,tempoiniTLHRH,...
DatiElabPreConvLink,NuovoZeroPCL,datainiPCL,tempoiniPCL,...
DatiElabPreConvLinkHR,NuovoZeroPCLHR,datainiPCLHR,tempoiniPCLHR,...
DatiElabDistoMTLink,NuovoZeroDM,datainiDM,tempoiniDM,...
datainiPL,tempoiniPL,NuovoZeroPrL,datainiLL,tempoiniLL,NuovoZeroLL,...
datainiEL,tempoiniEL,Date_Rif_EL,NuovoZeroEL,...
dataini3DEL,tempoini3DEL,Date_Rif_3DEL,NuovoZero3DEL,datainiWEL,tempoiniWEL,NuovoZeroWEL,...
datainiMPBEL,tempoiniMPBEL,NuovoZeroMPBEL,DatiElabAnalogLink,NuovoZeroAL,datainiAL,tempoiniAL,...
datainiCrL,tempoiniCrL,NuovoZeroCrL,dataini3DCrL,tempoini3DCrL,NuovoZero3DCrL,...
dataini2DCrL,tempoini2DCrL,NuovoZero2DCrL, datainiSM,tempoiniSM,Date_Rif_SM,NuovoZeroSM,margine] = ...
LastElab(conn,date,time,IDcentralina,DTcatena,Wdevst,NdatiMedia,Ndatidespike,...
NodoTunnelLink,yesTuL,date_AC,time_AC,Nodo_AC,rTuL,...
NodoRadialLink,yesRL,rRL,NodoTiltLinkH,yesTLH,rTLH,NodoTiltLinkHRH,yesTLHRH,rTLHRH,...
NodoPreConvLink,yesPCL,rPCL,NodoPreConvLinkHR,yesPCLHR,rPCLHR,...
NodoDistoMTLink,yesDM,rDM,NodoPressureLink,yesPL,...
NodoLoadLink,yesLL,NodoExtensometerLink,yesEL,Nodo3DExtensometerLink,...
yes3DEL,NodoWireExtensometerLink,yesWEL,NodoMultiPointRodExtensometer,...
yesMPBEL,NodoAnalogLink,yesAL,rAL,NodoCrackLink,yesCrL,...
Nodo3DCrackLink,yes3DCrL,Nodo2DCrackLink,yes2DCrL,NodoStressMeter,yesSM,FileName);
% Lettura dati da DB
[Batteria,DatiTunnelLink,ErrTunnelLink,datainiTuL,...
DatiRadialLink,ErrRadialLink,datainiRL,DatiTiltLinkH,ErrTiltLinkH,datainiTLH,...
DatiTiltLinkHRH,ErrTiltLinkHRH,datainiTLHRH,DatiPreConvLink,ErrPreConvLink,datainiPCL,...
DatiPreConvLinkHR,ErrPreConvLinkHR,datainiPCLHR,DatiDistoMTLink,ErrDistoMTLink,datainiDM,...
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,ChMPBEL,MPBEL_NTC,...
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,yesDM] = ...
lettura(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,datainiDM,tempoiniDM,NodoDistoMTLink,NuovoZeroDM,...
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,yesDM,rTuL,rRL,rTLH,rTLHRH,rPCL,rPCLHR,rPrL,...
rLL,rEL,r3DEL,rWEL,rMPBEL,rAL,rCrL,r3DCrL,r2DCrL,rSM,rDM,conn,catena,date,time,FileName);
% Controllo incrociato fra la data iniziale definita da Lettura e la data
% iniziale definita da LastElab
[DatiElabTunnelLink,DatiElabRadialLink,DatiElabTiltLinkH,DatiElabTiltLinkHRH,...
DatiElabPreConvLink,DatiElabPreConvLinkHR,DatiElabAnalogLink,DatiElabDistoMTLink]...
= checkdata(yesTuL,yesRL,yesTLH,yesTLHRH,yesPCL,yesPCLHR,yesAL,yesDM,...
DatiElabTunnelLink,DatiElabRadialLink,DatiElabTiltLinkH,DatiElabTiltLinkHRH,...
DatiElabPreConvLink,DatiElabPreConvLinkHR,DatiElabAnalogLink,DatiElabDistoMTLink,...
datainiTuL,tempoiniTuL,datainiRL,tempoiniRL,datainiTLH,tempoiniTLH,...
datainiTLHRH,tempoiniTLHRH,datainiPCL,tempoiniPCL,datainiPCLHR,tempoiniPCLHR,...
datainiAL,tempoiniAL,datainiDM,tempoiniDM,rTuL,rRL,rTLH,rTLHRH,rPCL,rPCLHR,rAL,rDM,...
NodoTunnelLink,NodoRadialLink,NodoTiltLinkH,NodoTiltLinkHRH,NodoPreConvLink,...
NodoPreConvLinkHR,NodoAnalogLink,NodoDistoMTLink,NuovoZeroTuL,NuovoZeroRL,NuovoZeroTLH,...
NuovoZeroTLHRH,NuovoZeroPCL,NuovoZeroPCLHR,NuovoZeroAL,NuovoZeroDM,...
IDcentralina,DTcatena,conn,FileName);
%% Parte di definizione dati, conversione in unit<69> fisiche e calcolo medie
% --- Tunnel Link ---
if yesTuL == 1 % attiva l'elaborazione dei Tunnel Link
% definizione dei dati
[TimeTuL,accTuL,tempTuL,ay_TuL,ay_TuL_AC,ErrTunnelLink] = defDatiTuL(...
DatiTunnelLink,ay_TuL,ay_TuL_AC,Ndatidespike,rTuL,NuovoZeroTuL,...
ErrTunnelLink,MEMS,FileName);
% Conversione dei dati grezzi
[accTuL,ris_acc_TuL,T_TuL,ay_TuL,ay_TuL_AC] = conv_grezziTuL(...
rTuL,accTuL,tempTuL,DCalTuLTot,ay_TuL,t_TuL,ay_TuL_AC,t_TuL_AC,...
NuovoZeroTuL,MEMS,FileName);
% 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<70> 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);
% Conversione dei dati grezzi
[accRL,ris_acc_RL,T_RL] = conv_grezziRL(rRL,accRL,tempRL,DCalRLTot,MEMS,FileName);
% 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<70> 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);
% conversione dei dati grezzi
[accTLH,ris_acc_TLH,tempTLH,ErrTiltLinkH] = conv_grezziTLH(rTLH,...
accTLH,tempTLH,DCalTLHTot,ErrTiltLinkH,MEMS,FileName);
% 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<70> 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<70> 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);
% conversione dei dati grezzi
[accPCL,ris_acc_PCL,T_PCL] = conv_grezziPCL(rPCL,accPCL,tempPCL,DCalPCLTot,...
MEMS,FileName);
% 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<70> 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<70> utilizzate
clear DatiPreConvLinkHR
clear angPCLHR
clear tempPCLHR
clear DCalPCLHRTot
clear T_PCLHR
clear TimePCLHR
% % --- DistoMT Link ---
% if yesTuL == 1 % attiva l'elaborazione
% % definizione dei dati
% [TimeTuL,accTuL,tempTuL,ay_TuL,ay_TuL_AC,ErrTunnelLink] = defDatiTuL(...
% DatiTunnelLink,ay_TuL,ay_TuL_AC,Ndatidespike,rTuL,NuovoZeroTuL,...
% ErrTunnelLink,MEMS,FileName);
% % Conversione dei dati grezzi
% [accTuL,ris_acc_TuL,T_TuL,ay_TuL,ay_TuL_AC] = conv_grezziTuL(...
% rTuL,accTuL,tempTuL,DCalTuLTot,ay_TuL,t_TuL,ay_TuL_AC,t_TuL_AC,...
% NuovoZeroTuL,MEMS,FileName);
% % media mobile dei dati
% [ARRAYdate_DL,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_DL = [];
% 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<70> utilizzate
% clear DatiTunnelLink
% clear tempTuL
% clear DCalTuLTot
% clear t_TuL
% clear t_TuL_AC
% clear ris_acc_TuL
% clear T_TuL
% clear TimeTuL
% --- 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<70> 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<70> 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,Carico_Sensore]...
= conv_grezziEL(Extensometer,NTCExtensometer,DatiExtensometerLink_Rif,DCalELTot,EL_NTC,...
NodoExtensometerLink,ErrExtensometerLink,Calcolo_Carico,FileName);
% media mobile dei dati
[ARRAYdate_EL,DatiExtensometer] = MediaDati_EL(DatiExtensometer,TimeEL,NdatiMedia,FileName);
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<70> utilizzate
clear DatiExtensometerLink
clear DatiNTCExtensometerLink
clear DatiExtensometerLink_Rif
clear TimeEL
clear Extensometer
clear NTCExtensometer
clear DCalELTot
% --- 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<70> 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<70> 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<70> 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<70> 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<70> 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<70> utilizzate
clear DatiStressMeter
clear DatiNTCStressMeter
clear TimeSM
clear Stress
clear NTCStress
clear DCalSMTot
%% Parte di Elaborazione
% --- Analisi Tunnel Link ---
if yesTuL == 1
[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);
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);
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
[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);
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
% --- Extensometer Link ---
if yesEL == 1
% Sottraggo la misura di riferimento
DatiExtensometer = DatiExtensometer - DatiExtensometer_Rif(1,:);
% Calcolo lo sforzo e il carico assoluto
if Calcolo_Carico == 1
Epsilon = DatiExtensometer/1000000;
Sforzo = Epsilon.*Mod_Elastico; % MPa
Carico_rel = Area*Sforzo/1000; % kN
Carico_ass = Carico_rel+Carico_Ini+Carico_Sensore'; % kN
Sforzo = Carico_ass*1000/Area; % MPa
else
Carico_ass = [];
Sforzo = [];
end
clear DatiExtensometer_Rif
else
Carico_ass = [];
Sforzo = [];
end
% --- 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<67> 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
%% Parte di Scrittura su Database
database_write(catena,IDcentralina,DTcatena,X_TuL,Xstar_TuL,Y_TuL,Z_TuL,Zstar_TuL,...
Xlocal_TuL,Ylocal_TuL,Zlocal_TuL,SegStar,HShift_local_TuL,Area_TuL,...
Speed_local_TuL,Acceleration_local_TuL,TempDef_TuL,ARRAYdate_TuL,ErrTunnelLink,...
X_RL,Y_RL,Z_RL,Xlocal_RL,Ylocal_RL,Zlocal_RL,TempDef_RL,ARRAYdate_RL,ErrRadialLink,...
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,...
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,...
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,...
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,...
DatiPressure,ARRAYdate_PL,ErrPressureLink,DatiLoad,ARRAYdate_LL,ErrLoadLink,...
DatiExtensometer,DatiNTCExtensometer,ARRAYdate_EL,Carico_ass,Sforzo,Calcolo_Carico,ErrExtensometerLink,ChEL,EL_NTC,...
DatiExtensometer3D,DatiNTCExtensometer3D,ARRAYdate_3DEL,Err3DExtensometerLink,Ch3DEL,EL3D_NTC,...
DatiWireExtensometer,DatiNTCWireExtensometer,ARRAYdate_WEL,ErrWireExtensometerLink,ChWEL,WEL_NTC,...
DatiMultiBase,ARRAYdate_MPBEL,ErrMultiPointExtensometer,NumBasi,...
DatiAnalog,ARRAYdate_AL,ErrAnalogLink,DatiCrack,DatiNTCCrack,ChCrL,CrL_NTC,ARRAYdate_CrL,ErrCrackLink,...
Dati3DCrack,DatiNTCCrack3D,ARRAYdate_3DCrL,Ch3DCrL,CrL3D_NTC,Err3DCrackLink,...
Dati2DCrack,DatiNTCCrack2D,ARRAYdate_2DCrL,Ch2DCrL,CrL2D_NTC,Err2DCrackLink,...
DatiStress,DatiNTCStress,ARRAYdate_SM,ErrStressMeter,ChSM,SM_NTC,...
conn,FileName);
%% Rilancio software
[yesRSN,yesMusa] = SWSearch(idTool,conn,FileName);
try
if yesRSN == 1
rilancio = ['/usr/local/matlab_func/run_RSN_lnx.sh /usr/local/MATLAB/MATLAB_Runtime/v93 ' IDcentralina ' ' DTcatena ''];
status = system(rilancio);
fileID = fopen(FileName,'a');
fmt = '%s \r';
fprintf(fileID,fmt,status);
fclose(fileID);
end
if yesMusa == 1
rilancio = ['/usr/local/matlab_func/run_Musa_lnx.sh /usr/local/MATLAB/MATLAB_Runtime/v93 ' IDcentralina ' ' DTcatena ''];
status = system(rilancio);
fileID = fopen(FileName,'a');
fmt = '%s \r';
fprintf(fileID,fmt,status);
fclose(fileID);
end
catch err
FileErr = ['ErrorFile-' IDcentralina '-' datestr(today) '-' datestr(now,'hhMMss')];
fid = fopen(FileErr,'a+');
fprintf(fid, '%s', err.getReport('extended','hyperlinks','off'));
fclose(fid);
end
end
%% Parte di allertamento
% Determino gli utenti da utilizzare in tutte le funzioni successive
[Mail,~,~,Users_Report,~,activeEN,...
sms,siteID,NomeSito,ini_CoV] = Users_Def(IDcentralina,conn,FileName);
% Determino alcune informazioni del sito che mi servono nei passaggi
% successivi
[unitID,chainID,Chain_Scheme,num_nodi,alarms] = Site_Info(siteID,conn,FileName);
% % Funzione Soglie sperimentale ASE
% [~,unitID,chainID,Chain_Scheme,num_nodi] = soglie(IDcentralina,...
% yesTuL,yesRL,yesTLH,yesTLHRH,yesPCL,yesPCLHR,conn,FileName);
% Funzione per soglie sito specifiche
alert_Levels(rLL,rCrL,DatiLoad,DatiCrack,ARRAYdate_LL,ARRAYdate_CrL,...
ErrLoadLink,ErrCrackLink,NodoLoadLink,NodoCrackLink,IDcentralina,DTcatena,...
sms,date,time,conn,FileName);
if strcmp(Unit,'Nesa evolution') == 0
% Funzione che elabora i Control Tools
alarms = Siren(siteID,yesTuL,yesRL,yesTLH,yesTLHRH,yesPCL,yesPCLHR,...
yesCrL,yes3DCrL,yes2DCrL,yesEL,yes3DEL,yesWEL,yesMPBEL,datainiTuL,tempoiniTuL,...
datainiRL,tempoiniRL,datainiTLH,tempoiniTLH,datainiTLHRH,tempoiniTLHRH,...
datainiPCL,tempoiniPCL,datainiPCLHR,tempoiniPCLHR,datainiCrL,tempoiniCrL,...
dataini3DCrL,tempoini3DCrL,dataini2DCrL,tempoini2DCrL,...
datainiEL,tempoiniEL,dataini3DEL,tempoini3DEL,...
datainiWEL,tempoiniWEL,datainiMPBEL,tempoiniMPBEL,ARRAYdate_TuL,ARRAYdate_RL,...
ARRAYdate_TLH,ARRAYdate_TLHRH,ARRAYdate_PCL,ARRAYdate_PCLHR,ARRAYdate_CrL,...
ARRAYdate_3DCrL,ARRAYdate_2DCrL,ARRAYdate_EL,ARRAYdate_3DEL,ARRAYdate_WEL,ARRAYdate_MPBEL,...
conn,date,time,FileName);
end
% Controllo del Livello della Batteria
checkBattery(Batteria,IDcentralina,Mail,conn,FileName);
% Controllo della data di chiusura piattaforma per una determinata centralina
checkUnit(IDcentralina,conn,FileName);
% Controllo della data di scadenza della SIM
checkSIM(IDcentralina,conn,FileName);
% Controllo della data di scadenza del GIS
checkGIS(siteID,NomeSito,conn,FileName)
%% Parte di Report
Report_ASE(IDcentralina,siteID,unitID,chainID,Chain_Scheme,num_nodi,...
alarms,Mail,Users_Report,activeEN,time,conn,FileName);
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