Qual è il modo più semplice per calibrare un termistore?


11

Come hobbista che non ha accesso alle apparecchiature di laboratorio, mi sembra davvero impossibile riuscire a calibrare il termistore che ho.

Naturalmente ci sono sensori di temperatura calibrati come DS18B20, ma i termistori specialmente su MCU lenti come Aruino UNO (rispetto ai nuovi MCU) sono più scattanti.

Quali opzioni abbiamo per la calibrazione di un termistore senza l'utilizzo di apparecchiature di laboratorio?


1
Utilizzare un sensore calibrato come DS18B20 per acquisire una caratteristica del termistore.
Janka,

Cosa intendi con "più scattante"? Non sembra una buona giustificazione se è necessario eseguire una correzione software sul termistore ma non con un DS18B20.
Elliot Alderson,

Se il ritardo di un secondo del DS18B20 alla massima risoluzione è un problema, utilizzare uno dei sensori onewire del monitor della batteria, ad esempio il DS2438. Ha un sensore di temperatura veloce su chip.
Janka,

2
@newbie La calibrazione della temperatura, per la precisione, è generalmente difficile. Alcune gamme sono più difficili di altre. I punti di congelamento dei materiali comunemente disponibili possono essere di grande aiuto, soprattutto se la gamma include più di quelli. Ma riferimenti accurati saranno riconducibili agli standard NIST o DIN (o gruppo simile) tenuti in un laboratorio da qualche parte e gestiti da un fisico o due. Aiuterebbe la tua domanda se hai specificato l'intervallo di temperatura e l'accuratezza e la precisione che cerchi in quell'intervallo.
Jon

1
@newbie Ma a casa? Cerca la purezza e quindi crea combinazioni ghiaccio / liquido oppure caldaie a condensazione pure. Ad esempio, il ghiaccio miscelato con l'acqua è molto comunemente usato, ma la sua utilità può dipendere dalle cifre della precisione e dal lavoro a cui sei disposto a fare. Puoi anche usare acqua bollente o acido solforico che si possono condensare sul fondo di un matraccio. (Ho usato entrambi.) Ma i risultati dipendono anche da impurità, variazioni della pressione atmosferica e altri fattori. Le tue esigenze hanno molto a che fare con ciò che può essere suggerito per i tentativi di homebrew.
Jon

Risposte:


5

La calibrazione di un termistore (o principalmente di qualsiasi sensore per quella materia) è un processo in due fasi:

  1. misurare i dati di calibrazione
  2. elaborare una legge di calibrazione che si adatti a tali dati

Il primo passo è il più difficile, e sfortunatamente quello con cui ho meno esperienza. Lo descriverò solo in termini molto generali. Il secondo passo è principalmente la matematica.

Misurazione dei dati di calibrazione

Devi riempire una tabella con coppie (T, R), cioè con valori di resistenza misurati a temperature note. I dati di calibrazione dovrebbero coprire l'intera gamma di temperature necessarie per l'uso effettivo. I punti dati al di fuori di questo intervallo non sono molto utili. Altrimenti, più punti dati hai, meglio è.

Al fine di misurare la resistenza del termistore, vi consiglio contro con un ohmetro. Utilizzare invece la stessa configurazione che verrà utilizzata per le effettive misurazioni post-calibrazione. In questo modo, eventuali errori sistematici nella misurazione della resistenza (come offset ADC ed errori di guadagno) verranno calibrati.

Per conoscere la temperatura, hai due opzioni: utilizzare punti di temperatura fissi (come, ad esempio, acqua bollente o ghiaccio che si scioglie) o utilizzare un termometro già calibrato. I punti fissi sono il gold standard della calibrazione della temperatura, ma è difficile farli nel modo giusto, e probabilmente non ne troverai molti all'interno della gamma di temperature a cui tieni.

