modellistica e controllo dei sistemi ambientali Di Mauro Patti

Page 1

Modellistica e Controllo dei Sistemi Ambientali Ingegneria dell’Automazione e Controllo dei Sistemi Complessi Anno 2008/09

Gianluca Di Mauro

Giuseppe Patti


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.


Vulcanesimo Attività Vulcanica: Un vulcano può trovarsi in quattro stati o fasi di attività: •Quiescenza e Solfatarica: manifestazioni postvulcaniche, quali solfatare fumarole, 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 Vulcani I 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.html Sito 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 1 In 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:Neruzioni if( durata_eruzione(i)>j) counter(j)=counter(j)+1; end end end loglog(counter)


Fase 1 Distribuzione Cumulativa della durate delle eruzioni: Numero eruzioni

Tempo(anni)


Fase 1 La distribuzione ottenuta ha un andamento a 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 2 Distribuzione cumulativa degli intervalli di tempo tra eruzioni successive: Per ogni vulcano è stato calcolato il numero di eruzioni: eruzioni=size(vulcano.idVolc); eruzioni=eruzioni(:,1)

E la durata tra eruzioni successive: for u=1:eruzioni if((eruzioni+1)< b) durata_er(s,u)=vulcano.AnnoInizio(u+1)-vulcano.AnnoFine(u);


Fase 2 Con 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 tra eruzioni successive di alcuni vulcani pi첫 significativi: Tinakula : Numero eruzioni

Tempo(Anni)


Fase 2 Santo Cristobal Numero eruzioni

Tempo(Anni)


Fase 2 Guazapa Numero 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 3 Analisi 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 3 Si è poi passato alla costruzione della matrice delle adiacenze: adiacenze=zeros(Nvolc,Nvolc); for i=1:Nvolc for j=1:Nvolc confronta=0; confrontb=0; a=completan.idVolc(i); b=completan.idVolc(j); for 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;


Fase 3 Ad ogni iterazione si è plottata la matrice delle adiacenze mediante la funzione biograph Iterazione di passo p(anni) Si è poi: •Calcolata la matrice di correlazione dell’intervallo di tempo specificato: for i=1:Niterazioni adiacenze=st(i).data.*st(i+1).data;


Fase 3 s1='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 3 if (strcmp(vulcano1(1).Dir_Lat,'S')) vulcano1(1).Lat=-vulcano1(1).Lat; end if (strcmp(vulcano1(1).Dir_Lon , 'W')) vulcano1(1).Lon=-vulcano1(1).Lon; end if (strcmp(vulcano2(1).Dir_Lat,'S')) vulcano2(1).Lat=-vulcano2(1).Lat; end if (strcmp(vulcano2(1).Dir_Lon, 'W')) vulcano2(1).Lon=-vulcano2(1).Lon; end vulcano1(1).Nome; vulcano2(1).Nome; lat(count)= vulcano1(1).Lat; lon(count)= vulcano1(1).Lon; count=count+1;


Fase 3 Si è poi calcolata la matrice delle adiacenze pesate con le Distanze [dist,atz]=distance(vulcano1(1).Lat,vulcano1(1).Lon,vulcano2(1).Lat,vulc ano2(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 3 Risultati: Sono stati ottenuti: Nell’intervallo dal 1950-1965 si è scelto un ampiezza di 5 anni per il calcolo della correlazione Finestra 1: 1950-1960 Finestra 2: 1955-1965 Si è lavorato sul database VolcanoesPl.mdb(contenente i database dei gruppi 1-7-10)


Fase 3 Correlazione 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 correlazione Finestra 1: 1950-1960 Finestra 2: 1955-1965 Si è 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 rappresentano I 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 temporale In 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 10anni Finestra 1: 1970-1980 Finestra 2: 1982-1992 Il 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 4 Studio 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 cammino Coefficiente di clustering Grado (connettività) di un nodo


Fase 4 Lunghezza 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 4 Coefficiente di clustering: Per quanto riguarda il coefficiente di clustering supponiamo che il nodo j della network abbia kj archi che lo connettono ad altrettanti nodi. Questi nodi sono vicini del nodo j. Al piĂš kj (kj – 1) / 2 archi possono esistere tra loro (quando ogni vicino del nodo j è connesso ad ogni altro vicino del nodo j). Ne esistono, in generale, di meno (Ej).


Fase 4 Da cui si ha che Il coefficiente di clustering del nodo j (Cj) si definisce come il rapporto Cj=2 Ej / (kj (kj-1)) mentre coefficiente di clustering del network (C) si definisce come la media aritmetica dei coefficienti di ogni nodo C = (1/n)∑jCj


Fase 4 Grado 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 di ogni nodo si definisce come grado medio del network <k>


Fase 4 Fatto 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 4 for 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 4 Successivamente 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 4 for 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 4 Per 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 4 Nconn=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 end end L=1/(Nconn*(Nconn-1))*somma

Per quanto riguarda la lunghezza media


Fase 4 Mentre 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 4 for 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)); end end 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.2172 COEFFICIENTE DI CLUSTERING: 0.5062


Fase 4 Questi 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.5190 L_rand:0.1577 Coeff.clust._rand:0.2213


Fase 4 Ciò 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)


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.