Apa cara paling sederhana untuk mengkalibrasi termistor?

11

Sebagai seorang hobiis yang tidak memiliki akses ke peralatan lab, sepertinya sangat mustahil bagi saya untuk dapat mengkalibrasi termistor yang saya miliki.

Tentu saja ada sensor suhu yang dikalibrasi seperti DS18B20, tetapi termistor khusus pada MCU lambat seperti Aruino UNO (dibandingkan dengan MCU baru) lebih cepat.

Opsi apa yang kami miliki untuk mengkalibrasi termistor tanpa menggunakan peralatan lab?

ElectronSurf
sumber
1
Gunakan sensor yang dikalibrasi sebagai DS18B20 untuk mengambil karakteristik termistor.
Janka
Apa yang Anda maksud dengan "snappier"? Itu tidak terdengar seperti pembenaran yang baik jika Anda perlu melakukan koreksi perangkat lunak pada termistor tetapi Anda tidak melakukannya dengan DS18B20.
Elliot Alderson
Jika keterlambatan satu detik DS18B20 pada resolusi penuh menjadi perhatian Anda, gunakan salah satu sensor onewire monitor baterai, misalnya DS2438. Ini memiliki sensor suhu cepat pada chip.
Janka
2
@newbie Kalibrasi suhu, untuk akurasi, umumnya sulit. Beberapa rentang lebih sulit daripada yang lain. Titik beku dari bahan yang tersedia secara umum dapat banyak membantu, terlebih lagi jika jangkauan Anda mencakup lebih dari itu. Tetapi referensi yang akurat akan dapat dilacak ke standar NIST atau DIN (atau kelompok serupa) yang disimpan di laboratorium di suatu tempat dan dikelola oleh satu atau dua fisikawan. Ini akan membantu pertanyaan Anda jika Anda menentukan kisaran suhu dan keakuratan dan ketepatan yang Anda cari pada rentang itu.
Jonk
1
@newbie Tapi di rumah? Carilah kemurnian dan kemudian buat kombinasi es / cairan atau boiler kondensasi murni. Misalnya, es yang dicampur dengan air sangat umum digunakan - tetapi apakah itu cukup membantu atau tidak tergantung pada angka akurasi Anda dan pekerjaan yang ingin Anda tuju. Anda juga dapat menggunakan air mendidih atau asam sulfat yang dibiarkan mengembun di dasar labu florence. (Saya sudah menggunakan keduanya.) Tetapi hasilnya juga tergantung pada pengotor dan variasi tekanan atmosfer dan faktor lainnya. Persyaratan Anda harus banyak bergantung pada apa yang dapat disarankan untuk upaya homebrew.
jonk

Jawaban:

5

Mengkalibrasi termistor (atau sebagian besar sensor apa pun dalam hal ini) adalah proses dua langkah:

  1. mengukur data kalibrasi
  2. menyusun undang-undang kalibrasi yang sesuai dengan data itu

Langkah pertama adalah yang paling sulit, dan sayangnya yang saya punya pengalaman paling sedikit. Saya kemudian hanya akan menggambarkannya dalam istilah yang sangat umum. Langkah kedua sebagian besar matematika.

Mengukur data kalibrasi

Anda harus mengisi tabel dengan pasangan (T, R), yaitu dengan nilai resistansi yang diukur pada suhu yang diketahui. Data kalibrasi Anda harus mencakup seluruh kisaran suhu yang akan Anda perlukan dalam penggunaan aktual. Poin data jalan keluar dari rentang ini tidak terlalu berguna. Jika tidak, semakin banyak titik data yang Anda miliki, semakin baik.

Untuk mengukur resistansi termistor, saya menyarankan Anda untuk tidak menggunakan ohmmeter. Gunakan pengaturan yang sama yang akan Anda gunakan untuk pengukuran pasca-kalibrasi yang sebenarnya. Dengan cara ini, setiap kesalahan sistematis dalam pengukuran resistansi (seperti offset offset dan gain ADC) akan dikalibrasi.

Untuk mengetahui suhu, Anda memiliki dua opsi: baik menggunakan titik suhu tetap (seperti, misalnya, air mendidih atau es yang mencair) atau menggunakan termometer yang sudah dikalibrasi. Poin tetap adalah standar emas dari kalibrasi suhu, tetapi sulit untuk memperbaikinya, dan Anda mungkin tidak akan menemukan banyak dari mereka dalam kisaran suhu yang Anda pedulikan.

