modellistica e controllo dei sistemi ambientali Di Mauro Patti
-
Upload
giuseppe-patti -
Category
Documents
-
view
219 -
download
1
description
Transcript of modellistica e controllo dei sistemi ambientali Di Mauro Patti
Modellistica e Controllo dei Sistemi Ambientali
Gianluca Di Mauro Giuseppe Patti
Ingegneria dell’Automazione e Controllo dei Sistemi Complessi
Anno 2008/09
Vulcani
Nell'accezione comune il vulcano è il rilievo formato dalle masse di rocce ignee eruttate dall'interno della Terra(edificio vulcanico o cono vulcanico).In generale sono vulcani tutte le discontinuità nella crosta terrestre attraverso le quali, con manifestazioni varie, si fanno strada i prodotti dell'attività magmatica endogena: polveri, gas, vapori e materiali fusi solidi. La fuoriuscita di materiale è detta eruzione e i materiali eruttati sono: lava,cenere,lapilli,gas, scorie varie e vapore acqueo.
VulcanesimoAttività Vulcanica:Un vulcano può trovarsi in quattro stati o fasi di attività: •Quiescenza e Solfatarica:manifestazioni postvulcaniche, quali solfatarefumarole, mofete, acque termali.•Attività permanente moderata:L'attività permanente moderata può essere rappresentata dalle eruzioni hawaiane, con formazione di laghi di lava di lunga durata o dalle eruzioni stromboliane, con alternanze di lanci di scorie e fuoriuscita di lave, fluide, o dalla estrusione di cupole e di guglie laviche.
Vulcanesimo•Eruzione Possono essere di diverso tipo: possono dar luogo a fenomeni esplosivi, con ceneri e lapilli proiettati fino a decine di km al di sopra del cratere e depositati fino a centinaia di km di distanza dal centro eruttivo, o effusivi, se il magma fuoriesce formando una colata lavica che si propaga per distanze minori.•Distribuzione Geografica dei VulcaniI vulcani sono localizzati in zone che corrispondono alle aree di alta sismicità e che seguono le catene montuose a pieghe di origine recente, le fratture e le fosse tettoniche sia continentali sia oceaniche.
Fasi di sviluppo
1.Distribuzione cumulativa delle durate delle eruzioni.
2.Distribuzione cumulativa degli intervalli di tempo tra eruzioni successive
3.Eseguire un’ analisi statistica circa le eventuali correlazioni tra i vulcani in eruzione nello stesso periodo di tempo.
4.Studio dei grafi ottenuti connettendo tutti i vulcani in eruzione in un determinato intervallo temporale.
Fase Preliminare
Lo studio qui presentato è ottenuto mediante l’analisi delle informazioni ottenute dal sito: http://www.volcanolive.com/world.htmlSito contenente le posizioni dei vulcani con le rispettive longitudini,latitudini e le date delle eruzioni.Dalle informazioni presenti è stato allora sviluppato un database necessario nelle successive fasi.
Fase 1In questa fase si è calcolata la distribuzione cumulativa della durate delle eruzioni:Si è creato un vettore di durata_eruzione:for i=1:Neruzioni
durata_eruzione(i) =fine_eruzione(i)-inizio_eruzione(i);end
Si è poi provveduto al calcolo della distribuzione:for j=1:max_eruz
for i=1:Neruzioniif( durata_eruzione(i)>j)counter(j)=counter(j)+1;endend
endloglog(counter)
Fase 1Distribuzione Cumulativa della durate delle eruzioni:
Numero eruzioni
Tempo(anni)
Fase 1La distribuzione ottenuta ha un andamentoa legge di Potenza:Una legge di potenza è caratterizzata dall’avere all’aumentare dell’intensità del fenomeno(ad esempio la durata delle eruzioni), un decremento nella frequenza di osservazione.Per esempio, nel caso dei terremoti al raddoppiare della magnitudine l’occorrenza del fenomeno diventa 4 volte più rara.Nel caso di distribuzione power law non è possibile definire un valore medio delle intensità,o una mediana.
Fase 2Distribuzione cumulativa degli intervalli di tempo tra eruzioni successive:Per ogni vulcano è stato calcolatoil numero di eruzioni:
eruzioni=size(vulcano.idVolc);eruzioni=eruzioni(:,1)
E la durata tra eruzioni successive: for u=1:eruzioniif((eruzioni+1)< b)
durata_er(s,u)=vulcano.AnnoInizio(u+1)-vulcano.AnnoFine(u);
Fase 2Con lo stesso procedimento utilizzato precedentemente si È poi plottata la distribuzione cumulativa degli intervalli di Tempo tra eruzioni successive considerando le eruzioni Successive di tutti i vulcani ottenendo:
Numero eruzioni
Tempo(anni)
Fase 2
Questa volta non è stato possibile supporre un andamento a Legge di potenza della distribuzione cumulativa:
Numero eruzioni
Tempo(anni)
Fase 2
Si sono inoltre calcolate le distribuzioni cumulative traeruzioni successive di alcuni vulcani più significativi:
Tinakula :Numero eruzioni
Tempo(Anni)
Fase 2
Santo Cristobal
Numero eruzioni
Tempo(Anni)
Fase 2
GuazapaNumero eruzioni
Tempo(anni)
Fase 2
Anche questa volta non è stato possibile supporre un andamento a legge di potenza.Nonostante in alcuni casi sono state notate forti somiglianze con l'andamento powerlaw.
Fase 3Analisi statistica:Sono state ricercate le correlazioni tra i vulcani in eruzione nello stesso periodo di tempo.
E’ stato scelto di selezionare l’intervallo di studio mediante delle Query dinamiche:
s1='SELECT DISTINCT Idvolc FROM Eruzioni WHERE AnnoInizio BETWEEN '
Mediante i parametri w,p si è scelto la dimensione della finestra d’analisi e l’ampiezza dell’intervallo temporale.
Fase 3Si è poi passato alla costruzione della matrice delle adiacenze:adiacenze=zeros(Nvolc,Nvolc);for i=1:Nvolc
for j=1:Nvolcconfronta=0;confrontb=0;a=completan.idVolc(i);b=completan.idVolc(j);for k=1:l
if (a==rangen.Idvolc(k))confronta=1;
endif (b==rangen.Idvolc(k))
confrontb=1;endif((confronta*confrontb)==1)adiacenze(i,j)=1;
Fase 3
Ad ogni iterazione si è plottata la matrice delle adiacenze mediante la funzione biographIterazione di passo p(anni)Si è poi:•Calcolata la matrice di correlazione dell’intervallo di tempo specificato:
for i=1:Niterazioniadiacenze=st(i).data.*st(i+1).data;
Fase 3s1='SELECT DISTINCT Id,Nome,Lat,Dir_Lat,Lon,Dir_Lon FROM Vulcani WHERE Id = ';
s2=completan.idVolc(i);s2=num2str(s2);s=strcat(s1,s2);s=[s1 s2 ];curs=exec(conn,s);curs=fetch(curs);setdbprefs('DataReturnFormat','structure');vulcano1=curs.Data;s3='SELECT DISTINCT
Id,Nome,Lat,Dir_Lat,Lon,Dir_Lon FROM Vulcani WHERE Id = ';s4=completan.idVolc(j);s4=num2str(s4);s=strcat(s3,s4);s=[s3 s4 ];curs=exec(conn,s);curs=fetch(curs);
Fase 3if (strcmp(vulcano1(1).Dir_Lat,'S'))
vulcano1(1).Lat=-vulcano1(1).Lat;endif (strcmp(vulcano1(1).Dir_Lon , 'W'))
vulcano1(1).Lon=-vulcano1(1).Lon;endif (strcmp(vulcano2(1).Dir_Lat,'S'))
vulcano2(1).Lat=-vulcano2(1).Lat;endif (strcmp(vulcano2(1).Dir_Lon, 'W'))
vulcano2(1).Lon=-vulcano2(1).Lon;endvulcano1(1).Nome; vulcano2(1).Nome;lat(count)= vulcano1(1).Lat;lon(count)= vulcano1(1).Lon;count=count+1;
Fase 3Si è poi calcolata la matrice delle adiacenze pesate con le Distanze
[dist,atz]=distance(vulcano1(1).Lat,vulcano1(1).Lon,vulcano2(1).Lat,vulcano2(1).Lon)
adiacenze(i,j)=1*dist;
che è stata plottata mostrando i pesi(distanza tra il vulcano i,j):
view(biograph(adiacenze,idd,'ShowWeights','on'))
La matrice delle adiacenze finale si è poi visualizzata mediante il comando geoshow scegliendo il giallo per i nodi correlati e il rosso per i restanti nodi.
Fase 3Risultati:Sono stati ottenuti:Nell’intervallo dal 1950-1965 si è scelto un ampiezza di 5 anni per il calcolo della correlazioneFinestra 1: 1950-1960Finestra 2: 1955-1965Si è lavorato sul database VolcanoesPl.mdb(contenente i database dei gruppi 1-7-10)
Fase 3Correlazione tra i vulcani in eruzione dal 1950-1965 (database VolcanoesPL.mdb)
Fase 3
Risultati:Sono stati ottenuti:Nell’intervallo dal 1950-1965 si è scelto un ampiezza di 5 anni per il calcolo della correlazioneFinestra 1: 1950-1960Finestra 2: 1955-1965Si è lavorato sul database volcanoes.mdb(contenente il database del gruppo 7)
Fase 3
Dato il minor numero di vulcani in questo database è stato Possibile mostrare il grafo contente i vulcani in eruzione nella finestra Temporale (1950-1960) :
I nodi collegati rappresentanoI vulcani attivi nella finestra temporale
Fase 3
Grafo contente i vulcani in eruzione nella finestra Temporale (1955-1965) :
Fase 3
Calcolo della correlazione:Vengono visualizzati i vulcani correlati nella finestra temporaleIn un grafo pesato con le distanze tra i vulcani :
Fase 3
Il risultato finale è poi mostrato su una mappa della terra:
Fase 3
Ulteriore esempio:Si sono costruite 2 finestre di passo 10anniFinestra 1: 1970-1980Finestra 2: 1982-1992Il database utilizzato è ancora volcanoes.mdb (database del gruppo7)
Fase 3
Finestra 1:visualizzazione mediante il biograph dei vulcani Attivi dal 1970-1980 nel database volcanoes.mdb
Fase 3
Finestra 2:visualizzazione mediante il biograph dei vulcani Attivi dal 1982-1992 nel database volcanoes.mdb
Fase 3
Plotting della correlazione:
Fase 3
Mappa:
Fase 4Studio dei grafi:Questo studio che è stato effettuato connettendo tutti i
vulcani in eruzione in un determinato intervallo temporale, è stato reso possibile grazie all’utilizzo di particolari indici, che come vedremo, permettono di identificare la topologia e le proprietà di un grafo:
Lunghezza media di un camminoCoefficiente di clusteringGrado (connettività) di un nodo
Fase 4Lunghezza media di un cammino:
In un network la distanza tra due nodi i e j si definisce come il numero di archi del cammino più breve che li connette.
La lunghezza media di un cammino (L) di un network è la media delle distanze tra coppie di nodi ottenuta come media aritmetica su tutte le coppie di nodi
Fase 4Coefficiente di clustering:Per quanto riguarda il coefficiente di clustering
supponiamo che il nodo j della network abbiakj archi che lo connettono ad altrettanti nodi.Questi nodi sono vicini del nodo j.Al più kj (kj – 1) / 2 archi possono esistere traloro (quando ogni vicino del nodo j è connesso ad ogni altro vicino del nodo j).
Ne esistono, in generale, di meno (Ej).
Fase 4Da cui si ha cheIl coefficiente di clustering del nodo j (Cj) si
definisce come il rapportoCj=2 Ej / (kj (kj-1))
mentre coefficiente di clustering del network (C) sidefinisce come la media aritmetica dei coefficienti di ogni nodo
C = (1/n)∑jCj
Fase 4Grado del nodo:Il grado di un nodo j (kj) è definito come il numero
totale di connessioni con altri nodi,quindi intuitivamente, fornisce un’idea dell’importanza di un nodo
Il valore della media aritmetica del grado diogni nodo si definisce come grado medio delnetwork <k>
Fase 4Fatto questo breve excursus esaminiamo il codice che ci
ha permesso di svolgere tale lavoro.
La scelta della finestra temporale è effettuata mediante una query dinamica,dove i due parametri s2 e p costituiscono rispettivamente l'anno di inizio e di fine dell'intervallo temporale scelto; mentre l'ampiezza della finestra è individuata mediante un terzo parametro p mentre w rappresenta il numero di iterazioni
Fase 4for w=1:4
s1='SELECT DISTINCT Idvolc FROM Eruzioni WHERE AnnoInizio BETWEEN ';
s2=1954+p;
p=w+10;
s2=num2str(s2);
s3=' AND ';
s4=1949+p+3;
s4=num2str(s4);
s=strcat(s1,s2,s3,s4);
s=[s1 s2 s3 s4];
curs=exec(conn,s);
curs=fetch(curs);
setdbprefs('DataReturnFormat','structure')
rangen=curs.Data;
rangen;
rangen.Idvolc;
lenght=size(rangen.Idvolc);
l=lenght(:,1);
Fase 4Successivamente si è passati alla creazione della
matrice delle adiacenze , valutando se all'interno della finestra la coppia di vulcani i,j considerati sono attivi.
adiacenze=zeros(idv,idv);for i=1:idv
for j=1:idv
confronta=0;
confrontb=0;
a=completan.idVolc(i);
b=completan.idVolc(j);
Fase 4for k=1:l
if (a==rangen.Idvolc(k))
confronta=1;
end
if (b==rangen.Idvolc(k))
confrontb=1;
end
if((confronta*confrontb)==1)
adiacenze(i,j)=1;
end
end
end
end
adiacenze_tot=adiacenze+adiacenze_tot;
end
Fase 4Per la costruzione del grafo si è utilizzata la matrice
adiacenze_tot ottenuta sommando le matrici delle adiacenze delle w iterazioni
adiacenze_tot=adiacenze_pesate(adiacenze_tot); adiacenze_tot=sparse(adiacenze_tot);idd=num2str(id.idVolc); bio=biograph(adiacenze_tot,idd);view(biograph(adiacenze_tot,idd,'ShowWeigh)
Invece per quanto riguarda il calcolo degli indici, è stato eseguito dalle seguenti funzioni
Fase 4Nconn=0;
for i=1:idv
adiacenze_tot(i,i)=0;
Nconn=Nconn+~isempty(find(adiacenze_tot(:,i)==1)); end
Dist=graphallshortestpaths(adiacenze_tot);
somma=0;
for i=1:N
for j=1:N if i~=j && Dist(i,j)~=Inf somma=somma+Dist(i,j); end endend
L=1/(Nconn*(Nconn-1))*somma
Per quanto riguarda la lunghezza media
Fase 4Mentre per il coefficiente di clustering:
ki=full(sum(adiacenze_tot));
Ci=zeros(idv,1);
coppie=zeros(idv,1);
for i=1:idv
Ncoppie=0; for j=1:idv
Fase 4for k=1:idv
if adiacenze_tot(j,k)==1 && adiacenze_tot(i,j)==1 && adiacenze_tot(i,k)==1 && i~=j && j~=k && i~=k
Ncoppie=Ncoppie+1; end end coppie(i)=Ncoppie; end if ki(i)==0 || ki(i)==1 Ci(i)=0; else Ci(i)=coppie(i)/(ki(i)*(ki(i)-1)); endend
coeff_cluster=mean(Ci)
Fase 4 Risultati:Sono stati ottenuti:Nell’intervallo dal 1954-1968 si è scelto un ampiezza di
5 anni per il calcolo della correlazione
Si è lavorato sul database VolcanoesC (database quasi completo)
L: 1.2172COEFFICIENTE DI CLUSTERING: 0.5062
Fase 4Questi risultati sono stati poi confrontati con quelli
ottenuti calcolando, rispettivamente C ed L con le formule relative ai grafi regolari e random
L_reg:4.5190L_rand:0.1577Coeff.clust._rand:0.2213
Fase 4Ciò ci permette di dire che il grafo da noi ottenuto ha
tutte le caratteristiche di un grafo small world in quanto come ogni grafo che ricade in data tipologia ha un commino medio nonché un coefficiente di clustering a “metà strada tra i due” (distanza media tra i nodi bassa e alto coeff. di clustering)