creazione di sistema di controllo forni - germinario guglielminotti

Upload: fruccolo

Post on 09-Oct-2015

18 views

Category:

Documents


0 download

DESCRIPTION

Testi su creazione di sistema di controllo forni

TRANSCRIPT

  • Politecnico di Torino

    III Facolt di Ingegneria

    CORSO DI LAUREA IN

    INGEGNERIA ELETTRONICA

    Monografia

    Progettazione, realizzazione e analisi di circuiti elettronici

    specifici per il controllo di temperatura nella metrologia

    termica primaria

    Relatore:

    Prof. Ing. Pierluigi Civera

    Correlatore:

    Dott. Andrea Merlone

    ANNO ACCADEMICO 2010 2011

    Candidati:

    Andrea Germinario

    Giulio Guglielminotti

  • 2

    Indice

    Introduzione................................................................................................................................... 3

    Capitolo 1 Contesto di partenza ............................................................................................. 4

    1.1 La temperatura termodinamica ....................................................................................... 4

    1.2 INRiM ................................................................................................................................... 5

    1.3 Il sistema di controllo Euroterm ....................................................................................... 7

    1.4 I vantaggi di un controllore dedicato ............................................................................... 8

    Capitolo 2 Acquisizione dati .................................................................................................... 9

    2.1 Introduzione al problema .................................................................................................. 9

    2.2 Scelta dei componenti ...................................................................................................... 9

    2.3 Realizzazione dei circuiti ................................................................................................ 13

    Sezione 1 - Microcontrollore Atmega32 ......................................................................... 14

    Sezione 2 ADC ................................................................................................................ 15

    2.4 Firmware ATMEGA32 ADC ........................................................................................... 16

    Capitolo 3 Controllo ................................................................................................................ 23

    3.1 Introduzione al problema ................................................................................................ 23

    3.2 Scelta dei componenti .................................................................................................... 23

    3.3 Realizzazione dei circuiti ................................................................................................ 24

    3.4 Firmware ATMEGA32 di Controllo ............................................................................... 25

    Capitolo 4 Chiusura anello di controllo ................................................................................ 27

    4.1 Software di controllo su PC ........................................................................................ 27

    Capitolo 5 Conclusioni ........................................................................................................... 33

    5.1 Collaudo del sistema ....................................................................................................... 33

    5.2 Problemi riscontrati .......................................................................................................... 37

    5.3 Possibilit di sviluppo e migliorie .................................................................................. 37

    Bibliografia ................................................................................................................................... 38

    Sitografia ...................................................................................................................................... 38

  • 3

    Introduzione La temperatura, una delle sette grandezze fondamentali del Sistema Internazionale, ricopre un

    ruolo fondamentale in tutte le funzioni, i cicli, i processi e le applicazioni del quotidiano vivere.

    In ambito scientifico poi, riveste un ruolo fondamentale data la stretta dipendenza che intercorre

    fra variazioni di temperatura e perturbazione dei sistemi in esame.

    Il riferimento primario di temperatura in Italia conservato e mantenuto dalla Divisione

    Termodinamica dellIstituto Nazionale di Ricerca Metrologica (I.N.Ri.M.). Il presente lavoro il

    sunto dellesperienza di tirocinio svoltasi presso il laboratorio di termometria per contatto della

    Divisione.

    Data la necessit di operare una regolazione di temperatura strettamente mirata alle esigenze

    proprie dei processi attuati nel contesto delle medie temperature, lo staff di ricercatori di tale

    laboratorio, impegnato, fra le altre attivit, nella progettazione di un regolatore embedded di

    temperatura per sensori a termocoppia.

    Questo tipo di controllore finalizzato al mantenere costante la temperatura allinterno di forni

    che ospitano metalli in stato di transizione costituenti i punti fissi della scala di temperatura.

    Lattivit di progetto stata incentrata su due sezioni dellimpianto. La prima ha portato alla

    realizzazione di un sistema di interfacciamento tra il segnale analogico, gi amplificato, della

    termocoppia e il computer. La seconda consistita nel realizzare un sistema di controllo dei

    forni interfacciando i segnali digitali forniti dal software di gestione, con componenti di potenza

    in grado di pilotare tale tipo di carico. Da precisare il fatto che in questo lavoro di tirocinio non

    ci si occupati della parte di amplificazione del segnale da termocoppia, gi realizzata in

    precedenza da un altro studente tirocinante. Viene di seguito riportato lo schema di

    funzionamento dellimpianto:

  • 4

    Capitolo 1 Contesto di partenza

    1.1 La temperatura termodinamica

    La temperatura un indice dellagitazione termica media delle particelle che costituiscono la

    materia; in definitiva possiamo dire che la temperatura di un corpo lenergia cinetica delle sue

    molecole. Questa definita attraverso il grado Celsius o il kelvin. Il kelvin (K) la frazione

    1/273,16 della temperatura termodinamica del punto triplo dellacqua [1].

    Il punto triplo dellacqua corrisponde allunico stato termodinamico in cui le fasi liquida, solida

    e gassosa sono in equilibrio fra loro. Fintanto che le tre fasi coesistono, la temperatura e la

    pressione rimangono costanti e sono indipendenti dalla quantit delle singole fasi.

    Il punto triplo dellacqua e lo zero assoluto risultante dalla legge naturale definiscono la scala

    termodinamica della temperatura (ITS-90) come linsieme dei punti fissi di transizione di fase

    solido-liquido, o viceversa, di elementi puri, a temperature diverse.

    E facile rendersi conto che lunicit della scala di temperatura un requisito fondamentale per

    gli scambi di carattere scientifico, tecnico e commerciale.

    La definizione della temperatura termodinamica, basata sul teorema di Carnot e sulle leggi dei

    gas perfetti, offre al metrologo la possibilit di definire lunit di temperatura indipendentemente

    da qualsiasi sostanza, a condizione che si stabilisca il valore della temperatura da attribuire ad

    uno stato termico di riferimento.

    Nel 1954 la X CGPM decise di scegliere il punto triplo dellacqua come stato termico di

    riferimento e di attribuirgli la temperatura di 273,16 K. La XIII CGPM nel 1967 adott quindi la

    seguente definizione:

    Il kelvin, unit di temperatura termodinamica, la frazione 1/273,16 della temperatura

    termodinamica del punto triplo dellacqua.

    Figura 1 Cella punto triplo dellacqua

    Il punto triplo dellacqua si ottiene in celle di borosilicato (Pyrex) sigillate, contenenti acqua di

    elevata purezza e composizione isotopica nota (Figura 1). La riproducibilit del punto triplo

    dellacqua dellordine di 0,03 mK.

  • 5

    La temperatura termodinamica, oltre che in kelvin (simbolo K), pu essere espressa anche

    ricorrendo allunit grado Celsius (simbolo C). La relazione tra la temperatura espressa in gradi

    Celsius (simbolo t) e la temperatura espressa in kelvin (simbolo T) :

    t / C = T / K 273,15.

    Da questa relazione discende che la temperatura in gradi Celsius del punto triplo dellacqua

    0,01 C. Si noti infine che il valore del kelvin e del grado Celsius sono uguali. La scelta di

    termometri termodinamici obbligatoria per principio ma scomoda nella pratica. Essi sono

    innanzitutto molto complessi. Questo fa s che pochi laboratori ne possono disporre. In secondo

    luogo, la loro accuratezza e riproducibilit inferiore a quelle di alcuni termometri pratici.

    1.2 INRiM

    LIstituto Nazionale di Ricerca Metrologica (I.N.Ri.M.) un ente pubblico nazionale, afferente

    al Ministero dellUniversit e della Ricerca, con il compito di svolgere e promuovere attivit di

    ricerca scientifica nei campi della metrologia, composto di quattro divisioni: Termodinamica,

    Elettromagnetismo, Meccanica e Ottica.

    LIstituto svolge attivit di ricerca, di valorizzazione e trasferimento tecnologico e di formazione

    nei seguenti settori scientifici e relativamente alle seguenti tematiche:

    Metrologia scientifica (costanti fondamentali e campioni di misura inclusi alcuni

    materiali di riferimento).

    Metrologia industriale, incluso il supporto alla metrologia legale.

    Lattivit in Termometria si inquadra nel contesto internazionale che ha come suo punto di

    riferimento il CCT (Comit Consultatif de Thermomtrie) del CIPM.

    I campi di attivit della divisione sono le misure di temperatura ed umidit, di propriet termiche

    e termodinamiche dei materiali, di grandezze dipendenti dalla temperatura, e le misure termiche

    in generale. La divisione sviluppa e mantiene, attraverso la realizzazione della Scala di

    Temperatura Internazionale del 1990 (STI-90), il campione nazionale di temperatura.

    La divisione svolge anche unattivit costante di ricerca su nuovi sensori e nuovi metodi di

    misura, finalizzata sia alle misure di precisione sia alle misure di immediato interesse

    applicativo.

    Lattivit della divisione ha tradizionalmente una forte connotazione internazionale che si

    manifesta, oltre che nella partecipazione alle attivit riguardanti la metrologia internazionale

    (confronti chiave e confronti su base volontaria, progetti di ricerca in ambito EURAMET,

    partecipazioni a gruppi di lavoro e commissioni) anche attraverso la partecipazione a progetti di

    ricerca europei ed internazionali. La divisione anche impegnata in contratti di ricerca e di

    consulenza con varie istituzioni scientifiche, ed in particolare con istituti metrologici ed

    organizzazioni internazionali stranieri, per la fornitura di apparecchiature e di tecniche di misura.

    Le attivit svolte dal gruppo di ricerca di termometria per contatto, sono riassumibili in:

    Sviluppo, mantenimento e miglioramento del campione nazionale di temperatura tra -

    190C e 962C.

    Sviluppo di punti fissi secondari.

  • 6

    Sviluppo di tubi di calore a controllo di pressione per la realizzazione di scale di tensione

    di vapore.

    I punti fissi stabiliscono dei riferimenti discreti lungo la scala e non sono facilmente trasferibili

    ai campioni di lavoro, e cio ai termometri di vario genere utilizzati nella ricerca, nella tecnica e

    nelle applicazioni e misure.

    E pertanto necessario realizzare i termometri interpolatori (termometri campione) come il

    termometro a resistenza di platino (tra 24,6 K e 1235 K) ed il termometro a radiazione (tra

    1235 K e 2500 K) con cui si possono misurare con continuit temperature in tutta la scala.

    Le celle dei punti fissi (Figura 2) sono dei contenitori in vetro riempiti di sostanza caratteristica

    prevista dalla STI-90, dotati di una cavit centrale, denominata pozzetto di misura. Tali celle

    sono poste in forni dedicati, adeguatamente isolati dallambiente esterno sia per facilitare il

    controllo della temperatura che per motivi di sicurezza.

    Figura 2 Cella del punto fisso sollevata dal forno e struttura esterna del forno

    La potenza fornita dellordine di qualche centinaio di watt totali e varia in funzione della

    temperatura di esercizio impostata. Alcune celle prevedono un circuito dedicato per il controllo

    di pressione.

    Una regolazione manuale della potenza pu mostrarsi particolarmente inadeguata al fine di

    stabilizzare la temperatura interna delle celle. Per tale motivo lalimentazione dei forni regolata

    attraverso un controllore commerciale di marca EUROTERM, collegato alla rete elettrica, in

    modo da poter dosare la potenza dissipata dal forno e trasferita alle celle dei punti fissi.

  • 7

    1.3 Il sistema di controllo Euroterm

    Il controllore pu essere programmato in modo da scegliere tra due diversi algoritmi di

    regolazione: la regolazione on / off o la regolazione PID (Proporzionale Integrativa Derivativa).

    Nel primo caso il controllore disattiva semplicemente lalimentazione quando la temperatura

    superiore alla soglia impostata e la attiva quando inferiore. Questo metodo per non tiene

    conto delle inerzie e delle costanti di tempo del sistema fisico e ci si traduce in delle

    oscillazioni di qualche decina di gradi Celsius. E per questo motivo che risulta pi appropriato

    utilizzare la regolazione PID: essa infatti tiene conto non solo del valore in uscita al trasduttore

    (contributo proporzionale), ma anche della sua storia passata (contributo integrativo) e del suo

    presumibile comportamento futuro (contributo derivativo). Il controllore rileva la temperatura

    impostata dal forno alla cella, attraverso il segnale, opportunamente amplificato, proveniente da

    una termocoppia. La temperatura di esercizio, viene inizialmente impostata a qualche grado

    sopra la temperatura di liquefazione dellelemento contenuto allinterno della cella. Raggiunto lo

    stato liquido dellelemento, la temperatura di esercizio ridotta in prossimit del valore di

    solidificazione. A questo punto, attraverso opportune tecniche, prodotta una nucleazione

    controllata, ovvero si induce la solidificazione dellelemento contenuto nella cella del punto

    fisso, a partire dal pozzetto di misura. Attraverso le operazioni appena descritte si raggiunge la

    situazione di coesistenza solido-liquido, denominata plateau, nella quale la temperatura del

    punto fisso stabile e fissa con riproducibilit dellordine del centimillesimo di k.

    In tale fase possibile effettuare la taratura dei termometri campione.

    La durata del plateau dipende, sostanzialmente, dalla banda di regolazione intorno alla

    temperatura di esercizio della cella, caratteristica del controllore. Se la banda di regolazione

    risulta eccessivamente dispersa intorno alla temperatura del plateau della cella, tale fase avr una

    durata inesorabilmente ridotta.

    Lattuale sistema consente regolazioni intorno al grado k, rispetto al valore di set-point

    impostato sul controllore.

    Il problema fondamentale riscontrato nel sistema, risiede proprio nel regolatore. Essendo, infatti,

    questultimo di tipo commerciale non consente regolazioni dedicate al processo in esame. Il

    controllo parziale delle operazioni svolte dal controllore EUROTERM, rende incomprensibili

    comportamenti anomali del processo. Ci ha prodotto nel passato guasti dei forni e, in un caso,

    la distruzione delle celle dei punti fissi. Inoltre, lelettronica utilizzata per il condizionamento del

    segnale proveniente da termocoppia, risulta obsoleta e di difficile manutenzione, data la difficile

    reperibilit di componentistica ormai fuori produzione.

  • 8

    1.4 I vantaggi di un controllore dedicato

    Un tipo di controllore dedicato porterebbe alleliminazione dei principali problemi riscontrati

    nellutilizzo di controllori commerciali: si potrebbe disporre infatti una regolazione ad hoc, di

    cui si conosce la logica di funzionamento sia a livello hardware che software, pi semplice della

    PID, ma altrettanto efficace, la cui descrizione dettagliata verr affrontata in seguito. Si

    otterrebbe inoltre un sistema molto pi flessibile rispetto a quello attuale: in caso di sostituzione

    dei singoli riscaldatori, degli interi forni o delle termocoppie, sarebbe sufficiente agire, in

    maniera peraltro non troppo invasiva, sul codice del software di gestione e sul firmware dei

    microcontrollori per adeguarsi al nuovo componente, soluzione assolutamente non pensabile sul

    sistema EUROTERM. Anche dal punto di vista dimensionale, si giungerebbe a un gruppo

    controllore molto pi compatto rispetto allattuale, in quanto i componenti impiegati

    consisterebbero in un PC collegato ad alcune parti elettroniche di dimensioni pi compatte.

    Infine, misure utili al controllo, parametri di controllo, tempi di alimentazione, potrebbero essere

    cos registrati e visualizzati su PC, facilitando analisi e migliorie di rampe e stabilit di controllo.

  • 9

    Capitolo 2 Acquisizione dati

    2.1 Introduzione al problema

    Il primo problema da risolvere consiste nella realizzazione di uninterfaccia analogico-digitale

    che permetta lacquisizione su PC delle informazioni provenienti dalle termocoppie poste

    allinterno dei forni. Come gi detto nel capitolo introduttivo, lo stadio dellamplificazione dei

    segnali puri in uscita dalle termocoppie, nellordine delle centinaia di microvolt, era gi stato

    trattato da un altro studente tirocinante. I segnali forniti in uscita dallamplificatore sono disposti

    allinterno di un intervallo di 0V, +5V. Ci si trova dunque ad affrontare il problema della

    conversione in digitale dei segnali amplificati e del loro indirizzamento al computer. Ci che

    prevede questa prima parte di progetto la realizzazione di due circuiti PCB (Printed Circuit

    Board) ospitanti rispettivamente microcontrollore e convertitore A/D (Analog to Digital), e la

    programmazione del microcontrollore al fine di permettere una lettura su richiesta dellutente, la

    conseguente esecuzione della conversione e linvio dei dati via seriale o USB.

    2.2 Scelta dei componenti Per quanto riguarda il microcontrollore si scelto un ATMEGA 32 (Figura 3), in quanto era gi

    stato utilizzato dagli scriventi nellambito di un precedente progetto e si disponeva quindi delle

    conoscenze necessarie alla programmazione del firmware.

    La scelta del convertitore A/D non stata altrettanto semplice, in quanto esso doveva presentare

    particolari caratteristiche tecniche.

    Loperazione di conversione analogico-digitale produce infatti il cosiddetto rumore di

    quantizzazione. Lingresso del convertitore A/D costituito da un segnale continuo con un

    numero di possibili stati infinito, mentre luscita digitale una funzione discreta in cui il numero

    di stati determinato dalla risoluzione del convertitore (LSB Last Significant Bit). La

    Figura 3 Atmega 32

  • 10

    conversione da analogico a digitale comporta quindi una perdita dinformazione e lintroduzione

    di distorsione sul segnale. Lampiezza di questo errore casuale e ha un valore massimo di 1/2

    LSB, dove

    , con VFS e N, rispettivamente, il valore di fondo scala e il numero di bit

    dellADC.

    Il campo di temperatura in cui dovrebbe teoricamente operare il controllore varia in relazione al

    punto fisso cui si intende associare il sistema, in un intervallo di almeno 50 k attorno alla

    temperatura dello stesso punto fisso, fino a circa 1000 C . Per ottenere risoluzioni di lettura

    della temperatura inferiori a 0,05 K (corrispondente a 250 V nellipotesi di una amplificazione

    in tensione di 500):

    L ADC da usare dovr avere un numero di bit superiore 14,28. Prevedendo un numero inferiore

    di bit effettivamente utilizzabili per la misurazione inviati dal dispositivo, la scelta ricaduta su

    un ADC a 24 bit.

    Eseguendo una ricerca tra vari fornitori, ci si imbattuti in un convertitore sigma-delta a 24 bit,

    dotato di amplificatore differenziale ultra-low noise (12 nV/Hz in tensione e 0,4 pA/Hz in

    corrente, alla frequenza di 0,1 Hz), specificatamente indicato per applicazioni industriali su

    segnali a bassa frequenza. In genere i convertitori trovati, aventi la risoluzione cercata, erano

    specifici per applicazioni audio a frequenze medio-alte. In particolare lintegrato presenta una

    reiezione di rumore di alimentazione intorno ai 115 dB, un errore di linearit dello 0,0015%

    della tensione di riferimento (a fondo scala), una risoluzione libera da rumore variabile da 13 a

    19 bit a seconda del word-rate selezionato e un drift di 10 nV/C. La casa produttrice la Cirrus

    Logic e il modello in questione il CS5530 (Figura 4) .

    Analizzando nel dettaglio le componenti interne del convertitore, si individuano quelli che sono i

    principali attori della conversione. Il convertitore sigma-delta un dispositivo non lineare

    utilizzato per effettuare conversioni analogico-digitale con alta risoluzione ed elevato rapporto

    Figura 4 CS5530 ADC

  • 11

    segnale/rumore. Questo convertitore composto, fondamentalmente, da un modulatore e un

    filtro in cascata.

    Il modulatore il cuore di un convertitore sigma-delta e ha il compito di realizzare le tecniche di

    oversampling e di noise shaping al fine di raggiungere le prestazioni desiderate. Loversampling

    consiste nellaumentare la frequenza di campionamento al di sopra del limite di Nyquist,

    corrispondente a due volte la banda del segnale. Questo accorgimento avr un effetto positivo

    sul processo di conversione. Infatti esso consente di distribuire la potenza dovuta al rumore di

    quantizzazione su tutta la banda delle frequenze, riducendola nella frequenza specifica del

    segnale analogico preso in considerazione. Il noise shaping consiste invece nel modellare

    mediante filtraggio lo spettro di densit di potenza del rumore di quantizzazione riducendone

    lentit in banda base e cercando di concentrarlo alle alte frequenze, sempre allo scopo di

    abbassarne il livello in corrispondenza delle frequenze significative del segnale.

    Il filtro passa basso posto in uscita al modulatore ha infine il compito di isolare la banda base del

    segnale, eliminando i contributi a frequenze pi alte, e ha il compito di riportare la frequenza di

    campionamento al limite di Nyquist.

    Per quanto riguarda il riferimento di tensione necessario allADC per effettuare la conversione,

    si scelto lintegrato MAX6250 (Figura 5).

    Laccuratezza di un ADC dipende molto dallaccuratezza del riferimento di tensione usato in

    quanto da esso si ricava il valore della conversione. Inoltre, avendo usato un convertitore ad alta

    risoluzione da 24 bit, lerrore di quantizzazione molto piccolo (pari a 0,15 V ) e quindi la

    fonte di maggiore rumore risulta essere quella del riferimento di tensione. Si tratta di un

    riferimento in tensione di estrema precisione, a basso rumore, con coefficiente di temperatura di

    1 ppm/C e accuratezza iniziale di . Tale integrato espressamente studiato, date le

    caratteristiche elettriche di interfacciamento, per sistemi di acquisizione a pi di 16 bit. Il

    riferimento di tensione fornito di 5,000 V. Nella banda 0,1-10 Hz il rumore caratteristico

    dellintegrato di 1,5 Vpp, la stabilit del riferimento di 20 ppm/1000 ore, per qualsiasi tipo

    di carico capacitivo.

    Figura 5 MAX6250

  • 12

    Per l interfacciamento con la porta seriale, non essendoci richieste particolati riguardanti le

    caratteristiche di questo integrato, si potuto scegliere il convertitore USART-RS-232 MAX

    232 gi disponibile presso il nostro laboratorio (Figura 6).

    Figura 6 MAX232

  • 13

    2.3 Realizzazione dei circuiti La circuiteria stata suddivisa in tre circuiti PCB differenti: il primo ospitante il

    microcontrollore, il secondo il convertitore e lintegrato per il riferimento di tensione e il terzo il

    convertitore seriale MAX232. Tale scelta stata fatta in ottica di una maggiore flessibilit in

    fase di sviluppo: un eventuale collegamento errato sulle piste di un unico PCB, avrebbe

    comportato il rifacimento dello stesso. S preferito dunque dotare le sezioni di connettori per

    fili esterni. Per quanto riguarda la realizzazione dei master PCB si proceduto alla

    schematizzazione tramite il software di disegno CAD Eagle. Gli schematici sono poi stati

    stampati su fogli lucidi e impressionati su basette di rame presensibilizzate tramite bromografo.

    Dopo varie prove, si ritenuta ottimale unesposizione ai raggi ultravioletti di 70 secondi. Il

    bromografo dotato di 4 lampade Philips TL/15 W disposte a 2 cm circa dal vetro di appoggio

    lastra. Si poi rimosso lo strato di vernice fotosensibile tramite bagno in soluzione di soda

    caustica con concentrazione di 7 mg/l. In seguito si immersa la basetta in soluzione di acido

    ferrico e acqua in rapporto 1 a 3; le piste sono poi state ripulite con acetone e si sono praticati i

    fori nelle piazzole tramite trapano a colonna e punta da 1mm. Viene di suguito riportato lo

    schema di collegamento delle varie sezioni (Figura 7).

    Figura 7 Schema di principio

    La comunicazione tra microcontrollore e ADC avviene tramite interfaccia SPI (Serial Peripherial

    Interface) che si basa sullutilizzo di quattro fili corrispondenti a Chip Select (CS), segnale di

    output (MOSI), segnale di input (MISO) e segnale di Clock (CLK). Tali pin, secondo quanto

    riportato sul datasheet dellATMEGA32, sono rispettivamente PB4 PB5 PB6 PB7.

    Per quanto riguarda la connessione tra Microcontrollore e MAX232 si sfruttano invece i pin di

    trasmissione e ricezione UART costituiti da TXD e RXD (PD1 e PD0).

  • 14

    Sezione 1 - Microcontrollore Atmega32 Il circuito deve provvedere ad alimentare il microcontrollore, rendere usufruibili i pin di

    programmazione e le porte del dispositivo tramite pin header, come mostrato nel circuito in

    Figura 8. Il circuito richiede linserimento di un condensatore di bypass da 100 F, per filtrare la

    tensione di alimentazione da eventuali disturbi, e di una resistenza da 100 K per disabilitare il

    reset del microcontrollore, in quanto non necessaria una circuiteria di reset dedicata.

    Figura 8 Schema ATMEGA32

    Figura 9 Master e disposizione componenti ATMEGA32

  • 15

    Sezione 2 ADC

    Basandoci sempre sulle indicazioni fornite dal datasheet del CS5530, si elaborato il seguente

    circuito:

    Figura 10 Circuito di collegamento CS5530

    Figura 11 Master e disposizione componenti CS5530

  • 16

    2.4 Firmware ATMEGA32 ADC

    Il firmware dellATMEGA32 deve in prima fase inizializzare e configurare lADC. Ci avviene inviando su SPI i bit necessari a resettare e inizializzare il convertitore e in seguito quelli

    necessari a personalizzare il registro di configurazione secondo le necessit. Terminata questa

    fase, attende istruzioni dalla porta seriale. Si dovuta rivolgere particolare attenzione alla

    sequenza binaria da inviare per configurare lADC. Basandoci su quanto indicato sul datasheet del CS5530, riportiamo di seguito la configurazione scelta, evidenziando i valori scelti per il

    registro):

    PSS (Power Save Select)[31] 0 Standby Mode (Oscillator active, allows quick power-up). 1 Sleep Mode (Oscillator inactive).

    Non si utilizza sleep mode

    PDW (Power Down Mode)[30] 0 Normal Mode 1 Activate the power save select mode.

    Non si utilizza il power save mode RS (Reset System)[29] 0 Normal Operation. 1 Activate a Reset cycle. See System Reset Sequence in the datasheet text.

    Bit attivato solamente in fase di Reset allavvio dellADC RV (Reset Valid)[28] 0 Normal Operation 1 System was reset. This bit is read only. Bit is cleared to logic zero after the configuration register is read.

    Pin di sola lettura funzionante da flag per la procedura di reset. Deve essere inizializzato a 0.

    IS (Input Short)[27] 0 Normal Input 1 All signal input pairs for each channel are disconnected from the pins and shorted internally.

    Segnale di input standard

    NU (Not Used)[26] 0 Must always be logic 0. Reserved for future upgrades.

    VRS (Voltage Reference Select)[25] 0 2.5 V < VREF [(VA+) - (VA-)]

    1 1 V VREF

  • 17

    Filter Rate Select, FRS[19] 0 Use the default output word rates. 1 Scale all output word rates and their corresponding filter characteristics by a factor of 5/6.

    Scelto uguale a 1 per selezionare un word rate di 1600 Sps (Sample Per Second) NU (Not Used)[18:15] 0 Must always be logic 0. Reserved for future upgrades.

    WR3-WR0 (Word Rate) [14:11] The listed Word Rates are for continuous conversion mode using a 4.9152 MHz clock. All word rates will scale linearly with the clock frequency used. The very first conversion using continuous conversion mode will last longer, as will conversions done with the single conversion mode.

    Configuration Bit WR (FRS = 0) WR (FRS = 1)

    0000 120 Sps 100 Sps

    0001 60 Sps 50 Sps 0010 30 Sps 25 Sps

    0011 15 Sps 12.5 Sps

    0100 7.5 Sps 6.25 Sps

    1000 3840 Sps 3200 Sps

    1001 1920 Sps 1600 Sps

    1010 960 Sps 800 Sps

    1011 480 Sps 400 Sps

    1100 240 Sps 200 Sps

    All other combinations are not used.

    Si optato per un Word Rate di 1600 Sps in quanto, dopo varie prove, si osservato che con tale

    valore non si ottenevano conflitti nella comunicazione seriale. U/B (Unipolar / Bipolar) [10] 0 Select Bipolar mode. 1 Select Unipolar mode.

    In ingresso al convertitore si avr un segnale che andr da 0 V a 5 V. Il segnale differenziale da

    termocoppia strettamente positivo. OCD (Open Circuit Detect Bit) [9] When set, this bit activates a 300 nA current source on the input channel (AIN+) selected by the channel select bits. Note that the 300 nA current source is rated at 25C. This feature is particularly useful in thermocouple applications when the user wants to drive a suspected open thermocouple lead to a supply rail. 0 Normal mode. 1 Activate current source.

    Si scelto di non attivare questa funzionalit in quanto la termocoppia collegata al convertitore

    ADC tramite un amplificatore esterno. Questa corrente di 300 nA in uscita dal canale di input

    potrebbe danneggiare lamplificatore. NU (Not Used) [8:0] 0 Must always be logic 0. Reserved for future upgrades.

    Il registro di configurazione scelto composto quindi dei seguenti gruppi di Byte:

    D31 D30 D29 D28 D27 D26 D25 D24 D23 D22 D21 D20 D19 D18 D17 D16

    PSS PDW RS RV IS NU VRS A1 A0 NU NU NU FRS NU NU NU

    0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0

    Primo Byte 0x00 Secondo Byte 0x08

    D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0

    NU WR3 WR2 WR1 WR0 UP/BP OCD NU NU NU NU NU NU NU NU NU

    0 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0

    Terzo Byte 0x4C Quarto Byte 0x00

  • 18

    Riportiamo di seguito il flow chart e lo script del firmware elaborato:

    Figura 12 Flow chart del firmware acquisizione dati

    #include #include

    #include

    #define EVER (;;)

    #define time 60

    #define time1 100

    unsigned char dummy,a,b,c,d; //VARIABILI GLOBALI

    void wait(void)

    {

    unsigned char i,j,k;

    PORTC=0xFF; //Accende Led Wait

    for (i=0; i

  • 19

    PORTC=0x00; //Spegne led wait

    }

    }

    }

    PORTC=0xFF;//Accende Led Wait

    return;

    }

    void wait1(void)

    {

    unsigned char i,j;

    PORTC=0xFF;

    for (i=0; i

  • 20

    while(!(SPSR & (1

  • 21

    {

    // Attende che il dato sia disponibile

    while(!(UCSRA & (1

  • 22

    void leggireg() //Funzione per leggere su registro

    {

    PORTB &= ~(1

  • 23

    Capitolo 3 Controllo

    3.1 Introduzione al problema La parte di progetto corrispondente allazione di controllo presenta diversi aspetti. Il PC, dopo

    aver acquisito il dato dalla termocoppia, manda un comando di accensione o di spegnimento del

    forno. Saranno quindi necessari un interfacciamento seriale, un microcontrollore e un dispositivo

    di potenza che comandi il forno.

    3.2 Scelta dei componenti Per quanto riguarda linterfacciamento seriale la scelta del componente gi stata fatta nella

    parte precedente, in quanto il MAX232 in grado di gestire due comunicazioni seriali distinte.

    Come microcontrollore, per comodit, stato nuovamente scelto un ATEMGA32.

    Laccensione del riscaldatore del forno stata affidata ad un triac e non ad un rel. I vantaggi di

    tale componente sono:

    1- Assenza di parti meccaniche in movimento, infatti anche chiamato interruttore a stato

    solido;

    2- Eliminazione di tutti i problemi di contatto (rimbalzo) e di interferenze

    elettromagnetiche;

    3- Velocit di commutazione minore di 10 s. Questo permette una migliore

    sincronizzazione con landamento della tensione alternata, spegnendosi solo nel

    momento in cui la tensione attraversa lo zero. Ci aumenta il tempo di vita di componenti

    delicati (come lampade a filamento);

    4- Alta resistenza a vibrazioni e colpi;

    5- Assenza di rumore in fase di commutazione;

    Presenta anche alcuni svantaggi:

    1- Valori di tensione di lavoro definite, ovvero non pu lavorare a tensioni arbitrarie di

    carico;

    2- Deve essere protetto da sovraccarichi di tensione tramite apposite reti, dette di

    Snubbing. Tali sovraccarichi possono essere generati da reti anche solo parzialmente

    induttive . Se non protetto opportunamente, il triac potrebbe danneggiarsi in modo

    irreversibile;

    3- Presenta una tensione di drop out di circa 1 V e una temperatura di funzionamento

    massima pari a 125 C: ci comporta lutilizzo di dissipatori di calore per evitare danni al

    dispositivo;

    4- Quando un rel spento al suo interno non passa alcuna corrente, invece il triac non ha

    uno stato di spegnimento ben definito. C sempre una piccola corrente che scorre al suo

    interno di circa 1-10 mA RMS.

    Lutilizzo di reti di Snubbing fortemente indicato nel caso un cui si debbano comandare carichi fortemente induttivi; il calcolo dei valori dei componenti per tali reti tuttavia empirico e

    molto complesso. I riscaldatori che si dovranno comandare sono progettati in modo da essere

    anti-induttivi, per evitare di disturbare le accurate misurazioni effettuate mediante termometri a

  • 24

    resistenza di platino nei punti fissi della scala di temperatura. Si pu cos assumere che i

    riscaldatori siano carichi quasi totalmente resistivi, che quindi non necessitino di reti di

    Snubbing. Per sicurezza si scelto comunque di utilizzare triac detti Snubberlessche integrano gi al loro interno la rete filtrante sopra citata.

    Si dovuto tener conto della necessit di separare la rete in corrente continua (ATMEGA) da

    quella in alternata dei forni. Tale compito affidato a opto-isolatori MOC.

    Il microcontrollore alimenta un diodo led contenuto allinterno del MOC, che a sua volta eccita un foto-transistor. Questultimo permette lo scorrimento della corrente alternata necessaria ad attivare il gate del triac, con conseguente accensione del riscaldatore.

    Nel dettaglio si sono utilizzati un triac BTA06-600BW, che pu gestire in tensione fino a 600 V

    e 6A e un MOC3021 in grado di fornire una corrente di gate fino a 50 mA.

    3.3 Realizzazione dei circuiti

    Per quanto riguarda la comunicazione seriale e il microprocessore, ci si basati sulla circuiteria

    gi realizzata nella parte di acquisizione dati. Il circuito di elettronica di potenza stato

    realizzato su breadboard SK10 per flessibilit in fase di collaudo (le prove sono state fatte su un

    riscaldatore provvisorio meno potente rispetto ai forni realmente utilizzati). Viene di seguito

    riportato lo schema di principio:

    Figura 13 Circuito di pilotaggio del forno

  • 25

    3.4 Firmware ATMEGA32 di Controllo La struttura del firmware abbastanza semplice. Oltre a prevedere le inzializzazioni di USART

    e microcontrollore, legge da seriale un comando e gestisce il MOC tramite un pin della PORTA. #include

    #include

    #include

    #include "atmega32_port_config.h"

    #define EVER (;;)

    #define time 150

    unsigned char dummy; //VARIABILI GLOBALI

    void wait(void)

    {

    unsigned char i,j;

    for (i=0; i8);

    /* Formato parola

    >> Asynchronous mode

    >> No Parity

    >> 1 StopBit

    >> char size 8

    */

    UCSRC=(1

  • 26

    // Il dato disponibile nel buffer quindi restituisce il valore di UDR

    return UDR;

    }

    int main()

    {

    unsigned char riscaldatore;

    PORTB = 0x00;

    PORTA = 0x00;

    PORTC = 0x00;

    PORTD = 0x00;

    DDRB = 0xFF;

    DDRA = 0xFF;

    DDRC = 0xFF;

    DDRD = 0xFF;

    USARTInit(12);

    for EVER

    {

    riscaldatore=USARTReadChar();

    if(riscaldatore=='1'){

    PORTA=0xFF;//acceso

    }

    if (riscaldatore=='2'){

    PORTA=0x00;//spento

    }

    }

    }

  • 27

    Capitolo 4 Chiusura anello di controllo 4.1 Software di controllo su PC

    Per chiudere la retroazione dellintero sistema, si realizzata uninterfaccia grafica in linguaggio Visual Basic 6, scelto in quanto precedenti applicazioni gi operanti presso i laboratori di misure

    termiche sono stati sviluppati con tale linguaggio. Si prevede infatti, in futuro, di implementare

    questo controllo in sistemi di livello superiore gi sviluppati in VB, finalizzati alla taratura dei

    termometri campione nazionali. Linterfaccia permette sia di automatizzare il processo decisionale in base alle letture trasmesse dallADC, che agire direttamente su diversi parametri di controllo.

    Pi nel dettaglio, quello che si fatto, una volta trascorso il transitorio di riscaldamento, stato

    calcolare un tempo variabile di accensione del forno, in base alla distanza tra la temperatura

    istantanea letta dall ADC e quella impostata (denominata Set Point). Dal punto di vista teorico, una regolazione di questo tipo non prevede mai il raggiungimento del set point, ma solamente un

    avvicinamento dal basso. Per questo motivo stata introdotta la possibilit di agire anche

    manualmente tramite una costante moltiplicativa (Reg. Fine), in grado di avvicinare la curva a

    un valore desiderato. La versione definitiva del controllo sostituir questa azione manuale con

    una automatizzata mediante controllo PID.

    Vengono di seguito riportati il layout del software e la descrizione delle funzioni legate ai

    pulsanti e alle caselle di testo (per le voci in parentesi fare riferimento al codice del programma):

    Figura 14 Layout dellinterfaccia software

  • 28

    - APRI PORTE: settaggio porte COM (vedere Private Sub Apri_Click);

    - START ACQ: avvia lacquisizione automatica con intervallo di tempo tra una lettura e laltra definibile da utente (vedere Private Sub Command6_Click);

    - LEGGI REGISTRO: consente la verifica della corretta scrittura sul registro di configurazione dellADC (vedere Private Sub Command2_Click). Il pulsante SCRIVI DATI REGISTRO riporta il tutto sullinterfaccia grafica (vedere Private Sub Command4_Click);

    - CONVERSIONE MANUALE: permette lesecuzione di unacquisizione manuale (vedere Private Sub Command1_Click);

    - CASELLA ERRORE: viene riportato il codice 04 in caso di errore durante lacquisizione (overflow o tensione differenziale negativa in ingresso), 00 altrimenti.

    - RISOLUZIONE: calcola la risoluzione digitale in volt, dividendo per 224 (ADC a 24 bit) il valore contenuto nella casella FONDO SCALA (vedere Private Sub

    MSComm1_OnComm);

    - ATTENUAZIONE Val/Att: essendo la calibrazione delloffset dellADC unoperazione eseguibile solamente agendo via firmware, si preferito rendere possibile un

    riadattamento dei dati via software, in modo da avere un controllo pi flessibile e

    semplice da mettere in atto.

    - RICALCOLA: divide il valore contenuto nella casella VALORE PURO per quello contenuto nella casella ATTENUAZIONE e riporta il risultato nella casella VALORE

    FINALE . (vedere Private Sub Ricalc_Click);

    - FORNO ON/OFF: permette accensione/spegnimento manuale (vedere Private Sub Command3_Click e Command5_Click);

    - DELTA V / DELTA T: in questa casella si riporta il rapporto tra differenza di potenziale indicata dalla termocoppia e tempo ricavato empiricamente durante il transitorio di

    riscaldamento, con unapprossimazione lineare della caratteristica.

    - SET POINT: viene inserito il valore di tensione differenziale desiderato (in Volt) e quindi la corrispondente temperatura.

    - T SETPOINT: viene riportato il tempo di accensione del forno calcolato in base alla distanza dal set point.

    - REG FINE: permette linserimento di un valore percentuale. Tale valore costituisce una costante moltiplicativa che permette un avvicinamento pi preciso al set point, dato che il

    deltaV/deltaT un valore ricavato tramite approssimazione. Tale valore viene

    moltiplicato per il Tsetpoint in modo da regolare la percentuale di tempo di accensione forno.

  • 29

    Si specifica che le funzioni DELTA V/DELTA T e REG.FINE sono provvisorie e finalizzate

    alla sola valutazione del corretto funzionamento del sistema di elettronica e interfacciamento;

    verranno sostituite con degli algoritmi di controllo specifico.

    Le istruzioni per il funzionamento generale del programma sono contenute allinterno della Private Sub MSComm1_OnComm. Un tipico ciclo di funzionamento si pu descrivere con:

    1. Avvio acquisizione automatica dopo aver impostato lintervallo di lettura (con valore minimo di 5 s, al di sotto dei quali si possono riscontrare conflitti nell invio/ricezione dei dati).

    2. Scrittura allinterno della casella Esadecimale del dato puro ricevuto dall ADC e conversione nel valore decimale, riportato nellomonima casella.

    3. Divisione del dato in decimale per la risoluzione e scrittura del risultato in Valore Puro 4. Rielaborazione del dato secondo l attenuazione imposta. 5. Calcolo del tempo di accensione del forno (T set point), in millisecondi, tramite la

    seguente equazione:

    Segue un processo decisionale in base al valore di Tsetpoint ottenuto: se maggiore

    dell intervallo di acquisizione, si impone Tsetpoint=intervallo acquisizione, in modo da non avere un eccesso nel tempo di accensione del forno, che sar quindi al massimo

    uguale al tempo trascorso tra una lettura e laltra. Se Tsetpoint risulta invece minore dell intervallo di acquisizione, si passa al punto successivo.

    6. Leffettiva durata dellaccensione del forno regolata da un loop (a vuoto). Esso necessita di un momento iniziale e un momento finale, ricavati tramite la funzione

    timeGetTime. Essa restituisce lora macchina in millisecondi dalla mezzanotte precedente. La durata del loop sar quindi data dalla somma tra lora macchina attuale e il Tsetpoint precedentemente calcolato. Riportiamo un esempio in pseudocodice per

    chiarire:

    tattuale =timeGetTime

    tspegnimentoforno=tattuale + Tsetpoint

    loop tra (tattuale et tspegnimentoforno)

    7. Nuova acquisizione e reiterazione del ciclo.

  • 30

    Riportiamo di seguito lo script del programma:

    Private Sub Apri_Click()

    MSComm1.RThreshold = 0

    MSComm2.RThreshold = 0

    MSComm1.PortOpen = False

    MSComm2.PortOpen = False

    MSComm1.CommPort = Com1.Text ' Seleziona la COM1

    MSComm1.Settings = "4800,n,8,1" ' Impostazioni della seriale

    MSComm1.RThreshold = 1 'Controllo corretta ricezione dei dati

    MSComm1.PortOpen = True

    If Err Then

    MsgBox("Non possibile aprire la porta. Premere prima chiudi")

    End If

    Com1.Text = MSComm1.CommPort

    MSComm2.CommPort = Com2.Text

    MSComm2.Settings = "4800,n,8,1"

    MSComm2.RThreshold = 1

    MSComm2.PortOpen = True

    If Err Then

    MsgBox("Non possibile aprire la porta. Premere prima chiudi")

    End If

    Com2.Text = MSComm2.CommPort

    End Sub

    Private Sub Command1_Click()

    'Manda 1 per fare conversione

    MSComm1.Output = "1"

    Text1.Text = "" 'Cancella tutte le caselle di testo

    Errore.Text = ""

    Deci.Text = ""

    ValoreFin.Text = ""

    Fin.Text = ""

    MSComm1.RThreshold = 1

    End Sub

    Private Sub Command2_Click()

    'Manda 2 per leggere Registro

    MSComm1.Output = "2"

    End Sub

    Private Sub Command3_Click()

    MSComm2.Output = "1" 'Accende forno e cambia indicatore

    Me.Command7.BackColor = &H8000& 'verde

    Me.Command7.Caption = "ON"

    End Sub

    Private Sub Command4_Click()

    ' Legge Dati registro mandando "e"

    MSComm1.Output = "e"

    Text1.Text = ""

    Errore.Text = ""

    Deci.Text = ""

    ValoreFin.Text = ""

    Fin.Text = ""

    MSComm1.RThreshold = 1

    End Sub

    Private Sub Command5_Click()

    MSComm2.Output = "2" 'Spegne forno e cambia indicatore

    Me.Command7.BackColor = &HC0& 'rosso

    Me.Command7.Caption = "OFF"

    End Sub

  • 31

    Private Sub Command6_Click()

    If Command6.Caption = "Start Acq" Then 'Abilita l'acquisizione con intervallo

    stabilito

    Timer1.Interval = Intervallo.Text

    Timer1.Enabled = True

    Command6.Caption = "Stop Acq"

    Else

    Timer1.Enabled = False 'Disattiva acquisizione

    Command6.Caption = "Start Acq"

    End If

    End Sub

    Private Sub Form_Load()

    'All'apertura del programma inizializza porte COM

    MSComm1.CommPort = 1 ' Selezionia la COM1

    MSComm1.Settings = "4800,n,8,1" ' Impostazioni della seriale

    MSComm1.RThreshold = 1 'Controllo corretta ricezione dei dati

    MSComm1.PortOpen = True

    If Err Then

    MsgBox("Non possibile aprire la porta. Premere prima chiudi")

    End If

    Com1.Text = MSComm1.CommPort

    MSComm2.CommPort = 2

    MSComm2.Settings = "4800,n,8,1"

    MSComm2.RThreshold = 1

    MSComm2.PortOpen = True

    If Err Then

    MsgBox("Non possibile aprire la porta. Premere prima chiudi")

    End If

    Com2.Text = MSComm2.CommPort

    End Sub

    Private Sub MSComm1_OnComm()

    Dim Rx$

    Rx$ = Hex(Asc(MSComm1.Input)) ' Legge il contenuto del buffer di ricezione

    If Len(Rx$) Then ' Se stato ricevuto qualcosa, scrive nella TextBox

    If Len(Rx$) = 1 Then 'Se vi un dato composto solamente da un carattere

    Rx$ = "0" & Rx$ 'Aggiunge uno '0' davanti per avere il dato su due

    byte

    End If

    If Len(Text1.Text) = 6 Then 'Se riceve il dato intero e anche i byte

    d'errore

    Errore.Text = Rx$ 'Nella casella errore mette gli ultimi due byte

    ricevuti

    Res.Text = (Val(Volt.Text)) / 16777216 ' 2^24 'Calcola la risoluzione

    Deci.Text = Val("&h" & Text1.Text) 'Trasforma il valore in decimale

    ValoreFin.Text = (Val(Deci.Text)) * Res.Text 'Calcola il valore in

    Volt

    Fin.Text = ValoreFin.Text / Ampl.Text 'Calcola il valore in base

    all'attenuazione imposta

    Open App.Path & "ora.txt" For Append As #1 'apri file contentente l'ora di

    acquisizione

    Open App.Path & "valore.txt" For Append As #2 'apri file contenente il

    valore di acquisizione

    Print #1, Time

    Print #2, Fin.Text

    Close #1

    Close #2

    Tsetpoint.Text = (((SetPoint.Text - ValoreFin.Text) / delta.Text) *

    1000) 'Calcola il tempo di Set Point

  • 32

    If Val(Tsetpoint.Text) > Val(Intervallo.Text) Then 'Se il valore

    calcolato superiore all'intervallo di acq.

    Tsetpoint.Text = Val(Intervallo.Text) 'Impone tale valore uguale

    all'intervallo di acq.

    End If

    If Tsetpoint.Text > 0 Then 'Se il tempo di set point positivo

    accende il forno per il Tsetpoint

    MSComm2.Output = "1"

    Me.Command7.BackColor = &H8000&

    Me.Command7.Caption = "ON"

    k = val(regfine.text) / 100 'Calcolo della costante

    moltiplicativa

    Inittime = timeGetTime 'Ricava orario in millisecondi

    tb = Inittime

    Tacc = Inittime + k * Val(Tsetpoint.Text) 'Calcolo dell'ora a cui

    spegnere il forno

    Do While tb < Tacc 'Finch non si raggiunge l'ora di spegnimento

    attende ed esegue in loop

    tb = timeGetTime

    Loop

    MSComm2.Output = "2" 'Spegne il forno al raggiungimento dellora

    corretta

    Me.Command7.BackColor = &HC0&

    Me.Command7.Caption = "OFF"

    End If

    Else ' Se non viene ricevuto il dato intero

    Text1.Text = Text1.Text & Rx$ 'Compone il dato ricevuto nella casella

    di testo

    End If

    End If

    Text2.Text = Rx$ 'Scrive ultimo dato ricevuto.

    End Sub

    Private Sub Ricalc_Click() ' Impone attenuazione con comando manuale

    Fin.Text = ValoreFin.Text / Ampl.Text

    End Sub

    Private Sub Timer1_Timer() 'Timer di acquisizione

    MSComm1.Output = "1"

    Text1.Text = ""

    Errore.Text = ""

    Deci.Text = ""

    ValoreFin.Text = ""

    Fin.Text = ""

    MSComm1.RThreshold = 1

    End Sub

  • 33

    Capitolo 5 Conclusioni

    5.1 Collaudo del sistema Si voluta ora verificare lefficacia del sistema, anche se ancora a livello di prototipo iniziale. Tutte le parti elettroniche prima descritte sono state collegate opportunamente tra loro. Si

    utilizzato in questa fase di collaudo un riscaldatore rudimentale costituito da una maglia di rame

    avvolta attorno ad un cilindro in alluminio (per aumentare linerzia termica) isolato con neoprene (Figura 215).

    Figura 15 Riscaldatore

    Figura 16 Sistema di controllo collegato

  • 34

    Tramite questo sistema si lavorato attorno a temperature prossime ai

    25 C 35 C, range di temperatura che include il punto fisso del gallio, il cui stato di transizione solido-liquido si trova a 29,7646 C, pari a

    302,9146 k. Non si proceduto al collaudo sui forni realmente utilizzati

    dallistituto per i punti fissi ad alte temperature. Ci dovuto a una scelta concordata con i ricercatori, sia per questioni di sicurezza derivanti dalle

    temperature in gioco, sia in quanto non si conosceva leffettiva funzionalit del sistema di controllo in fase cos embrionale.

    La termocoppia utilizzata di tipo J costituita da giunzione Ferro-

    Constantana. Secondo le specifiche commerciali, esse permettono misure

    corrette allinterno di in un intervallo che va dai -40 C ai 760 C, al di fuori del quale risentono di effetti magnetici che ne compromettono la

    calibrazione. E in realt dimostrato che, in ambiente non privo di ossigeno, al di sopra dei 540 C, il ferro della giunzione tende ad ossidarsi,

    compromettendo gi parzialmente la precisione di acquisizione. La loro

    accuratezza gi stata verificata in precedenza all interno dellistituto, misurando le differenze di potenziale (tramite nano-voltmetri) restituendo

    una risoluzione di 51,7 V/C. Particolarit della termocoppia da noi

    utilizzata, la presenza di due terminali, uno per effettuare la misurazione e

    uno costituente il riferimento inserito in un bagno di acqua e ghiaccio in

    fusione. Nella gran parte delle termocoppie commerciali a un puntale, il

    riferimento viene invece creato artificialmente dallo strumento di misurazione tramite una corrente inversa.

    Figura 18 Schema di principio della termocoppia con riferimento separato

    Figura 17 Scala

    termometrica dei punti

    fissi

  • 35

    Si dunque avviato il programma di acquisizione e lasciato in esecuzione per circa 40 minuti,

    ottenendo i seguenti dati:

    Ora Valore (mV)

    15:35:30 1,1689258693

    15:35:50 1,1722068904

    15:36:10 1,1872989000

    15:36:30 1,2668736489

    15:36:50 1,3089606590

    15:37:10 1,3529665426

    15:37:30 1,4224474148

    15:37:50 1,5119531569

    15:38:10 1,5280015658

    15:38:30 1,5311949944

    15:38:50 1,5357743373

    15:39:10 1,5370450555

    15:39:30 1,5353812828

    15:39:50 1,5368540531

    15:40:10 1,5360221668

    15:40:30 1,5374239032

    15:40:50 1,5373355054

    15:41:10 1,5386946214

    15:41:30 1,5382082151

    15:41:50 1,5378627351

    15:42:10 1,5386404172

    15:42:30 1,5386804146

    15:42:50 1,5383299805

    15:43:10 1,5381705488

    15:43:30 1,5379157738

    15:43:50 1,5378854404

    15:44:10 1,5376946214

    15:44:30 1,5372928850

    15:44:50 1,5372557895

    15:45:10 1,5375920168

    15:45:30 1,5376493965

    15:45:50 1,5377433191

    15:46:10 1,5376070918

    15:46:30 1,5377230350

    15:46:50 1,5378192466

    15:47:10 1,5380656553

    15:47:30 1,5383850713

    15:47:50 1,5381726009

    15:48:10 1,5383363736

    15:48:30 1,5379734691

    15:48:50 1,5379018826

    15:49:10 1,5377175102

    15:49:30 1,5376804146

    15:49:50 1,5375752590

    15:50:10 1,5377389781

    15:50:30 1,5374514485

    15:50:50 1,5378941224

    15:51:10 1,5381912809

    15:51:30 1,5383899648

    15:51:50 1,5381760737

    15:52:10 1,5385507126

    15:52:30 1,5387998306

    15:52:50 1,5387614906

    15:53:10 1,5381673917

    15:53:30 1,5378554739

    15:53:50 1,5380114328

    15:54:10 1,5376707606

    15:54:30 1,5379726009

    15:54:50 1,5377123010

    15:55:10 1,5375298410

    15:55:30 1,5376062236

    15:55:50 1,5373833349

    15:56:10 1,5378548961

    15:56:30 1,5376871417

    15:56:50 1,5375265078

    15:57:10 1,5378506776

    15:57:30 1,5381062236

    15:57:50 1,5382030849

    15:58:10 1,5385432585

    15:58:30 1,5387498094

    15:58:50 1,5386269996

    15:59:10 1,5386890966

    15:59:30 1,5385656553

    15:59:50 1,5383424509

    16:00:10 1,5383255790

    16:00:30 1,5382731534

    16:00:50 1,5383299648

    16:01:10 1,5382920168

    16:01:30 1,5381842031

    16:01:50 1,5379175102

    16:02:10 1,5380557895

    16:02:30 1,5381549213

    16:02:50 1,5378893736

    16:03:10 1,5379027508

    16:03:30 1,5378299805

    16:03:50 1,5377171693

    16:04:10 1,5374183784

    16:04:30 1,5375067762

    16:04:50 1,5376490833

    16:05:10 1,5374418378

    16:05:30 1,5375936926

    16:05:50 1,5377256396

    16:06:10 1,5379466523

    16:06:30 1,5378059080

    16:06:50 1,5379230350

    16:07:10 1,5381734691

    16:07:30 1,5383033034

    16:07:50 1,5382476601

    16:08:10 1,5384653397

    16:08:30 1,5383731534

    16:08:50 1,5385786782

    16:09:10 1,5386988228

    16:09:30 1,5386349712

    16:09:50 1,5387617055

    16:10:10 1,5387282441

    16:10:30 1,5387975259

    16:10:50 1,5387855474

    16:11:10 1,5381105646

    16:11:30 1,5383212986

    16:11:50 1,5385114328

    16:12:10 1,5382256396

    16:12:30 1,5382601305

    16:12:50 1,5381894122

    16:13:10 1,5382114328

    16:13:30 1,5381812828

    16:13:50 1,5380984098

    16:14:10 1,5380404172

    16:14:30 1,5379396497

    16:14:50 1,5380609987

    16:15:10 1,5379349712

    16:15:30 1,5378834322

    16:15:50 1,5376942451

    16:16:10 1,5377016642

    16:16:30 1,5373750398

    16:16:50 1,5374204304

    16:17:10 1,5376988228

    16:17:30 1,5375796642

    16:17:50 1,5378717327

    16:18:10 1,5378532033

    16:18:30 1,5380330338

    16:18:50 1,5381007960

  • 36

    Figura 19 Grafico dellandamento di tensione differenziale nel tempo

    Analizzando landamento dei dati registrati (Figura 19) si evince come, dopo un periodo di riscaldamento transitorio (parzialmente nascosto nel grafico per migliorare la vista in dettaglio a

    regime), il sistema raggiunga valori prossimi al set point, senza mai raggiungerlo. In base alla

    risoluzione dellelettronica sviluppata e in considerazione della termocoppia utilizzata, si calcolato un valore in tensione corrispondente al punto fisso del gallio pari a 1,53882982 mV. Il

    set point stato impostato a 1,539 mV, facendo in modo che la temperatura realmente raggiunta,

    fosse in prossimit al valore del plateau del metallo. Andando ad analizzare la precisione del sistema, si tuttavia notato come esso non sia in grado di rispettare le specifiche: i valori in

    tensione infatti oscillano in un intervallo compreso tra 1,537 mV e 1,538mV, raggiungendo

    quindi risoluzione minima di 1 V. Come obiettivo iniziale si era calcolata una risoluzione di

    250 V nellipotesi di un amplificazione in tensione di 500, che purtroppo non viene rispettata,

    essendo quella reale pari a 1 V 500 = 500 V.

    Tra le cause che si sono ipotizzate:

    - Imprecisione nella pendenza della caratteristica V/t, necessaria al calcolo del tempo di accensione forno. Questo dato calcolato empiricamente e dipende da molti fattori (tipo

    di riscaldatore, isolamento del sistema, tipo di metallo da riscaldare, non linearit della

    deriva termica del materiale). Non si tuttavia voluta introdurre linfluenza della funzione Regolazione Fine, precedentemente descritta, al fine di non influenzare manualmente, almeno in questa fase, la campionatura effettivamente eseguita dall ADC.

    - Lentezza di acquisizione: Il sistema da noi realizzato impiega in media 3 secondi per fornire il dato al PC. Di questo ritardo bisognerebbe tenerne conto nel momento in cui si

  • 37

    calcola il tempo di accensione del forno riducendo tale dato del ritardo di acquisizione.

    Unaltra soluzione potrebbe essere quella di aumentare il baud rate di comunicazione seriale.

    - Mancata calibrazione dellADC via firmware, tramite lutilizzo del registro di offset e di gain. Questo potrebbe rendere lacquisizione pi precisa rispetto ad una regolazione via software.

    Nell ambito della durata complessiva dellesperienza di tirocinio, non si sono potute sviluppare le precedenti supposizioni; si confida tuttavia che esse possano essere daiuto come punto di partenza per lintroduzione delle migliorie necessarie.

    5.2 Problemi riscontrati

    Analizzando da un punto di vista cronologico le fasi che hanno portato a qualche problema di

    realizzazione del progetto, si possono sicuramente citare in primo luogo una difficolt nello

    stabilire il corretto tempo di esposizione al bromografo delle basette di rame necessarie alla

    fotoincisione dei PCB.

    Altra fase che ha causato non pochi ritardi, stata la saldatura dell ADC. Tale componente infatti a montaggio superficiale (SMD), presenta 10 piedini distribuiti su un lato di 5 mm e si

    pu quindi immaginare la complessit nel saldarlo alle piazzole con saldatori tradizionali (in

    luogo, ad esempio, di saldatori ad aria calda). E stato necessario ripetere questa operazione pi volte prima di giungere ad una corretta sistemazione del componente.

    Si sono infine riscontrati problemi nella comunicazione SPI tra il microcontrollore e lADC, causati da un conflitto nella procedura di hand shaking, risolto poi agendo sul numero di colpi

    di clock che regolano la comunicazione tra microcontrollore e ADC.

    5.3 Possibilit di sviluppo e migliorie

    I risultati ottenuti non possono ancora definirsi soddisfacenti per le applicazioni di metrologia

    primaria, ma hanno costituito un significativo passo in avanti per la progettazione di controlli ad

    elevate prestazioni in termini di stabilit termica. Si potr procedere, una volta raggiunta una

    miglior stabilit e precisione del sistema, ad un collaudo sui forni reali.

  • 38

    Bibliografia

    - G.Biondo, E. Sacchi, Manuale di elettronica e telecomunicazioni(quinta ed.),HOEPLI

    Sitografia

    - http://programmazione.html.it/guide/leggi/43/guida-visual-basic/: guida introduttiva al linguaggio di Visual Basic

    - http://www.maxim-ic.com/datasheet/index.mvp/id/1657 : datasheet Voltage Reference MAX 6250

    - http://www.maxim-ic.com/datasheet/index.mvp/id/1798 : datasheet Serial Interface MAX232

    - http://www.atmel.com/dyn/products/tools_docs.asp?category_id=163&family_id=607&subfamily_id=760&tool_id=3808 : user guide programmatore Atmel AVRISP mkII

    - http://www.cirrus.com/en/products/cs5530.html : datasheet ADC CS5530 - http://www.atmel.com/dyn/resources/prod_documents/doc2503.pdf : datasheet

    microcontrollore Atmel ATMEGA32

    - http://www.liceoagnoletti.it/attivita/attivita_professori/fisicafacile/Calore%20e%20Temperatura/punti%20fissi%20termometrici.htm : immagine scala termometrica dei punti fissi

    - http://people.ucalgary.ca/~kmuldrew/cryo_course/cryo_chap14_2.html : immagine termocoppia a doppio puntale in bagno di ghiaccio