Berkeley Madonna: istruzioni per l ’ uso

33
Berkeley Madonna: istruzioni per l’uso Prof. Eugenio Parente SSAFAA- Università della Basilicata

description

Berkeley Madonna: istruzioni per l ’ uso. Prof. Eugenio Parente SSAFAA- Università della Basilicata. In questa presentazione:. introduzione all ’ uso di Berkeley Madonna per la modellazione dinamica le finestre di Madonna la sintassi delle equazioni - PowerPoint PPT Presentation

Transcript of Berkeley Madonna: istruzioni per l ’ uso

Page 1: Berkeley Madonna: istruzioni per l ’ uso

Berkeley Madonna: istruzioni per l’uso

Prof. Eugenio ParenteSSAFAA- Università della Basilicata

Page 2: Berkeley Madonna: istruzioni per l ’ uso

In questa presentazione:• introduzione all’uso di Berkeley Madonna

per la modellazione dinamica

• le finestre di Madonna

• la sintassi delle equazionio convertitori o formule: built-in in Madonna o flussi: equazioni differenziali, equazioni a

differenze finite, elementi discretio vettori e matrici

Page 3: Berkeley Madonna: istruzioni per l ’ uso

Berkeley Madonna

Page 4: Berkeley Madonna: istruzioni per l ’ uso

Berkeley Madonna: la finestra delle equazioni

un commento

un’equazione differenziale e un inizializzatore

convertitori(formule)

Page 5: Berkeley Madonna: istruzioni per l ’ uso

Berkeley Madonna: la finestra dei grafici

Page 6: Berkeley Madonna: istruzioni per l ’ uso

Berkeley Madonna: la finestra del diagramma di flusso

Page 7: Berkeley Madonna: istruzioni per l ’ uso

Berkeley Madonna: la finestra dei parametri

Page 8: Berkeley Madonna: istruzioni per l ’ uso

Berkeley Madonna: la finestra delle note

Page 9: Berkeley Madonna: istruzioni per l ’ uso

Berkeley Madonna: il menu File

Page 10: Berkeley Madonna: istruzioni per l ’ uso

Berkeley Madonna: il menu Edit

Page 11: Berkeley Madonna: istruzioni per l ’ uso

Berkeley Madonna: il menu Flowchart

Page 12: Berkeley Madonna: istruzioni per l ’ uso

Berkeley Madonna: il menu Model

Page 13: Berkeley Madonna: istruzioni per l ’ uso

Berkeley Madonna: il menu Compute

Page 14: Berkeley Madonna: istruzioni per l ’ uso

Berkeley Madonna: il menu Graph

Page 15: Berkeley Madonna: istruzioni per l ’ uso

Berkeley Madonna: il menu Parameters

Page 16: Berkeley Madonna: istruzioni per l ’ uso

Berkeley Madonna: il menu Window

Page 17: Berkeley Madonna: istruzioni per l ’ uso

Berkeley Madonna: il menu Aiuto (Help)

Page 18: Berkeley Madonna: istruzioni per l ’ uso

Introduzione all’uso

Per apprendere i primi elementi dell’uso di Berkeley Madonna apri il modello “5 minutes tutorial” dall’aiuto e esegui gli esercizi

Page 19: Berkeley Madonna: istruzioni per l ’ uso

Sintassi delle equazioni in Madonna. 1. Tipi di equazioni

Convertitori e formuleFlussi e serbatoi:

equazioni differenzialiequazioni a differenze finiteequazioni ad elementi discreti

Calcolo iterativo delle soluzioni di equazioni o sistemi di equazioni (ROOTI e ROOT)Miscellanea

Page 20: Berkeley Madonna: istruzioni per l ’ uso

Sintassi delle equazioni in Madonna. 2. Convertitori o formule

Esempi:A=B*C

B=10C=125

A=if B>9 then B*C else 0.001B=10*TIMEC=125

A=normal(B,C)

Page 21: Berkeley Madonna: istruzioni per l ’ uso

Sintassi delle equazioni in Madonna. 3. Equazioni differenziali ed equazioni a differenze finite