Menggunakan termometer yang dikenal baik kemungkinan akan lebih mudah, tetapi masih ada beberapa peringatan:

  • Anda harus memastikan termistor dan termometer referensi berada pada suhu yang sama
  • Anda harus menjaga suhu itu cukup lama untuk keduanya untuk mencapai kesetimbangan termal.

Menempatkan keduanya berdekatan, di dalam selungkup dengan inersia termal tinggi (kulkas atau oven) dapat membantu di sini.

Jelas, keakuratan termometer referensi adalah faktor yang sangat penting di sini. Seharusnya secara signifikan lebih akurat bahwa persyaratan yang Anda miliki pada akurasi pengukuran akhir Anda.

Menyesuaikan hukum kalibrasi

Sekarang Anda perlu menemukan fungsi matematika yang sesuai dengan data Anda. Ini disebut "empiris fit". Pada prinsipnya, hukum apa pun dapat dilakukan selama ia cukup dekat dengan poin data. Polinomial adalah favorit di sini, karena fit selalu menyatu (karena fungsinya linear relatif terhadap koefisiennya) dan harganya murah untuk dievaluasi, bahkan pada mikrokontroler yang rendah. Sebagai kasus khusus, regresi linier mungkin merupakan hukum paling sederhana yang dapat Anda coba.

Namun, kecuali Anda tertarik pada kisaran suhu yang sangat sempit, respons termistor NTC sangat tidak linier dan tidak terlalu cocok untuk polinomial tingkat rendah. Namun, perubahan variabel yang strategis dapat membuat hukum Anda hampir linier dan sangat mudah disesuaikan. Untuk ini, kami akan mengambil pengalihan melalui beberapa fisika dasar ...

Konduksi listrik dalam termistor NTC adalah proses yang diaktifkan secara termal. Konduktansi kemudian dapat dimodelkan dengan persamaan Arrhenius :

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

di mana G disebut "faktor pra-eksponensial", E a adalah energi aktivasi , k B adalah konstanta Boltzmann , dan T adalah suhu absolut.

Ini dapat disusun kembali sebagai hukum linear:

1 / T = A + B log (R)

di mana B = k B / E a ; A = B log (G ); dan log () adalah logaritma natural.

Jika Anda mengambil data kalibrasi dan plot 1 / T sebagai fungsi log (R) (yang pada dasarnya merupakan plot Arrhenius dengan kapak ditukar), Anda akan melihat bahwa itu hampir, tetapi tidak cukup, garis lurus. Penyimpangan dari linearitas terutama berasal dari fakta bahwa faktor pra-eksponensial sedikit bergantung pada suhu. Namun demikian kurva tersebut cukup halus sehingga sangat mudah dipasang oleh polinomial derajat rendah:

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

Jika kisaran suhu yang Anda minati cukup pendek, perkiraan linier mungkin cukup baik untuk Anda. Anda kemudian akan menggunakan apa yang disebut "model β", di mana koefisien β adalah 1 / B. Jika Anda menggunakan polinomial tingkat ketiga, Anda mungkin memperhatikan bahwa koefisien c 2 dapat diabaikan. Jika Anda mengabaikannya, Anda kemudian memiliki persamaan Steinhart-Hart yang terkenal .

Secara umum, semakin tinggi derajat polinomial, semakin baik data tersebut cocok. Tetapi jika tingkatannya terlalu tinggi Anda akan berakhir overfitting . Dalam kasus apa pun, jumlah parameter bebas dalam fit tidak boleh melebihi jumlah titik data. Jika angka-angka ini sama, maka hukum akan mencocokkan data dengan tepat , tetapi Anda tidak memiliki cara untuk menilai kebaikan sesuai. Perhatikan bahwa kalkulator termistor ini (ditautkan dalam komentar) hanya menggunakan tiga titik data untuk memberikan tiga koefisien. Ini adalah dewa untuk perkiraan awal kalibrasi, tetapi saya tidak akan bergantung padanya jika saya membutuhkan akurasi.

Saya tidak akan membahas di sini cara benar-benar melakukan fit. Paket perangkat lunak untuk membuat data sewenang-wenang cocok berlimpah.

