DA UML A MATLAB - PowerPoint PPT Presentation

1 / 52
About This Presentation
Title:

DA UML A MATLAB

Description:

Progetto di Controllo dei Processi DA UML A MATLAB Come ricavare un modello di simulazione in ambiente Matlab partendo da una descrizione in linguaggio UML – PowerPoint PPT presentation

Number of Views:124
Avg rating:3.0/5.0
Slides: 53
Provided by: nyro
Category:
Tags: matlab | uml | futuro | semplice

less

Transcript and Presenter's Notes

Title: DA UML A MATLAB


1
DA UML A MATLAB
Progetto di Controllo dei Processi
  • Come ricavare un modello di simulazione in
    ambiente Matlab partendo da una descrizione in
    linguaggio UML

Studenti Roberto Nicolino, Nicola di Lecce
2
Brevemente
  • Partendo da una analisi approfondita sulle
    potenzialità che oggi offre Unified Modeling
    Language si mostrerà come questo linguaggio si
    ponga da tramite tra cliente e committente, per
    evitare inutili incomprensioni e per permettere
    la realizzazione di un modello completo e
    dettagliato di un sistema. Grazie ad UML è
    possibile realizzare simulazioni in ambiente
    Matlab percorrendo un processo di integrazione
    completo tra le due piattaforme di sviluppo.

3
Si procederà descrivendo
  • Cosa è UML e a cosa serve
  • Come integrare il linguaggio Uml con Matlab o
    altri ambienti di simulazione
  • Quali procedure adottare per tradurre un modello
    descritto in UML in un modello utile alla
    simulazione

4
1/2
Intoduzione ad UML
  • Lo Unified Modeling Language è un linguaggio per
    specificare, costruire, visualizzare e
    documentare manufatti sia di sistemi software,
    che di altri sistemi non strettamente software.
  • UML rappresenta una collezione di best practices
    di ingegneria, dimostratesi vincenti nella
    modellazione di vasti e complessi sistemi.
  • UML permette di visualizzare, per mezzo di un
    formalismo rigoroso, manufatti dellingegneria,
    consentendo di illustrare idee, decisioni prese,
    e soluzioni adottate.
  • Tale linguaggio favorisce, inoltre, la
    divulgazione delle informazioni, in quanto
    standard internazionale non legato alle singole
    imprese.

5
2/2
Intoduzione ad UML
  • Lo UML dispone di tutti i meccanismi necessari
    per la specifica di qualsiasi dettaglio ritenuto
    rilevante in ogni fase del ciclo di vita del
    progetto e quindi, in ultima analisi, per
    produrre modelli accurati.
  • Lo UML, permette di realizzare modelli che si
    prestano ad essere implementati con diversi
    linguaggi di programmazione e ambienti di
    simulazione tipo Matlab
  • Sul mercato sono presenti diversi tool, in grado
    di generare codice a partire dal relativo
    modello, sia interattivamente durante la fase di
    disegno, sia su richiesta. Lesistenza di queste
    funzionalità, sebbene ancora non del tutto
    mature, dovrebbe far capire che limplementazione
    è veramente un dettaglio del disegno, specie con
    linguaggi come Java.
  • lo UML fornisce sia dei meccanismi molto formali,
    sia del testo libero da aggiungere, ogni qual
    volta lo si ritenga necessario, a parti ritenute
    poco chiare o particolarmente complesse, al fine
    di aumentarne il livello di dettaglio.

6
Perché utilizzare UML ?
7
1/2
Perché utilizzare UML
  • Ogni qualvolta, in una disciplina
    dellingegneria, vi sia la necessità di
    realizzare un manufatto, indipendentemente
    dalla dimensione e dal settore di interesse (una
    casa, un grattacielo, un particolare meccanismo,
    un ponte, un dipartimento di unazienda, e così
    via) si procede cercando di realizzarne un
    modello.
  • Lobiettivo è produrre, in tempi relativamente
    brevi e soprattutto a costi contenuti, una
    versione razionalizzata e semplificata del
    sistema reale che, tuttavia, consenta di
    evidenziarne laspetto finale e di studiarne
    prestazioni, affidabilità e comportamento.
  • Si provi a immaginare che cosa potrebbe accadere
    se si avviasse la progettazione di un ponte a
    partire da specifiche sommarie, magari comunicate
    verbalmente o, peggio ancora, se si partisse
    subito a costruirlo materialmente, magari
    affidandosi allesperienza di qualche costruttore

