157 lines
8.2 KiB
Plaintext
Executable File
157 lines
8.2 KiB
Plaintext
Executable File
3.3.3.3 Il formalismo SAN, il tool Mobius e alcuni esempi di modelli sviluppati
|
||
|
||
Per definire e valutare i modelli proposti, è stato utilizzato il
|
||
flessibile e potente ambiente
|
||
di modellazione Möbius [DCCDDDSW02(5)] implementato dall'omonimo tool [CGK09(57)]
|
||
(i cui componenti principali sono mostrati in Figura xx1),
|
||
che supporta una molteplicità di formalismi di modellazione e di
|
||
risolutori e le loro interazioni.
|
||
Il modello complessivo dell'ambiente Möbius è ottenuto mediante uno o
|
||
più sottomodelli composti gerarchicamente (come mostrato in Figure
|
||
xx1) al livello di Abstract Functional Interface (AFI) [DCCDDDSW02(5),DKSC02(59)]
|
||
utilizzando operatori, come Join e Rep [SM91(33)], basati
|
||
sulla condivisione di variabili di stato (SV) o azioni.
|
||
SV e azioni sono primitive che generalizzano a livello di AFI i posti
|
||
e le transizioni delle reti di Petri.
|
||
Ogni sottomodello può essere atomico o a sua volta composto.
|
||
Sul modello risultante vengono definite prima le variabili di
|
||
performance (che rappresentano le misure di interesse), basate su
|
||
strutture di guadagno, ed infine gli
|
||
studi da valutare in base alla variabilità dei parametri del modello.
|
||
|
||
Tutti i formalismi e i risolutori supportati da Möbius sono basati sul
|
||
linguaggio di programmazione orientato ad oggetti C++.
|
||
Pertanto, lo strumento supporta l'utilizzo del codice C++ nelle
|
||
primitive usate per i modelli,
|
||
in particolare strutture dati C++ esterne
|
||
staticamente definite al momento della compilazione ed il collegamento
|
||
di librerie C++ esterne, come mostrato in Figura xxx per le librerie
|
||
di risoluzione delle equazioni di flusso di potenza e del problema di
|
||
ottimizzazione per trovare la migliore configurazione della Smart Grid
|
||
a seguito di un cambiamento di stato.
|
||
|
||
Tra i formalismi per la definizione dei modelli atomici, è stato
|
||
scelto quello delle Stochastic Activity Network (SAN) [SM01(53)], una
|
||
estensione stocastica delle reti di Petri basata sulle seguenti
|
||
primitive grafiche: posti semplici o estesi (rappresentati da cerchi
|
||
blu e arancioni, rispettivamente), attività temporizzate o istantanee
|
||
(barre verticali vuote o sottili), porte di input
|
||
e di output (triangoli con la punta a sinistra o a destra). In
|
||
particolare, un posto semplice rappresenta il tipo "short" del
|
||
linguaggio C++, mentre un posto esteso representa tipi di dati di base
|
||
primitivi (come "short", "float", "double") e tipi "struct" o "array"
|
||
di tipi primitivi o di posti estesi.
|
||
Il tempo al completamento di una attività è una variabile casuale
|
||
indipendente che
|
||
può avere una qualunque delle numerose distribuzioni
|
||
supportate da Möbius. Ad ogni attività può essere associato uno o più
|
||
case (piccoli cerchietti alla destra dell'attività) che rappresentano
|
||
l'incertezza probabilistica al completamento dell'attività. Infine i
|
||
gate permettono di specificare condizioni di abilitazione e regole di
|
||
completamento delle attività a cui sono connessi.
|
||
|
||
Il modello composto è ottenuto seguendo l'approccio modulare e
|
||
composizionale DARep [CDM17(13),CDM21] che estende Möbius con un nuovo
|
||
operatore D (basato su script Perl che modificano i file xml generati
|
||
da Möbius) per la replicazione indicizzata di
|
||
uno o più modelli atomici "template". Un template rappresenta un
|
||
componente generico del sistema modellato in cui possono essere
|
||
definite variabili di stato (SV) "dependency-aware", cioè SV che sono
|
||
condivise solo tra alcune istanze del template in base ad una
|
||
specifica topologia associata a ciascuna di esse (a
|
||
differenza di quelle "common" o "local" che sono condivise tra tutte le
|
||
istanze o solo locali a ciascuna di esse, rispettivamente).
|
||
|
||
Figura 3.13 è il template di SAN atomica MV_DS_SAN che rappresenta un
|
||
generico generatore distribuito (DG) ed il suo ambiente esterno.
|
||
In particolare
|
||
esso modella la generazione di potenza attiva e reattiva (P e Q,
|
||
tramite le porte WeatherChange e l'attività WPChange), la
|
||
previsione di potenza generata e l'errore di previsione (tramite le
|
||
porte isWPset e ForecastError, e le attività WP_NextSchedT and
|
||
WPForecastChange), l'occorrenza dei fallimenti e le conseguenti azioni
|
||
di ripristino (nella parte in basso ed in alto a destra di Figura
|
||
3.13). Il posto UpdateEState è di tipo "dependency-aware" essendo
|
||
condiviso tra ogni singola istanza di MV_DS_SAN e il sottomodello
|
||
ESTATE_SAN.
|
||
|
||
Figura 6.3 è il template di SAN atomica (con una sola istanza)
|
||
ESTATE_SAN che rappresenta i cambiamenti dello stato
|
||
elettrico dell'infrastruttura EI (mediante la risoluzione delle
|
||
equazioni di flusso di potenza) e la politica di controllo della
|
||
tensione elettrica (tramite risoluzione di un problema di ottimizzazione)
|
||
come descritta in Figura 2, condividendo posti (cioè SV) con tutte le
|
||
altre istanze di template SAN.
|
||
In dettaglio, la stima del nuovo stato è
|
||
attivata dalla porta di input inUpdate, che abilita l'attività
|
||
update non appena UpdateEState==1,
|
||
ed è effettuata dalla porta di
|
||
output NewES, che in base ai risultati delle equazioni di flusso
|
||
aggiorna i valori dei posti P, Q, V, Delta, F
|
||
(flusso di potenza sulle linee) e I (flusso di corrente sulle linee)
|
||
che rappresentano le grandezze elettriche di EI e richiede un'azione
|
||
di controllo aggiornando il valore del posto VOLT_CTRL.
|
||
I parametri elettrici sono memorizzati in place di tipo
|
||
"dependency-aware" e sono condivisi con istanze di altri template.
|
||
Altri place di tipo "dependency-aware" sono condivisi con altre
|
||
istanze di SAN template, come ad esempio DG_CTRL_P, che viene usato
|
||
dal controllo per identificare un cambiamento di potenza
|
||
generata o il fallimento (DG_CTRL_P==0) in una istanza
|
||
di MV_DS_SAN.
|
||
Le azioni di controllo, eseguite dalla porta di output VoltageCTRL,
|
||
sono attivate quando il place VOLT_CTRL==1.
|
||
Questo accade ad intervalli di tempo regolari, quando la porta di
|
||
output PromoteVoltageCTRL aggiorna il valore di VOLT_CTRL, o quando
|
||
avviene un cambiamento di stato in cui ci sono bus con il voltaggio
|
||
fuori dai limiti.
|
||
Infine, quando a seguito dell'aggiornamento di uno stato viene messo
|
||
un token nel posto Blackout, la porta di output TurnOff si
|
||
occupa delle situazioni di
|
||
blackout aggiornando opportunamente i posti (ad
|
||
esempio, ponendo a zero i valori elettrici di potenza e tensione di
|
||
tutti i carichi).
|
||
|
||
|
||
Riferimenti:
|
||
|
||
[5] D. D. Deavours, G. Clark, T. Courtney, D. Daly, S. Derisavi,
|
||
J. M. Doyle, W. H. Sanders, and P. G. Webster, “The Möbius framework
|
||
and its implementation,” IEEE Trans. on Softw. Eng., vol. 28, no. 10,
|
||
pp. 956–969, 2002.
|
||
|
||
[13] S. Chiaradonna, F. Di Giandomenico, and G. Masetti, “A stochastic
|
||
modeling approach for an efficient dependability evaluation of large
|
||
systems with non-anonymous interconnected components,” in The 28th
|
||
Int. Symp. on Softw. Reliab. Eng.-IEEE, Toulouse, France, Oct. 2017,
|
||
pp. 46–55.
|
||
|
||
[33] W. H. Sanders and J. F. Meyer, “A unified approach for specifying
|
||
measures of performance, dependability and performability,” in
|
||
Dependable Computing for Critical Applications, Vol. 4 of Dependable
|
||
Computing and Fault-Tolerant Systems, A. Avizienis and J. Laprie,
|
||
Eds. Springer Verlag, 1991, pp. 215–237.
|
||
|
||
[53] W. H. Sanders and J. F. Meyer, “Stochastic activity networks:
|
||
Formal definitions and concepts,” in Lectures on formal methods and
|
||
performance analysis: first EEF/Euro summer school on trends in
|
||
computer science, Berg en Dal, The Netherlands, July 3-7, 2000,
|
||
Revised Lectures, ser. LNCS, E. Brinksma, H. Hermanns, and
|
||
J. P. Katoen, Eds. Springer-Verlag, 2001, vol. 2090, pp. 315–343.
|
||
|
||
[57] T. Courtney, S. Gaonkar, K. Keefe, E. W. D. Rozier, and
|
||
W. H. Sanders, “Möbius 2.3: An extensible tool for dependability,
|
||
security, and performance evaluation of large and complex system
|
||
models,” in 39th Annu. IEEE/IFIP Int. Conf. on Dependable Syst. and
|
||
Netw. (DSN 2009), Estoril, Portugal, June 2009, pp. 353–358.
|
||
|
||
[59] S. Derisavi, P. Kemper, W. H. Sanders, and T. Courtney, “The m
|
||
̈obius state-level abstract functional interface,” in Computer
|
||
Performance Evaluation: Modelling Techniques and Tools, T. Field,
|
||
P. G. Harrison, J. Bradley, and U. Harder, Eds. Berlin, Heidelberg:
|
||
Springer Berlin Heidelberg, 2002, pp. 31–50.
|
||
|
||
[CDM21] S. Chiaradonna, F. Di Giandomenico, G. Masetti, “On
|
||
identity-aware replication in stochastic modeling for simulation-based
|
||
dependability analysis of large interconnected
|
||
systems”. Perform. Evaluation 147: 102192 (2021).
|