Tullio Facchinetti

Interfacciamento client-server con il simulatore di propagazione del calore Energy2D

by Nicolò Fasulo

Categories: article thesis lang_it article_it


Energy2D (E2D) è un simulatore di propagazione del calore sviluppato dal Dr. Charles Xie, fisico presso il Concord Consortium. E2D è scritto in linguaggio Java ed è completamente open-source. I modelli per le simulazioni sono salvati in file con formato e2d, basato su formato XML, e permettono di simulare il comportamento di entità quali:

Inoltre, è possibile simulare il trascorrere del tempo, il ciclo giorno/notte e l’irraggiamento del sole relativamente alla sua posizione durante la giornata.

Esempio di modello di un edificio rappresentato in Energy2D.

Obiettivi

L’obiettivo della tesi consiste nel creare un modello in E2D che permetta di simulare la distribuzione del calore in un edificio. Inoltre, si desidera estendere il simulatore dotandolo di una interfaccia client-server che permetta, tramite il client, di eseguire la simulazione, raccoglierne i risultati e visualizzarli.

Il modello

Modello utilizzato di abitazione utilizzato nella simulazione.

Il modello di edificio utilizzato nella simulazione rappresenta un condominio di quattro piani, con quattro appartamenti per piano. Le dimensioni degli appartamenti sono di circa 8 m di larghezza e 4.5 m di altezza. All’interno di ciascun appartamento si trova una sorgente di calore che modellizza l’insieme delle tecnologie utilizzate per riscaldare le singole stanze, ad esempio i termosifoni, ed un termometro per la misurazione della temperatura interna.

Per semplicità sono stati utilizzati solo tre materiali, con le seguenti caratteristiche:

La densità di potenza delle sorgenti di calore è 150 W/m^3.

Il server

Il server è stato realizzato innestando il codice di interfacciamento all’interno del simulatore E2D esistente. Il codice è scritto scritto in Java, dal momento che Energy2D è stato implementato in Java. Per la comunicazione viene utilizzato il protocollo UDP. Il ruolo del server è quello di ricevere i comandi da eseguire, sotto forma di messaggi testuali, e restituirne l’esito al client. A questo scopo è stato utilizzato il pattern Command della GoF: il server riceve la stringa contenente il comando e la passa alla classe Processor, che riconosce il comando da eseguire con gli eventuali argomenti, mentre tramite la classe Executor vengono effettivamente eseguite le operazioni corrispondenti ai diversi comandi (che devono obbligatoriamente implementare l’interfaccia ICommand).

Il pattern Command utilizzato per l'implementazione della funzionalità client-server.

Il client

Il client è stato implementato in linguaggio Python e permette di effettuare una simulazione della programmazione settimanale del riscaldamento dei diversi appartamenti. La programmazione della temperatura viene configurata tramite un file in formato JSON con il seguente formato:

json1 json2

All’interno del file, è presente un campo THERMOMETER_X per ciascun appartamento (es: THERMOMETER23 rappresenta il terzo appartamento da sinistra del secondo piano). E’ possibile impostare la deadband del termostato e la temperatura desiderata in gradi Celsius. La programmazione settimanale è costituita da un dizionario con 7 chiavi (da 0 a 6, corrispondenti ai giorni della settimana), i cui valori sono anch’essi dizionari con 24 chiavi ciascuno (da 0 a 23), il cui valore corrisponde alla temperatura desiderata a quell’ora del giorno.

Il client è composto da tre diversi script:

Grafici che rappresentano gli andamenti delle temperature all'interno delle diverse stanze dell'edificio simulato.

Conclusioni

In questo progetto è stato ottenuto uno strumento semplice e personalizzabile per la valutazione dell’efficienza energetica di un edificio. Inoltre, grazie all’utilizzo del pattern Command è possibile implementare nuovi comandi con facilità per estendere le funzionalità del simulatore a seconda delle necessità.


Highlights

  • Students and theses
  • Publications
  • Thesis topics
  • Curated awesome list of CLI apps
  • Last updates (English)

  • Speed up the compilation of LaTex Beamer presentations ()
  • Students and theses ()
  • Students and theses - English ()
  • Learn enough C to survive ()
  • Workflow for writing theses collaboratively ()
  • Guidelines for theses and presentations ()
  • Projects ()
  • Last updates (Italian)

  • Risultati FdI 20 Febbraio 2024 ()
  • Risultati FdI 02 Febbraio 2024 ()
  • Risultati FdI 20-27 Novembre 2023 ()
  • Risultati FdI 28 Settembre 2023 ()
  • Risultati FdI 01 Settembre 2023 ()
  • Risultati FdI 27 Luglio 2023 ()
  • Risultati FdI 28 June 2023 ()
  • List of categories

    Article Article_en Article_it C Courses Fdi Lang_en Lang_it Latex Programming Project Research Results Robotics Software Teaching Thesis Tips