L'uso di un termometro noto sarà probabilmente più semplice, ma ci sono ancora alcuni avvertimenti:

  • dovresti assicurarti che il termistore e il termometro di riferimento siano alla stessa temperatura
  • dovresti mantenere la temperatura stabile abbastanza a lungo affinché entrambi raggiungano l'equilibrio termico.

Mettere insieme entrambi vicini, all'interno di un involucro con elevata inerzia termica (un frigorifero o un forno) può aiutare qui.

Ovviamente, la precisione del termometro di riferimento è un fattore molto importante qui. Dovrebbe essere significativamente più accurato dei requisiti richiesti per l'accuratezza della misurazione finale.

Applicazione di una legge di calibrazione

Ora devi trovare una funzione matematica adatta ai tuoi dati. Questo si chiama "adattamento empirico". In linea di principio, qualsiasi legge può fare fino a quando si trova abbastanza vicino ai punti dati. I polinomi sono i preferiti qui, poiché l'adattamento converge sempre (perché la funzione è lineare rispetto ai suoi coefficienti) e sono economici da valutare, anche su un microcontrollore modesto. Come caso speciale, una regressione lineare può essere la legge più semplice che puoi provare.

Tuttavia, a meno che non siate interessati a un intervallo di temperature molto ristretto, la risposta di un termistore NTC è altamente non lineare e non molto suscettibile agli accoppiamenti polinomiali di basso grado. Tuttavia, un cambiamento strategico di variabili può rendere la tua legge quasi lineare e molto facile da adattare. Per questo, faremo una diversione attraverso la fisica di base ...

La conduzione elettrica in un termistore NTC è un processo attivato termicamente. La conduttanza può quindi essere modellata da un'equazione di Arrhenius :

G = G exp (−E a / (k B T))

dove G è chiamato "fattore pre-esponenziale", E a è l' energia di attivazione , k B è la costante di Boltzmann e T è la temperatura assoluta.

Questo può essere riorganizzato come una legge lineare:

1 / T = registro A + B (R)

dove B = k B / E a ; A = B log (G ); e log () è il logaritmo naturale.

Se prendi i tuoi dati di calibrazione e traccia 1 / T in funzione del log (R) (che è fondamentalmente un grafico Arrhenius con gli assi scambiati), noterai che è quasi, ma non del tutto, una linea retta. La deviazione dalla linearità deriva principalmente dal fatto che il fattore pre-esponenziale è leggermente dipendente dalla temperatura. La curva è tuttavia abbastanza liscia da poter essere facilmente adattata da un polinomio di basso grado:

1 / T = c 0 + c 1 registro (R) + c 2 registro (R) 2 + c 3 registro (R) 3 + ...

Se l'intervallo di temperature che ti interessa è abbastanza breve, un'approssimazione lineare potrebbe essere abbastanza buona per te. Dovresti quindi utilizzare il cosiddetto "modello β", dove il coefficiente β è 1 / B. Se si utilizza un polinomio di terzo grado, è possibile notare che il coefficiente c 2 può essere trascurato. Se lo trascuri, hai la famosa equazione di Steinhart-Hart .

In generale, maggiore è il grado del polinomio, migliore dovrebbe adattarsi ai dati. Ma se il grado è troppo alto, finirai per adattarti troppo . In ogni caso, il numero di parametri liberi nell'adattamento non dovrebbe mai superare il numero di punti dati. Se questi numeri sono uguali, allora la legge si adatterà esattamente ai dati , ma non hai modo di valutare la bontà di adattamento. Si noti che questo calcolatore termistore (collegato a in un commento) utilizza solo tre punti dati per fornire tre coefficienti. Questo è dio per una calibrazione approssimativa preliminare, ma non farei affidamento su di esso se avessi bisogno di precisione.

Non discuterò qui come eseguire effettivamente l'adattamento. Abbondano i pacchetti software per la creazione di dati arbitrari.


