Traduzione ed ottimizzazione da Matlab a Python di un codice 1D per la descrizione del processo di micronizzazione di polveri farmaceutiche
Creators: name: Erillo, Federico
Publisher: name: Scuola Universitaria della Svizzera Italiana (SUPSI)
Year: 2024
Subjects: Spiral Jet Milling
fluid
Python

description: Questo documento si concentra sulla traduzione e sull'ottimizzazione di un modello numerico per la simulazione dello Spiral Jet Milling, un processo industriale utilizzato per la riduzione della dimensione delle particelle tramite scontri tra le particelle stesse causati da un fluido ad alta velocità. Il lavoro si è concentrato sulla traduzione di un codice MATLAB realizzato da Sabia et al. [1], che implementa un bilancio di popolazione con il metodo a volumi finiti, nel linguaggio di programmazione Python. Nel passaggio, il codice originale è stato rivisitato e ottimizzato con una struttura più efficiente e flessibile. Proprio sulla base della nuova struttura è stato anche possibile implementare un’interfaccia grafica (GUI), la quale ha costituito una sezione significativa del progetto. Questa GUI è stata progettata per facilitare l'interazione con il modello, permettendo agli utenti di impostare facilmente i parametri del processo e di visualizzare i risultati della simulazione in modo intuitivo e immediato. Parallelamente allo sviluppo del codice e della GUI, è stata condotta una revisione critica della letteratura esistente per identificare nuove equazioni che gestiscono la rottura delle particelle, in modo da poterle integrare nel modello di simulazione attraverso il kernel di rottura. L'obiettivo era quello di migliorare le capacità del modello e di ridurre la sua dipendenza da costose campagne titolo documento 2/3 sperimentali, in modo da riuscire a rappresentare con precisione una vasta gamma di condizioni operative e composti. I risultati ottenuti mostrano come il codice tradotto riesca sia a riprodurre fedelmente quanto ottenuto dal codice Matlab precedentemente usato, sia a portare vantaggi prestazionali dal punto di vista dei tempi computazionali e della flessibilità del codice. Inoltre, l’interfaccia ha reso il suo utilizzo semplice ed intuitivo, permettendo di eseguire simulazioni anche a utenti non esperti del settore. L’ottimizzazione ha permesso di trovare nuovi modelli più teoricamente solidi, i quali mantengono l’accuratezza del codice Matlab ma riducono i parametri sperimentali utilizzati, pur non rimuovendoli del tutto. In conclusione, il nuovo codice Python e la relativa interfaccia grafica, offrono una piattaforma potente e versatile per la simulazione dello Spiral Jet Milling. Questo strumento non solo semplifica l'analisi e la previsione del comportamento delle particelle durante il processo di frantumazione, ma apre anche nuove opportunità per la ricerca e l'ottimizzazione di processi industriali complessi. ___ This document focuses on the translation and optimization of a numerical model for the simulation of Spiral Jet Milling, an industrial process used to reduce particle size through collisions between particles caused by a high-velocity fluid. The work centered on translating a MATLAB code developed by Sabia et al. [1], which implements a population balance using the finite volume method, into the Python programming language. During this transition, the original code was revisited and optimized with a more efficient and flexible structure. Based on this new structure, it was also possible to implement a graphical user interface (GUI), which constituted a significant part of the project. This GUI was designed to facilitate interaction with the model, allowing users to easily set process parameters and intuitively and immediately visualize simulation results. Parallel to the development of the code and GUI, a critical review of the existing literature was conducted to identify new equations that manage particle breakage, so they could be integrated into the simulation model through the breakage kernel. The goal was to enhance the model's capabilities and reduce its dependence on costly experimental campaigns, allowing it to accurately represent a wide range of operating conditions and compounds. The results obtained show that the translated code not only faithfully reproduces the outcomes achieved by the previously used MATLAB code but also offers performance advantages in terms of computational time and code flexibility. Furthermore, the interface has made its use simple and intuitive, enabling simulations even for users who are not experts in the field. The optimization has led to the discovery of new, more theoretically sound models that maintain the accuracy of the MATLAB code while reducing the experimental parameters used, though not eliminating them entirely. In conclusion, the new Python code and its corresponding graphical interface offer a powerful and versatile platform for Spiral Jet Milling simulation. This tool not only simplifies the analysis and prediction of particle behaviour during the milling process but also opens up new opportunities for research and optimization of complex industrial processes.