8
Il risultato sarebbe il seguente
2/2
Perché utilizzare UML
9
Questo è il motivo per cui è importante
utilizzare un linguaggio di modellizzazione
universale
10
Attualmente è possibile sfruttare le
caratteristiche descrittive offerte da UML
attraverso numerosi software free disponibili in
rete, tra questi si segnalaArgo
UMLhttp//argouml.tigris.org/
11
Componenti UML
12
1/14
Componenti UML
  • Il linguaggio UML contiene svariati elementi
    grafici che vengono messi insieme durante la
    creazione dei diagrammi. Dato che l'UML è un
    linguaggio, come tale utilizza delle regole per
    combinare i componenti nella creazione dei
    diagrammi.
  • L'obiettivo dei diagrammi è quello di costruire
    molteplici viste di un sistema tutte correlate
    tra di loro.
  • La notazione UML include dieci tipi di diagrammi,
    divisi in cinque categorie. Si tenga presente che
    è assolutamente possibile costruire e aggiungere
    dei diagrammi differenti dagli standard (che
    vengono definiti ibridi) rispetto a quelli
    definiti dal linguaggio. La tabella seguente
    mostra le categorie e i diagrammi corrispondenti.

13
Categoria Diagrammi
Diagrammi per analisi dei requisiti Diagrammi dei casi duso (use case)
Diagammi di struttura statica Diagrammi dei package
Diagammi di struttura statica Diagrammi delle classi (class)
Diagammi di struttura statica Diagrammi degli oggetti (object)
Diagrammi di interazione Diagrammi di sequenza (sequence)
Diagrammi di interazione Diagrammi di collaborazione (collaboration)
Diagrammi di stato Diagrammi di stato (statechart)
Diagrammi di stato Diagrammi di attività (activity)
Diagrammi di implementazione Diagramma dei componenti (component)
Diagrammi di implementazione Diagrammi di dilocamento (deployment)
14
Componenti UML Class Diagrams
3/14
  • Per avere una idea immediata di cosa sia una
    classe è possibile usare come esempio il fatto
    che tutti gli oggetti o esseri viventi, spesso,
    sono riconducibili a determinate categorie
    (computers, automobili, piante, animali). Queste
    categorie costituiscono le classi. Una classe è
    una categoria o un gruppo di oggetti (con questo
    termine si includono, per comodità anche gli
    esseri viventi) che hanno attributi simili e
    comportamenti analoghi. I Class Diagrams
    forniscono le rappresentazioni utilizzate dagli
    sviluppatori.

15
Componenti UML Object Diagrams
4/14
  • Un oggetto è una istanza di una classe, ovvero
    una qualcosa di specifico che ha dei valori
    determinati per i suoi attributi e dei
    comportamenti specifici.

16
Componenti UML Use Case Diagrams
5/14
  • Uno Use Case (caso d'uso) è una descrizione di un
    comportamento particolare di un sistema dal punto
    di vista dell'utente. Per gli sviluppatori, gli
    use case diagram rappresentano uno strumento
    notevole infatti tramite tali diagrammi, essi
    possono agevolmente ottenere una idea chiara dei
    requisiti del sistema dal punto di vista utente e
    quindi scrivere il codice senza timore di non
    aver recepito bene lo scopo finale. Nella
    rappresentazione grafica, viene utilizzato un
    simbolo particolare per l'actor (l'utente o un
    altro sistema che interagisce) che si vedrà in
    seguito.
  • L'actor è l'entità che interagisce con uno use
    case facendo partire la sequenza di azioni
    descritte dallo use case stesso e, eventualmente,
    ricevendo delle precise risposte dal sistema. Può
    essere una persona o anche un altro sistema.

17
Componenti UML State Diagrams
6/14
  • Ad un determinato istante, durante il
    funzionamento del sistema, un oggetto si trova in
    un particolare stato. Gli State Diagrams
    rappresentano tali stati, ed i loro cambiamenti
    nel tempo. Ogni state diagram inizia con un
    simbolo che identifica lo stato iniziale (Start
    State) e termina con un altro simbolo che
    rappresenta lo stato finale (End State). Per
    esempio, ogni persona può essere identificato dai
    seguenti stati neonato, bambino, adolescente,
    adulto, anziano.

18
Componenti UML Sequence Diagrams
7/14
  • I class diagrams e gli object diagrams
    rappresentano informazione statica. In un sistema
    funzionante, tuttavia, gli oggetti interagiscono
    l'uno con l'altro, e queste interazioni avvengono
    in relazione al trascorrere del tempo. Il
    sequence diagram mostra le dinamiche, basate sul
    tempo, delle varie interazioni tra gli oggetti.

