Jaki jest najprostszy sposób kalibracji termistora?


11

Jako hobbysta, który nie ma dostępu do sprzętu laboratoryjnego, naprawdę nie wydaje mi się możliwe skalibrowanie termistora, który mam.

Oczywiście istnieją skalibrowane czujniki temperatury, takie jak DS18B20, ale termistory specjalnie na wolnych MCU, takich jak Aruino UNO (w porównaniu do nowych MCU), są szybsze.

Jakie mamy opcje kalibracji termistora bez użycia sprzętu laboratoryjnego?


1
Użyj skalibrowanego czujnika jako DS18B20, aby przyjąć charakterystykę termistora.
Janka

Co rozumiesz przez „snappier”? Nie wydaje się to dobrym uzasadnieniem, jeśli trzeba dokonać korekty programowej na termistorze, ale nie robi się to z DS18B20.
Elliot Alderson

Jeśli niepokoi Cię sekundowe opóźnienie DS18B20 przy pełnej rozdzielczości, skorzystaj z jednego z czujników monitorowania akumulatora, np. DS2438. Ma szybki czujnik temperatury na chipie.
Janka

2
@newbie Kalibracja temperatury, dla dokładności, jest ogólnie trudna. Niektóre zakresy są trudniejsze niż inne. Punkty zamrożenia powszechnie dostępnych materiałów mogą bardzo pomóc, tym bardziej, jeśli Twój asortyment obejmuje więcej takich materiałów. Ale dokładne odniesienia będą identyfikowalne ze standardami NIST lub DIN (lub podobnej grupy) przechowywanymi gdzieś w laboratorium i zarządzanymi przez fizyka lub dwóch. Pomoże Ci w tym pytanie, jeśli określisz zakres temperatur oraz dokładność i precyzję, których szukasz w tym zakresie.
jonk

1
@newbie Ale w domu? Poszukaj czystości, a następnie utwórz kombinacje lód / ciecz lub czyste kotły kondensacyjne. Na przykład lód zmieszany z wodą jest bardzo często używany - ale to, czy pomaga wystarczająco, może zależeć od twoich dokładności i pracy, do której jesteś gotowy. Możesz także użyć wrzącej wody lub kwasu siarkowego, który może skroplić się na dnie florenckiej kolby. (Użyłem obu.) Ale wyniki zależą również od zanieczyszczeń i zmian ciśnienia atmosferycznego oraz innych czynników. Twoje wymagania mają wiele do powiedzenia na temat tego, co można zasugerować w przypadku prób domowych.
jonk

Odpowiedzi:


5

Kalibracja termistora (lub w większości dowolnego czujnika w tym zakresie) to proces dwuetapowy:

  1. zmierzyć dane kalibracyjne
  2. opracować prawo kalibracji, które pasuje do tych danych

Pierwszy krok jest najtrudniejszy i niestety ten, z którym mam najmniej doświadczenia. Opiszę to wtedy tylko w bardzo ogólny sposób. Drugi krok to głównie matematyka.

Pomiar danych kalibracyjnych

Musisz wypełnić tabelę parami (T, R), tj. Wartościami rezystancji zmierzonymi w znanych temperaturach. Twoje dane kalibracyjne powinny obejmować cały zakres temperatur, których będziesz potrzebować podczas faktycznego użytkowania. Punkty danych poza tym zakresem nie są zbyt przydatne. W przeciwnym razie im więcej masz punktów danych, tym lepiej.

W celu zmierzenia rezystancji termistora, radzę przeciwko użyciu omomierza. Zamiast tego użyj tej samej konfiguracji, której będziesz używać do rzeczywistych pomiarów po kalibracji. W ten sposób wszelkie systematyczne błędy pomiaru rezystancji (takie jak przesunięcie ADC i błędy wzmocnienia) zostaną skalibrowane.

Aby poznać temperaturę, masz dwie opcje: albo użyj stałych punktów temperatury (np. Wrzącej wody lub topniejącego lodu), albo użyj już skalibrowanego termometru. Punkty stałe są złotym standardem kalibracji temperatury, ale trudno jest je odpowiednio ustawić i prawdopodobnie nie znajdziesz wielu z nich w zakresie temperatur, na których Ci zależy.