Sono composte da due equazioni: un inizializzatore, che attribuisce il valore iniziale allo stock o serbatoio, e un flusso (integratore), che modifica il valore del serbatoio ad ogni passaggio di integrazione.Il metodo usato per l’integrazione, il tempo iniziale e finale, il passo di integrazione sono definiti dalle istruzioni:METHOD, STARTTIME, STOPTIME. DT (usate in Euler, RK2 e RK4)DTMIN, DTMAX e TOL (usate nei metodi con DT variabile)

Page 22: Berkeley Madonna: istruzioni per l ’ uso

Sintassi delle equazioni in Madonna. 3. Equazioni differenziali ed equazioni a differenze finite

Gli inizializzatori possono avere le seguenti forme:X(STARTTIME)=...INIT X=...INIT (X)=...Il valore dell’espressione sulla destra viene inserito nell’icona del serbatoio se si usa il flowchart editor.

Page 23: Berkeley Madonna: istruzioni per l ’ uso

Sintassi delle equazioni in Madonna. 3. Equazioni differenziali ed equazioni a differenze finite

Le equazioni differenziali possono avere le seguenti forme:d/dt(X)=...X’=...FLOW X=...X(t)=X(t-dt)+(...)*dtX=X+dt*(...)Il valore dell’espressione sulla destra viene inserito nell’icona del FLUSSO se si usa il flowchart editor.

Page 24: Berkeley Madonna: istruzioni per l ’ uso

Sintassi delle equazioni in Madonna. 4. elementi discreti

Berkeley Madonna 8 introduce tre tipi di elementi discreti presenti in STELLA:

• nastri trasportatori (conveyor)• forni (oven)• code (queue)

Il loro funzionamento è notevolmente diverso da quello delle equazioni differenziali e dalle equazioni a differenze finite. Gli elementi discreti accumulano input, li trattengono per un ceerto periodo di tempo e poi li rilasciano.

Il loro valore viene calcolato ad ogni passaggio di integrazione moltiplicando la somma di tutti gli input per DT.

Page 25: Berkeley Madonna: istruzioni per l ’ uso

Sintassi delle equazioni in Madonna. 4. elementi discreti

Nastri trasportatori (conveyors).

Ad ogni passaggio del modello un input viene aggiunto sul nastro trasportatore. L’input rimane sul nastro trasportatore per la durata del tempo di transito e poi viene rilasciato. La sintassi è:name=CONVEYOR(input,tt,cap)dove input è l’espressione di input, tt il tempo di transito, cap è la capacità (opzionale). La somma degli input che escono dal conveyor è:output=OUTFLOW(name)La capacità può essere limitata definendo:input=...limited_input=MIN(input,MAXINFLOW(name))name=CONVEYOR(limited_input,tt,cap)

Page 26: Berkeley Madonna: istruzioni per l ’ uso

Sintassi delle equazioni in Madonna. 4. elementi discreti

Forni (ovens).

Il forno si riempie durante il “fill time”, poi passa alla cottura per la durata del “cook time” e rilascia gli input istantaneamente nella fase di svuotamento, per poi ritornare in riposo (idle) o cominciare a riempirsi se sono disponibili input. La sintassi è:name=OVEN(input,ct,ft,cap)dove input è l’espressione di input, ct il tempo di cottura, ft il tempo di riempimento, cap è la capacità (opzionale). La somma degli input che escono dal forno nella fase di svuotamento (che dura un solo passaggio) è:output=OUTFLOW(name)

Page 27: Berkeley Madonna: istruzioni per l ’ uso

Sintassi delle equazioni in Madonna. 4. elementi discretiForni (ovens).

Lo stato del forno può essere determinato con la funzione:state=OSTATE(name)che restituisce 0 per idle, 1 per filling, 2 per cooking e 3 per emptyingLa capacità può essere limitata definendo:input=...limited_input=MIN(input,MAXINFLOW(name))name=OVEN(limited_input,ct,ft,cap)Questa procedura è necessaria soprattutto se il forno è alimentato da uno stock che non deve continuare a svuotarsi a meno che il forno non si stia riempiendo.Fai girare il modello Use Ovens per comprendere il funzionamento di un forno.