19
Componenti UML Activity Diagrams
8/14
  • Le attività che si riscontrano all'interno di use
    case o all'interno del comportamento di un
    oggetto accadono, tipicamente, in una sequenza
    ben definita. Tale sequenza si rappresentata con
    gli activity diagrams.

20
Componenti UML Collaboration Diagrams
9/14
  • Gli elementi di un sistema lavorano insieme per
    realizzare e soddisfare le necessità del sistema.
    Un linguaggio di modellazione deve avere un modo
    per rappresentare tale cooperazione. Il
    Collaboration Diagram nasce proprio per questa
    ragione.

21
Componenti UML Component Diagrams
10/14
  • Oggi, nell'ingegneria del software si utilizza
    sempre più il modello di organizzazione secondo
    il quale ognuno nel team di lavoro lavora su un
    componente differente. Il component diagram
    descrive questa importante caratteristica.

22
Componenti UML Deployment Diagrams
11/14
  • Il Deployment Diagram mostra l'architettura dal
    punto di vista fisico e logistico di un sistema.
    Tale diagramma può descrivere i vari dispositivi
    presenti, mostrare le varie connessioni che
    intercorrono tra di essi e, ancora, il software
    che è installato su ogni macchina.

23
12/14
I simboli grafici
  • Elementi Strutturali
  • Elementi Comportamentali

24
13/14
I simboli grafici
  • Relazioni
  • Raggruppamento

25
14/14
I simboli grafici
  • Estensioni

ltltStereotipogtgt
Constraint
  • Annotazioni ed Actor

Actor
26
UML Considerazioni
  • Nelleffettuare la traduzione di un sistema
    descritto in ambiente UML in un sistema descritto
    in ambiente Matlab ci si serve prevalentemente
    di
  • Class Diagram
  • State Diagram
  • Collaboration Diagram
  • Sequence Diagram

27
Ambiente Matlab
  • Esistono principalmente due modi per poter
    simulare un sistema descritto in UML attraverso
    le funzionalità offerte da Matlab
  • Mediante Simulink e Stateflow utilizzati
    rispettivamente per simulare sistemi continui e
    ad eventi discreti (macchine a stati)
  • Mediante scrittura di codice in linguaggio
    S-Function, anchesso integrato pienamente in
    Matlab.
  • Si procederà ora analizzando prima lo Stateflow
    che risulta essere lo strumento più semplice per
    poter rappresentare sistemi di tipo discreto o
    ibridi (in aggiunta a Simulink) e che rispetto ad
    S-function è più User Friendly

28
1/5
Ambiente Matlab Stateflow
  • Lo stateflow è uno strumento di sviluppo grafico
    per sistemi basati sulla teoria delle macchine a
    stati finiti ossia sistemi di controllo logici
    (controllore on-off, scheduler), o sistemi di
    supervisione (controllori ad alto livello, ecc).
  • Una macchina a stati finiti, dunque, non è altro
    che la rappresentazione di un sistema a eventi
    discreti la cui evoluzione è regolata dal
    susseguirsi di condizioni vere o false.
  • Lapproccio utilizzato da Stateflow per
    descrivere un sistema a stati discreti è quello
    di modellarne il comportamento, in termini di
    transizioni attraverso gli stati. Lo stato attivo
    è determinato basandosi sul susseguirsi di eventi
    sotto determinate condizioni. Pertanto le
    transizioni e gli stati nel loro complesso non
    sono altro che delle rappresentazioni grafiche
    basate su questo tipo di approccio.

29
2/5
Ambiente Matlab Stateflow
  • Le macchine a stati finiti che questo ambiente di
    sviluppo permette di descrivere, sono
    caratterizzate da uno stato, un ingresso ed
    unuscita e si connettono fra di loro mediante
    delle transizioni. In dettaglio
  • Stato è la condizione (modo) di funzionamento
    della macchina
  • Transizione è la condizione di cambiamento dello
    stato della macchina
  • Ingressi sono informazioni provenienti
    dallesterno (eventi, segnali)
  • Uscite sono segnali verso lesterno il cui
    valore può essere funzione degli stati o delle
    transizioni.

30
3/5
Ambiente Matlab Stateflow
  • Di seguito è riportato un semplice esempio di
    controllo On-Off di un forno per porre in
    evidenza le parti caratterizanti di una Macchina
    a Sati descritta in Stateflow