Grazie per la risposta ben dettagliata e spiegata. domanda secondaria; ho usato un sensore DS18B20 come fonte di lettura della temperatura e ho notato che la lettura del termistore è di circa 2,2 gradi. ho quindi aggiunto 2,2 gradi nel calcolo della temperatura del termistore. ora entrambe le letture di ds18b20 e termistore sono quasi le stesse. ho testato la variazione di temperatura nell'intervallo da 25 a 35 gradi e anche se il termistore era più sensibile alle variazioni di temperatura ma alla fine il risultato era quasi lo stesso. qual è il lato negativo di questo metodo che ho usato?
ElectronSurf,

2
@newbie: Non capisco "la lettura del termistore è di circa 2,2 gradi". Un termistore non fornisce una lettura in gradi. Vuoi dire che hai provato qualche legge di calibrazione (proveniente da dove?) Che ha dato letture di 2,2 ° C? Se questo è il caso, e questo offset è strettamente costante, l'approccio presenta l'inconveniente minore di avere una legge di conversione più complessa con una fase aritmetica aggiuntiva. Se l'offset non è strettamente costante, ripetere l'adattamento dovrebbe fornire risultati migliori.
Edgar Bonet,

11

Leggere il termistore è un po 'complicato. Il suddetto metodo di calibrazione, non esercita alcun rendimento per il rilevamento di errori, creerebbe due punti di una curva logaritmica (la curva di risposta del termistore.

Ciò significa che, per ogni 0,1 ° C di canale di temperatura, il corrispondente canale di resistenza varierà, a seconda dell'intervallo di temperatura. inserisci qui la descrizione dell'immagine

All'inizio, potresti notare un errore tra 2 e 5 ° C al di fuori della temperatura reale, ma nessun errore, solo una lettura errata.

Non pubblichi alcun dettaglio su come stai leggendo questo termistore, potrebbe essere Arduino? Devo dire che alcune librerie non funzionano affatto, quindi è necessario creare una funzione speciale per farlo.

Pubblica una spiegazione dettagliata su come caratterizzare e leggere un termistore. Il post è in spagnolo, ma nei tag del codice, tutte le spiegazioni in inglese.

Una volta ottenuti i coefficienti ABC, l'errore sarà di circa 0,1 ° C da un'altra misurazione, anche con un cavo LAN di 6 m di lunghezza.

Un test su 4 termistori Questo test ha letto contemporaneamente i 4 termistori, Puoi vedere una piccola differenza di temperatura da 2 di loro che stavo tenendo brevemente tra le dita.


@newbie Questo è l'approccio giusto. Se non riesci a seguire le istruzioni, rispondimi tra un giorno o giù di lì e cercherò il mio codice Arduino e cercherò i riferimenti che contiene e scriverò una risposta qui.
Piojo,

1
I collegamenti muoiono e la capacità di questa risposta di creare una soluzione in futuro dipende fortemente dal fatto che il collegamento rimanga attivo. Puoi aggiungere i passaggi alla tua risposta?
Keeta: ripristina Monica il

Copio e incollo la sezione di codice della risposta; // Questo è un codice di esempio su come leggere un termistore, la libreria "Thermimistor.h" là fuori considera solo beta // coerente e nel mio caso cedere a risultati errati, questo è un modo molto più accurato di leggere il // termistore , in caso di misurazioni dispari o errate, attenersi alla seguente procedura: // // Per ottenere i risultati acurrati per questo codice è necessario; // un multimetro, un termistore NTC, un'altra temperatura accurrata // misuratore di sonda. // Passaggio 1.- Imposta il multimetro sulla modalità di misurazione della resistenza
Alejandro Santiago,

// Passaggio 2.- Leggere e anotizzare la resistenza effettiva del termistore // e la temperatura effettiva (attendere 1 minuto per ottenere una misurazione stabile). // Acqua calda e una tazza. // Fase 3.- posizionare entrambi i sensori (termistore e sonda di temperatura in un // recipiente contenente acqua a temperatura ambiente). // In un'altra tazza scaldare dell'acqua. // Aggiungi acqua calda fino a quando riscaldi più di 10 ° C la sonda di temperatura, attendi // misura stabile e anota la temperatura e la resistenza. // Aggiungi più acqua per riscaldare l'elemento a 20 ° dalla prima misurazione. // Prendi nota della temperatura e resisti
Alejandro Santiago,