Korzystanie ze znanego dobrego termometru prawdopodobnie będzie łatwiejsze, ale wciąż istnieje kilka zastrzeżeń:

  • powinieneś upewnić się, że termistor i termometr referencyjny mają tę samą temperaturę
  • powinieneś utrzymywać tę temperaturę na stabilnym poziomie wystarczająco długo, aby oba osiągnęły równowagę termiczną.

Pomocne może być umieszczenie obu blisko siebie, w obudowie o wysokiej bezwładności cieplnej (lodówka lub piekarnik).

Oczywiście dokładność termometru odniesienia jest tutaj bardzo ważnym czynnikiem. Powinno być znacznie dokładniejsze niż wymagania dotyczące końcowej dokładności pomiaru.

Dopasowanie prawa kalibracji

Teraz musisz znaleźć funkcję matematyczną, która pasuje do twoich danych. Nazywa się to „dopasowaniem empirycznym”. Zasadniczo każde prawo może zrobić tak długo, jak długo leży wystarczająco blisko punktów danych. Wielomiany są tutaj ulubionym, ponieważ dopasowanie zawsze jest zbieżne (ponieważ funkcja jest liniowa w stosunku do jej współczynników) i są tanie do oceny, nawet na niskim mikrokontrolerze. Jako szczególny przypadek regresja liniowa może być najprostszym prawem, jakie można wypróbować.

Jednak, chyba że interesuje Cię bardzo wąski zakres temperatur, odpowiedź termistora NTC jest wysoce nieliniowa i niezbyt podatna na pasma wielomianowe niskiego stopnia. Jednak strategiczna zmiana zmiennych może uczynić twoje prawo prawie liniowym i bardzo łatwym do dopasowania. W tym celu zajmiemy się podstawową fizyką ...

Przewodnictwo elektryczne w termistorze NTC jest procesem aktywowanym termicznie. Przewodność można następnie modelować za pomocą równania Arrheniusa :

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

gdzie G nazywa się „współczynnikiem pre wykładniczym”, E a jest energią aktywacji , k B jest stałą Boltzmanna , a T jest temperaturą absolutną.

Można to zmienić na liniowe:

1 / T = A + B log (R)

gdzie B = k B / E a ; A = B log (G ); a log () jest logarytmem naturalnym.

Jeśli weźmiesz swoje dane kalibracyjne i wykreślisz 1 / T jako funkcję log (R) (która jest zasadniczo wykresem Arrheniusa z zamienionymi osiami), zauważysz, że jest to prawie, ale nie całkiem, linia prosta. Odejście od liniowości wynika głównie z faktu, że czynnik wykładniczy jest nieznacznie zależny od temperatury. Krzywa jest jednak wystarczająco gładka, aby bardzo łatwo dopasować ją do wielomianu niskiego stopnia:

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

Jeśli interesujący Cię zakres temperatur jest wystarczająco krótki, przybliżenie liniowe może być dla Ciebie wystarczające. Użyłbyś wtedy tak zwanego „modelu β”, w którym współczynnik β wynosi 1 / B. Jeśli użyjesz wielomianu trzeciego stopnia, możesz zauważyć, że współczynnik c 2 można pominąć. Jeśli go zaniedbasz, uzyskasz słynne równanie Steinharta – Harta .

Ogólnie rzecz biorąc, im wyższy stopień wielomianu, tym lepiej powinien on pasować do danych. Ale jeśli stopień jest zbyt wysoki, skończysz na przepracowaniu . W każdym razie liczba wolnych parametrów w dopasowaniu nigdy nie powinna przekraczać liczby punktów danych. Jeśli te liczby są równe, prawo dokładnie dopasuje dane , ale nie ma sposobu, aby ocenić poprawność dopasowania. Należy pamiętać, że ten kalkulator termistora (powiązany z komentarzem) wykorzystuje tylko trzy punkty danych w celu zapewnienia trzech współczynników. To bóg do wstępnej kalibracji przybliżonej, ale nie polegałbym na niej, gdybym potrzebował dokładności.

Nie będę tutaj omawiać, jak właściwie wykonać dopasowanie. Mnóstwo pakietów oprogramowania do dopasowywania dowolnych danych.


