Sync from remote server: 2025-10-12 18:56:41

This commit is contained in:
2025-10-12 18:56:59 +02:00
commit 7e8ee264aa
553 changed files with 161447 additions and 0 deletions

662
ATD/report_RaL_ENG.m Executable file
View File

@@ -0,0 +1,662 @@
function [GI_Rad_XYZ,GI_Rad_Num,GI_Rad_MPBEL,GI_Rad_Cir,GI_Rad_Date,ATTIVA,FIG] = report_RaL_ENG(...
DTcatena,rRaL,m,NodoRadialLink,toolrif,unitrif,datarif,firstdata_num,Font_caption,...
Font_tools,siteID,DT,FIG,br,colonna2,colonna2bis,status,ATTIVA,conn,FileName)
import mlreportgen.dom.*
import mlreportgen.report.*
% Make sure DOM is compilable
makeDOMCompilable()
GI_Rad_XYZ = [];
GI_Rad_Num = [];
GI_Rad_MPBEL = [];
GI_Rad_Cir = [];
GI_Rad_Date = [];
check = 0;
while check == 0
if status(m,1) == 1
if ATTIVA == 1
ATTIVA = 0;
testo = Paragraph('Array not installed or inactive.');
add(DT,testo);
end
check = 1;
elseif status(m,1) == 3
if ATTIVA == 1
ATTIVA = 0;
testo = Paragraph(['Monitoring completed. Please log into the web-based platoform '...
'to access the complete dataset.']);
add(DT,testo);
end
check = 1;
else
NODATA(m,1) = 0;
date = datestr(datenum(colonna2{m+1,1},'dd-mm-yyyy'),'yyyy-mm-dd'); % data riferimento definita sul sito
% posizione di progetto dei nodi
comando = ['select EventDate, EventTime, X, Y, Z from ElabDataView where EventDate = ''' ...
date ''' and ToolNameID = ''' char(toolrif) ''' and UnitName = ''' char(unitrif) ...
''' '];
curs = exec(conn,comando);
curs = fetch(curs);
SezioneXYZ = curs.Data;
Datasez = SezioneXYZ(1,1);
Orasez = SezioneXYZ(1,2);
[rz,~] = size(SezioneXYZ);
scrivi = 1;
for rr = 1:rz
if strcmp(SezioneXYZ(rr,1),Datasez)==1 && strcmp(SezioneXYZ(rr,2),Orasez) ==1
CoordX(scrivi,1) = cell2mat(SezioneXYZ(rr,3));
CoordY(scrivi,1) = cell2mat(SezioneXYZ(rr,4));
CoordZ(scrivi,1) = cell2mat(SezioneXYZ(rr,5));
scrivi = scrivi+1;
end
end
diffX = zeros(1,rRaL(m,1));
diffY = zeros(1,rRaL(m,1));
diffZ = zeros(1,rRaL(m,1));
RIS_XYZ_Mese = zeros(1,rRaL(m,1));
RIS_XYZ_Tot = zeros(1,rRaL(m,1));
Num = zeros(rRaL(m,1),1);
for n = 1:rRaL(m,1)
NodeNum = num2str(NodoRadialLink(n,m));
% dati del mese
comando = ['select EventDate, EventTime, XShift, YShift, ZShift, X, Y, Z '...
'from ElabDataView where EventDate >= ''' datarif ''' and ToolNameID = ''' ...
char(toolrif) ''' and UnitName = ''' char(unitrif) ''' and NodeNum = ''' NodeNum ''' '];
curs = exec(conn,comando);
curs = fetch(curs);
Dati = curs.Data;
Num(n,1) = NodoRadialLink(n,m);
[rD,rC] = size(Dati);
if rC ~= 1
T = [cell2mat(Dati(:,1)) repmat(' ', [rD,1]) cell2mat(Dati(:,2))];
Date = datenum(T); % Data
if n == 1 % Il primo lo scrivo e creo la variabile di controllo
else
[rS,~] = size(asseX);
if rD ~= rS
NODATA(m,1) = 1;
check = 0;
break
else
check = 1;
end
end
% spostamenti dei nodi dall'inizio
asseX(:,n) = cell2mat(Dati(:,3));
asseY(:,n) = cell2mat(Dati(:,4));
asseZ(:,n) = cell2mat(Dati(:,5));
X_RL_Tot(:,n) = cell2mat(Dati(:,6));
Y_RL_Tot(:,n) = cell2mat(Dati(:,7));
Z_RL_Tot(:,n) = cell2mat(Dati(:,8));
X_RL_Mese(:,n) = X_RL_Tot(:,n)-X_RL_Tot(1,n)+CoordX(n,1)';
Y_RL_Mese(:,n) = Y_RL_Tot(:,n)-Y_RL_Tot(1,n)+CoordY(n,1)';
Z_RL_Mese(:,n) = Z_RL_Tot(:,n)-Z_RL_Tot(1,n)+CoordZ(n,1)';
diffX(1,n) = asseX(end,n)-asseX(1,n);
diffY(1,n) = asseY(end,n)-asseY(1,n);
diffZ(1,n) = asseZ(end,n)-asseZ(1,n);
dX(:,n) = asseX(:,n)-asseX(:,1);
dY(:,n) = asseY(:,n)-asseY(:,1);
dZ(:,n) = asseZ(:,n)-asseZ(:,1);
RIS_XYZ_Mese(1,n) = (sqrt(diffX(1,n)^2 + diffY(1,n)^2+diffZ(1,n)^2))*1000;
cX_Mese(1,n) = 100*abs(1000*diffX(1,n))/RIS_XYZ_Mese(1,n);
cY_Mese(1,n) = 100*abs(1000*diffY(1,n))/RIS_XYZ_Mese(1,n);
cZ_Mese(1,n) = 100*abs(1000*diffZ(1,n))/RIS_XYZ_Mese(1,n);
RIS_XYZ_Tot(1,n) = (sqrt(asseX(end,n)^2 + asseY(end,n)^2+asseZ(end,n)^2))*1000;
cX_Tot(1,n) = 100*abs(1000*asseX(1,n))/RIS_XYZ_Tot(1,n);
sigX_Tot(1,n) = sign(asseX(1,n));
cY_Tot(1,n) = 100*abs(1000*asseY(1,n))/RIS_XYZ_Tot(1,n);
sigY_Tot(1,n) = sign(asseY(1,n));
cZ_Tot(1,n) = 100*abs(1000*asseZ(1,n))/RIS_XYZ_Tot(1,n);
sigZ_Tot(1,n) = sign(asseZ(1,n));
else
NODATA(m,1) = 1;
check = 1;
end
end
if NODATA(m,1) == 0
if strcmp(colonna2bis(m+1,1),colonna2(m+1,1)) == 0 % data zero diversa data riferimento
clear RIS_XYZ_Tot
datarifNEW = datestr(firstdata_num{m+1,1},'yyyy-mm-dd'); % data riferimento definita sul sito
for nw = 1:rRaL(m,1)
NodeNum = num2str(NodoRadialLink(nw,m));
comando = ['select EventDate, EventTime, XShift, YShift, ZShift, X, Y, Z, '...
'from ElabDataView where EventDate = ''' datarifNEW ''' and ToolNameID = ''' char(toolrif) ...
''' and UnitName = ''' char(unitrif) ''' and NodeNum = ''' NodeNum ''' '];
curs = exec(conn,comando);
curs = fetch(curs);
DatiNEW = curs.Data; % dati registrati alla data di riferimento
Num(nw,1) = NodoRadialLink(nw,m);
[~,rC] = size(DatiNEW);
if rC ~= 1
% dalla data di riferimento
asseX(:,nw) = asseX(:,nw)-cell2mat(DatiNEW(1,3));
asseY(:,nw) = asseY(:,nw)-cell2mat(DatiNEW(1,4));
asseZ(:,nw) = asseZ(:,nw)-cell2mat(DatiNEW(1,5));
X_RL_Tot(:,nw) = X_RL_Tot-cell2mat(DatiNEW(:,6))+CoordX(nw,1)';
Y_RL_Tot(:,nw) = Y_RL_Tot-cell2mat(DatiNEW(:,7))+CoordY(nw,1)';
Z_RL_Tot(:,nw) = Z_RL_Tot-cell2mat(DatiNEW(:,8))+CoordZ(nw,1)';
RIS_XYZ_Tot(1,n) = (sqrt(asseX(end,n)^2 + asseY(end,n)^2+asseZ(end,n)^2))*1000;
cX_Tot(1,n) = 100*abs(1000*diffX(1,n))/RIS_XYZ_Tot(1,n);
cY_Tot(1,n) = 100*abs(1000*diffY(1,n))/RIS_XYZ_Tot(1,n);
cZ_Tot(1,n) = 100*abs(1000*diffZ(1,n))/RIS_XYZ_Tot(1,n);
else
NODATA(m,1) = 1;
end
end
end
GI_Rad_XYZ = max(RIS_XYZ_Mese);
ind = find(GI_Rad_XYZ==max(RIS_XYZ_Mese(1,:)));
GI_Rad_Num = Num(ind(1));
GI_Rad_Date = Date;
% Cerco eventuali correlazioni con Multibase
NomeFile = strcat('Report',siteID,'-RLvsMPBEL.txt');
Filetesto = importdata(NomeFile);
[rF,~] = size(Filetesto);
AAA = 1;
Var = 0;
while AAA < rF
check1 = Filetesto(AAA,1);
if check1 == 99999
AAA = 2;
else
check2 = Filetesto(AAA+1,1);
if check1 == str2num(DTcatena(end-2:end))
Nodo = Filetesto(AAA+2,1);
Var = 1;
elseif check2 == str2num(DTcatena(end-2:end))
Nodo = Filetesto(AAA+3,1);
Var = 1;
end
AAA = AAA+4;
end
end
if Var == 1
% Riabilitare le variabili sotto se vogliamo usare i
% cumulati anzichè i locali
% sX = dX';
% sTX = cumsum(sX);
% sX = sTX';
% sY = dY';
% sTY = cumsum(sY);
% sY = sTY';
% sZ = dZ';
% sTZ = cumsum(sZ);
% sZ = sTZ';
GI_Rad_MPBEL = (sqrt(dX(:,Nodo).^2 + dY(:,Nodo).^2 + dZ(:,Nodo).^2))*1000; % ad ogni rad è associato al massimo un solo multibase
end
% Cerco eventuali correlazioni con Cir
NomeFile = strcat('Report',siteID,'-TuLvsRL.txt');
Filetesto = importdata(NomeFile);
[rF,~] = size(Filetesto);
AAA = 1;
Var = 0;
while AAA < rF % Cerco coppie Cir - Rad
check1 = Filetesto(AAA,1);
if check1 == 99999 % Non ci sono Rad o non ci sono Cir
AAA = 2;
else
check2 = Filetesto(AAA+1,1);
if check1 == str2num(DTcatena(end-2:end)) % Il Cir è da prendere in considerazione ed è riportato nella prima riga del file
Nodo = Filetesto(AAA+2,1);
Var = 1;
elseif check2 == str2num(DTcatena(end-2:end)) % Il Cir è da prendere in considerazione ed è riportato nella seconda riga del file
Nodo = Filetesto(AAA+3,1);
Var = 1;
end
AAA = AAA+4;
end
end
if Var == 1
GI_Rad_Cir = (sqrt(dX(:,Nodo).^2 + dZ(:,Nodo).^2))*1000; %Più rad possono associarsi allo stesso cir
end
% Istogramma 3D displacements
figure(1)
[~,nn] = size(RIS_XYZ_Mese(end,:));
for w = 1:nn
nodi_grafico(1,w) = w;
end
RIS_XYZ = [RIS_XYZ_Mese(end,:)' RIS_XYZ_Tot(end,:)'];
Rad_3D = barh(nodi_grafico,RIS_XYZ);
title('3D Local displacements');
xlabel('Displacement [mm]');
ylabel('Node [-]');
h = gca;
h.XAxis.MinorTick = 'on';
h.YAxis.MinorTick = 'off';
Max(1) = max(RIS_XYZ_Mese);
Max(2) = max(RIS_XYZ_Tot);
MAX = max(Max);
in = find(Max == MAX);
if in == 1
POS = find(RIS_XYZ_Mese == Max(1));
else
POS = find(RIS_XYZ_Tot == Max(2));
end
if MAX < 10 % mm
xlim([0 10]);
end
yticks(0:1:nn);
grid on
if POS > rRaL(m)/2 % Legenda in basso a dx
legend('Reference time period','Complete monitoring period','Location','southeast');
else % legenda in alto a dx
legend('Reference time period','Complete monitoring period','Location','northeast');
end
TempName = char(strcat('Report',siteID,'-', char(toolrif),'Rad3D_ENG.png'));
saveas(Rad_3D(1),TempName);
ChartRad = Image(TempName);
ChartRad.Style = {HAlign('justify'),ScaleToFit};
ChartRad_cap = Paragraph(['Fig. ' num2str(FIG) ' - 3D local differential '...
'displacements recorded by the 3D MEMS sensor during the reference time period '...
'and the complete monitoring period']);
FIG = FIG+1;
ChartRad_cap.Style = {HAlign('justify'),FontSize(Font_caption),Italic(1),Color('midnightblue')};
% --- Sezione - MESE ---
contaS_Mese = 1;
conta0_Mese = 1;
for ris = 1:nn
if RIS_XYZ_Mese(end,ris)> 0.5
nodiSX(contaS_Mese,1) = CoordX(ris,1);
nodiSZ(contaS_Mese,1) = CoordZ(ris,1);
contaS_Mese = contaS_Mese+1;
else
nodi0X(conta0_Mese,1) = CoordX(ris,1);
nodi0Z(conta0_Mese,1) = CoordZ(ris,1);
conta0_Mese = conta0_Mese+1;
end
end
% Aggiungo ancora
% --- Geometria Strumento - Mese ---
figure(2)
plot([0; CoordX(:,1)],[0;CoordZ(:,1)],'-','Color','black');
hold on
if contaS_Mese > 1
sezC = plot(nodiSX(:,1),nodiSZ(:,1),'o','Color','red');
set(sezC, 'markerfacecolor', get(sezC, 'color'));
end
hold on
if conta0_Mese > 1
sez0 = plot(nodi0X(:,1),nodi0Z(:,1),'o','Color','black');
set(sez0, 'markerfacecolor', get(sez0, 'color'));
end
ancora = plot(0,0,'s','Color','black','MarkerSize' ,13);
set(ancora, 'markerfacecolor', get(ancora, 'color'));
if sign(CoordX(ris,1)) == -1
Location = 'southeast';
else
Location = 'southwest';
end
if contaS_Mese > 1 && conta0_Mese > 1
legend('Array geometry','Moving nodes','Stable nodes','Location',Location);
elseif contaS_Mese > 1 && conta0_Mese == 1
legend('Array geometry','Moving nodes','Location',Location);
elseif contaS_Mese == 1 && conta0_Mese > 1
legend('Array geometry','Stable nodes','Location',Location);
end
title('Local displacements - reference time priod');
xlabel('X [m]');
ylabel('Z [m]');
h = gca;
h.XAxis.MinorTick = 'on';
h.YAxis.MinorTick = 'on';
grid off
TempName = char(strcat('Report',siteID,'-', char(toolrif),'SezRAD-Mese_ENG.png'));
saveas(ancora,TempName);
ChartSEZ_Mese = Image(TempName);
ChartSEZ_Mese.Style = {HAlign('center'),Height('6.5cm')};
% --- Geometria Strumento - Intero periodo ---
% --- Sezione - TOT ---
contaS_Tot = 1;
conta0_Tot = 1;
contaSX = 1;
contaD = 1;
contaT = 1;
contaA = 1;
contaB = 1;
contaXZ = 1;
contaG = 1;
clear nodi0X
clear nodi0Z
clear nodiSX
clear nodiSZ
for ris = 1:nn % Ho aggiunto l'ancora
if RIS_XYZ_Tot(end,ris)> 0.5
if cX_Tot(1,ris) > 70 %
if sigX_Tot(1,ris) == 1 % Destra
nodiD_X(contaD,1) = CoordX(ris,1);
nodiD_Z(contaD,1) = CoordZ(ris,1);
contaD = contaD+1;
else % sinistra
nodiS_X(contaSX,1) = CoordX(ris,1);
nodiS_Z(contaSX,1) = CoordZ(ris,1);
contaSX = contaSX+1;
end
elseif cY_Tot(1,ris) > 70 % Trasversale
nodiT_X(contaT,1) = CoordX(ris,1);
nodiT_Z(contaT,1) = CoordZ(ris,1);
contaT = contaT+1;
elseif cZ_Tot(1,ris) > 70
if sigZ_Tot(1,ris) == 1 % Verso l'alto
nodiA_X(contaA,1) = CoordX(ris,1);
nodiA_Z(contaA,1) = CoordZ(ris,1);
contaA = contaA+1;
else % Verso il basso
nodiB_X(contaB,1) = CoordX(ris,1);
nodiB_Z(contaB,1) = CoordZ(ris,1);
contaB = contaB+1;
end
elseif cX_Tot(1,ris)+cZ_Tot(1,ris) > 70 % 45 gradi circa
nodiXZ_X(contaXZ,1) = CoordX(ris,1);
nodiXZ_Z(contaXZ,1) = CoordZ(ris,1);
contaXZ = contaXZ+1;
else % Moto Generico
nodi_X(contaG,1) = CoordX(ris,1);
nodi_Z(contaG,1) = CoordZ(ris,1);
contaG = contaG+1;
end
nodiSX(contaS_Tot,1) = CoordX(ris,1);
nodiSZ(contaS_Tot,1) = CoordZ(ris,1);
contaS_Tot = contaS_Tot+1;
else % Stabili
nodi0X(conta0_Tot,1) = CoordX(ris,1);
nodi0Z(conta0_Tot,1) = CoordZ(ris,1);
conta0_Tot = conta0_Tot+1;
end
end
figure(3)
plot([0;CoordX(:,1)],[0;CoordZ(:,1)],'-','Color','black');
hold on
% Spostamenti generici
if contaG > 1
sezG = plot(nodi_X(:,1),nodi_Z(:,1),'o','Color','red');
set(sezG, 'markerfacecolor', get(sezG, 'color'));
end
% Spostamenti Alto
if contaA > 1
sezA = plot(nodiA_X(:,1),nodiA_Z(:,1),'^','Color',[0.4660 0.6740 0.1880],'MarkerSize' ,7);
set(sezA, 'markerfacecolor', get(sezA, 'color'));
end
% Spostamenti Basso
if contaB > 1
sezB = plot(nodiB_X(:,1),nodiB_Z(:,1),'v','Color',[0.4660 0.6740 0.1880],'MarkerSize' ,7);
set(sezB, 'markerfacecolor', get(sezB, 'color'));
end
% Spostamenti Destra
if contaD > 1
sezD = plot(nodiD_X(:,1),nodiD_Z(:,1),'>','Color','blue','MarkerSize' ,7);
set(sezD, 'markerfacecolor', get(sezD, 'color'));
end
% Spostamenti Sinistra
if contaSX > 1
sezSX = plot(nodiS_X(:,1),nodiS_Z(:,1),'<','Color',[0.3010 0.7450 0.9330],'MarkerSize' ,7);
set(sezSX, 'markerfacecolor', get(sezSX, 'color'));
end
% Spostamenti 45°
if contaXZ > 1
sezXZ = plot(nodiXZ_X(:,1),nodiXZ_Z(:,1),'x','Color',[0.8500 0.3250 0.0980],'MarkerSize' ,13);
set(sezXZ, 'markerfacecolor', get(sezXZ, 'color'));
end
% Sensori Fermi
if conta0_Tot > 1
sez0 = plot(nodi0X(:,1),nodi0Z(:,1),'o','Color','black');
set(sez0, 'markerfacecolor', get(sez0, 'color'));
end
ancora = plot(0,0,'s','Color','black','MarkerSize' ,13);
set(ancora, 'markerfacecolor', get(ancora, 'color'));
if sign(CoordX(ris,1)) == -1
Location = 'southeast';
else
Location = 'southwest';
end
if contaG > 1 && contaA > 1 && contaB > 1 && contaD > 1 && contaSX > 1 && contaXZ > 1 && conta0_Tot > 1
legend('Array geometry','3D displacements','Upward displacements','Downward displacements',...
'Right direction shift','Left direction shift','2D displacements','Stable nodes','Location',Location);
elseif contaG > 1 && contaD > 1 && contaSX > 1 && conta0_Tot > 1
legend('Array geometry','3D displacements','Right direction shift',...
'Left direction shift','Stable nodes','Location',Location);
elseif contaG > 1 && contaA > 1 && contaB > 1 && contaD > 1 && conta0_Tot > 1
legend('Array geometry','3D displacements','Upward displacements','Downward displacements',...
'Right direction shift','Stable nodes','Location',Location);
elseif contaG > 1 && contaA > 1 && contaB > 1 && contaSX > 1 && conta0_Tot > 1
legend('Array geometry','3D displacements','Upward displacements','Downward displacements',...
'Left direction shift','Stable nodes','Location',Location);
elseif contaG > 1 && contaA > 1 && contaD > 1 && contaSX > 1 && conta0_Tot > 1
legend('Array geometry','3D displacements','Upward displacements',...
'Right direction shift','Left direction shift','Stable nodes','Location',Location);
elseif contaG > 1 && contaB > 1 && contaD > 1 && contaSX > 1 && conta0_Tot > 1
legend('Array geometry','3D displacements','Downward displacements',...
'Right direction shift','Left direction shift','Stable nodes','Location',Location);
elseif contaG > 1 && contaB > 1 && contaD > 1 && contaSX > 1 && contaXZ > 1 && conta0_Tot > 1
legend('Array geometry','3D displacements','Downward displacements',...
'Right direction shift','Left direction shift','2D displacements',...
'Stable nodes','Location',Location);
elseif contaG > 1 && contaA > 1 && contaD > 1 && contaSX > 1 && contaXZ > 1 && conta0_Tot > 1
legend('Array geometry','3D displacements','Upward displacements',...
'Right direction shift','Left direction shift','2D displacements',...
'Stable nodes','Location',Location);
elseif contaG > 1 && contaA > 1 && contaB > 1 && contaSX > 1 && contaXZ > 1 && conta0_Tot > 1
legend('Array geometry','3D displacements','Upward displacements','Downward displacements',...
'Left direction shift','2D displacements','Stable nodes','Location',Location);
elseif contaG > 1 && contaA > 1 && contaB > 1 && contaD > 1 && contaXZ > 1 && conta0_Tot > 1
legend('Array geometry','3D displacements','Upward displacements','Downward displacements',...
'Right direction shift','2D displacements','Stable nodes','Location',Location);
elseif contaG > 1 && contaA > 1 && contaB > 1 && contaD > 1 && contaSX > 1 && conta0_Tot > 1
legend('Array geometry','3D displacements','Upward displacements','Downward displacements',...
'Right direction shift','Left direction shift','Stable nodes','Location',Location);
elseif contaG > 1 && contaA > 1 && contaB > 1 && contaD > 1 && contaSX > 1 && contaXZ > 1
legend('Array geometry','3D displacements','Upward displacements','Downward displacements',...
'Right direction shift','Left direction shift','2D displacements','Location',Location);
elseif contaG > 1 && contaD > 1 && contaSX > 1 && contaXZ > 1 && conta0_Tot > 1
legend('Array geometry','3D displacements',...
'Right direction shift','Left direction shift','2D displacements','Stable nodes',...
'Location',Location);
elseif contaG > 1 && contaB > 1 && contaSX > 1 && contaXZ > 1 && conta0_Tot > 1
legend('Array geometry','3D displacements','Downward displacements',...
'Left direction shift','2D displacements','Stable nodes','Location',Location);
elseif contaG > 1 && contaB > 1 && contaD > 1 && contaXZ > 1 && conta0_Tot > 1
legend('Array geometry','3D displacements','Downward displacements',...
'Right direction shift','2D displacements','Stable nodes','Location',Location);
elseif contaG > 1 && contaB > 1 && contaD > 1 && contaSX > 1 && conta0_Tot > 1
legend('Array geometry','3D displacements','Downward displacements',...
'Right direction shift','Left direction shift','Stable nodes','Location',Location);
elseif contaG > 1 && contaB > 1 && contaD > 1 && contaSX > 1 && contaXZ > 1
legend('Array geometry','3D displacements','Downward displacements',...
'Right direction shift','Left direction shift','2D displacements','Location',Location);
elseif contaG > 1 && contaA > 1 && contaSX > 1 && contaXZ > 1 && conta0_Tot > 1
legend('Array geometry','3D displacements','Upward displacements',...
'Left direction shift','2D displacements','Stable nodes','Location',Location);
elseif contaG > 1 && contaA > 1 && contaD > 1 && contaXZ > 1 && conta0_Tot > 1
legend('Array geometry','3D displacements','Upward displacements',...
'Right direction shift','2D displacements','Stable nodes','Location',Location);
elseif contaG > 1 && contaA > 1 && contaD > 1 && contaSX > 1 && conta0_Tot > 1
legend('Array geometry','3D displacements','Upward displacements',...
'Right direction shift','Left direction shift','Stable nodes','Location',Location);
elseif contaG > 1 && contaA > 1 && contaD > 1 && contaSX > 1 && contaXZ > 1
legend('Array geometry','3D displacements','Upward displacements',...
'Right direction shift','Left direction shift','2D displacements','Location',Location);
elseif contaA > 1 && contaB > 1 && contaD > 1 && contaSX > 1 && contaXZ > 1 && conta0_Tot > 1
legend('Array geometry','Upward displacements','Downward displacements',...
'Right direction shift','Left direction shift','2D displacements',...
'Stable nodes','Location',Location);
elseif contaB > 1 && contaD > 1 && contaSX > 1 && contaXZ > 1 && conta0_Tot > 1
legend('Array geometry','Downward displacements',...
'Right direction shift','Left direction shift','2D displacements',...
'Stable nodes','Location',Location);
elseif contaA > 1 && contaD > 1 && contaSX > 1 && contaXZ > 1 && conta0_Tot > 1
legend('Array geometry','Upward displacements',...
'Right direction shift','Left direction shift','2D displacements',...
'Stable nodes','Location',Location);
elseif contaA > 1 && contaB > 1 && contaSX > 1 && contaXZ > 1 && conta0_Tot > 1
legend('Array geometry','Upward displacements','Downward displacements',...
'Left direction shift','2D displacements','Stable nodes','Location',Location);
elseif contaA > 1 && contaB > 1 && contaD > 1 && contaXZ > 1 && conta0_Tot > 1
legend('Array geometry','Upward displacements','Downward displacements',...
'Right direction shift','2D displacements','Stable nodes','Location',Location);
elseif contaA > 1 && contaB > 1 && contaD > 1 && contaSX > 1 && conta0_Tot > 1
legend('Array geometry','Upward displacements','Downward displacements',...
'Right direction shift','Left direction shift','Stable nodes','Location',Location);
elseif contaA > 1 && contaB > 1 && contaD > 1 && contaSX > 1 && contaXZ > 1
legend('Array geometry','Upward displacements','Downward displacements',...
'Right direction shift','Left direction shift','2D displacements','Location',Location);
elseif contaB > 1 && contaSX > 1 && contaXZ > 1 && conta0_Tot > 1
legend('Array geometry','Downward displacements','Left direction shift',...
'2D displacements','Stable nodes','Location',Location);
elseif contaB > 1 && contaD > 1 && contaXZ > 1 && conta0_Tot > 1
legend('Array geometry','Downward displacements',...
'Right direction shift','2D displacements','Stable nodes','Location',Location);
elseif contaB > 1 && contaD > 1 && contaSX > 1 && conta0_Tot > 1
legend('Array geometry','Downward displacements',...
'Right direction shift','Left direction shift','Stable nodes','Location',Location);
elseif contaB > 1 && contaD > 1 && contaSX > 1 && contaXZ > 1
legend('Array geometry','Downward displacements',...
'Right direction shift','Left direction shift','2D displacements','Location',Location);
elseif contaD > 1 && contaSX > 1 && contaXZ > 1 && conta0_Tot > 1
legend('Array geometry','Right direction shift','Left direction shift',...
'2D displacements','Stable nodes','Location',Location);
elseif contaG > 1 && contaSX > 1 && contaXZ > 1 && conta0_Tot > 1
legend('Array geometry','3D displacements','Left direction shift',...
'2D displacements','Stable nodes','Location',Location);
elseif contaG > 1 && contaD > 1 && contaXZ > 1 && conta0_Tot > 1
legend('Array geometry','3D displacements','Right direction shift',...
'2D displacements','Stable nodes','Location',Location);
elseif contaG > 1 && contaB > 1 && conta0_Tot > 1
legend('Array geometry','3D displacements','Downward displacements','Stable nodes','Location',Location);
elseif contaG > 1 && contaD > 1 && conta0_Tot > 1
legend('Array geometry','3D displacements','Right direction shift','Stable nodes','Location',Location);
elseif contaG > 1 && contaSX > 1 && conta0_Tot > 1
legend('Array geometry','3D displacements','Left direction shift','Stable nodes','Location',Location);
elseif contaG > 1 && contaA > 1 && contaB > 1 && conta0_Tot > 1
legend('Array geometry','3D displacements','Upward displacements','Downward displacements',...
'Stable nodes','Location',Location);
elseif contaG > 1 && contaA > 1 && conta0_Tot > 1
legend('Array geometry','3D displacements','Upward displacements','Stable nodes','Location',Location);
elseif contaG > 1 && contaXZ > 1 && conta0_Tot > 1
legend('Array geometry','3D displacements','2D displacements',...
'Stable nodes','Location',Location);
elseif contaG > 1 && contaXZ > 1
legend('Array geometry','3D displacements','2D displacements','Location',Location);
elseif contaG > 1 && conta0_Tot > 1
legend('Array geometry','3D displacements','Stable nodes','Location',Location);
elseif contaD > 1 && contaXZ > 1 && conta0_Tot > 1
legend('Array geometry','Right direction shift',...
'2D displacements','Stable nodes','Location',Location);
elseif contaD > 1 && contaSX > 1 && conta0_Tot > 1
legend('Array geometry','Right direction shift','Left direction shift',...
'Stable nodes','Location',Location);
elseif contaD > 1 && contaSX > 1 && contaXZ > 1
legend('Array geometry','Right direction shift','Left direction shift',...
'2D displacements','Location',Location);
elseif contaSX > 1 && contaXZ > 1 && conta0_Tot > 1
legend('Array geometry','Left direction shift',...
'2D displacements','Stable nodes','Location',Location);
elseif contaSX > 1 && conta0_Tot > 1
legend('Array geometry','Left direction shift',...
'Stable nodes','Location',Location);
elseif contaSX > 1 && contaXZ > 1
legend('Array geometry','Left direction shift',...
'2D displacements','Location',Location);
elseif contaXZ > 1 && conta0_Tot > 1
legend('Array geometry','2D displacements','Stable nodes','Location',Location);
elseif conta0_Tot > 1
legend('Array geometry','Stable nodes','Location',Location);
elseif contaG > 1
legend('Array geometry','3D displacements','Location',Location);
elseif contaA > 1
legend('Array geometry','Upward displacements','Location',Location);
elseif contaB > 1
legend('Downward displacements','Location',Location);
elseif contaD > 1
legend('Array geometry','Right direction shift','Location',Location);
elseif contaSX > 1
legend('Array geometry','Left direction shift','Location',Location);
elseif contaXZ > 1
legend('Array geometry','2D displacements','Location',Location);
end
title('Local displacemets - complete monitoring period');
xlabel('X [m]');
ylabel('Z [m]');
h = gca;
h.XAxis.MinorTick = 'on';
h.YAxis.MinorTick = 'on';
grid off
TempName = char(strcat('Report',siteID,'-', char(toolrif),'SezRAD-Tot_ENG.png'));
saveas(ancora,TempName);
ChartSEZ = Image(TempName);
ChartSEZ.Style = {HAlign('center'),Height('6.5cm')};
ChartSEZ_cap = Paragraph(['Fig. ' num2str(FIG) ' - Graphical illsutration '...
'of each single node behaviour, based on the 3D local differential displacement vector, recorded '...
'during the reference time period and the complete monitoring period']);
FIG = FIG+1;
ChartSEZ_cap.Style = {HAlign('justify'),FontSize(Font_caption),Italic(1),Color('midnightblue')};
lot = Table({ChartSEZ_Mese, ChartSEZ});
lot.Style = {ResizeToFitContents(false), Width('100%')};
sezRAD = Heading3('Radial Link');
sezRAD.Style = {FontSize(Font_tools),Bold(1),Italic(1)};
RA = Section();
RA.Title = sezRAD;
% Testi relativi all'ultimo mese
testo1 = Paragraph(['The following graph presents the 3D local differential displacement vectors '...
'recorded by Radial Links during the reference time period and the complete monitoring period. '...
'The 3D vector is computed as a resultant of X-Y-Z component vectors, corresponding to width, depth and height '...
'of the monitored section, respectively.']);
testo2 = Paragraph(['The corresponding figure summarizes the behaviour of the Array, '...
'by representing each single node on the original configuration of the tool. During the '...
'reference time period, the analysis highlighted ' ...
num2str(contaS_Mese-1) ' nodes featuring displacements and ' num2str(conta0_Mese-1) ' stable nodes. '...
'In this specific representation, nodes characterized by displacement values less than 0.5 mm '...
'are assumed as stable']);
spazio = Paragraph('');
testo1.HAlign = 'justify';
testo2.HAlign = 'justify';
add(DT,sezRAD);
add(DT,testo1);
add(DT,ChartRad);
add(DT,ChartRad_cap);
add(DT,testo2);
add(DT,spazio);
add(DT,lot);
add(DT,ChartSEZ_cap);
add(DT,br);
close(figure(1));
close(figure(2));
close(figure(3));
else
if ATTIVA == 1
testo = Paragraph('No data available for the reference time period.');
ATTIVA = 0;
add(DT,testo);
check = 1;
end
end
end
end
fileID = fopen(FileName,'a');
fmt = '%s \r';
text = 'report_RaL_ENG function executed correctly';
fprintf(fileID,fmt,text);
fclose(fileID);
end