Sync from remote server: 2025-10-12 18:56:41
This commit is contained in:
642
ATD/report_PCL_ENG.m
Executable file
642
ATD/report_PCL_ENG.m
Executable file
@@ -0,0 +1,642 @@
|
||||
function [GI_PCL_Z,GI_PCL_Date,ATTIVA,FIG] = report_PCL_ENG(DTcatena,rPCL,m,NodoPreConvLink,...
|
||||
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()
|
||||
|
||||
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
|
||||
NODATAPCL(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, Y, Z from ElabDataView where EventDate = ''' ...
|
||||
date ''' and ToolNameID = ''' char(toolrif) ''' and UnitName = ''' char(unitrif) ''' '];
|
||||
curs = exec(conn,comando);
|
||||
curs = fetch(curs);
|
||||
SezioneYZ = curs.Data;
|
||||
Datasez = SezioneYZ(1,1);
|
||||
Orasez = SezioneYZ(1,2);
|
||||
[ry,~] = size(SezioneYZ);
|
||||
scrivi = 1;
|
||||
% ho scaricato tutti i dati del giorno di installazione, prendo
|
||||
% i primi in ordine temporale per ciascun nodo
|
||||
for cc = 1:ry
|
||||
if strcmp(SezioneYZ(cc,1),Datasez)==1 && strcmp(SezioneYZ(cc,2),Orasez) ==1
|
||||
CoordY(scrivi,1) = SezioneYZ(cc,3);
|
||||
CoordZ(scrivi,1) = SezioneYZ(cc,4);
|
||||
scrivi = scrivi+1;
|
||||
end
|
||||
end
|
||||
|
||||
comando = ['select id from units where name like ''' char(unitrif) ''' '];
|
||||
curs = exec(conn,comando);
|
||||
curs = fetch(curs);
|
||||
unitID = curs.Data;
|
||||
|
||||
% Data di fine PreConvergenza
|
||||
comando = ['select prod_date_node from tools where unit_ID like ''' ...
|
||||
num2str(cell2mat(unitID)) ''' and name like ''' DTcatena ''' '];
|
||||
curs = exec(conn,comando);
|
||||
curs = fetch(curs);
|
||||
dati = curs.Data;
|
||||
stringa = cell2mat(dati(1,1));
|
||||
if strcmp(stringa,'null') || strcmp(stringa,'No Data')
|
||||
data_PC = 0;
|
||||
% time_PC = 0;
|
||||
else
|
||||
data_PC = stringa(1,1:10);
|
||||
% time_PC = stringa(1,11:21);
|
||||
end
|
||||
if data_PC ~= 0
|
||||
% Scarico dati di Fine PreConvergenza
|
||||
Num = zeros(rPCL(m,1),1);
|
||||
for p = 1:rPCL(m,1)
|
||||
NodeNum = num2str(NodoPreConvLink(p,m));
|
||||
comando = ['select EventDate, EventTime, ZShift, Z, Y from ElabDataView where EventDate < ''' ...
|
||||
data_PC ''' and ToolNameID = ''' char(toolrif) ''' and UnitName = ''' char(unitrif) ...
|
||||
''' and NodeNum = ''' NodeNum ''' '];
|
||||
curs = exec(conn,comando);
|
||||
curs = fetch(curs);
|
||||
Dati_PC = curs.Data;
|
||||
Num(p,1) = NodoPreConvLink(p,m);
|
||||
|
||||
[rD,rC] = size(Dati_PC);
|
||||
if rC ~= 1
|
||||
T = [cell2mat(Dati_PC(:,1)) repmat(' ', [rD,1]) cell2mat(Dati_PC(:,2))];
|
||||
Date = datenum(T); % Data
|
||||
|
||||
% Fine Pre-Convergenza
|
||||
asseZ_PC(:,p) = 1000*cell2mat(Dati_PC(:,3));
|
||||
asseZ_Cum_PC(:,p) = 1000*cell2mat(Dati_PC(:,4));
|
||||
diffZ_PC(:,p) = asseZ_PC(:,p)-asseZ_PC(1,p); % mm
|
||||
Z_Loc_PC(1,p) = asseZ_PC(end,p)-asseZ_PC(1,p);
|
||||
Z_Cum_PC(1,p) = asseZ_Cum_PC(end,p)-asseZ_Cum_PC(1,p);
|
||||
Y_PC(1,p) = cell2mat(Dati_PC(end,5));
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
% Scarico dati odierni
|
||||
Num = zeros(rPCL(m,1),1);
|
||||
for p = 1:rPCL(m,1)
|
||||
NodeNum = num2str(NodoPreConvLink(p,m));
|
||||
comando = ['select EventDate, EventTime, ZShift, Z, Y 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(p,1) = NodoPreConvLink(p,m);
|
||||
|
||||
[rD,rC] = size(Dati);
|
||||
if rC ~= 1
|
||||
T = [cell2mat(Dati(:,1)) repmat(' ', [rD,1]) cell2mat(Dati(:,2))];
|
||||
Date = datenum(T); % Data
|
||||
if p == 1 % Il primo lo scrivo e creo la variabile di controllo
|
||||
else
|
||||
[rS,~] = size(asseZ);
|
||||
if rD ~= rS
|
||||
NODATA(m,1) = 1;
|
||||
check = 0;
|
||||
break
|
||||
else
|
||||
check = 1;
|
||||
end
|
||||
end
|
||||
|
||||
% Ultimo mese
|
||||
asseZ(:,p) = 1000*cell2mat(Dati(:,3));
|
||||
asseZ_Cum(:,p) = 1000*cell2mat(Dati(:,4));
|
||||
diffZ(:,p) = asseZ(:,p)-asseZ(1,p); % mm
|
||||
Z_Loc(1,p) = asseZ(end,p)-asseZ(1,p);
|
||||
Z_Cum(1,p) = asseZ_Cum(end,p)-asseZ_Cum(1,p);
|
||||
Z_Loc_Tot(1,p) = asseZ(end,p);
|
||||
Z_Cum_Tot(1,p) = asseZ_Cum(end,p);
|
||||
Y(1,p) = cell2mat(Dati(end,5));
|
||||
|
||||
else
|
||||
NODATAPCL(m,1) = 1;
|
||||
check = 1;
|
||||
end
|
||||
end
|
||||
|
||||
if NODATAPCL(m,1) == 0
|
||||
if strcmp(colonna2bis(m+1,1),colonna2(m+1,1)) == 0 % data zero diversa data riferimento
|
||||
datarifNEW = datestr(firstdata_num{m+1,1},'yyyy-mm-dd'); % data riferimento definita sul sito
|
||||
for nw = 1:rPCL(m,1)
|
||||
NodeNum = num2str(NodoPreConvLink(nw,m));
|
||||
comando = ['select EventDate, EventTime, ZShift, Z, Y 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;
|
||||
Num(nw,1) = NodoPreConvLink(nw,m);
|
||||
|
||||
[~,rC] = size(DatiNEW);
|
||||
if rC ~= 1
|
||||
% dalla data di riferimento
|
||||
% divergenza/convergenza dei singoli nodi dall'inizio
|
||||
Z_Loc_Tot(1,nw) = asseZ(end,nw)-1000*cell2mat(DatiNEW(1,3));
|
||||
Z_Cum_Tot(1,nw) = asseZ_Cum(end,nw)-1000*cell2mat(DatiNEW(1,4));
|
||||
if data_PC ~= 0
|
||||
% Solo periodo di PreConvergenza
|
||||
Z_Loc_PC(1,nw) = asseZ_PC(end,nw)-1000*cell2mat(DatiNEW(1,3));
|
||||
Z_Cum_PC(1,nw) = asseZ_Cum_PC(end,nw)-1000*cell2mat(DatiNEW(1,4));
|
||||
end
|
||||
else
|
||||
NODATAPCL(m,1) = 1;
|
||||
end
|
||||
end
|
||||
end
|
||||
GI_PCL_Date = Date;
|
||||
% Cerco eventuali correlazioni con Cir Array
|
||||
NomeFile = strcat('Report',siteID,'-PCLvsTuL.txt');
|
||||
Filetesto = importdata(NomeFile);
|
||||
[rF,~] = size(Filetesto);
|
||||
AAA = 1;
|
||||
Var = 0;
|
||||
while AAA < rF % A un PreConv possono competere più Cir
|
||||
check1 = Filetesto(AAA,1);
|
||||
if check1 == 99999 % Non ci sono PreConv Array o non ci sono Cir
|
||||
AAA = 2;
|
||||
else
|
||||
check2 = Filetesto(AAA+1,1);
|
||||
if check1 == str2num(DTcatena(end-2:end)) % Il PreConv è 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 PreConv è 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_PCL_Z = diffZ(:,Nodo);
|
||||
else
|
||||
GI_PCL_Z = [];
|
||||
end
|
||||
|
||||
% --- grafico spostamenti locali - Periodi di PreConvergenza ---
|
||||
figure(1)
|
||||
Y = round(Y);
|
||||
if data_PC ~= 0
|
||||
Disp_Loc_PC = bar(Y_PC,Z_Loc_PC');
|
||||
Z = Z_Loc_PC;
|
||||
else
|
||||
Disp_Loc_PC = bar(Y,Z_Loc');
|
||||
Z = Z_Loc;
|
||||
end
|
||||
title('Local displacements - Pre-Convergence phase');
|
||||
ylabel('Displacement [mm]');
|
||||
xlabel('Position [m]');
|
||||
maxY = max(Y);
|
||||
if maxY > 0
|
||||
xticks(0:1:maxY)
|
||||
else
|
||||
xticks(Y(end):1:0);
|
||||
end
|
||||
h = gca;
|
||||
h.YAxis.MinorTick = 'on';
|
||||
grid on
|
||||
if maxY < 0 % mm
|
||||
xlim([Y_PC(end)-1 0]);
|
||||
else
|
||||
xlim([0 maxY+1])
|
||||
end
|
||||
grid on
|
||||
iniY = min(min(Z',Z_Loc'));
|
||||
endY = max(max(Z',Z_Loc'));
|
||||
MAX = max(abs(iniY),endY);
|
||||
if MAX > 2.5 % Limiti Asse Y
|
||||
ylim([-MAX-1 MAX+1])
|
||||
else
|
||||
ylim([-2.5 +2.5]);
|
||||
end
|
||||
TempName1 = char(strcat('Report',siteID,'-', char(toolrif),'Z_Loc_PC_PCL_ENG.png'));
|
||||
saveas(Disp_Loc_PC(1),TempName1);
|
||||
close(figure(1))
|
||||
|
||||
figure(2)
|
||||
Y = round(Y);
|
||||
Disp_Loc_PCL = bar(Y,Z_Loc');
|
||||
title('Local displacements - Reference time period');
|
||||
ylabel('Displacement [mm]');
|
||||
xlabel('Position [m]');
|
||||
maxY = max(Y);
|
||||
minY = min(Y);
|
||||
MAXY = max(abs(minY),maxY);
|
||||
IY = find(max(abs(minY),maxY) == MAXY);
|
||||
maxY = Y(IY);
|
||||
if maxY > 0
|
||||
xticks(0:1:maxY)
|
||||
else
|
||||
xticks(Y(end):1:0);
|
||||
end
|
||||
h = gca;
|
||||
h.YAxis.MinorTick = 'on';
|
||||
grid on
|
||||
if MAX > 2.5 % Limiti Asse Y
|
||||
ylim([-MAX-1 MAX+1])
|
||||
else
|
||||
ylim([-2.5 +2.5]);
|
||||
end
|
||||
grid on
|
||||
if iniY < 2.5 && endY > 2.5 % Limiti Asse Y
|
||||
elseif iniY < 2.5
|
||||
ylim([iniY-1 2.5]);
|
||||
elseif endY < 2.5
|
||||
ylim([-2.5 endY+1]);
|
||||
end
|
||||
TempName2 = char(strcat('Report',siteID,'-', char(toolrif),'Z_Loc_PCL_ENG.png'));
|
||||
saveas(Disp_Loc_PCL(1),TempName2);
|
||||
close(figure(2))
|
||||
|
||||
ChartPCL = Image(TempName1);
|
||||
ChartPCL2 = Image(TempName2);
|
||||
lot1 = Table({ChartPCL, ChartPCL2});
|
||||
lot1.Style = {ResizeToFitContents(false), Width('100%')};
|
||||
ChartPCL.Style = {Height('6.6cm'),HAlign('center')};
|
||||
ChartPCL2.Style = {Height('6.6cm'),HAlign('center')};
|
||||
ChartPCL_cap = Paragraph(['Fig. ' num2str(FIG) ' - Local differential displacements '...
|
||||
'recorded in vertical direction during the pre-convergence phase and the '...
|
||||
'reference time period']);
|
||||
ChartPCL_cap.Style = {HAlign('justify'),FontSize(Font_caption),Italic(1),Color('midnightblue')};
|
||||
FIG = FIG+1;
|
||||
|
||||
% ---Grafico Sezione Periodo PreConvergenza---
|
||||
figure(3)
|
||||
contaS = 1;
|
||||
contaG = 1;
|
||||
contaF = 1;
|
||||
for disp = 1:rPCL(m,1)
|
||||
if diffZ_PC(end,disp)>0.5
|
||||
nodisuZ(contaS,1)=CoordZ(disp,1);
|
||||
nodisuY(contaS,1)=CoordY(disp,1);
|
||||
contaS = contaS + 1;
|
||||
elseif diffZ_PC(end,disp)< -0.5
|
||||
nodigiuZ(contaG,1)=CoordZ(disp,1);
|
||||
nodigiuY(contaG,1)=CoordY(disp,1);
|
||||
contaG = contaG + 1;
|
||||
else
|
||||
nodistabZ(contaF,1)=CoordZ(disp,1);
|
||||
nodistabY(contaF,1)=CoordY(disp,1);
|
||||
contaF = contaF + 1;
|
||||
end
|
||||
end
|
||||
%aggiungo coordinate ancora
|
||||
plot([0; cell2mat(CoordY(:,1))],[0; cell2mat(CoordZ(:,1))],'-','Color','black','MarkerSize' ,7);
|
||||
hold on
|
||||
if contaS > 1
|
||||
sezS = plot(cell2mat(nodisuY(:,1)),cell2mat(nodisuZ(:,1)),'^','Color','red','MarkerSize' ,7);
|
||||
set(sezS, 'markerfacecolor', get(sezS, 'color'));
|
||||
end
|
||||
if contaG > 1
|
||||
sezG = plot(cell2mat(nodigiuY(:,1)),cell2mat(nodigiuZ(:,1)),'v','Color',[0.4660 0.6740 0.1880],'MarkerSize' ,7);
|
||||
set(sezG, 'markerfacecolor', get(sezG, 'color'));
|
||||
end
|
||||
if contaF > 1
|
||||
sezN = plot(cell2mat(nodistabY(:,1)),cell2mat(nodistabZ(:,1)),'o','Color','black');
|
||||
set(sezN, 'markerfacecolor', get(sezN, 'color'));
|
||||
end
|
||||
ancora = plot(0,0,'s','Color','black','MarkerSize' ,13);
|
||||
set(ancora, 'markerfacecolor', get(ancora, 'color'));
|
||||
if contaS > 1 && contaG > 1 && contaF > 1
|
||||
legend('Array geometry','Upwards','Downwards','Stable node','Anchor','Location','south');
|
||||
elseif contaS > 1 && contaG > 1 && contaF == 1
|
||||
legend('Array geometry','Upwards','Downwards','Anchor','Location','south');
|
||||
elseif contaS > 1 && contaG == 1 && contaF > 1
|
||||
legend('Array geometry','Upwards','Stable node','Anchor','Location','south');
|
||||
elseif contaS == 1 && contaG > 1 && contaF > 1
|
||||
legend('Array geometry','Downwards','Stable node','Anchor','Location','south');
|
||||
elseif contaS > 1 && contaG == 1 && contaF == 1
|
||||
legend('Array geometry','Upwards','Anchor','Location','south');
|
||||
elseif contaS == 1 && contaG > 1 && contaF == 1
|
||||
legend('Array geometry','Downwards','Stable node','Anchor','Location','south');
|
||||
elseif contaS == 1 && contaG == 1 && contaF > 1
|
||||
legend('Array geometry','Stable node','Anchor','Location','south');
|
||||
end
|
||||
title('Displacement direction - Pre-convergence phase');
|
||||
xlabel('Position [m]');
|
||||
ylabel('Vertical direction');
|
||||
set(gca,'YTickLabel',[]);
|
||||
set(gca,'YTick',[]);
|
||||
ini = min([0; cell2mat(CoordY)]);
|
||||
End = max([0; cell2mat(CoordY)]);
|
||||
h = gca;
|
||||
if ini >= -15 || End <= 15
|
||||
if ini == 0
|
||||
xticks(ini:1:End+1);
|
||||
xlim([ini,End+1]);
|
||||
elseif End == 0
|
||||
xticks(ini-1:1:End);
|
||||
xlim([ini-1,End]);
|
||||
end
|
||||
else
|
||||
h.XAxis.MinorTick = 'on';
|
||||
end
|
||||
grid off
|
||||
axes('pos',[0.1 0.8 .3 .1])
|
||||
imshow('direzionescavoENG.png')
|
||||
hold off
|
||||
TempName = char(strcat('Report',siteID,'-', char(toolrif),'SezPCL_ENG.png'));
|
||||
saveas(ancora,TempName);
|
||||
ChartSEZPC1 = Image(TempName);
|
||||
ChartSEZPC1.Style = {Height('6.6cm')};
|
||||
close(figure(3))
|
||||
|
||||
% ---Grafico Sezione Ultimo Mese---
|
||||
figure(4)
|
||||
clear nodisuZ
|
||||
clear nodisuY
|
||||
clear nodigiuZ
|
||||
clear nodigiuY
|
||||
clear nodistabZ
|
||||
clear nodistabY
|
||||
contaS_2 = 1;
|
||||
contaG_2 = 1;
|
||||
contaF_2 = 1;
|
||||
for disp = 1:rPCL(m,1)
|
||||
if diffZ(end,disp) > 0.5 % mm
|
||||
nodisuZ(contaS_2,1) = CoordZ(disp,1); % il +1 salta l'ancora introdotta dopo l'esecuzione della funzione gemella
|
||||
nodisuY(contaS_2,1) = CoordY(disp,1);
|
||||
contaS_2 = contaS_2 + 1;
|
||||
elseif diffZ(end,disp) < -0.5
|
||||
nodigiuZ(contaG_2,1) = CoordZ(disp,1);
|
||||
nodigiuY(contaG_2,1) = CoordY(disp,1);
|
||||
contaG_2 = contaG_2 + 1;
|
||||
else
|
||||
nodistabZ(contaF_2,1) = CoordZ(disp,1);
|
||||
nodistabY(contaF_2,1) = CoordY(disp,1);
|
||||
contaF_2 = contaF_2 + 1;
|
||||
end
|
||||
end
|
||||
plot([0; cell2mat(CoordY(:,1))],[0; cell2mat(CoordZ(:,1))],'-','Color','black','MarkerSize' ,7);
|
||||
hold on
|
||||
if contaS_2 > 1
|
||||
sezS = plot(cell2mat(nodisuY(:,1)),cell2mat(nodisuZ(:,1)),'^','Color','red','MarkerSize' ,7);
|
||||
set(sezS, 'markerfacecolor', get(sezS, 'color'));
|
||||
end
|
||||
if contaG_2 > 1
|
||||
sezG = plot(cell2mat(nodigiuY(:,1)),cell2mat(nodigiuZ(:,1)),'v','Color',[0.4660 0.6740 0.1880],'MarkerSize' ,7);
|
||||
set(sezG, 'markerfacecolor', get(sezG, 'color'));
|
||||
end
|
||||
if contaF_2 > 1
|
||||
sezN = plot(cell2mat(nodistabY(:,1)),cell2mat(nodistabZ(:,1)),'o','Color','black');
|
||||
set(sezN, 'markerfacecolor', get(sezN, 'color'));
|
||||
end
|
||||
ancora = plot(0,0,'s','Color','black','MarkerSize' ,13);
|
||||
set(ancora, 'markerfacecolor', get(ancora, 'color'));
|
||||
if contaS_2 > 1 && contaG_2 > 1 && contaF_2 > 1
|
||||
legend('Array geometry','Upwards','Downwards','Stable node','Anchor','Location','south');
|
||||
elseif contaS_2 > 1 && contaG_2 > 1 && contaF_2 == 1
|
||||
legend('Array geometry','Upwards','Downwards','Anchor','Location','south');
|
||||
elseif contaS_2 > 1 && contaG_2 == 1 && contaF_2 > 1
|
||||
legend('Array geometry','Upwards','Stable node','Anchor','Location','south');
|
||||
elseif contaS_2 == 1 && contaG_2 > 1 && contaF_2 > 1
|
||||
legend('Array geometry','Downwards','Stable node','Anchor','Location','south');
|
||||
elseif contaS_2 > 1 && contaG_2 == 1 && contaF_2 == 1
|
||||
legend('Array geometry','Upwards','Anchor','Location','south');
|
||||
elseif contaS_2 == 1 && contaG_2 > 1 && contaF_2 == 1
|
||||
legend('Array geometry','Downwards','Stable node','Anchor','Location','south');
|
||||
elseif contaS_2 == 1 && contaG_2 == 1 && contaF_2 > 1
|
||||
legend('Array geometry','Stable node','Anchor','Location','south');
|
||||
end
|
||||
title('Displacement direction - Reference time period');
|
||||
xlabel('Position [m]');
|
||||
ylabel('Vertical direction');
|
||||
set(gca,'YTickLabel',[]);
|
||||
set(gca,'YTick',[]);
|
||||
ini = min([0; cell2mat(CoordY)]);
|
||||
End = max([0; cell2mat(CoordY)]);
|
||||
h = gca;
|
||||
if ini >= -15 || End <= 15
|
||||
if ini == 0
|
||||
xticks(ini:1:End+1);
|
||||
xlim([ini,End+1]);
|
||||
elseif End == 0
|
||||
xticks(ini-1:1:End);
|
||||
xlim([ini-1,End]);
|
||||
end
|
||||
else
|
||||
h.XAxis.MinorTick = 'on';
|
||||
end
|
||||
grid off
|
||||
axes('pos',[0.1 0.8 .3 .1])
|
||||
imshow('direzionescavoENG.png')
|
||||
hold off
|
||||
TempName = char(strcat('Report',siteID,'-', char(toolrif),'SezPCL2_ENG.png'));
|
||||
saveas(ancora,TempName);
|
||||
|
||||
ChartSEZPC2 = Image(TempName);
|
||||
ChartSEZPC2.Style = {Height('6.6cm')};
|
||||
ChartSEZPC2_cap = Paragraph(['Fig. ' num2str(FIG) ' - Vertical displacements direction '...
|
||||
'observed during the pre-convergence phase and the reference time period']);
|
||||
FIG = FIG+1;
|
||||
ChartSEZPC2_cap.Style = {HAlign('center'),FontSize(Font_caption),Italic(1),Color('midnightblue')};
|
||||
lot2 = Table({ChartSEZPC1, ChartSEZPC2});
|
||||
lot2.Style = {ResizeToFitContents(false), Width('100%')};
|
||||
close(figure(4))
|
||||
|
||||
% --- grafico spostamenti cumulati - periodo di preconvergenza ---
|
||||
figure(5)
|
||||
if maxY < 0
|
||||
plot([0 Y],[0 Z_Cum_PC],'-','LineWidth',1,'Marker','.',...
|
||||
'MarkerSize',15,'MarkerEdgeColor',[0.6350 0.0780 0.1840],'MarkerFaceColor',[0.6350 0.0780 0.1840]);
|
||||
else
|
||||
plot([Y 0],[Z_Cum_PC 0],'-','LineWidth',1,'Marker','.',...
|
||||
'MarkerSize',15,'MarkerEdgeColor',[0.6350 0.0780 0.1840],'MarkerFaceColor',[0.6350 0.0780 0.1840]);
|
||||
end
|
||||
hold on
|
||||
ancora = plot(0,0,'s','Color','black','MarkerSize' ,13);
|
||||
set(ancora, 'markerfacecolor', get(ancora, 'color'));
|
||||
title('Cumulative displacements - Pre-convergence phase');
|
||||
ylabel('Displacement [mm]');
|
||||
xlabel('Position [m]');
|
||||
h = gca;
|
||||
h.YAxis.MinorTick = 'on';
|
||||
grid on
|
||||
|
||||
if maxY > 0 % mm
|
||||
xlim([0 maxY+1]);
|
||||
else
|
||||
xlim([Y(end)-1 0])
|
||||
end
|
||||
grid on
|
||||
|
||||
iniY = min(min(Z_Cum_PC',Z_Cum'));
|
||||
endY = max(max(Z_Cum_PC',Z_Cum'));
|
||||
MAX = max(abs(iniY),endY);
|
||||
if MAX > 2.5 % Limiti Asse Y
|
||||
ylim([-MAX-1 MAX+1])
|
||||
else
|
||||
ylim([-2.5 +2.5]);
|
||||
end
|
||||
|
||||
if ini >= -15 || End <= 15
|
||||
xticks(ini:1:End);
|
||||
else
|
||||
h.XAxis.MinorTick = 'on';
|
||||
end
|
||||
TempName3 = char(strcat('Report',siteID,'-', char(toolrif),'Z_Cum_PC_ENG.png'));
|
||||
saveas(ancora(1),TempName3);
|
||||
close(figure(5))
|
||||
|
||||
% --- grafico spostamenti cumulati - Periodo di riferimento ---
|
||||
figure(6)
|
||||
if maxY < 0
|
||||
plot([0 Y],[0 Z_Cum],'-','LineWidth',1,'Marker','.',...
|
||||
'MarkerSize',15,'MarkerEdgeColor','b','MarkerFaceColor',[0.5,0.5,0.5]);
|
||||
else
|
||||
plot([Y 0],[Z_Cum 0],'-','LineWidth',1,'Marker','.',...
|
||||
'MarkerSize',15,'MarkerEdgeColor','b','MarkerFaceColor',[0.5,0.5,0.5]);
|
||||
end
|
||||
hold on
|
||||
ancora = plot(0,0,'s','Color','black','MarkerSize' ,13);
|
||||
set(ancora, 'markerfacecolor', get(ancora, 'color'));
|
||||
title('Cumulative displacements - Reference time period');
|
||||
ylabel('Displacement [mm]');
|
||||
xlabel('Position [m]');
|
||||
h = gca;
|
||||
h.YAxis.MinorTick = 'on';
|
||||
grid on
|
||||
|
||||
if MAX > 2.5 % Limiti Asse Y
|
||||
ylim([-MAX-1 MAX+1])
|
||||
else
|
||||
ylim([-2.5 +2.5]);
|
||||
end
|
||||
if ini >= -15 || End <= 15
|
||||
xticks(ini:1:End);
|
||||
else
|
||||
h.XAxis.MinorTick = 'on';
|
||||
end
|
||||
TempName4 = char(strcat('Report',siteID,'-', char(toolrif),'Z_Cum_PCL_ENG.png'));
|
||||
saveas(ancora(1),TempName4);
|
||||
close(figure(6))
|
||||
|
||||
ChartPCL3 = Image(TempName3);
|
||||
ChartPCL4 = Image(TempName4);
|
||||
lot3 = Table({ChartPCL3, ChartPCL4});
|
||||
lot3.Style = {ResizeToFitContents(false), Width('100%')};
|
||||
ChartPCL3.Style = {Height('6.6cm'),HAlign('center')};
|
||||
ChartPCL4.Style = {Height('6.6cm'),HAlign('center')};
|
||||
ChartPCL3_cap = Paragraph(['Fig. ' num2str(FIG) ' - Cumulative differential displacements '...
|
||||
'recorded in vertical direction during the pre-convergence phase and '...
|
||||
'the reference time period']);
|
||||
ChartPCL3_cap.Style = {HAlign('justify'),FontSize(Font_caption),Italic(1),Color('midnightblue')};
|
||||
FIG = FIG+1;
|
||||
|
||||
% testi
|
||||
sezPCL = Heading3('PreConv Link');
|
||||
sezPCL.Style = {FontSize(Font_tools),Bold(1),Italic(1)};
|
||||
PCL = Section();
|
||||
PCL.Title = sezPCL;
|
||||
testo1 = Paragraph(['Following graphs display the magnitude and direction '...
|
||||
'of local and cumulative displacements '...
|
||||
'measured along the vertical direction by the 3D MEMS sensor during the pre-convergence phase '...
|
||||
'(referring to the time interval between the reference date reported in Tab. 1 '...
|
||||
'and the following date: ' datestr(datenum(data_PC),'dd-mm-yyyy') ') and the reference time period. '...
|
||||
'In particular, negative values correspond to downwards movements of the node, '...
|
||||
'while positive ones represent an upward displacement.']);
|
||||
% Locale ultimo mese
|
||||
progZ = max(abs(Z_Loc));
|
||||
prY = find(abs(Z_Loc)==progZ);
|
||||
progY = Y(prY(1));
|
||||
% Locale da sempre
|
||||
progZ_Tot = max(abs(Z_Loc_Tot));
|
||||
prY_Tot = find(abs(Z_Loc_Tot)==progZ_Tot);
|
||||
progY_Tot = Y(prY_Tot(1));
|
||||
% locale periodo pre-convergenza
|
||||
progZ_PC = max(abs(Z_Loc_PC));
|
||||
prY_PC = find(abs(Z_Loc_PC)==progZ_PC);
|
||||
progY_PC = Y(prY_PC(1));
|
||||
testo2 = Paragraph(['The maximum local differential displacement value recorded during the reference time period is '...
|
||||
num2str(max(abs(round(Z_Loc,1)))) ' mm, measured by the node '...
|
||||
'located at ' num2str(progY) ' m from the fixed point. The same analysis performed on the pre-convergence phase '...
|
||||
'and on the complete monitoring period highlights local differential displacement values of ' num2str(max(abs(round(Z_Loc_PC,1)))) ...
|
||||
' and ' num2str(max(abs(round(Z_Loc_Tot,1)))) ' mm, recorded by nodes located respectively at ' num2str(progY_PC) ...
|
||||
' m and ' num2str(progY_Tot) ' m from the fixed point.']);
|
||||
parte1 = ['The corresponding figure summarizes the vertical displacement direction of each single node, according '...
|
||||
'to their position along the Array. In this specific representation, sensors featuring displacement values less than 0.5 mm '...
|
||||
'are assumed as stable. During the pre-convergence phase, the analysis evidenced ' num2str(contaS-1) ' '];
|
||||
if contaS-1 == 1
|
||||
parte2 = 'node featuring ';
|
||||
else
|
||||
parte2 = 'nodes featuring ';
|
||||
end
|
||||
parte3 = ['upward movement, ' num2str(contaG-1) ' in downward direction, and ' num2str(contaF-1) ];
|
||||
if contaF-1 == 1
|
||||
parte4 = ' stable sensor. ';
|
||||
else
|
||||
parte4 = ' stable sensors. ';
|
||||
end
|
||||
parte5 = ['By taking into account the reference time period, the '...
|
||||
'results show ' num2str(contaS_2-1) ];
|
||||
if contaS_2-1 == 1
|
||||
parte6 = ' sensor moving ';
|
||||
else
|
||||
parte6 = ' sensors moving ';
|
||||
end
|
||||
parte7 = ['upwards, ' num2str(contaG_2-1) ' in downward direction, and ' num2str(contaF_2-1) ];
|
||||
if contaF_2-1 == 1
|
||||
parte8 = ' stable node.';
|
||||
else
|
||||
parte8 = ' stable nodes.';
|
||||
end
|
||||
testo3 = Paragraph([parte1 parte2 parte3 parte4 parte5 parte6 parte7 parte8]);
|
||||
spazio = Paragraph('');
|
||||
testo1.HAlign = 'justify';
|
||||
testo2.HAlign = 'justify';
|
||||
testo3.HAlign = 'justify';
|
||||
add(DT,sezPCL);
|
||||
add(DT,testo1);
|
||||
add(DT,spazio);
|
||||
add(DT,testo2);
|
||||
add(DT,lot1);
|
||||
add(DT,ChartPCL_cap);
|
||||
add(DT,testo3);
|
||||
add(DT,lot2);
|
||||
add(DT,ChartSEZPC2_cap);
|
||||
add(DT,lot3);
|
||||
add(DT,ChartPCL3_cap);
|
||||
add(DT,br);
|
||||
else
|
||||
if ATTIVA == 1
|
||||
testo = Paragraph('No data available for the reference time period.');
|
||||
ATTIVA = 0;
|
||||
check = 1;
|
||||
add(DT,testo);
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
fileID = fopen(FileName,'a');
|
||||
fmt = '%s \r';
|
||||
text = 'report_PCL_ENG function executed correctly';
|
||||
fprintf(fileID,fmt,text);
|
||||
fclose(fileID);
|
||||
|
||||
end
|
||||
Reference in New Issue
Block a user