1
@newbie Se si dispone di un termistore NTC, è necessario calcolare le costanti A, B e C e collegarle all'equazione di Steinhart Hart per risolvere una temperatura da una resistenza. Per trovare queste costanti sono necessarie tre misure di temperatura / resistenza. (Le costanti differiscono per termistore e trovare le costanti è la tua calibrazione.) Questo articolo mostra come farlo, ma dal momento che utilizza la matrice matematica, suggerisco di trovare una calcolatrice online. thinksrs.com/downloads/pdfs/applicationnotes/…
piojo

9

Riempi una tazza con cubetti di ghiaccio e versa dell'acqua per riempire fino all'orlo. Dagli l'agitazione occasionale. Quando il ghiaccio inizia a sciogliersi sarai a 0 ° C. Attacca il sensore nell'acqua e fai una lettura.

Se il sensore è in grado di tollerarlo, lasciarlo cadere in un bollitore di acqua bollente. A livello del mare che ti darà una lettura di riferimento di 100 ° C.

Se è necessario ripensare il sensore per l'impermeabilizzazione, è necessario attendere un po 'di tempo affinché la lettura si stabilizzi.

schematico

simula questo circuito - Schema creato usando CircuitLab

Figura 1. Curva di calibrazione lineare semplice.

  • y1 è la resistenza, la tensione o la lettura ADC a 0 ° C.
  • y2 è la resistenza, la tensione o la lettura ADC a 100 ° C.

T=100yy1y2y1

Come indicato nei commenti, se si utilizza un termistore è necessario verificare la linearità del foglio dati. Se questo semplice approccio non è abbastanza buono, dovrai utilizzare un calcolo polinomiale o una tabella di ricerca in un microcontrollore.


3
Questo ti darà due punti, che puoi usare per calcolare la beta per quei due temp. La risposta in quell'intervallo non sarà per nulla lineare (supponendo che l'OP lo significhi quando lo chiama un "termistore"),
Scott Seidman,

1
@newbie: vedi l'aggiornamento.
Transistor

5
@newbie Come scrive Transistor alla fine, questo approccio potrebbe non essere abbastanza buono. Non riesco a immaginare che sarebbe mai abbastanza buono, francamente. L'unica cosa che questo approccio ti porterà è la ripetibilità (i presunti 40 ° C saranno sempre gli stessi supposti 40 ° C, ma in realtà potrebbe essere 20 ° C o 60 ° C).
Piojo,

2
L'acqua pura bolle a 100 ° C se la pressione è di 1,01325 bar o 1013,25 millibar o ectopascal. La pressione a livello del mare dipende dal tempo.
Uwe,

1
@novizio. Sembra utile. Se riesci a farlo funzionare, pubblica un codice di esempio nella tua domanda o come risposta. Sono sicuro che altri lo troverebbero più utile della mia risposta.
Transistor

2

I termometri lineari presentano un errore di guadagno e offset.

  • Le forniture bipolari avranno probabilmente un offset annullato a 0V.
  • i ponti a fornitura singola avranno un rapporto Vref o R di Vref o Vcc in cui l'offset viene annullato a quella temperatura di degnamento. Di solito questo è simmetrico, quindi corrisponderebbe al punto medio della gamma di design.
  • i termistori sono calibrati a 25 ° C con una curva di sensibilità specifica con 2 variabili.

  • per calibrarlo sono necessarie solo 2 misurazioni

    • Regolazione nulla in cui la tensione di errore = null = 0, Vt = Vref
    • guadagno regolare a T max
      • per un tipico ponte 4 R, che di solito è la temperatura del punto medio.
  • utilizzare un termometro migliore per la calibrazione o
    • usare acqua ghiacciata e acqua bollente per 0, 100'C
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.