Dzięki za szczegółową i wyjaśnioną odpowiedź. pytanie poboczne; Użyłem czujnika DS18B20 jako źródła odczytu temperatury i zauważyłem, że odczyt termistora wynosi około 2,2 stopnia. Następnie dodałem 2,2 stopnia w obliczeniach temperatury termistora. teraz oba odczyty z ds18b20 i termistora są prawie takie same. Testowałem zmianę temperatury w zakresie od 25 do 35 stopni i chociaż termistor był bardziej wrażliwy na zmiany temperatury, ale na końcu wynik był prawie taki sam. jaka jest wada tej metody, której użyłem?
ElectronSurf

2
@newbie: Nie rozumiem „odczyt termistora wynosi około 2,2 stopnia”. Termistor nie podaje odczytów w stopniach. Czy masz na myśli, że wypróbowałeś jakieś prawo kalibracji (skąd?), Które dało odczyt 2,2 ° C? Jeśli tak jest, a to przesunięcie jest ściśle stałe, podejście ma niewielką wadę polegającą na bardziej złożonym prawie konwersji z dodatkowym krokiem arytmetycznym. Jeśli przesunięcie nie jest ściśle stałe, ponowne wykonanie dopasowania powinno dać lepsze wyniki.
Edgar Bonet

11

Czytanie termistora jest trochę trudne. Powyższa metoda kalibracji, nie poddaje się wykrywaniu błędów, stworzyłaby dwa punkty krzywej logarytmicznej (krzywa odpowiedzi termistora).

Oznacza to, że dla każdej zmiany temperatury o 0,1 ° C odpowiednia zmiana rezystancji będzie się różnić w zależności od zakresu temperatury. wprowadź opis zdjęcia tutaj

Na początku możesz wyglądać na błąd o około 2 do 5 ° C poza rzeczywistą temperaturą, ale nie ma błędu, tylko zły odczyt.

Nie zamieszczasz żadnych szczegółów na temat tego, jak czytasz ten termistor, może być Arduino? Muszę powiedzieć, że niektóre biblioteki w ogóle nie działają, więc musisz stworzyć specjalną funkcję, aby to zrobić.

Opublikuj szczegółowe wyjaśnienie, jak scharakteryzować i odczytać termistor. Post jest w języku hiszpańskim, ale w tagach kodu, wszystkie objaśnienia w języku angielskim.

Po uzyskaniu współczynników ABC błąd będzie wynosił około 0,1 ° C na podstawie innego pomiaru, nawet przy długości 6 m przewodu LAN.

Test na 4 termistorach W tym teście odczytano jednocześnie 4 termistory. Widać niewielką różnicę temperatur w porównaniu z 2 z nich, które krótko trzymałem w palcach.


@newbie To jest właściwe podejście. Jeśli nie możesz postępować zgodnie z instrukcjami, odpowiedz mi za około jeden dzień, a ja sprawdzę mój kod arduino, sprawdzę zawarte w nim referencje i napiszę odpowiedź tutaj.
piojo

1
Linki umierają, a zdolność tej odpowiedzi do stworzenia rozwiązania w przyszłości jest wysoce zależna od tego, czy łącze pozostanie aktywne. Czy możesz dodać kroki do swojej odpowiedzi?
Keeta

Kopiuję i wklejam sekcję kodu odpowiedzi; // To jest przykładowy kod, jak czytać termistor, „Thermimistor.h” Lib tam akceptuje tylko Beta // spójność i w moim przypadku poddaje się błędnym wynikom, jest to bardziej dokładny sposób na odczytanie termistora // , w przypadku nieparzystych lub niewłaściwych pomiarów wykonaj następujące czynności: // Aby uzyskać dokładne wyniki dla tego kodu, będziesz potrzebować; // miernik uniwersalny, termistor NTC, inny dokładny pomiar temperatury // miernik sondy. // Krok 1. - Ustaw multimiter w trybie pomiaru oporu
Alejandro Santiago,

// Krok 2. - Odczytaj i zanotuj rzeczywistą rezystancję termistora // i rzeczywistą temperaturę (poczekaj 1 minutę, aby uzyskać stabilny pomiar). // Trochę ciepłej wody i kubek. // Krok 3. - umieść oba czujniki (termistor i czujnik temperatury w // odbiorniku zawierającym wodę o temperaturze otoczenia). // W innej filiżance podgrzej trochę wody. // Dodaj gorącą wodę, aż podgrzejesz czujnik temperatury powyżej 10 ° C, poczekaj na // stabilny pomiar i zanotuj temperaturę i rezystancję. // Dodaj więcej wody, aby podgrzać element o 20 ° od pierwszego pomiaru. // Zanotuj temperaturę i oprzyj się
Alejandro Santiago

