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 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 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