31
4/5
Ambiente Matlab Stateflow
  • Le macchine a stati finiti che questo ambiente di
    sviluppo permette di descrivere, sono
    caratterizzate da uno stato, un ingresso ed
    unuscita e si connettono fra di loro mediante
    delle transizioni. In dettaglio
  • Stato è la condizione (modo) di funzionamento
    della macchina
  • Transizione è la condizione di cambiamento dello
    stato della macchina
  • Ingressi sono informazioni provenienti
    dallesterno (eventi, segnali)
  • Uscite sono segnali verso lesterno il cui
    valore può essere funzione degli stati o delle
    transizioni.

32
5/5
Ambiente Matlab Stateflow
  • Le transizioni avvengono al verificarsi di un
    evento che può coincidere ad esempio con la
    variazione di un oggetto Dato o Tempo.
  • Tali oggetti sono variabili di tipo numerico
    utilizzate da Stateflow per scambiare
    informazioni con Simulink, e quindi con il
    Workspace di Matlab, o con altre Macchine a
    Stati.

33
Ambiente Matlab Considerazioni
  • Come già anticipato, è anche possibile tradurre
    una descrizione UML in ambiente Matlab attraverso
    le S-Function, rispettando le regole di scrittura
    ampiamente trattate in letteratura.
  • Una S-Function è una descrizione, di un sistema
    dinamico, realizzata attraverso un linguaggio di
    programmazione, il cui codice può essere scritto
    utilizzando i linguaggi Matlab o C.
  • Mediante S-Function è possibile descrivere un
    sistema ibrido completo e pronto per la
    simulazione, semplicemente analizzando la
    descrizione UML.

34
Da UML a Matlab Un Esempio
35
UML-Matlab Esempio
  • Si vedrà ora quali procedure adottare per poter
    realizzare un modello di simulazione
    Matlab-Simulink partendo da una descrizione UML
    di un sistema di tipo ibrido. Verrà considerato
    come sistema una cella di lavoro da poter
    utilizzare in catene di montaggio industriali
  • Il sistema, costituito da due bracci robotici, da
    una rastrelliera, da una attrezzatura su cui
    eseguire la saldatura, da un nastro
    trasportatore, e da un pallet svolge
    ciclicamente le seguenti azioni
  • Prelievo pezzo A con Movimentatore da
    rastrelliera
  • Deposito pezzo A su attrezzatura di saldatura
  • Prelievo pezzo B con Movimentatore da
    rastrelliera
  • Deposito pezzo B su attrezzatura di saldatura
  • Esecuzione saldatura a punti (Saldatore)
  • Posizionamento dellassieme su pallet
    (Movimentatore)
  • Ripetizione saldatura per un secondo pezzo
  • Allontanamento del pallet con due pezzi saldati
    dalla cella.

36
UML-Matlab Esempio
  • Analizzando tale cella sarà possibile modellare
    la dinamica dei robots con uno schema Simulink
    tempo continuo e il funzionamento di tutti gli
    altri componenti come una sequenza di operazione
    discrete, ottenendo un sistema complessivamente
    Ibrido. Verrà elaborata prima una descrizione del
    sistema in UML, seguendo le procedure già
    descritte ossia la realizzazione di
  • Class Diagram
  • State Diagram
  • Collaboration Diagram
  • Sequence Diagram
  • In seguito, servendosi dello State Diagram, si
    rappresenteranno mediante precise regole di
    traduzione, le componenti discrete del sistema in
    ambente Stateflow.

37
UML-Matlab Esempio
  • La soluzione adottata per la cella di lavoro
    prevede che il robot2 (Saldatore) sia posto
    rispetto alla tavola girevole dalla parte opposta
    al robot1 (Movimentatore). In figura si indicano
    schematicamente con Ras la rastrelliera, con R1 e
    R2 rispettivamente il robot1 e il robot2, con TG
    la tavola girevole, con P il pallet e con Tr il
    trasportatore.

38
Class Diagram
  • Una volta scelti i componenti del sistema si
    procede con la realizzazione del Class Diagram
    che servirà a specificare quali oggetti
    costituiscono il sistema e a grandi linee che
    relazioni ci sono tra questi tipi di oggetti,
    ossia che operazioni compiono.
  • Il diagramma contiene pertanto una classe
    generica Robot e due istanze di tale classe
    Saldatore e Movimentatore. Associate ad esse vi è
    una classe Pezzo, che è a sua volta associata,
    con molteplicità 2, alla classe Assemblato
    (composizione dei pezzi A e B). La comunicazione
    tra i vari elementi della cella è garantita da 3
    segnali presenza_pezzo, finecorsa_nastro e
    presenza assemblato, inviati ai due Robot dalle
    classi Rastrelliera, TavolaGirevole e
    NastroTrasportatore.
  • La Dinamica è trattata come una classe a se in
    cui andranno specificate attraverso delle Note o
    delle Constraint le equazioni differenziali che
    regolano il funzionamento del braccio Saldatore e
    del braccio Movimentatore.

