Indice |
Introduzione
In questi ultimi articoli dedicati alle NTC e alla misura della temperatura, sara` analizzato il problema della linearizzazione, cioe` come ottenere da un componente con caratteristica non lineare, che ha una resistenza dipendente esponenzialmente dalla temperatura [1][2], una tensione piu` o meno lineare in funzione della temperatura, in modo da poter realizzare un termometro con l'uso di un semplice voltmetro.
Al giorno d'oggi un qualunque microcontrollore con un convertitore A/D puo` eseguire una eccellente linearizzazione e lettura della temperatura, e spesso e` il modo piu` semplice per realizzare un termometro. In alcuni casi tuttavia l'uso di un microcontrollore potrebbe non essere conveniente, pur desiderando avere una di tensione linearmente proporzionale alla temperatura. In altri casi, pur avendo a disposizione un microcontrollore, si vogliono evitare conti con aritmetica trascendente (funzioni esponenziale e logaritmica) e si cerca di ottere direttamente una tensione lineare con la temperatura.
Le NTC sono sul mercato dagli anni 40 [3], mentre i microcontrollori con A/D interno sono diventati disponibili solo una cinquantina di anni dopo. Nel frattempo gli ingegneri circuitali hanno avuto tempo di sbizzarrirsi in soluzioni e circuiti per la linearizzazione.
Il problema della linearizzazione e` stato affrontato con l'uso di reti resistive lineari, reti con due o piu` NTC, reti con moltiplicatori e amplificatori logaritmici, convertitori analogico digitali non lineari, oppure ancora con oscillatori che forniscono una frequenza linearmente proporzionale alla temperatura o addirittura con reti neurali. Oltre a queste soluzioni circuitali, ultimamente sono divenute di moda le linearizzazioni con un microcontrollore oppure con un PC e programmi quali LABVIEW.
In questo articolo sara` dapprima mostrato un modo "intuitivo" per fare una linearizzazione di una NTC, e sara` sviluppato un esempio, mostrando poi gli errori che risultano.
Ho chiamato il metodo "intuitivo" perche' si basa sulla osservazione delle caratteristiche grafiche e con un po' di buon senso si trova quale potrebbe essere una ragionevole approssimazione lineare, ricavando poi le formule che permettono di realizzarla.
Nell'articolo successivo (ormai questa serie sta diventando una saga), saranno invece analzzate le linearizzazioni analitche, basate su calcoli fatti sulla caratteristica per ottimizzare la linearita` in un punto o in un intervallo.
Linearizzazione a tre punti
L'idea piu` semplice che puo` venire in mente per trasformare la variazione di resistenza di una NTC in una tensione piu` o meno lineare consiste nel fare un partitore fra NTC e una resistenza, come mostrato in figura 1 e studiare la tensione che viene generata.
La tensione di uscita del partitore e` ovviamente data dalla partizione fra resistenza ed NTC e il rapporto di partizione vale:
Nel seguito si fara` uso della solita NTC da [4], gia` usata nei precedenti articoli. Il rapporto di partizione fra questa NTC a alcuni valori di resistenza e` mostrato nella figura seguente, calcolata al solito con EXCEL. La stessa figura e` riportata anche negli articoli [5] e [6].
La dipendenza di dalla temperatura e` evidentemente non lineare, come ci si poteva aspettare dall'equazione (1). Pero` nella zona centrale della curva la funzione e` abbastanza simile a una retta.
Cambiando il valore della resistenza del partitore e` possibile spostare il tratto lineare, o per meglio dire meno storto, intorno alla temperatura di interesse.
Andando ad analizzare piu` in dettaglio una sola delle curve, ad esempio con , si vede che e` possibile approssimarla per un certo intervallo con una funzione lineare, come mostrato in figura 3.
In questo caso la scelta della resistenza e` stata casuale, e la retta e` stata piazzata "a mano" solo per mostrare il tratto quasi rettilineo del rapporto di partizione. Nell'intervallo da a
l'errore massimo (letto come distanza orizzontale fra le due curve) e` dell'ordine di
.
La cosa interessante e` che l'approssimazione rettilinea ha tre punti di errore nullo. Prendendo come gradi di liberta` la resistenza del partitore e i due coefficienti della retta approssimante, si possono piazzare i tre punti di errore nullo a tre temperature convenienti per l'intervallo in cui si vuole approssimare la curva reale con una retta [7].
Per ottenere equazioni piu` semplici, le temperature a cui imporre errore nullo sono la temperatura centrale dell'intervallo , e le altre due temperature
e
sono poste simmetricamente, al
e al
circa dell'intervallo stesso. Questi due valori non sono vincolanti: devono solo essere simmetrici rispetto alla temperatura centrale e piazzati vicino agli estremi dell'intervallo.
Come capita in tutte le approssimazioni e linearizzazioni, maggiore e` l'ampiezza dell'intervallo di temperatura maggiore l'errore che si ha con questa approssimazione lineare.
Le equazioni da risolvere per trovare la resistenza da mettere nel partitore e i due parametri della retta approssimante (coefficiente angolare e intercetta) sono:
Dove ,
e
sono le tre temperature a cui si vuole errore nullo, come definite prima,
ecc. ecc. sono le corrispondenti resistenze dell'NTC,
ecc. ecc. sono i rapporti di partizione alle tre temperature,
e
sono coefficiente angolare e intercetta della retta approssimante e infine
e` la resistenza da mettere nel partitore.
Risolvendo le equazioni (2) (con la condizione si ottiene
Le temperature di queste formule possono indifferentemente essere in kelvin oppure in gradi Celsius, cambia solo il valore dell'intercetta .
Da notare che imponendo errore nullo a tre temperatura si ha, come conseguenza, che l'approssimazione lineare risulta con coefficienti che non possono essere stabiliti a priori: quello che viene viene, e bisogna accontentarsi. La cosa pero` non e` molto grave perche' se la rete di linearizzazione e` seguita da un microcontrollore non in grado di valutare funzioni trascendenti, a software e` comunque possibile trasformare la tensione in temperatura togliendo l'offset (legato al coefficiente ) e dividere per il guadagno (legato al coefficiente
). Se invece si usa un operazionale, il condizionamento del segnale e` facilmente eseguibile, come mostrato nell'esempio seguente.
Esempio numerico
Dal caso precedente, con linearizzazione fatta empiricamente e mostrata in figura 3, si vede che l'errore e` dell'ordine di qualche kelvin per intervalli di temperatura dell'ordine di un centinaio di kelvin.
Poiche' solitamente la precisione voluta deve essere migliore (frazioni di kelvin), e` necessario usare questa linearizzazione per intervalli di temperatura piu` ristretti. Proviamo ad usare lo stesso intervallo gia` utilizzato in [4], che si estende da fino a
. In questo intervallo si impone errore nullo alle temperature corrispondenti al 10%, 50% e 90% dell'intervallo stesso, che corrispondono a
. I valori di resistenza dell'NTC corrispondenti a queste tre temperature, calcolati con il modello di Steinhart e Hart, sono riportati nella tabella 1.
Temperatura (°C) | Temperatura (K) | Resistenza (Ω) |
---|---|---|
8.5 | 281.65 | 21359 |
22.5 | 295.65 | 11166 |
36.5 | 309.65 | 6143.6 |
Dalle formule (3), usando le temperature in gradi Celsius, si ricavano i valori della R e dei parametri della retta, che risultano essere:
Se si fossero usati i kelvin, sarebbe cambiato solo il coefficiente , diventando
. Il coefficiente
essendo legato alle variazioni di temperatura, puo` essere considerato sia in reciproco di kelvin che di gradi Celsius.
Le relazioni lineari che in questo esempio permettono di passare dalla temperatura al rapporto di partizione e viceversa sono quindi
dove la variabile e` il rapporto di partizione.
Se si alimenta il partitore ad esempio con la tensione , i coefficienti
e
vengono moltiplicati per la tensione di alimentazione e la tensione di uscita
in funzione della temperatura
vale:
mentre la relazione inversa, che permette di passare dalla tensione misurata alla temperatura in gradi Celsius e`:
La sensibilita` della misura in questo esempio e` di circa maggiore di quella che si otterrebbe con un sensore allo stato solido, tipicamente di
La relazione (8) puo` essere calcolata da un microcontrollore, oppure con un circuito ad operazionale, dimensionato nel prossimo paragrafo, che provvede al condizionamento del segnale, in modo da ottenere sensibilita` e inizio scala desiderati.
Altri circuiti piu` o meno complicati saranno mostrati in seguito. Con i valori di questo esempio, l'errore di linearizzazione e` mostrato in questo grafico:
Il comportamento di questa linearizzazione, su un intervallo limitato, e` decisamente buono, presentando un errore massimo di circa sull'intervallo da
a
.
La forma dell'errore residuo e` molto simile a una cubica, per cui si puo` ipotizzare che l'errore salga con il cubo dell'ampiezza dell'intervallo di temperatura. Come verifica empirica si puo` considerare che la prima approssimazione presentata si estendeva su un campo di mentre quest'ultimo esempio va da
a
. Il rapporto delle ampiezze al cubo da`
L'errore massimo (escludendo i punti estremi che sono sempre problematici) vale nel primo caso circa mentre dalla figura 4 si ha circa
, e il rapporto degli errori vale 20.6, close enough!
La dipendenza dell'errore dal cubo dell'ampiezza dell'intervallo, introdotto qui su base euristica, sara` ricavato analiticamente nel seguito.
Condizionamento analogico
Progettiamo adesso un circuito che trasformi le tensioni generate dal partitore e NTC in un intervallo adatto per essere misurato con un voltmetro. Supponiamo di avere una tensione di alimentazione di , e dato che l'intervallo di linearizzazione di questo esempio va da
a
, si potrebbe pensare di mappare queste tensioni nell'intervallo da
a
.
Nella tabella seguente sono indicati la temperatura, il corrispondente valore resistivo dell'NTC , la tensione di uscita del partitore con la resistenza R ottimale, di valore
ed alimentazione a
. La tensione di uscita del partitore alle varie temperature e` data ovviamente da
Infine in tabella 2 e` anche riportata la tensione di uscita del partitore fornita dall'equazione (7), e nell'ultima colonna e` indicata la tensione condizionata
richiesta all'uscita del circuito di condizionamento.
Temperatura (°C) | Resistenza (Ω) | Vp esatto (V) | Vp da eq. 7 (V) | Tensione voluta Vc (V) |
---|---|---|---|---|
5 | 25339 | 1.271 | 1.254 | 0.5 |
40 | 5330 | 3.092 | 3.107 | 4 |
I calcoli del circuito di condizionamento possono essere fatti sulle temperature estreme dell'intervallo, oppure su quelle usate per trovare la retta approssimante. Se si usano le temperature estreme dell'intervallo, bisogna comunque usare i valori di tensioni forniti dall'equazione (7), non quelli veri del circuito, perche' con la scelta delle temperature e
posizionate a circa il
e
, alle temperature estreme si ha un errore aggiuntivo, peraltro molto piccolo, come si vede dalla tabella.
E` necessario quindi progettare un circuito che trasformi linearmente la tensione di in
e la tensione di
in
secondo l'equazione
dove e` l'amplificazione e
e` la tensione di scalamento che il circuito deve introdurre.
L'amplificazione del circuito e` dato dalla variazione della tensione condizionata di uscita divisa per la variazione della tensione proveniente dal partitore.
Il guadagno necessario e` maggiore di 1, e questo permette di utilizzare un normale amplificatore non invertente a operazionale, che ha un guadagno minimo di 1, mentre la tensione di offset viene ricavata imponendo che la retta passi per uno dei due punti, ad esempio quello a
da cui
Un circuito che puo` realizzare questa funzione e` il seguente:
Il valore delle tre resistenze e` dato imponendo amplificazione e offset, con queste equazioni:
Come molto spesso capita in ingegneria, il numero di equazioni non e` mai uguale al numero di incognite. Qui abbiamo due equazioni e dobbiamo trovare il valore di tre componenti. Si ha un grado di liberta` che puo` essere usato "a buon senso", ad esempio per ridurre il consumo del circuito, sceglieno un resistore di valore elevato e calcolando gli altri due. Il valore tuttavia non puo` essere troppo elevato, per evitare che il circuito riceva rumori indesiderati a causa di accoppiamenti capacitivi vari. Qui il rumore termico non e` un problema.
Ad esempio dalle (15) si possono ricavare i valori di ed
in funzione di
, sostituire ad esempio
e vedere se i risultanti valori delle altre due resistenze sono ragionevoli:
L'effetto delle tolleranze dei componenti e della tensione di alimentazione sulla tensione di uscita, e quindi sulla temperatura misurata puo` essere valutata con una analisi Montecarlo, oppure analiticamente per mezzo delle sensitivities, come descritto in [8] e nei tre articoli seguenti della stessa serie.
Bibliografia
[1] IsidoroKZ, Progetto Termostato I - Proprieta` delle NTC - Electroyou 2011
[2] IsidoroKZ, Progetto termostato IV - NTC: errori dei modelli e tolleranze - Electroyou 2011
[3] Becker, J. A.; Green, C. B.; Pearson, G. L.; Properties and Uses of Thermistors - Thermally Sensitive Resistors, Trans. of AIEE Vol 51, No. 11, Nov. 1946, p. 711-725.
[4] NTC Vishay, serie NTCLE100 NTC da 10kΩ
[5] Diamond J.M., Linearization of Resistance Thermometers and Other Transducers, The Review of Scientific Instruments, Vol. 41, No. 1,January 1970, p. 53-60.
[6] Tsai C.F., Li L.T., Li C.H., Young M.S.; Implementation of Thermistor Linearization Using LabVIEW, Fifth International Conference on Intelligent Information Hiding and Multimedia Signal Processing, IIH-MSP '09., Kyoto Sept 2009, p. 530-533
[7] Jamieson J., Thermistors—a simple means of getting accurate readings of temperature, Electronics Education, Vol. 1990, Issue 1, Spring 1990, p. 10-11.
[8] IsidoroKZ, Sensitivity I - Definizioni e applicazioni, Electroyou 2010.