Edgar Bonet
sumber
Terima kasih atas jawaban yang terinci dan jelas. pertanyaan sampingan; Saya menggunakan sensor DS18B20 sebagai sumber pembacaan suhu saya dan memperhatikan pembacaan termistor sekitar 2.2 derajat. Saya kemudian menambahkan bahwa 2,2 derajat dalam perhitungan suhu termistor. sekarang kedua bacaan dari ds18b20 dan termistor hampir sama. saya menguji perubahan suhu dalam kisaran 25 hingga 35 derajat dan meskipun termistor lebih responsif terhadap perubahan suhu tetapi pada hasil akhirnya hampir sama. apa sisi bawah dari metode ini yang saya gunakan?
ElectronSurf
2
@newbie: Saya tidak mengerti "bacaan termistor sekitar 2.2 derajat off". Termistor tidak memberikan bacaan dalam derajat. Apakah yang Anda maksudkan adalah Anda mencoba beberapa hukum kalibrasi (berasal dari mana?) Yang memberikan bacaan 2.2 ° C? Jika ini masalahnya, dan offset ini benar-benar konstan, pendekatan Anda memiliki sedikit kelemahan dengan memiliki hukum konversi yang lebih kompleks dengan langkah aritmatika tambahan. Jika offset tidak sepenuhnya konstan, mengulangi pemasangan akan memberikan Anda hasil yang lebih baik.
Edgar Bonet
11