39
(No Transcript)
40
State Diagram
  • Nella realizzazione dello State Diagram si è
    tenuto conto che il sistema è costituito da due
    elementi fondamentali che risultano essere i due
    Robots.
  • Il funzionamento della cella di lavoro nel suo
    complesso si basa infatti sulle azioni che i due
    Robots devono compiere per poter effettuare la
    movimentazione dei pezzi e la saldatura.
  • Le altre componenti ossia la Tavola Girevole, la
    Rastrelliera e il Nastro Trasportatore sono visti
    come degli elementi passivi di cui i Robots si
    servono per poter ricavare delle informazioni o
    per poter impartire dei comandi.

41
State Diagram
  • Si è scelto dunque di realizzare due State
    Diagram
  • uno per il robot Movimentatore
  • uno per il robot Saldatore.
  • Di seguito per completezza sono riportati i
    rispettivi schemi

42
(No Transcript)
43
(No Transcript)
44
Collaboration Diagram
  • Il Collaboration Diagram visualizza lo scambio
    dei messaggi che avviene tra i vari componenti
    del sistema, come rappresentato in figura

45
Sequence Diagram
  • La realizzazione del Sequence Diagram risulta
    abbastanza semplice, basta considerare infatti la
    sequenza delle interazioni che avvengono durante
    il funzionamento del sistema e rappresentarle
    secondo la sintassi.

46
(No Transcript)
47
Matlab Simulink e Stateflow
  • Una volta terminata la realizzazione dei
    diagrammi UML si passa alla traduzione del
    sistema in un modello di simulazione allinterno
    di Matlab. Pertanto si procede con la descrizione
    della componente continua attraverso dei
    blocchetti simulink e con la descrizione della
    componente discreta mediante una macchina a stati.

48
(No Transcript)
49
Regole di Traduzione
  • Si riportano per completezza i passaggi che
    devono essere effettuati per poter trasformare la
    descrivere un sistema in UML e poi trasformare
    tale descrizione in un modello Matlab
  • Analisi dei componenti e delle specifiche di
    progetto
  • Descrizione dettagliata della dinamica del
    sistema
  • Realizzazione di opportuni controllori che
    consentano il rispetto delle specifiche
  • Scrittura del Class Diagram UML
  • Scrittura dello State Diagram
  • Scrittura del Collaboration Diagram e del
    Sequence Diagram
  • Realizzazione del modello Matlab (componenti
    continue con Simulink e discrete con Stateflow)
  • Eventuale generazione di codice per la
    configurazione e la programmazione dei componenti
    del sistema.

50
Regole di Traduzione
  • Lunicità di questa procedura è garantita anche
    grazie ai numerosi strumenti offerti da UML per
    realizzare la descrizione di un sistema, tra
    questi assume rilevante importanza il costrutto
    constraint.
  • La sua funzione è quella di fornire dei vincoli
    che garantiscano le specifiche determinanti del
    sistema.

51
Sviluppi Futuri
  • UML, che di fatto oggi è uno standard, si pone al
    vertice tra gli strumenti che consentano di
    strutturare in differenti fasi un qualsiasi tipo
    di progettazione. Pertanto si rivela estremamente
    utile nella produzione di software, o in altri
    campi dellingegneria, tra cui anche quello
    dellautomazione industriale.
  • Se si utilizzasse UML come tramite ossia come
    punto di unione tra chi ha il compito di
    descrivere e progettare e chi ha invece il
    compito di realizzare si potrebbero eliminare
    inutili e spiacevoli incomprensioni che spesso
    sono alla base del fallimento di un determinato
    processo produttivo e di sviluppo.
  • Uno sviluppo futuro potrebbe essere quello di
    racchiudere le regole di traduzione da UML a
    Matlab in un software che permetta di generare in
    modo univoco codice in formato S-Function
    inserendo i parametri della dinamica e fornendo
    i file dei diagrammi UML del sistema.

52
Sviluppi Futuri
  • Questo permetterebbe senza dubbio di descrivere
    un sistema attraverso un linguaggio universale
    che non risulti legato a nessun tipo di programma
    (Matlab, Scilab e così via) ma che attraverso
    regole simili a quelle per Matlab permetta di
    sfruttare quella descrizione su qualsiasi
    piattaforma di simulazione e con qualsiasi
    sistema operativo (Linux, Windows).
Write a Comment
User Comments (0)
About PowerShow.com