355 resultados para Ottimizzazione


Relevância:

20.00% 20.00%

Publicador:

Resumo:

L'obiettivo di questa tesi è la discretizzazione di superfici a forma libera in gruppi di triangoli uguali tra loro. L'applicazione alle coperture in vetro e acciaio comporta un vantaggio a livello economico, nel rispetto dei vincoli architettonici e delle prestazioni strutturali. L'algoritmo utilizzato prevede una serie di iterazioni volte a trovare la forma ottimale dei triangoli approssimanti, che in seguito vengono ruotati e traslati in modo da riprodurre la forma globale iniziale nella maniera più precisa possibile. L'analisi multi-obiettivo riguarda il numero di triangoli unici usati, la spaziatura tra i triangoli, il distacco dalla superficie di riferimento e la dimensione degli elementi che deve essere compatibile con la struttura di sostegno. Vengono riportati i risultati dell'applicazione del presente metodo alla copertura "La Vela" del complesso Mixed Use Via Larga, sito in Bologna.

Relevância:

20.00% 20.00%

Publicador:

Resumo:

La tesi tratta aspetti relativi all'ottimizzazione strutturale. Algoritmi di ottimizzazione scritti in linguaggio di programmazione Python, sia basati sul metodo del simplesso che di tipo gentico, sono stati integrati in ambiente Salome-Meca/CAE ed applicati ad esempi di interesse strutturale.

Relevância:

20.00% 20.00%

Publicador:

Resumo:

“Perdita di fase tra il gruppo riempimento polvere/cronoidi con LVDT ed il gruppo piattello durante la fase di arresto a causa della mancanza imprevista di corrente elettrica”. La perdita della fase tra differenti gruppi può avvenire per due ragioni: 1) a causa della cedevolezza di alcuni elementi della catena cinematica 2) per problemi relativi al software che comanda gli assi elettronici e che è responsabile del movimento coordinato dei vari gruppi. La prima ipotesi è molto improbabile in macchine come l’ADAPTA, dove non sono presenti elementi cinematici con elevata cedevolezza (come ad esempio delle cinghie) essendo i movimenti guidati da camme scanalate (che, contrariamente, sono molto rigide) e/o da camme elettriche (motori Brushless). Il secondo caso invece avviene ogni volta che viene a mancare la corrente elettrica in maniera accidentale (ad esempio a causa di un black-out). La mancanza di energia elettrica impedisce al computer a bordo macchina di continuare a monitorare e controllare il funzionamento dei vari assi elettronici della macchina, che sono comandati da motori brushless, che quindi continuano per inerzia il loro moto fino a fermarsi. Siccome ogni gruppo ha un’inerzia e una velocità/accelerazione istantanea diversa e variabile in funzione della posizione assunta all’interno del proprio ciclo nel momento della mancanza di corrente elettrica, i tempi di arresto risultano differenti, e questo causa la perdita di fase. I gruppi riempimento polvere/cronoidi e spingitori fondelli presentano interferenza meccanica col gruppo piattello per una certa durata del suo ciclo; in questa fase gli elementi entrano nelle boccole porta fondelli delle slitte mobili del piattello. È l’unico caso in tutta la macchina in cui parti meccaniche di gruppi diversi, vanno a “intersecare” i propri spostamenti. La progettazione di macchine che presentano interferenze di questo genere è generalmente sconsigliabile poiché si potrebbe presentare il rischio di uno scontro nel caso avvenga una perdita di fase tra i gruppi. Si sono cercate diverse soluzioni mirate a evitare un urto, derivato dall’interferenza meccanica, in caso di black-out oppure di ridurre il più possibile i danni che questa casualità può portare alla macchina. Il gruppo piattello è definito master rispetto a tutti gli altri gruppi; ha un’inerzia molto piccola e questo fa si che, in caso di black-out, il suo arresto avvenga praticamente istantaneamente, al contrario di ciò che avviene per tutti gli altri gruppi slave dotati di inerzia maggiore. Siccome l’arresto del piattello è istantaneo, il pericolo per tastatori e punzoni sollevatori di urto può avvenire solamente per compenetrazione: se gli elementi sono già all’interno della boccola, e restando fermo il piattello, l’inerzia del gruppo che fa proseguire il moto per alcuni istanti non farebbe altro che portarli fuori dalla boccola, non provocando alcun danno. Non vi è perciò il pericolo di “taglio” di questi elementi da parte del piattello. Perciò l’unica possibilità è che il black-out avvenga in un istante del ciclo dove gli elementi si stanno muovendo per entrare nelle boccole mentre anche il piattello è in rotazione.

Relevância:

20.00% 20.00%

Publicador:

Resumo:

Progetto di un aerogeneratore ad asse verticale in grado di erogare una potenza di circa 100 kW con un vento di 16 m/s con l’obiettivo fondamentale di risolvere i problemi di avviamento comuni per le turbine ad asse verticale (VAWT), che affliggono in particolare le turbine Darrieus. Inoltre la turbina eolica in questione non deve necessitare di fondazione nè di trasporti eccezionali per l’installazione, permettendo l’abbattimento dei costi iniziali. Le vele sono state sostituite da profili alari, in grado di generare non solo resistenza ma anche portanza.

Relevância:

20.00% 20.00%

Publicador:

Resumo:

Sviluppo di un aerogeneratore ad asse verticale a pale, che fornisca una potenza di 100 KW utilizzando un generatore senza interposizione di moltiplicatore di giri per la produzione di energia elettrica. Si vuole progettare una macchina che possa essere montata sul luogo di esercizio, avendo quindi tutta la componentistica trasportabile e senza richiedere l’uso di trasporti eccezionali per evitare di avere costi aggiuntivi che con semplici accorgimenti possono essere evitati. La macchina dovrà per quanto possibile evitare la presenza di fondamenta che incrementino i costi di realizzazione e pregiudichino il sito urbanizzandolo fortemente.

Relevância:

20.00% 20.00%

Publicador:

Resumo:

L’attuale condizione che caratterizza il settore energetico richiede un necessario processo di riconversione che, oltre a favorire il risparmio energetico, riduca la dipendenza dai combustibili fossili ed accresca l’impiego di fonti energetiche rinnovabili, dando un contributo fondamentale alla riduzione delle emissioni di gas serra come diversi accordi internazionali richiedono. Si rende pertanto necessario accelerare i processi che da alcuni anni stanno favorendo l’utilizzo di energia da fonti rinnovabili. Tra queste, le fonti legate ai processi di trattamento biologico dei reflui stanno avendo un interessante sviluppo. Esistono numerosi processi biologici che consentono la produzione di energia in maniera indiretta, quali ad esempio i processi di digestione anaerobica finalizzati alla produzione di biogas e/o produzione biologica di idrogeno. In tale contesto si inserisce la tecnologia delle Microbial Fuel Cell, che consente la produzione diretta di energia elettrica, finalizzata al recupero energetico inteso al miglioramento dell’efficienza energetica e alla riduzione dei costi d’esercizio di impianti di trattamento biologico dei reflui. Il presente lavoro di Tesi di Dottorato sperimentale, svoltosi in collaborazione al laboratorio PROT.-IDR. della sede ENEA di Bologna, riporta i risultati dell’attività di ricerca condotta su una MFC (Microbial Fuel Cell) a doppio stadio biologico per il trattamento di reflui ad elevato carico organico e produzione continua di energia elettrica. E’ stata provata l’applicabilità della MFC con entrambi i comparti biotici utilizzando elettrodi di grafite non trattata ottenendo, con un carico organico in ingresso di circa 9 gd-1, valori di potenza massima prodotta che si attestano su 74 mWm-2, corrente elettrica massima generata di 175 mAm-2 ad una tensione di 421 mV, ed una conversione di COD in elettricità pari a 1,2 gCODm-2d-1. I risultati sono stati molto positivi per quanto riguarda le prestazioni depurative ottenute dalla MFC. L’efficienza di depurazione misurata ha raggiunto un valore massimo del 98% di rimozione del COD in ingresso, mentre e la concentrazione di azoto ammoniacale nell’effluente raccolto all’uscita del sedimentatore è sempre stata inferiore a 1 mgN-NH4+l-1. Tra gli obiettivi posti all’inizio della sperimentazione si è rivelata di notevole interesse la valutazione del possibile utilizzo della MFC come sistema per il monitoraggio on-line del COD e degli acidi grassi volatili (VFA) prodotti all’interno di un digestore anaerobico, attraverso la definizione di una correlazione tra i dati elettrici registrati in continuo e le concentrazioni di CODanaer e VFA misurate in diversi periodi della sperimentazione. L’analisi DGGE della biomassa catodica ha fornito uno strumento analitico utile allo studio della diversità della comunità microbica sospesa ed adesa al catodo e ha confermato la forte similarità delle specie batteriche riconosciute nei campioni analizzati. In particolare, le bande di sequenziamento ottenute sono affiliate ai gruppi batterici Firmicutes, -Proteobacteria,  -Proteobacteria, -Proteobacteria e Bacteroidetes. Da quanto emerso dalla sperimentazione condotta si può pertanto concludere che ad oggi le MFC sono in fase di evoluzione rispetto ai primi prototipi utilizzati per lo studio delle comunità microbiali e per la comprensione dei meccanismi di trasferimento elettronico. Sfruttarne la potenza prodotta in maniera commerciale diviene una grande sfida per il futuro, ed è opinione comune che le prime applicazioni pratiche delle MFC saranno come fonte di recupero energetico per i dispositivi utilizzati per il monitoraggio dell’ambiente e per il trattamento delle acque reflue.