Membaca Thermistor sedikit rumit. Metode kalibrasi di atas, tidak menghasilkan hasil untuk deteksi kesalahan, Ini akan membuat dua titik kurva logaritmik (kurva respons termistor.

Ini berarti, untuk setiap 0,1 ° C perubahan suhu, perubahan koresponden pada resistensi akan bervariasi, tergantung pada kisaran suhu. masukkan deskripsi gambar di sini

Pada awalnya, Anda mungkin melihat kesalahan sekitar 2 hingga 5 ° C dari suhu sebenarnya, namun tidak ada kesalahan, hanya pembacaan yang buruk.

Anda tidak memposting rincian tentang bagaimana Anda membaca termistor ini, mungkin Arduino? Saya harus mengatakan, beberapa perpustakaan tidak berfungsi sama sekali, jadi Anda harus membuat fungsi utama untuk melakukannya.

Posting penjelasan rinci tentang cara mengkarakterisasi dan membaca termistor. Posting dalam bahasa Spanyol, tetapi dalam tag kode, semua penjelasan dalam bahasa Inggris.

Setelah Anda mendapatkan koefisien ABC, kesalahan Anda akan menjadi sekitar 0,1 ° C dari pengukuran lain, bahkan dalam jangka panjang 6 m dari kawat LAN.

Tes pada 4 termistor Tes ini membaca pada saat yang sama 4 termistor, Anda dapat melihat perbedaan kecil dalam suhu dari 2 dari mereka yang saya pegang sebentar di jari saya.

Alejandro Santiago
sumber
@newbie Ini adalah pendekatan yang tepat. Jika Anda tidak dapat mengikuti instruksi, balas kepada saya dalam sehari atau lebih dan saya akan mencari kode arduino saya dan mencari referensi yang ada di dalamnya dan menulis jawaban di sini.
piojo
1
Tautan mati, dan kemampuan jawaban ini untuk membuat solusi di masa mendatang sangat bergantung pada tautan yang tetap aktif. Bisakah Anda menambahkan langkah-langkah ke jawaban Anda?
Keeta - mengembalikan Monica
Saya menyalin dan menempelkan bagian kode dari jawaban; // Ini adalah contoh kode tentang cara membaca termistor, "Thermimistor.h" Lib di luar sana hanya menerima Beta // koefisien dan dalam kasus saya menghasilkan untuk menggabungkan hasil, ini cara yang lebih mengakuisisi cara membaca // termistor , jika Anda memiliki pengukuran aneh atau salah, harap ikuti langkah-langkah ini: // // Untuk mendapatkan hasil yang akurat untuk kode ini, Anda perlu; // multymeter, termistor NTC, suhu meter // probe akurat lainnya. // Langkah 1.- Tetapkan multimiter pada mode pengukuran resistensi
Alejandro Santiago
// Langkah 2.- Baca dan beri anotasi resistensi termistor sebenarnya // dan suhu aktual (biarkan 1 menit untuk mendapatkan pengukuran yang stabil). // Air panas dan gelas. // Langkah 3.- tempatkan kedua sensor (Thermistor dan probe suhu di // penerima yang berisi air pada suhu sekitar). // Di cangkir lain, panaskan air. // Tambahkan air panas sampai Anda memanaskan lebih dari 10 ° C probe temp, tunggu // pengukuran stabil dan anotasi suhu dan resistansi. // Tambahkan lebih banyak air untuk memanaskan elemen 20 ° dari pengukuran pertama. // Catat suhu dan tahan
Alejandro Santiago
1
@newbie Jika Anda memiliki termistor NTC, Anda perlu menghitung konstanta A, B, dan C dan memasukkannya ke dalam Persamaan Steinhart Hart untuk menyelesaikan suhu dari hambatan. Anda memerlukan tiga pengukuran suhu / ketahanan untuk menemukan konstanta ini. (Konstanta berbeda per termistor, dan menemukan konstanta adalah kalibrasi Anda.) Artikel ini menunjukkan cara melakukannya, tetapi karena menggunakan matriks matematika, saya sarankan mencari kalkulator online. thinksrs.com/downloads/pdfs/applicationnotes/...
piojo
9

Isi cangkir dengan es batu dan tuangkan ke dalam air hingga penuh. Aduk sesekali. Saat es mulai mencair, Anda akan berada pada 0 ° C. Tempelkan sensor ke dalam air dan baca.

Jika sensor Anda bisa menerimanya, masukkan ke dalam ketel berisi air mendidih. Di permukaan laut itu akan memberi Anda bacaan referensi 100 ° C.

Jika Anda perlu memanaskan sensor Anda agar tahan air, Anda harus meluangkan waktu agar bacaan stabil.

skema

mensimulasikan rangkaian ini - Skema dibuat menggunakan CircuitLab

Gambar 1. Kurva kalibrasi linier sederhana.

  • y1 adalah hambatan, tegangan atau pembacaan ADC pada 0 ° C.
  • y2 adalah tahanan, tegangan atau pembacaan ADC pada 100 ° C.

T=100y-y1y2-y1

Seperti yang ditunjukkan dalam komentar, jika Anda menggunakan termistor, Anda perlu memeriksa datasheet untuk linearitas. Jika pendekatan sederhana ini tidak cukup baik Anda harus menggunakan perhitungan polinomial atau tabel pencarian di pengontrol mikro.

Transistor
sumber
3
Ini akan memberi Anda dua poin, yang dapat Anda gunakan untuk menghitung beta untuk dua temps. Respons dalam kisaran itu tidak akan mendekati linier (dengan asumsi OP berarti ketika dia menyebutnya "termistor"),
Scott Seidman
1
@newbie: Lihat pembaruan.
Transistor
5
@newbie Sebagai Transistor menulis di akhir, pendekatan ini mungkin tidak cukup baik. Saya tidak bisa membayangkan itu akan menjadi cukup baik, terus terang. Satu-satunya pendekatan yang akan Anda dapatkan adalah pengulangan (seharusnya 40 ° C akan selalu sama dengan 40 ° C, tetapi mungkin benar-benar 20 ° C atau 60 ° C).
piojo
2
Air murni mendidih pada 100 ° C jika tekanannya 1.01325 bar atau 1013.25 millibar atau hektopascal. Tekanan di permukaan laut tergantung pada cuaca.
Uwe
1
@newbie. Itu terlihat bermanfaat. Jika Anda membuatnya berfungsi maka posting beberapa kode sampel ke pertanyaan Anda atau sebagai jawaban. Saya yakin orang lain akan merasa lebih bermanfaat daripada jawaban saya.
Transistor
2

Termometer linierisasi memiliki gain & offset error.

  • Persediaan bipolar kemungkinan akan diimbangi dibatalkan pada 0V.
  • jembatan suplai tunggal akan memiliki beberapa rasio Vref atau R dari Vref atau Vcc di mana offset dibatalkan pada suhu berkenan itu. Biasanya ini simetris, sehingga akan sesuai dengan titik tengah rentang desain Anda.
  • termistor dikalibrasi pada 25'C dengan kurva sensitivitas spesifik dengan 2 variabel.

  • untuk mengkalibrasi, Anda hanya perlu 2 pengukuran

    • Null sesuaikan dimana voltase kesalahan = null = 0, Vt = Vref
    • gain sesuaikan pada T maks
      • untuk jembatan 4 R yang khas, biasanya titik tengah temp.
  • gunakan termometer yang lebih baik untuk kalibrasi atau
    • gunakan air es dan air mendidih untuk 0, 100'C
Tony Stewart Sunnyskyguy EE75
sumber