ProgettoMartinelli2023/CS Smart Grid 2.5-FDG/CS Smart Grid 2.5-FDG-secti...

134 lines
6.6 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 [DCC02] implementato dall'omonimo tool [CGK09]
(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,DKSC02]
utilizzando operatori, come Join e Rep [SM91], basati
sulla condivisione di variabili di stato o azioni.
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++, consentendo
l'utilizzo di codice C++ nei modelli.
Pertanto, lo strumento supporta strutture dati C++ esterne
staticamente definite al momento della compilazione ed il collegamento
di librerie C++ esterne.
Tra i formalismi per la definizione dei modelli atomici, è stato
scelto quello delle Stochastic Activity Network (SAN) [SM01], 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 dal tool. 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.
Il modello composto è ottenuto seguendo l'approccio modulare e
composizionale DARep [CDM17,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 essere, rispettivamente).
Figure 3.13 è il template di SAN atomica che rappresenta un generico
generatore distribuito (DG).
the generation of active and reactive power (gate WeatherChange and
activity WPChange), the generation forecast and error (gates isWPset
and ForecastError, activities WP NextSchedT and WPFore- castChange),
the occurrence of failures and the recovery actions (at bottom and top
right of the SAN ).
Figura 6.3 è il template di SAN atomica (con una sola istanza)
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,
i posti P, Q, V, Delta, F (flusso di potenza sulle
linee), I (flusso di corrente sulle linee) rappresentano le grandezze
elettriche di EI e sono SV condivise tra tutti i
l'attività ScheduledVoltageCTRL rappresenta gli
intervalli di tempo tra successivi inteventi del sistema di controllo
del voltaggo (MVGC o LVGC, a seconda del livello MV o LV rappresentato
dal modello).
it shares places with all the other SAN template instances and it is
responsible for the PFEs solution and the optimization problem.
• ESTATE SAN, depicted in Figure 6.3, is responsible for the EI state
estimation and the voltage control policy formalized by Algorithm
1. The DARep approach replicates only once ESTATE SAN, producing
ESTATESANSANDAREP0 depicted in Figure 6.4.
Very briefly, SANs are a variant of Stochastic Petri Nets (SPN) with a graphical
representation consisting of places, timed and instantaneous activities, and input
and output gates. Activities are equivalent to transitions in SPN. The amount of time
to complete a timed activity may be exponentially or nonexponentially distrib- uted.
Cases can be associated to activities (represented graphically as circles on the right
side of an activity) and permited to model uncertainty upon completion of an activity.
The use of gates permits a greater flexibility in specifying enabling conditions and
completion rules than simple SPN.
The Mo ̈bius modeling framework and its supporting tool Mo ̈bius [3] are briefly recalled in the following.
Our models are defined using the SAN formalism [28], a stochastic extension of Petri nets based
on the following primitives: plain and extended places (blue and orange circles) represent
SVs, timed and instantaneous activities (hollow and solid vertical bars) with linked input and output gates
(triangles pointing left or right) represent actions. Extended places represent complex data
types (like int, float, double, structures and arrays).
Input gates control when an activity is enabled.
The delay between enabling and completing of timed activities is a generally distributed random variable,
whereas enabling and completing of instantaneous activities take place at the same time.
SVs changes occur when an activity completes, as defined by the input and output gates.
The SAN primitives are defined by C++ statements, supporting external C++ data structures and
the linking to external C++ libraries.
In Mo ̈bius, the Join and Rep state-sharing compositional operators [28] are supported at level of
AFI [23, 3] as already described in Section 4. The auxiliary functions Index() and Deps(), and
the operator D are implemented through a Perl program [34, 20] which manipulates the xml files
describing the models defined in M ̈obius.