Università di Firenze – Dipartimento di Sistemi e Informatica Attività dell’Unità di Firenze attinenti a modellazione, simulazione e analisi di sistemi reattivi distribuiti nello spazio G.Bucci, E.Vicario, F.Baldini, L.Sassoli {bucci,vicario,fbaldini, sassoli}@dsi.unifi.it
Sistemi reattivi tempo dipendenti La correttezza dipende requisiti non funzionali Tempificazione degli eventi Sequenzializzazione degli eventi Applicazioni di controllo industriale, Componenti di software embedded, … In molti contesti diventano rilevanti anche aspetti legati alla spazialità Configurazione spaziale del sistema Vincoli di tipo spaziale Evoluzione dinamica del sistema
Esempio: Sistemi di instradamento del traffico ferroviario Regolazione degli scambi Regolazione dei semafori Distanziamento
Esempio: Celle di assemblaggio AGV (Automatic Guided Vehicles) Rispetto della sequenza e dei tempi delle lavorazioni Collision avoidance: modellazione di sensori ed elaborazione di dati da essi provenienti Deadlock avoidance: controllo dell’instradamento per evitare la congestione
Sistemi di esplorazione con controllo remoto Esempio: Reti ad hoc Sistemi di esplorazione con controllo remoto Controllo della distanza reciproca delle unità per il mantenimento della connessione wireless col sistema di controllo
Modellazione con Reti di Petri Tempificate Time Petri Nets permettono la specifica e la validazione di: Tempificazione Sequenzializzazione E.g. sistemi di controllo industriale: Ogni lavorazione richiede un tempo minimo (e massimo) per il completamento Le lavorazioni devono essere svolte secondo una sequenza (e.g. catena di montaggio) Problema: i modelli TPN non permettono di catturare le caratteristiche spaziali del sistema Evoluzione della configurazione spaziale nel tempo (mobilità) Vincoli di spazialità legati alla configurazione dell’ambiente e alla evoluzione dinamica
Visualizzazione in un ambiente virtuale della evoluzione spaziale controllata da un modello TPN La presenza di un gettone in un posto indica uno stato di operazione per un oggetto mobile Il progresso di una transizione modella la condizione di esecuzione di una azione nello spazio (e.g. spostamento lungo un percorso predefinito)
Esempio: applicazione al controllo di instradamento del traffico In fase di simulazione il modello TPN simula il software di controllo del sistema Genera comandi per le unità mobili in accordo alla tempificazione e alla sequenzializzazione espressa nel modello Permette la visualizzazione della evoluzione dello stato del controllo (Token Game) e della configurazione spaziale del sistema (Animazione) [5,5] [3,3] [2,2] [5,5] Muovi_treno1 -> stazione Treno1_prosegui -> prossima stazione Muovi_treno2 Muovi_treno2 Stazione
Limiti nella modellazione L’evoluzione del modello TPN non è condizionata dalla configurazione spaziale e dalla velocità degli oggetti mobili Esempio: cella di assemblaggio con due veicoli AGV I veicoli si muovono sul percorso assegnato per il tempo determinato dalla transizione Le collisioni tra veicoli non sono rilevate né gestite Truck2 [98,98] [100,100] [99,99] [100,100] Move Truck1 Truck1 [99,99] [100,100] [98,98] Move Truck2
Limiti nella modellazione La configurazione spaziale deve potere condizionare la evoluzione dello stato logico La configurazione spaziale è parte dello stato del modello L’occorrenza di una condizione nella configurazione spaziale costituisce un evento che modifica lo stato logico Truck2 [99,99] [99,99] [100,100] [98,98] [100,100] Move Truck1 Truck1 [100,100] [99,99] [98,98] [100,100] [99,99] Move Truck2
Estensione del modello TPN Il modello deve includere informazioni spaziali e cinematiche Posizione degli oggetti mobili Percorso su cui sono instradati Velocità degli oggetti mobili L’evoluzione del modello deve accoppiare l’evoluzione delle componenti logica e spaziale dello stato Leggi cinematiche che aggiornano la posizione degli oggetti mobili in base al progresso nell’esecuzione delle transizioni Condizionamento della evoluzione dello stato logico del modello alla configurazione spaziale del sistema
Spatial TPN oggetti, percorsi, velocità Ogni transizione del modello può essere associata a un oggetto mobile, un percorso su cui l’oggetto è instradato, e un valore di velocità La transizione opera come controllore per l’oggetto L’oggetto è instradato sul path associato L’oggetto si muove con il valore di velocità associato alla transizione Truck2 Position (x2,y2) y [100,100] y2 Move Truck1, Path p1, Speed 10 Ciò che si vorrebbe ottenere, dunque, è la capacità del modello di rappresentare, istante per istante, la configurazione spaziale degli oggetti mobili. Per conseguire questo risultato, si può associare alle transizioni, oltre alla durata del movimento dei veicoli, anche la loro posizione in un dato sistema di riferimento. Truck1 Position (x1,y1) y1 Path p1 [100,100] Move Truck2, Path p2, Speed 10 Path p2 x1 x2 x
Spatial TPN: Aggiornamento della configurazione spaziale Aggiornamento della posizione degli oggetti mobili Cambiamento del percorso di instradamento Variazione della velocità y Truck2 [98,98] [99,99] [100,100] Move Truck1 Truck1: (x1,y1) Truck1: (x1+speed*2T,y1) Truck1: (x1+speed*T,y1) T T y1 In questo modo, la rete contiene informazioni sia di carattere temporale che spaziale. Per garantirne la consistenza, all’evoluzione dinamica del modello deve corrispondere una variazione della configurazione spaziale degli oggetti in movimento. Ciò significa che ogni transizione che controlla il moto di un veicolo deve aggiornarne la posizione in corrispondenza dello scorrere del tempo e tenendo conto della velocità e della traiettoria percorsa. In generale le traiettorie sono modellate come spezzate. Nel caso in figura, il veicolo AGV1 deve percorrere una semplice traiettoria rettilinea (CLICK). Per ogni unità di tempo trascorsa, il veicolo avanza di un tratto K lungo il percorso stabilito (CLICK) e la sua posizione rappresentata nel modello dev’essere conseguentemente aggiornata (CLICK). Ciò viene modellato associando alla transizione una funzione di update (CLICK), che aggiorna le coordinate del veicolo in base alla sua velocità e al segmento su cui transita. Path p1 [100,100] Truck1 Move Truck2 Path p2 Truck2: (x2,y2) x1 x1+speed*T x1+speed*2T x
Spatial TPN: Guardie sulla configurazione spaziale L’evoluzione dello stato logico del modello è condizionata dalla configurazione spaziale attraverso vincoli sulla posizione relativa degli oggetti mobili condizioni relative alla presenza di una unità mobile su un path e/o entro una distanza [100,100] Move AGV1 Truck2 Truck1:(x1,y1); Path p1; Speed 10 [100,100] Come si è già accennato, il corretto funzionamento di questo tipo di sistema presuppone l'assenza di collisioni, congestioni del traffico e altri comportamenti critici. Sono presenti dunque dei vincoli, correlati alla configurazione spaziale del sistema, che devono poter essere rappresentati nel modello, la cui evoluzione temporale deve quindi essere condizionata dal rispetto di tali vincoli. A questo scopo, si associa a ogni transizione che modella il movimento di un oggetto, un insieme di funzioni, dette guardie (CLICK), che codificano i vincoli spaziali. Se le guardie non sono rispettate, l'azione di movimento modellata dalla transizione non può essere eseguita. Infatti, solo se i vincoli spaziali sono rispettati l’ oggetto mobile può avanzare liberamente lungo la direzione del proprio percorso. Ad esempio, ciò permette di modellare i sensori di sicurezza dei veicoli (CLICK), che come si è detto, rilevano qualsiasi ostacolo all’interno di un campo di allerta. L’arresto di sicurezza imposto dai sensori corrisponde, nel modello, al fatto che le guardie, associate alla transizione che controlla il veicolo (CLICK), non sono rispettate. Da notare come, con l’introduzione delle guardie si ottiene il viceversa di quanto detto prima. Si ottiene cioè che l’evoluzione della configurazione spaziale del sistema influisce sulla dinamica del modello. Truck1 Move AGV2 Truck1:(x1,y1); Path p1; Speed 10 Sensing Field Vincoli: forward sensing system
Modellazione, simulazione e analisi nell’ambiente ORIS Time Petri Nets TPN Editor TPN Animator TPN Analyzer 3D Environments 3D Objects 3D Object Assembler 3D Environment Composer 3D Environment Animator
Tool di modellazione Editor TPN Interfaccia grafica per la creazione di modelli di Petri Permette la specifica di intervalli temporali per le transizioni e la specifica delle condizioni iniziali Estensione al caso di sistemi con caratteristiche spaziali Oggetti mobili Percorsi Caratteristiche cinematiche (velocità)
Tool di modellazione 3D Object Assembler Assemblaggio di oggetti virtuali 3D da librerie di componenti Implementazione basata su Java 3D Attualmente il tool permette la modellazione di robot virtuali È possibile creare librerie per la creazione di oggetti 3D diversi
Tool di modellazione Virtual Environments Composer Organizza su una scena gli oggetti creati con 3D Object Assembler Definizione dei percorsi e dei parametri specifici per gli oggetti mobili Possibile estensione del tool per la creazione di schemi di visualizzazione diversi (e.g. visualizzazione 2D di un quadro sinottico ferroviario)
Tool di Simulazione TPN Animator (Token game tempificato) Mostra l’evoluzione del modello TPN nel tempo Produce i comandi di animazione per gli oggetti mobili 3D Environment Animator Ricostruisce gli ambienti virtuali creati con il tool “Environment Composer” Riceve i comandi da TPN Animator e gestisce l’esecuzione dei thread di animazione
Esempio: simulazione di un sistema di instradamento ferroviario [7,7] Il modulo di presentazione può essere adattato a contesti applicativi diversi e a simulatori diversi (2D e 3D) T1 prosegui – b1 Vincolo: b1 libero [5,5] [5,5] T1 prosegui – b2 Vincolo: b2 libero T1 move-scambio, speed=2 [5,5] [5,5] Stazione T2 move-stazione, speed=5 T2 prosegui, speed=5 Binario b1 Treno T2 Binario b2 Treno T1
Analisi dello spazio degli stati Lo stato di un modello TPN dipende da: Marcamento Insieme dei time to fire delle transizioni in progresso Nei modelli TPN estesi per la modellazione di sistemi con spazialità, questo include anche lo stato degli oggetti mobili Posizione degli oggetti Percorso su cui attualmente sono instradati Enumerazione dello spazio degli stati Grafo di raggiungibilità Informazioni sui comportamenti critici rispetto a vincoli di tempo reale o di configurazione spaziale Calcolo della probabilità degli stati
Esempio cella di assemblaggio con automatic guided vehicles (AGV) Gestione del traffico Assenza di collisioni basato su “controllo in avanti” (forward sensing control) sui veicoli mobili Assenza di stalli Il comportamento del sistema è difficilmente predicibile Il controllo è complesso Le tempificazioni delle operazioni di manipolazione e degli istanti di partenza dei veicoli sono non deterministiche Dipendenza da vincoli spaziali Unload Area AGV1 Unload Area AGV2 Load Area AGV1 Come caso di studio si è affrontata la modellazione di un sistema di produzione, costituito da una coppia di veicoli a guida automatica e un insieme di postazioni di lavoro (CLICK), equipaggiate con bracci meccanici responsabili delle operazioni di carico scarico dei materiali. I veicoli AGV attendono in una docking station (CLICK) la ricezione del comando di moto, trasmesso dal controllore, e si occupano del trasporto dei materiali tra le postazioni, lungo traiettorie prestabilite (CLICK). Ad ogni postazione raggiunta devono attendere un tempo non deterministico, necessario alle operazioni di carico-scarico. La gestione del traffico in questo tipo di sistemi, deve tenere conto dei vincoli di correttezza già discussi. Con la tecnica del controllo sensoriale in avanti, si evita a priori l’eventualità di collisioni, tuttavia esiste la possibilità che i due veicoli rimangano in stallo per un tempo indefinito, se ciascuno rileva l’altro nel proprio campo d’allerta. La complessità del controllo, la presenza di tempificazioni non deterministiche e la dipendenza da vincoli spaziali rendono il comportamento del sistema difficilmente prevedibile e giustificano l’adozione di tecniche di analisi. Load Area AGV2 AGV2 AGV1 Docking Station
Modellazione con il tool ORIS TPN Editor: modello di Petri Virtual Environments Composer: arrangiamento iniziale e traiettorie ANALIZZATORE Per questa ragione, il comportamento del sistema è stato modellato attraverso la creazione di una rete di Petri (CLICK), che definisce sequenzialità e tempificazione delle azioni dei bracci robotici e dei veicoli AGV presenti nel sistema, e tiene conto delle caratteristiche spaziali di quest'ultimo. Nel modello si è considerata l'incertezza nelle tempificazioni. In particolare, oltre che sui tempi di attesa alle postazioni di carico e scarico, si è previsto un ritardo non deterministico sull’istante di partenza dei veicoli dalla docking station. La rete acquisisce, da un modello 3D del sistema (CLICK), le informazioni relative alla configurazione spaziale. [Sia la rete che il modello 3D sono stati realizzati tramite opportuni tools integrati nell'ambiente ORIS] (CLICK) Attraverso l'Analizzatore, sviluppato in questo lavoro di tesi, è stato possibile effettuare l'analisi esaustiva dello spazio degli stati del modello realizzato. Ciò ha permesso di rilevare le condizioni di stallo (CLICK), codificate ,negli stati del modello, dalla presenza di due transizioni non congruenti. Rilevazione di stalli (situazioni in cui i veicoli non possono procedere senza collidere)
Risultati sperimentali preliminari nell’analisi La simulazione dà solo parziale confidenza sul corretto funzionamento del sistema e sulla assenza di stalli L’analisi esaustiva dello spazio degli stati del modello TPN esteso permette di avere garanzie di correttezza: Rilevazione delle situazioni di stallo Identificazione degli sfasamenti critici tra gli istanti di partenza dei veicoli Ritardo partenza di AGV1 risp. a AGV2 40 sec Partenza di AGV1 Istante di partenza Numero di stati generati Numero di deadlock rilevati AGV1 [0,40] AGV2 [0,0] 434939 32 AGV1 [0,0] AGV2 [0,40] 319695 19 Sfasamenti critici Partenza di AGV2 istanti critici 40 sec Su questo modello sono state effettuate 2 distinte analisi, ritardando [forzando il controllore a ritardare] la partenza del veicolo agv1 rispetto a quella di agv2 e viceversa. In entrambi i casi il ritardo è un tempo non deterministico, compreso tra 0 e 40 secondi (CLICK). I risultati derivanti dalla analisi hanno permesso di individuare tutte le possibili situazioni di stallo nei due casi, specificando la corrispondente configurazione spaziale del sistema. Inoltre, hanno consentito di identificare quali sono gli sfasamenti temporali, tra gli istanti di partenza dei veicoli dalla docking station, responsabili dell’evoluzione del sistema verso una condizione di stallo. Grazie a questi dati è possibile capire, ad ogni ciclo di funzionamento, cioè con entrambi gli agv alla docking station, quali sono gli istanti non critici in cui il controllore può comandare la partenza di ciascun veicolo. Ritardo partenza di AGV2 risp. a AGV1 istanti critici 40 sec
Space Time Petri Nets The extension is called Space Time Petri Nets (STPN) and permits to capture in a high-level formal model both the reactive behavior and the spatial characteristics of a system The utilization of virtual environments for the simulation of STPN models permits to highlight hazardous conditions Formal models permit exaustive state space analysis through enumerative techniques to guarantee absolute correctness of model behavior