Nozioni introduttive all’Uso di Stateflow

Slides:



Advertisements
Presentazioni simili
Progetto di un sistema di parcheggio automatizzato basato su
Advertisements

I Linguaggi di programmazione
INFORMATICA Altre Istruzioni di I/O
Sistemi dinamici discreti e computabilità intrinseca
1 Introduzione ai calcolatori Parte II Software di base.
Scomposizione funzionale
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità E1 Dallanalisi del problema alla definizione dellalgoritmo.
Linguaggi algoritmici
Estendere i linguaggi: i tipi di dato astratti
Procedure e funzioni A. Ferrari.
PHP.
Linguaggi di programmazione
1 Il punto di vista Un sistema è una parte del mondo che una persona o un gruppo di persone, durante un certo intervallo di tempo, sceglie di considerare.
1 Istruzioni, algoritmi, linguaggi. 2 Algoritmo per il calcolo delle radici reali di unequazione di 2 o grado Data lequazione ax 2 +bx+c=0, quali sono.
Iterazione enumerativa (for)
Sistemi basati su conoscenza Conoscenza e ragionamento Prof. M.T. PAZIENZA a.a
Introduzione ai circuiti sequenziali
TEORIA RAPPRESENTAZIONALE DELLA MISURA
Termodinamica classica
Inversione differenziale della Cinematica
Corso di Informatica (Programmazione)
INGEGNERIA CLINICA E BIOMEDICA
Access: Query semplici
Unità Didattica 2 I Linguaggi di Programmazione
Sistemi Operativi GESTIONE DEI PROCESSI.
Windows Sistema operativo con interfaccia grafica per PC IBM compatibili (varie versioni dal 95) La gestione dei file viene fatta secondo le modalità.
Strutture di controllo in C -- Flow Chart --
Espressioni condizionali
Progettazione di una base di dati
Metodi numerici per equazioni differenziali ordinarie Laboratorio di Metodi Numerici a.a. 2008/2009.
Elementi di Informatica
Rete Sincrona Una rete sequenziale sincrona, è dotata di un ingresso E, di un segnale di Clock e uno di reset. Ad ogni fronte del Clock, deve essere campionato.
WINDOWS XP PRIMI PASSI. Caratteristiche del sistema Le caratteristiche di base del PC (tipo e versione del sistema operativo installato, tipo e velocità
INFORMATICA MATTEO CRISTANI.
L’ingegneria del software
TRASDUTTORI E SENSORI.
Parte 1 Introduzione alla Teoria dei Circuiti
Un esempio: Calcolo della potenza n-esima di un numero reale
Configurazione in ambiente Windows Ing. A. Stile – Ing. L. Marchesano – 1/23.
Il controllo di Sistemi ad Eventi Discreti
Linguaggi e modelli computazionali LS Manni Tiziano
LABVIEW Sommario Che cosa è uno strumento virtuale (VI) creato con LABVIEW Parti di un VI: pannello frontale diagramma a blocchi Confronto tra il principio.
R 255 G 211 B 8 R 255 G 175 B 0 R 127 G 16 B 162 R 163 G 166 B 173 R 104 G 113 B 122 R 234 G 234 B 234 R 175 G 0 B 51 R 0 G 0 B 0 R 255 G 255 B 255 Supporting.
La ricorsione.
Informatica 3 V anno.
Didattica e Fondamenti degli Algoritmi e della Calcolabilità Terza giornata: principali classi di complessità computazionale dei problemi Guido Proietti.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie.
Tecnologie Informatiche ed Elettroniche per le Produzioni Animali
Fondamenti di Informatica 2 Ingegneria Informatica Docente: Giovanni Macchia a.a
1 Fabio Scotti – Università degli Studi di Milano Fabio Scotti ( ) Laboratorio di programmazione per la sicurezza Valentina Ciriani ( )
Progettazione di una base di dati Ciclo di vita di un sistema informativo Studio di fattibilità definisce le varie alternative possibili, i relativi costi.
Algoritmi.
1 Macchine astratte, linguaggi, interpretazione, compilazione.
Sistemi operativi di rete Ing. A. Stile – Ing. L. Marchesano – 1/18.
UNIVERSITÀ DI BERGAMO FACOLTÀ DI INGEGNERIA UNIVERSITÀ DI BERGAMO FACOLTÀ DI INGEGNERIA UNIVERSITÀ DI BERGAMO FACOLTÀ DI INGEGNERIA Dispositivi per il.
Progettazione di basi di dati: metodologie e modelli
Algoritmi e Programmazione (in C) Stefano Cagnoni e Monica Mordonini
Manuale Utente – i-Sisen Questionario dei Consumi
Manuale Utente – i-Sisen Questionario del Gas Naturale
GLI ALGORITMI Appunti preparati dalla prof.ssa Maria D’Angelo.
IL PLC AUTOMAZIONE INDUSTRIALE
Laboratorio di Architettura Degli Elaboratori1 PSPICE – simulazione di circuiti combinatorii Decodificatore e Multiplexer.
Dal problema al programma – ciclo di sviluppo del software La scrittura del programma è solo una delle fasi del processo di sviluppo di un'applicazione.
Parsing ricorsivo discendente Il parsing ricorsivo discendente (recursive descent parsing) è un metodo di tipo top-down che può essere facilmente codificato.
Psicometria modulo 1 Scienze tecniche e psicologiche Prof. Carlo Fantoni Dipartimento di Scienze della Vita Università di Trieste Campionamento.
Unità di apprendimento 6
ANALISI DEI SEGNALI Si dice segnale la variazione di una qualsiasi grandezza fisica in funzione del tempo. Ad esempio: la pressione in un punto dello spazio.
ALGORITMI, LINGUAGGI E PROGRAMMI Facoltà di Lingue e Letterature Straniere Corso di laurea in Relazioni Pubbliche.
La funzione CASUALE. Gli istogrammi.
Autoresizing e autolayout. Posizionare gli elementi All’interno dello storyboard, gli elementi possono essere posizionati trascinandoli nella posizione.
Transcript della presentazione:

Nozioni introduttive all’Uso di Stateflow Meccatronica 2008 – Carlo Alberto Avizzano Nozioni introduttive all’Uso di Stateflow

Motivazioni Non tutti i problemi dinamici si possono risolvere con rappresentazioni ISO corrispondenti a sistemi lineari. Molto spesso sia i sistemi che i relativi controllori devono venir realizzati tramite sistemi non lineari. Basti pensare al funzionamento di oggetti di uso comune come televisori, frigoriferi, forni a microonde, ventilatori, lavatrici,… L’elemento distintivo di questi sistemi e’ il fatto che il loro funziomento agisce secondo una logica chiara e comprensibile in risposta a situazioni od eventi che si presentano dall’esterno, ad esempio la pressione di pulsanti, il raggiungimento di situazioni a regime, il verificarsi di condizioni di errore… Esistono diversi meccanismi automatici per l’implementazione di questi sistemi. tra questi la categoria piu’ diffusa e’ quella delle macchine a stati finiti. Una macchina a stati finiti e’ un automa, il cui vettore di stato puo’ assumere solo un numero limitato di configurazioni e le cui uscite e funzione di transizione dello stato sono combinazioni non lineari dello stato corrente. Un macchina a stati finiti e’ particolarmente comoda per la sua semplicita’ di implementazione sia tramite meccanismi automatici (es. Stateflow) che mediante procedure manuali di generazione del codice. Esistono diverse metodologie per rappresentare le macchine a stati finiti (Es. Reti di Petri) Noi utilizzeremo quella introdotta in matlab

Osservazioni Non seguiremo un approccio formale alla definizione delle proprieta’ di una macchina a stati finiti. Piuttosto un approccio pratico inteso a comprendere come impiegarle per la risoluzione di problemi tipici Vedremo un approccio incrementale introducendo passo per passo le caratteristiche delle componenti di una macchina a stati finiti Quindi approfondiremo alcuni aspetti di modellazione e sintassi impliciti del linguaggio.

Definizione del problema Si consideri di dover affrontare lo sviluppo di un sistema di controllo per un cancello automatico. Avremo a nostra disposizione una uscita da controllare (la velocita’ del motore) e 4 differenti intressi (due fotocellule, un comando di apertura e la posizione del cancello) Supporremo a questo livello che tutti I controlli di basso livello per asservire in posizione e velocita’ siano noti (in quanto demandabili alla logica di controllo esterna) e ci concentreremo sul problema di implementare la logica di movimentazione

Stateflow Stateflow (SF) e’ una componente integrata dell’ambiente di sviluppo Matlab/Simulink. Stateflow utilizza una notazione particolare di macchina a stati proposta da Harel e basata sul concetto di stati e transizioni. All’ambiente di sviluppo, vi si accede trascinando sugli schemi di simulink il blocco relativo ad una macchina SF. Per regolarne le proprieta’ sara’ quindi necessario effettuare una operazione di doppio click sulla relativa macchina. Come vedremo il simbolismo adottato consentira’ di definire oggetti complessi dalla logica sequenziale, parallela, gerarchica e funzionale, consentendo in questo modo al linguaggio di programmazione grafico la stessa potenzialita’ espressiva di un linguaggio di programmazione funzionale.

Ambiente di sviluppo L’ambiente di sviluppo di stateflow, e’ anche esso grafico come quello di simulink. Data la maggior linearita’ del funzionamento vi sono tuttavia molto meno tipologie di blocchi da conoscere Cio’ non rispecchia una minore flessibilita’ di comportamento in quanto ogni blocco risulta poi essere programmabile in maniera indipendente, consentendo in questo modo una “infinita” potenzialita’ espressiva L’ambiente di sviluppo e’ quindi completamente integrato con quello di simulink con il quale puo’ scambiarsi dati e valori delle costanti in tempo reale, durante la simulazione o il controllo di applicazioni embedded

Schema semplice Al cuore del funzionamento vi sono due elementi: gli stati e le transizioni L’esempio piu’ semplice che si puo’ fornire e’ quello di una lampadina che puo’ assumere due stadi Acceso e spento. Ad ogni stato e’ possibile associare quindi la transizione che conduce nell’altro stato

Elements di un diagramma

Gli stati Gli stati sono delle posizioni stabili in cui il sistema persiste fino all’accadere di un nuovo evento esterno. Ogni stato deve essere definito tramine una etichetta univoca per tutta la macchina. La funzione di evoluzione, determinata dalle transizioni puo’ procedere ad eventi, ovvero a condizioni logiche determinate da variabili estern (input) o di stato Condizioni ed operazioni possono essere effettuate su un set arbitrario di variabili che e’ possibile definire come asservite alla macchina a stati tramite un opportuno pannello di controllo. Ogni stato ha tre fasi principali: ingresso (entry), durata (during) ed uscita (exiti). Per ogni fase e’ possibile determinare in simil codice C eventuali riassegnazioni delle variabili interne e/o di uscita Una transizione aggiuntiva (denominata history) determina lo stato di ingresso di una macchina.

Gerarchie di stati Gli stati possono essere organizzati in maniera gerarchica Ad esempio in una automobile lo stato delle spie sul cruscotto puo` dipendere dal macrostato acceso/spento Per definire l’organizzazione gerarchica degli stati basta una inclusione grafica (nel diagramma) Ogni macrostato contiene tutti gli stati completamente definiti Quando sono presenti delle gerarchie di stati, in ogni istante il sistema considerera’ attivi lo stato piu’ interno e la gerarchia diretta dello stesso. Essendo attivi tutti questi stati saranno valutate tutte le rispettive transizioni e le rispettive azioni

Esempio di integrazione: Uno stabilizzatore di temperatura per ambienti

Implementazione

Le transizioni Le transizioni sono dei rami orientati che definiscono le condizioni per cui si puo` verificare una transizione di stato. Ogni transizione viene definita da una sintassi condizionale oppure basata su eventi come segue: Sintassi: evento[condizione]{azione su condizione;}/ azione su transizione; La sintassi delle transizioni e’ divisa in quattro parti: Gli eventi che possono essere generati esternamente o sollevati tramite la stessa sintassi; Le condizioni, simili al codice di un “if” identificano una condizione logica che se vera determina la transizione Le azioni su condizione vengono eseguite ogni qual volta il test sulla condizione risulta essere vero Le azioni su transizione vengono invece eseguite ogni volta che il SF decide di effettuare la transizione (puo’ differire in caso di presenza di giunzioni)

La transizione di Default Le transizioni di default rimuovono ambiguita` di esecuzione; In una macchina a stati la transizione di default illustra quale stato sara’ il primo ad essere eseguito; Quando posta in uno stato composto una transizione di default indica il sottostato di partenza (se le transizioni arrivano allo stato superiore)

Le transizioni su gerarchie Le transizioni i di uno stesso livello che stati di livello gerarchico differente. Quando puntano ad un sottolivello le transizioni attivano simultaneamente piu` stati (quello interno e la sua gerarchia). Quando passano ad un livello piu’ alto esse determinano le condizioni di uscita da tutti gli stati attivi Se si verifica una condizione di transizione da un macrostato verranno valutate le azioni di uscita da tutti i sottostati

Le giunzioni storiche Le giunzioni storiche offrono un meccanismo per ricordare quale stato era attivo nel momento di disattivazione di un macrostato e di reimpostarlo in caso di riattivazione In un certo senso esse offrono un meccanismo per “sospendere” le attivita` di valutazione di un macrostato e riprendere alla riattivazione come avviene nel multitasking di processi

Disambiguamento E’ opportuno che le transizioni di uscita non siano ambigue Valide cioe` simultaneamente per le medesime condizioni In tal caso sempre una sola transizione risulta valida In caso di ambiguita` il sistema preferenzia la transizione vincente secondo la regola dell’orologio analogico Vince l’ora piu’ piccola E’ possibile chiedere al sistema di illustrare la priorita tra le condizioni ambigue

Le Giunzioni Le giunzioni somigliano per certi versi agli stati, nel senso che esse possono ospitare transizioni in ingresso ed in uscita: Una giunzione puo` sia raggruppare che diramare i flussi di controllo A differenza degli stati, tuttavia esse introducono invece il concetto di flusso di controlli ed azioni che devono essere effettuate tutte all’interno di un passo di campionamento (non vi si soggiorna) Le giunzioni possono richiamarsi ricorsivamente. In questo caso spettera’ alle azioni su condizione garantire una evoluzione tale per cui vi sia uscita Utili ad e esempio nella realizzazione di un ciclo for Nel caso che un ramo di uscita di uno stato abbia delle giunzioni, esso verra’ selezionato se e solo se esiste una catena di controlli ed operazioni che conduce ad un altro stato In tal caso tali controlli/operazioni verranno tutti effettuati in un unico passo di valutazione Le giunzioni trovano pertanto particolare valore rispetto agli stati quando si vuole implementare una procedura che deve essere eseguita “a corpo” e non divisa su diversi istanti di campionamento

Decomposizione Il parallelismo tra piu’ operazioni puo’ essere ottenuto ricorrendo alle operazioni di decomposizione (tasto destro del mouse in un determinato livello gerarchico) Quando due stati procedono in parallelo sono rappresentati da un contorno tratteggiato. Anche se paralleli le variabili sono condivise tra tutti gli stati della macchina.

Variabili e I/O Come fa lo Stateflow a comunicare verso l’esterno la propria evoluzione e a prendere informazioni dall’esterno. All’interno dei menu’ e’ possibile dichiarare un insieme di variabili che possono essere associati rispettivamente a: Ingressi prelevati dall’ambiente simulink Uscite da riportare a simulink Variabili interne (locali o globali a qualisiasi livello di gerarchia) Costanti

Variabili e I/O La variabile t e’ predefinita ed indica il tempo di simulazione Le variabili interne e di IO possono essere scalari e vettori

Explorer Eventi e variabili possono essere definiti all’interno dell’explorer (CTRL+R, ALT+T+E) Gli eventi possono essere sia espliciti (chiamati dalle azioni) oppure impliciti: entra(stato), Cambio(stato), uscita(stato), oppure ancora esterni (come segnali associati ad inputs)

Gestione del parallelismo Le macchine a stati possono anche eseguire conti in parallelo tra sottostati (a qualsiasi livello di gerarchia). Tale possibilita’ e` segnalata su uno stesso livello di gerarchia (e di incapsulamento) da un tratteggio sui bordi dello stato Macchine in esecuzione parallela possono andare in competizione sulle risorse!!!

Esempi di esecuzione parallela In generale il conflitto di risorse in una esecuzione parallela non dovrebbe essere prodotto; Componenti parallele devono servire a calcolare aspetti complementari di una comune evoluzione dinamica In una automobile molti componenti possono essere parallelizzati: Monitor di benzina Monitor di velocita e statistiche di viaggio Per poi essere riuniti nel sottosistema che stima il consumo medio

Esempio (Da Barbarisi)

Esempio (Da Barbarisi) Modello Serbatoio A Modello Serbatoio C

Esempio (FSM)

Esempio (schema)