Capitolo 2 Un introduzione all analisi dinamica dei sistemi Obiettivo: presentare una modellistica di applicazione generale per l analisi delle caratteristiche dinamiche di sistemi, nota come system dynamics, e contemporaneamente uno strumento software di simulazione Versione 10.10.02 Un introduzione all analisi dinamica dei sistemi 1 Premessa La soluzione analitica di equazioni differenziali lineari a parametri costanti può essere ottenuta con il metodo della trasformata di Laplace Le tecniche numeriche di soluzione operano invece direttamente nel dominio del tempo, e si applicano non solo a equazioni lineari a parametri costanti, ma anche a equazioni non lineari e/o a parametri variabili nel tempo Il valore della funzione ottenuto a ogni ciclo del procedimento di soluzione è un approssimazione del valore, esatto, che si sarebbe ottenuto analiticamente Ma mentre le tecniche numeriche sono praticamente sempre applicabili una soluzione analitica può essere difficile e costosa, se non impossibile, da ottenere Le tecniche numeriche sono la base per i modelli di simulazione Un introduzione all analisi dinamica dei sistemi 2
Il primo passo: identificazione e strutturazione Il primo passo per analizzare (la dinamica di) un sistema è di decidere cosa considerare parte del sistema e cosa parte dell ambiente Occorre dunque in particolare stabilire: quali variabili (ed eventualmente quali costanti) caratterizzano il comportamento del sistema (variabili / costanti interne ) quali variabili caratterizzano il trasferimento di materia / energia / informazione dall ambiente al sistema (parametri di input, eventualmente utilizzabili per il controllo del sistema) quali variabili caratterizzano il trasferimento di materia / energia / informazione dal sistema all ambiente (parametri di output, tipicamente utilizzati come osservabili del sistema) Contestualmente è utile identificare le relazioni di dipendenza fra tali entità, per esempio impiegando un semplice formalismo grafico per cui: x y indica che la variabile y dipende dalla variabile / costante x Alcune (ovvie) condizioni di consistenza: le costanti e le variabili di input non possono avere frecce entranti le variabili di output non possono avere frecce uscenti, a meno che non siano anche considerate variabili interne Un introduzione all analisi dinamica dei sistemi 3 Esempio: la dinamica di un circuito resistivo Quali sono le variabili utili per descrivere il sistema? Quali di esse sono di input, quali interne, quali di output? Quali relazioni di dipendenza ci sono tra esse? implementare in un foglio elettronico un modello di simulazione di questo sistema, con input costante o variabile secondo un andamento noto, per esempio sinusoidale Un introduzione all analisi dinamica dei sistemi 4
Esempio: la dinamica di un circuito resistivo Le variabili in gioco sono, naturalmente, le tre indicate nello schema: V s (t), R e I(t) Si è in grado di intervenire sul comportamento del (= controllare il) sistema operando sul generatore di differenza di potenziale: V s (t) variabile di input La corrispondente variabile controllata, e che si suppone osservabile, è l intensità della corrente che si stabilisce nel circuito: I(t) variabile di output (o, in modo sostanzialmente equivalente, la differenza di potenziale ai capi del resistore: V R (t) = RI(t) ) Si può supporre che la resistenza del resistore sia un parametro che non varia nel tempo: R costante interna Le relazioni di dipendenza sono derivabili banalmente dall equazione I(t)=V s (t)/r (già nella forma output=f(input, variabili interne, costanti interne); graficamente: V s (t) R I(t) implementare il modello mediante un sistema di simulazione Un introduzione all analisi dinamica dei sistemi 5 Vensim: uno strumento a supporto della simulazione della dinamica di sistemi (useremo solo alcuni strumenti di una versione leggera, e free, del sistema ) La costruzione del modello relazionale / qualitativo: variabili e loro relazioni Elementi di interfaccia utente del sistema ed editing del modello relazionale La costruzione del modello quantitativo: equazioni : o costanti o variabili ausiliarie o variabili ombra o funzioni predefinite Esecuzione di una simulazione, con assegnazione dei relativi parametri temporali Visualizzazione grafica e testuale dei risultati della simulazione Esecuzione interattiva di simulazioni Nota: la system dynamics adotta una terminologia peculiare chiama esogene le variabili di input chiama supplementari le variabili di output Un introduzione all analisi dinamica dei sistemi 6
Esempio: la dinamica di un circuito RC Quali sono le variabili utili per descrivere il sistema? Quali di esse sono di input, quali interne, quali di output? Quali relazioni di dipendenza ci sono tra esse? Ci sono delle differenze qualitative di rilievo tra questo sistema e il precedente? Un introduzione all analisi dinamica dei sistemi 7 Esempio: la dinamica di un circuito RC /1 Le variabili in gioco sono quelle indicate: V s (t), R, C, V C (t) e I(t) Sembra ragionevole che V s (t) e I(t) siano la variabile di input e di output rispettivamente e che R e C siano trattate da costanti interne Dall equazione della maglia, V s (t) = RI(t) + V C (t) e cioè I(t) = V s(t) V C (t), otteniamo che R la variabile di output dipende direttamente da V s (t), V C (t) e R: V C (t) V s (t) R I(t) rimane da stabilire la natura di V C (t) Un introduzione all analisi dinamica dei sistemi 8
Esempio: la dinamica di un circuito RC /2 Ricordiamo che la caratteristica del condensatore, I(t) = C d V C(t), può essere anche dt scritta in forma integrale come V C (t) = V C (t 0 ) + 1 t C I( )d : la variabile V C (t) dipende dalla 0 t costante C e dalla variabile I(t) (che dunque è una variabile sia interna sia di output): C R V s (t) V C (t) I(t) Ci sono due novità fondamentali: una dipendenza reciproca tra due variabili: l evoluzione di V C (t) dipende dall evoluzione di I(t) e viceversa ( per calcolare la prima bisogna calcolare la seconda e viceversa ) V C (t) dipende da I(t) in modo complesso: V C (t) accumula i valori che I(t) assume nel corso dell evoluzione del sistema (a partire da un valore iniziale, V C (t 0 )) Un introduzione all analisi dinamica dei sistemi 9 Valutazione numerica delle variabili integrali x (t) = x (t 0 ) + y ( )d Invece di trovare l espressione analitica di x (t), possiamo calcolare x (t) per un insieme finito di valori 0 t, 1 t =t 0 + t, 2 t =t 1 + t=t 0 +2 t, avendo fissato un t discreto Dunque, dato x (t 0 ) (che si deve supporre noto): x (t 1 ) = x (t 0 ) + y (t 0 ) t x (t 2 ) = x (t 0 ) + y (t 0 ) t + y (t 1 ) t n 1 x (t n ) = x (t 0 ) + i =0 y (t i ) t Ripetiamo qui quanto considerato in precedenza: il valore della funzione ottenuto a ogni ciclo del procedimento di soluzione è un approssimazione del valore, esatto, che si sarebbe ottenuto analiticamente ma mentre le tecniche numeriche sono praticamente sempre applicabili una soluzione analitica può essere difficile e costosa, se non impossibile, da ottenere t t 0 implementare secondo questo schema il modello del sistema precedente in un foglio elettronico Un introduzione all analisi dinamica dei sistemi 10
Due categorie di variabili Le variabili interne di un sistema possono essere classificate dunque in due categorie fondamentalmente diverse: le variabili il cui valore è ottenuto dalla valutazione istantanea di altre variabili le variabili il cui valore è ottenuto dalla valutazione cumulativa di altre variabili Le variabili a dipendenza istantanea sono chiamate variabili di flusso Le variabili a dipendenza cumulativa sono chiamate variabili di livello o di stato x y e rappresentiamo graficamente così: il fatto che la variabile di stato y dipende dalla variabile di flusso x Il comportamento dinamico di sistemi caratterizzati solo attraverso variabili di flusso è dunque del tipo: output(t) = f parametri interni (input(t)) sono sistema senza memoria Ogni dipendenza temporale più complessa tra input e output deriva dalla presenza di almeno una variabile di stato implementare il modello mediante un sistema di simulazione Un introduzione all analisi dinamica dei sistemi 11 Vensim /2 Variabili di stato Documentazione / commenti sul modello relazionale Loop e feedback, positivi e negativi Funzioni speciali (pulse, ramp, step, ) e funzioni lookup Un introduzione all analisi dinamica dei sistemi 12
Esempio: la dinamica di un circuito RLC Quali sono le variabili utili per descrivere il sistema? Quali di esse sono di input, quali interne, quali di output? Quali relazioni di dipendenza ci sono tra esse? Ci sono delle differenze qualitative di rilievo tra questo sistema e il precedente? Un introduzione all analisi dinamica dei sistemi 13 Esempio: la dinamica di un circuito RLC /1 Riprendendo le considerazioni fatte per il circuito RC e ricordando che la caratteristica dell induttore è V L (t) = L d I(t), otteniamo per la maglia: dt V s (t) = L d I(t) + RI(t) + V dt C (t), con I(t) = C d V C(t) dt Il termine d I(t)/dt rende la variabile di output I(t) non ottenibile algebricamente; dunque: d V C (t) = I(t) d I(t) = 1 dt C dt L [V s(t) RI(t) V C (t)] A questo punto possiamo integrare entrambe le equazioni: V C (t) = V C (t 0 ) + 1 t C I( )d I(t) = I(t 0 ) + 1 t L [V s ( ) RI( ) V C ( )]d 0 t 0 t da cui si ricava che questo sistema ha due variabili di stato (o equivalentemente: ha come variabile di stato un vettore a due componenti): differenza di potenziale ai capi del condensatore e intensità di corrente attraverso l induttore Un introduzione all analisi dinamica dei sistemi 14
Rappresentazione canonica Se x 1 (t),, x n (t) sono le variabili di stato di un sistema, si chiama rappresentazione canonica (a tempo continuo) del sistema il sistema (!) di equazioni differenziali: dx 1 (t) = f dt 1 (X(t)) dx n (t) = f dt n (X(t)) (con f i (X(t)) = f i (x 1 (t),, x n (t)) una notazione che manterremo d ora in poi per brevità) da cui è possibile ottenere le equazioni integrali: x i (t) = x i (t 0 ) + f i (X( )) d t t 0 la cui importanza è dunque evidente per l analisi numerica (= la calcolabilità) della dinamica del sistema Un introduzione all analisi dinamica dei sistemi 15 Esempio: la dinamica di un circuito RLC /2 Il diagramma delle dipendenze: C R V C (t) I(t) V s (t) L evidenzia come le due variabili di stato dipendano l una dall altra una fonte di complessità computazionale un esempio di struttura di feedback Un introduzione all analisi dinamica dei sistemi 16
Esempio: oscillatore armonico smorzato L equazione (differenziale) che descrive la dinamica di un pendolo sottoposto a smorzamento è: d 2 (t) dt 2 + a d (t) + b sin( (t))= 0 dt (a=coefficiente di smorzamento/massa); b=accelerazione di gravità/lunghezza del braccio) Si passa alla rappresentazione canonica del sistema per sostituzione di variabili: x 1 = x 2 =dx 1 /dt (dunque x 1 =posizione; x 2 =velocità) e quindi: dx 2 /dt = ax 2 b sin(x 1 ) Integrando: x 1 (t) = x 1 (t 0 ) + x 2 ( )d t t 0 t x 2 (t) = x 2 (t 0 ) + [ ax 2 ( ) b sin(x 1 ( ))]d t 0 un sistema senza input (=non controllabile) e con stato=output b a x 1 (t) x 2 (t) ha senso, in questo caso, sostenere che x 1 e x 2 sono in feedback l una sull altra? che tipo di feedback sarebbe? implementare il modello mediante un sistema di simulazione Un introduzione all analisi dinamica dei sistemi 17 Vensim /3 Scelta dell algoritmo di integrazione numerica Grafici custom Una nota: quando il modello include due o più variabili di stato in relazione di dipendenza reciproca, la scelta dell algoritmo di integrazione numerica e del valore t adottato nella simulazione sono critiche! Un introduzione all analisi dinamica dei sistemi 18
Dal quantitativo al qualitativo Il modo con più tipicamente si adottano metodologia e strumenti della system dynamics è inverso a quello che abbiamo impiegato finora invece di: si può: ricavare la rappresentazione canonica in forma differenziale o integrale del sistema analizzare la struttura del sistema e ricavare un diagramma delle relazioni derivare il diagramma delle relazioni di dipendenza tra variabili implementare il diagramma e le corrispondenti equazioni simulare il modello verificandone l adeguatezza (altrimenti ) implementare il diagramma verificandone l adeguatezza (altrimenti ) ipotizzare le equazioni che formalizzano quantitativamente le relazioni implementare le equazioni simulare il modello verificandone l adeguatezza (altrimenti ) Un introduzione all analisi dinamica dei sistemi 19 Sistemi, modelli, rappresentazioni formali La procedura : 1. identificazione delle variabili 2. identificazione delle relazioni 3. identificazione delle equazioni è basata su una fondamentale assunzione di natura concettuale: per un sistema in esame è possibile costruire più modelli, e di un modello è possibile costruire più rappresentazioni formali sistema modello rappresentazione formale La scelta tra modelli e, dato un modello, tra rappresentazioni formali non è una questione di verità ma dipende dalle finalità per cui si costruisce il modello / la rappresentazione Un introduzione all analisi dinamica dei sistemi 20
Esempio: investimento bancario Dato il modello base: tasso di interesse + capitale interessi + identificare le equazioni, implementare il modello e verificarne l adeguatezza mediante simulazione estendere il modello per tener conto di un tasso di reinvestimento inferiore al 100% e per distinguere il capitale nominale dal capitale in termini reali, cioè depurato dagli effetti dell inflazione, che potrebbe avere una variabilità temporale, per esempio crescente Un introduzione all analisi dinamica dei sistemi 21 Dal continuo al discreto Un modello come quello dell esempio precedente è evidentemente basato su una base temporale discreta (per esempio con t = 1 anno) In questo caso la struttura di dipendenza temporale tra le variabili del sistema non è più formalizzata mediante le equazioni differenziali (il differenziale dt non ha alcun significato empirico): dx i (t) = f dt i (X(t)) e quindi occorre adottare la versione discreta (=non portata al limite) del rapporto incrementale: x i (t+ t) x i (t) = f t i (X(t)) e quindi: x i (t+ t) = x i (t) + f i (X(t)) t E questa la forma che assumono le equazioni della rappresentazione canonica di un sistema a tempo discreto Un introduzione all analisi dinamica dei sistemi 22
Modelli a tempo discreto e simulazione Dalla rappresentazione canonica a tempo discreto: x i (t+ t) = x i (t) + f i (X(t)) t si passa facilmente alla versione procedurale, impiegata in simulazione: x i (t 0 ) x i (t 1 ) = x i (t 0 ) + f i (X(t 0 )) t x i (t 2 ) = x i (t 1 ) + f i (X(t 1 )) t = x i (t 0 ) + [f i (X(t 0 )) + f i (X(t 1 ))] t n 1 x i (t n ) = x i (t 0 ) + f i (X(t k )) t k =0 identica alla versione a tempo continuo approssimata introdotta in precedenza! cioè a sua volta interpretabile come l approssimazione di: x i (t) = x i (t 0 ) + f i (X( )) d t t 0 Un introduzione all analisi dinamica dei sistemi 23 Vensim /4 Ancora sulle variabili di stato: Vensim gestisce le due forme di rappresentazione canonica: modelli a tempo continuo: x i (t) = x i (t 0 ) + f i (X( )) d n 1 modelli a tempo discreto: x i (t n ) = x i (t 0 ) + f i (X(t k )) t k =0 nello stesso modo Vensim assume cioè che ogni variabile di livello (=di stato) sia definita specificando: - un valore iniziale, corrispondente al termine x i (t 0 ) - un valore da integrare / sommare Dunque data la rappresentazione canonica x i (t+ t) = x i (t) + f i (X(t)) t, il valore da sommare è f i (X(t)) e se invece la dinamica del sistema è specificata nella forma: x i (t+ t) = g i (X(t)) è necessario scrivere la funzione g i come x i (t) + f i (X(t)) t t t 0 Un introduzione all analisi dinamica dei sistemi 24
Esempio: dinamica di una popolazione Data l ipotesi di considerare una popolazione esclusivamente dal punto di vista della sua numerosità: identificare le variabili e le loro relazioni per modellizzare la dinamica di una popolazione condizionata dalla quantità di nascite e morti su base annuale, implementando quindi il relativo diagramma identificare le equazioni, implementare il modello e verificarne l adeguatezza mediante simulazione estendere il modello per tener conto della limitata capacità dell ambiente di sostenere la crescita della popolazione, eventualmente con un limite superiore variabile nel tempo Un introduzione all analisi dinamica dei sistemi 25 Esempio: dinamica di una popolazione nascite popolazione morti con: tn e vm: costanti tasso di nascita vita media popolazione(t ): i p i = p i 1 + n i 1 m i 1 nascite(t ): i n i = p i tn morti(t ): i m i = p i vm e quindi p i = p i 1 (1 + k), con k = tn 1 vm Formalizziamo i limiti di crescita sostituendo k k (1 p L) (L: popolazione massima): p i = p i 1 (1 + k (1 p i 1 L)) = p i 1 + k p i 1 p 2 i 1 k L L eventuale comportamento caotico dipende dal passo t della simulazione Un introduzione all analisi dinamica dei sistemi 26
Una sintesi Nei modelli a tempo continuo dalla rappresentazione canonica differenziale: dx i (t) dt = f i (X(t)) si passa per integrazione alla forma integrale: x i (t) = x i (t 0 ) + f i (X( )) d t t 0 Nei modelli a tempo discreto dalla rappresentazione canonica locale: x i (t+ t) = x i (t) + f i (X(t)) t si passa per iterazione e somma alla forma globale: n 1 x i (t n ) = x i (t 0 ) + f i (X(t k )) t k =0 Le forme a tempo discreto sono la versione approssimata delle corrispondenti a tempo continuo Un introduzione all analisi dinamica dei sistemi 27 Esempio: gestione di un magazzino modellizzare la dinamica di un magazzino in termini di ordini dai clienti, scorte a magazzino, vendite estendere il modello precedente distinguendo tra vendite e consegne, ipotizzando un ritardo temporale tra l atto di vendita (cioè l uscita della merce dal magazzino) e la consegna estendere il modello precedente per introdurre il processo di riordino dai fornitori, formalizzato considerando un livello di scorte desiderate, un tasso di adeguamento (= in quante unità di tempo il livello di scorte deve essere ripristinato) e un tasso di consegna da parte dei fornitori (= in quante unità di tempo la merce ordinata deve essere consegnata) analizzare il sistema secondo questo modello e cercare di identificare le combinazioni critiche dei parametri, anche in funzione di vari pattern (costante, a gradino, costante su un intervallo, a rampa su un intervallo, ) di ordini dai clienti (per i più bravi) estendere ulteriormente il modello, per gestire in modo appropriato gli eventuali ordini inevasi Un introduzione all analisi dinamica dei sistemi 28