Page 28: Berkeley Madonna: istruzioni per l ’ uso

Sintassi delle equazioni in Madonna. 4. elementi discreti

Code (queues).

Una coda accetta uno o più input il cui valore sia diverso da 0 e li rilascia nell’ordine in cui li ha accettati. L’uscita degli elementi dalla coda è controllata da una funzione. La sintassi è:name=QUEUE(input1,input2,...,inputN)ad ogni intervallo di tempo la coda controlla i suoi input e, se sono diversi da 0 li mette in coda.Per far uscire gli input dalla coda si usano le funzioni:output=QPOP(name,maxel,maxamt)output=QPOPS(name,maxel,maxamt)dove name è il nome della coda. QPOP rimuove dalla coda solo elementi interi. Vengono rimossi elementi finchè il loro numero è inferiore a maxel e la loro somma è inferiore a maxamt.

Page 29: Berkeley Madonna: istruzioni per l ’ uso

Sintassi delle equazioni in Madonna. 4. elementi discreti

Code (queues).

output=QPOPS(name,maxel,maxamt)A differenza di QPOP, QPOPS rimuove dalla coda anche parti di elementi. Vengono rimossi elementi finchè il loro numero è inferiore a maxel e la loro somma è inferiore a maxamt. Se solo una parte di un elemento viene sottratto da QPOPS la parte restante rimane sulla coda.A differenza dei nastri trasportatori e dei forni, gli elementi possono essere rimossi dalla coda anche nello stesso intervallo di tempo in cui sono stati aggiunti. Se una coda alimenta un forno bisogna usare la funzione MAXINFLOW del forno per impedire che elementi escano dalla coda se il forno non si sta riempiendo.Fai girare il modello Use Queues per capire il funzionamento delle code.

Page 30: Berkeley Madonna: istruzioni per l ’ uso

Vettori e matriciVettori e matrici (fino a tre dimensioni) sono utili quando in un convertitore o in un flusso compaiono equazioni con espressioni identiche sul lato destro. Per esempio:rX[1..10]=mu[1..10]*x[1..10]può essere utilizzato per definire contemporaneamente la crescita di 10 diversi batteri, i cui valori di popolazione (x) e velocità specifica di crescita (mu) sono diversi.

Gli elementi di una matrice possono essere definiti con equazioni diverse:rX[1..3]=mumax[1..3]*(1-x[1..3]/xmax[1..3])*x[1..3]rX[4..10]=mumax[4..10]*(S/(KS[4..10]+S)*x[4..10]

Page 31: Berkeley Madonna: istruzioni per l ’ uso

Vettori e matriciE’ inoltre possibile riferirsi agli elementi da assegnare utilizzando le variabili speciali i, j, k, che si riferiscono rispettivamente agli indici della prima, seconda e terza dimensione della matrice:s[1..3,1..4,5]=f[i,j]*g[j,k].Gli elementi vengono assegnati nel seguente ordine:a[1..2,1..2]=a[1,1]a[1,2]a[2.1]a[2,2]L’ordine è estremamente importante: se un elemento usato in un assegnazione non è definito il programma restituisce un errore.

Page 32: Berkeley Madonna: istruzioni per l ’ uso

Vettori e matriciNella definizione degli indici è possibile usare delle variabili. Ciò consente di variare la dimensione di una matrice senza ricompilare il modello:factorial[1]=1factorial[2..n]=factorial[i-1]*in=10

Per comprendere il funzionamento delle matrici in Madonna fai girare il modello Use Indexed Variables.

Page 33: Berkeley Madonna: istruzioni per l ’ uso

Some rights reserved

Questa presentazione è stata creata da Eugenio Parente, 2007 e modificata nel 2012. Il materiale è coperto da licenza Creative Commons Public License “Attribuzione - Non commerciale - Condividi allo stesso modo” (http://creativecommons.org/licenses/by-nc-sa/3.0/it/deed.it).