Relevância:

20.00% 20.00%

Publicador:

Resumo:

The aim of this Doctoral Thesis is to develop a genetic algorithm based optimization methods to find the best conceptual design architecture of an aero-piston-engine, for given design specifications. Nowadays, the conceptual design of turbine airplanes starts with the aircraft specifications, then the most suited turbofan or turbo propeller for the specific application is chosen. In the aeronautical piston engines field, which has been dormant for several decades, as interest shifted towards turboaircraft, new materials with increased performance and properties have opened new possibilities for development. Moreover, the engine’s modularity given by the cylinder unit, makes it possible to design a specific engine for a given application. In many real engineering problems the amount of design variables may be very high, characterized by several non-linearities needed to describe the behaviour of the phenomena. In this case the objective function has many local extremes, but the designer is usually interested in the global one. The stochastic and the evolutionary optimization techniques, such as the genetic algorithms method, may offer reliable solutions to the design problems, within acceptable computational time. The optimization algorithm developed here can be employed in the first phase of the preliminary project of an aeronautical piston engine design. It’s a mono-objective genetic algorithm, which, starting from the given design specifications, finds the engine propulsive system configuration which possesses minimum mass while satisfying the geometrical, structural and performance constraints. The algorithm reads the project specifications as input data, namely the maximum values of crankshaft and propeller shaft speed and the maximal pressure value in the combustion chamber. The design variables bounds, that describe the solution domain from the geometrical point of view, are introduced too. In the Matlab® Optimization environment the objective function to be minimized is defined as the sum of the masses of the engine propulsive components. Each individual that is generated by the genetic algorithm is the assembly of the flywheel, the vibration damper and so many pistons, connecting rods, cranks, as the number of the cylinders. The fitness is evaluated for each individual of the population, then the rules of the genetic operators are applied, such as reproduction, mutation, selection, crossover. In the reproduction step the elitist method is applied, in order to save the fittest individuals from a contingent mutation and recombination disruption, making it undamaged survive until the next generation. Finally, as the best individual is found, the optimal dimensions values of the components are saved to an Excel® file, in order to build a CAD-automatic-3D-model for each component of the propulsive system, having a direct pre-visualization of the final product, still in the engine’s preliminary project design phase. With the purpose of showing the performance of the algorithm and validating this optimization method, an actual engine is taken, as a case study: it’s the 1900 JTD Fiat Avio, 4 cylinders, 4T, Diesel. Many verifications are made on the mechanical components of the engine, in order to test their feasibility and to decide their survival through generations. A system of inequalities is used to describe the non-linear relations between the design variables, and is used for components checking for static and dynamic loads configurations. The design variables geometrical boundaries are taken from actual engines data and similar design cases. Among the many simulations run for algorithm testing, twelve of them have been chosen as representative of the distribution of the individuals. Then, as an example, for each simulation, the corresponding 3D models of the crankshaft and the connecting rod, have been automatically built. In spite of morphological differences among the component the mass is almost the same. The results show a significant mass reduction (almost 20% for the crankshaft) in comparison to the original configuration, and an acceptable robustness of the method have been shown. The algorithm here developed is shown to be a valid method for an aeronautical-piston-engine preliminary project design optimization. In particular the procedure is able to analyze quite a wide range of design solutions, rejecting the ones that cannot fulfill the feasibility design specifications. This optimization algorithm could increase the aeronautical-piston-engine development, speeding up the production rate and joining modern computation performances and technological awareness to the long lasting traditional design experiences.

Relevância:

20.00% 20.00%

Publicador:

Resumo:

I moderni sistemi embedded sono equipaggiati con risorse hardware che consentono l’esecuzione di applicazioni molto complesse come il decoding audio e video. La progettazione di simili sistemi deve soddisfare due esigenze opposte. Da un lato è necessario fornire un elevato potenziale computazionale, dall’altro bisogna rispettare dei vincoli stringenti riguardo il consumo di energia. Uno dei trend più diffusi per rispondere a queste esigenze opposte è quello di integrare su uno stesso chip un numero elevato di processori caratterizzati da un design semplificato e da bassi consumi. Tuttavia, per sfruttare effettivamente il potenziale computazionale offerto da una batteria di processoriè necessario rivisitare pesantemente le metodologie di sviluppo delle applicazioni. Con l’avvento dei sistemi multi-processore su singolo chip (MPSoC) il parallel programming si è diffuso largamente anche in ambito embedded. Tuttavia, i progressi nel campo della programmazione parallela non hanno mantenuto il passo con la capacità di integrare hardware parallelo su un singolo chip. Oltre all’introduzione di multipli processori, la necessità di ridurre i consumi degli MPSoC comporta altre soluzioni architetturali che hanno l’effetto diretto di complicare lo sviluppo delle applicazioni. Il design del sottosistema di memoria, in particolare, è un problema critico. Integrare sul chip dei banchi di memoria consente dei tempi d’accesso molto brevi e dei consumi molto contenuti. Sfortunatamente, la quantità di memoria on-chip che può essere integrata in un MPSoC è molto limitata. Per questo motivo è necessario aggiungere dei banchi di memoria off-chip, che hanno una capacità molto maggiore, come maggiori sono i consumi e i tempi d’accesso. La maggior parte degli MPSoC attualmente in commercio destina una parte del budget di area all’implementazione di memorie cache e/o scratchpad. Le scratchpad (SPM) sono spesso preferite alle cache nei sistemi MPSoC embedded, per motivi di maggiore predicibilità, minore occupazione d’area e – soprattutto – minori consumi. Per contro, mentre l’uso delle cache è completamente trasparente al programmatore, le SPM devono essere esplicitamente gestite dall’applicazione. Esporre l’organizzazione della gerarchia di memoria ll’applicazione consente di sfruttarne in maniera efficiente i vantaggi (ridotti tempi d’accesso e consumi). Per contro, per ottenere questi benefici è necessario scrivere le applicazioni in maniera tale che i dati vengano partizionati e allocati sulle varie memorie in maniera opportuna. L’onere di questo compito complesso ricade ovviamente sul programmatore. Questo scenario descrive bene l’esigenza di modelli di programmazione e strumenti di supporto che semplifichino lo sviluppo di applicazioni parallele. In questa tesi viene presentato un framework per lo sviluppo di software per MPSoC embedded basato su OpenMP. OpenMP è uno standard di fatto per la programmazione di multiprocessori con memoria shared, caratterizzato da un semplice approccio alla parallelizzazione tramite annotazioni (direttive per il compilatore). La sua interfaccia di programmazione consente di esprimere in maniera naturale e molto efficiente il parallelismo a livello di loop, molto diffuso tra le applicazioni embedded di tipo signal processing e multimedia. OpenMP costituisce un ottimo punto di partenza per la definizione di un modello di programmazione per MPSoC, soprattutto per la sua semplicità d’uso. D’altra parte, per sfruttare in maniera efficiente il potenziale computazionale di un MPSoC è necessario rivisitare profondamente l’implementazione del supporto OpenMP sia nel compilatore che nell’ambiente di supporto a runtime. Tutti i costrutti per gestire il parallelismo, la suddivisione del lavoro e la sincronizzazione inter-processore comportano un costo in termini di overhead che deve essere minimizzato per non comprometterre i vantaggi della parallelizzazione. Questo può essere ottenuto soltanto tramite una accurata analisi delle caratteristiche hardware e l’individuazione dei potenziali colli di bottiglia nell’architettura. Una implementazione del task management, della sincronizzazione a barriera e della condivisione dei dati che sfrutti efficientemente le risorse hardware consente di ottenere elevate performance e scalabilità. La condivisione dei dati, nel modello OpenMP, merita particolare attenzione. In un modello a memoria condivisa le strutture dati (array, matrici) accedute dal programma sono fisicamente allocate su una unica risorsa di memoria raggiungibile da tutti i processori. Al crescere del numero di processori in un sistema, l’accesso concorrente ad una singola risorsa di memoria costituisce un evidente collo di bottiglia. Per alleviare la pressione sulle memorie e sul sistema di connessione vengono da noi studiate e proposte delle tecniche di partizionamento delle strutture dati. Queste tecniche richiedono che una singola entità di tipo array venga trattata nel programma come l’insieme di tanti sotto-array, ciascuno dei quali può essere fisicamente allocato su una risorsa di memoria differente. Dal punto di vista del programma, indirizzare un array partizionato richiede che ad ogni accesso vengano eseguite delle istruzioni per ri-calcolare l’indirizzo fisico di destinazione. Questo è chiaramente un compito lungo, complesso e soggetto ad errori. Per questo motivo, le nostre tecniche di partizionamento sono state integrate nella l’interfaccia di programmazione di OpenMP, che è stata significativamente estesa. Specificamente, delle nuove direttive e clausole consentono al programmatore di annotare i dati di tipo array che si vuole partizionare e allocare in maniera distribuita sulla gerarchia di memoria. Sono stati inoltre sviluppati degli strumenti di supporto che consentono di raccogliere informazioni di profiling sul pattern di accesso agli array. Queste informazioni vengono sfruttate dal nostro compilatore per allocare le partizioni sulle varie risorse di memoria rispettando una relazione di affinità tra il task e i dati. Più precisamente, i passi di allocazione nel nostro compilatore assegnano una determinata partizione alla memoria scratchpad locale al processore che ospita il task che effettua il numero maggiore di accessi alla stessa.