1
@newbie Jeśli masz termistor NTC, musisz obliczyć stałe A, B i C i podłączyć je do równania Hart Hartha, aby rozwiązać temperaturę od rezystancji. Aby znaleźć te stałe, potrzebujesz trzech pomiarów temperatury / rezystancji. (Stałe różnią się w zależności od termistora, a znalezienie stałych jest twoją kalibracją.) W tym artykule pokazano, jak to zrobić, ale ponieważ używa matematyki matematycznej, sugeruję znalezienie kalkulatora online. thinksrs.com/downloads/pdfs/applicationnotes/…
piojo

9

Napełnij kubek kostkami lodu i wlej wodę, aby wypełnić brzeg. Od czasu do czasu mieszaj. Kiedy lód zacznie się topić, osiągniesz temperaturę 0 ° C. Umieść czujnik w wodzie i zrób odczyt.

Jeśli twój czujnik może to tolerować, upuść go w czajniku z wrzącą wodą. Na poziomie morza, który da ci odczyt odniesienia 100 ° C.

Jeśli potrzebujesz wykonać termokurczliwy czujnik w celu uszczelnienia, będziesz musiał poświęcić trochę czasu na ustabilizowanie się odczytu.

schematyczny

symulacja tego obwodu - Schemat utworzony przy użyciu CircuitLab

Rysunek 1. Prosta krzywa kalibracji liniowej.

  • y1 to rezystancja, napięcie lub odczyt ADC przy 0 ° C.
  • y2 oznacza odczyt rezystancji, napięcia lub ADC przy 100 ° C.

T.=100y-y1y2)-y1

Jak wskazano w komentarzach, jeśli używasz termistora, musisz sprawdzić arkusz danych pod kątem liniowości. Jeśli to proste podejście nie jest wystarczająco dobre, będziesz musiał użyć obliczeń wielomianowych lub tabeli przeglądowej w mikrokontrolerze.


3
To da ci dwa punkty, których możesz użyć do obliczenia beta dla tych dwóch pracowników. Odpowiedź w tym zakresie nie będzie prawie liniowa (zakładając, że OP oznacza to, gdy nazywa to „termistorem”),
Scott Seidman

1
@newbie: Zobacz aktualizację.
Tranzystor

5
@newbie Jak pisze Tranzystor na końcu, to podejście może nie być wystarczająco dobre. Szczerze mówiąc, nie mogę sobie wyobrazić, żeby to kiedykolwiek było wystarczająco dobre. Jedyne, co przyniesie to podejście, to powtarzalność (przypuszczalnie 40 ° C zawsze będzie takie samo, jak przypuszczalne 40 ° C, ale tak naprawdę może to być 20 ° C lub 60 ° C).
piojo

2
Czysta woda wrze w temperaturze 100 ° C, jeśli ciśnienie wynosi 1,01325 barów lub 1013.25 milibarów lub hektopaskali. Ciśnienie na poziomie morza zależy od pogody.
Uwe

1
@Nowicjusz. To wygląda na przydatne. Jeśli go uruchomisz, opublikuj przykładowy kod w swoim pytaniu lub w odpowiedzi. Jestem pewien, że inni uznaliby to za bardziej przydatne niż moja odpowiedź.
Tranzystor

2

Zlinearyzowane termometry mają błąd wzmocnienia i przesunięcia.

  • Zasoby bipolarne najprawdopodobniej będą zerowane przy zerowym napięciu 0 V.
  • pojedyncze mosty zasilające będą miały pewien stosunek Vref lub R Vref lub Vcc, gdzie przesunięcie jest zerowane w tej temperaturze. Zwykle jest to symetryczne, więc odpowiada środkowi zakresu twojego projektu.
  • termistory są kalibrowane w temperaturze 25 ° C za pomocą określonej krzywej czułości z 2 zmiennymi.

  • aby go skalibrować, potrzebujesz tylko 2 pomiarów

    • Ustaw zero, gdzie błąd napięcia = null = 0, Vt = Vref
    • regulacja wzmocnienia przy T max
      • dla typowego mostu 4 R, czyli zwykle temperatury w punkcie środkowym.
  • użyj lepszego termometru do kalibracji lub
    • używać wody z lodem i wrzącej wody do 0, 100'C
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.