Який найпростіший спосіб калібрувати термістор?


11

Як любитель, який не має доступу до лабораторного обладнання, мені справді здається неможливим калібрувати термістор, який у мене є.

Звичайно, є калібровані датчики температури на зразок DS18B20, але термістори, спеціально на повільних MCU, такі як Aruino UNO (порівняно з новими MCU), є швидкішими.

Які у нас є варіанти калібрування термістора без використання лабораторного обладнання?


1
Використовуйте калібрований датчик як DS18B20, щоб взяти характеристику термістора.
Янка

Що ви маєте на увазі під "snappier"? Це не здається гарним обґрунтуванням, якщо вам потрібно зробити корекцію програмного забезпечення на термісторі, але у вас немає DS18B20.
Елліот Олдерсон

Якщо затримка DS18B20 на повну роздільну здатність викликає занепокоєння, скористайтеся одним з однопроводних датчиків монітора акумулятора, наприклад, DS2438. Він має швидкий датчик температури на мікросхемі.
Янка

2
@newbie Калібрування температури для точності, як правило, важко. Деякі діапазони складніші за інші. Точки заморожування загальнодоступних матеріалів можуть допомогти дуже багато, тим більше, якщо ваш асортимент включає більше таких. Але точні посилання будуть простежуватися за стандартами NIST або DIN (або подібною групою), які зберігаються десь у лабораторії та керуються фізиком або двома. Це допоможе у вашому питанні, якщо ви вказали температурний діапазон, а також точність і точність, яку ви шукаєте за цей діапазон.
jonk

1
@newbie Але вдома? Шукайте чистоту, а потім створюйте комбінації з льодом / рідиною або ще чисті конденсаційні котли. Наприклад, дуже часто використовується лід, змішаний з водою - але чи достатньо це допомагає, може залежати від ваших показників точності та роботи, яку ви готові піти. Можна також використовувати окріп або сірчану кислоту, дозволену конденсуватися на дні фляренної колби. (Я використовував і те, і інше). Але результати також залежать від домішок, зміни атмосферного тиску та інших факторів. Ваші вимоги багато в чому залежать від того, що може бути запропоновано для спроб домашнього пива.
jonk

Відповіді:


5

Калібрування термістора (або здебільшого будь-якого датчика для цього питання) - це двоетапний процес:

  1. виміряти дані калібрування
  2. розробити закон калібрування, який відповідає цим даним

Перший крок - найскладніший, і, на жаль, той, з ким у мене є найменший досвід. Тоді я опишу це лише в дуже загальних рисах. Другий крок - це здебільшого математика.

Вимірювання даних калібрування

Ви повинні заповнити таблицю парами (T, R), тобто зі значеннями опору, виміряними при знаних температурах. Ваші дані калібрування повинні охоплювати весь діапазон температур, який вам знадобиться для фактичного використання. Вихід точки з цього діапазону не дуже корисний. В іншому випадку, чим більше точок даних у вас є, тим краще.

Для того щоб виміряти опір терморезистора, я раджу вам з допомогою омметра. Замість цього використовуйте ту саму настройку, яку ви будете використовувати для фактичних вимірювань після калібрування. Таким чином, будь-які систематичні помилки в вимірюванні опору (наприклад, зміщення АЦП та помилки посилення) будуть калібровані.

Щоб знати температуру, у вас є два варіанти: або використовувати фіксовані температури температури (наприклад, окріп або талий лід), або використовувати вже калібрований термометр. Фіксовані точки - це золотий стандарт калібрування температури, але важко їх правильно виправити, і ви, швидше за все, не знайдете багатьох з них у межах діапазону температур, який вам цікавий.

Використовувати відомий хороший термометр, ймовірно, буде простіше, але є ще кілька застережень:

  • ви повинні переконатися, що термістор та опорний термометр знаходяться у однаковій температурі
  • вам слід тримати цю температуру стабільно досить довго, щоб обидва могли досягти теплової рівноваги.

Тут може допомогти розміщення обох поблизу всередині шафи з високою тепловою інерцією (холодильник або духовка).

Очевидно, точність опорного термометра тут є дуже важливим фактором. Слід бути значно точнішим, ніж вимоги, що пред'являються до вашої кінцевої точності вимірювання.

Встановлення закону калібрування

Тепер вам потрібно знайти математичну функцію, яка відповідає вашим даним. Це називається "емпіричним пристосуванням". В принципі, будь-який закон може виконувати, якщо він знаходиться досить близько до точок даних. Поліноми тут є улюбленим, оскільки прилягання завжди сходяться (оскільки функція лінійна відносно її коефіцієнтів), і оцінити їх дешево навіть на низькоконтролері. Як особливий випадок, лінійна регресія може бути найпростішим законом, який ви можете спробувати.

Однак, якщо ви не зацікавлені в дуже вузькому діапазоні температур, реакція термістора NTC є дуже нелінійною і не дуже піддається поліноміальним пристосуванням низького ступеня. Однак стратегічна зміна змінних може зробити ваш закон майже лінійним і дуже легким. Для цього ми проведемо диверсію через деякі основні фізики ...

Електрична провідність в термісторі NTC - це термічно активований процес. Тоді провідність може бути змодельована рівнянням Арренія :

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

де G називається "доекспоненціальним фактором", E a - енергія активації , k B - константа Больцмана , а T - абсолютна температура.

Це можна переставити як лінійний закон:

1 / T = A + B журнал (R)

де B = k B / E a ; A = B log (G ); а log () - природний логарифм.

Якщо ви візьмете свої дані калібрування та графік 1 / T як функцію log (R) (що в основному є графіком Арреніуса з поміщеними осями), ви помітите, що це майже, але не зовсім пряма лінія. Відхід від лінійності в основному пов'язаний з тим, що попередньо експоненціальний фактор слабо залежить від температури. Крива, однак, є досить гладкою, щоб її дуже легко встановити поліном низького ступеня:

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

Якщо діапазон температур, який вас цікавить, досить короткий, лінійне наближення може бути для вас досить хорошим. Тоді ви б використовували так звану “β модель”, де коефіцієнт β дорівнює 1 / B. Якщо ви використовуєте поліном третього ступеня, ви можете помітити, що коефіцієнтом c 2 можна знехтувати. Якщо ви нехтуєте цим, у вас є відоме рівняння Штейнхарта – Харта .

Загалом, чим вище ступінь многочлена, тим краще він повинен відповідати даним. Але якщо ступінь буде занадто високою, ви закінчитеся надягати . У будь-якому випадку кількість вільних параметрів у придатні ніколи не повинна перевищувати кількість точок даних. Якщо ці числа рівні, то закон точно відповідатиме даним , але у вас немає можливості оцінити корисність придатності. Зауважте, що цей термісторний калькулятор (зв'язаний у коментарі) використовує лише три точки даних для надання трьох коефіцієнтів. Це бог попереднього приблизного калібрування, але я б не покладався на нього, якщо мені потрібна точність.

Я не буду обговорювати тут, як насправді виконати пристосування. Програмні пакети для створення довільних даних підходять досить багато.


Дякую за добре детальну та пояснену відповідь. побічне питання; Я використав датчик DS18B20 в якості джерела зчитування температури і помітив, що показник термістора відключений приблизно на 2,2 градуса. Потім я додав, що в розрахунку температури термістора 2,2 градуса. тепер і показання ds18b20, і термістор майже однакові. Я перевірив зміну температури в межах від 25 до 35 градусів, і хоча термістор був більш чутливий до зміни температури, але в кінцевому результаті результат був майже таким же. яка нижня сторона цього методу, який я використовував?
ElectronSurf

2
@newbie: Я не розумію, що "показник термістора відключений приблизно на 2,2 градуса". Термістор не дає показань в градусах. Ви маєте на увазі, що ви спробували якийсь закон про калібрування (звідки?), Який давав показання вимкнути на 2,2 ° C? Якщо це так, і це зміщення суворо постійне, у вас підхід має незначний недолік наявності більш складного закону перетворення з додатковим арифметичним кроком. Якщо зсув не є строго постійним, повторне пристосування має дати кращі результати.
Едгар Боне

11

Читання Термістора трохи хитро. Вищеописаний метод калібрування не дав би виявлення помилок, це створило б дві точки логарифмічної кривої (крива реакції термістора).

Це означає, що для кожні 0,1 ° C зміни температури, відповідна зміна опору буде змінюватися в залежності від діапазону температури. введіть тут опис зображення

Спочатку ви можете побачити помилку приблизно від 2 до 5 ° C від реальної температури, але жодної помилки, лише неправильне зчитування.

Ви не публікуєте жодних деталей про те, як читаєте цей термістор, може бути Ардуїно? Треба сказати, що деякі бібліотеки взагалі не працюють, тому для цього потрібно створити особливу функцію.

Опублікуйте детальне пояснення щодо характеристики та зчитування термістора. Повідомлення написано іспанською мовою, але в кодових тегах, усі пояснення - простою англійською мовою.

Як тільки ви отримаєте коефіцієнти ABC, ваша помилка складе приблизно 0,1 ° C від іншого вимірювання навіть у 6-метровому проміжку дроту LAN.

Тест на 4 термістори Цей тест читали одночасно 4 термістори. Ви можете побачити невелику різницю температур від 2-х з них, яких я коротко тримав у пальцях.


@newbie Це правильний підхід. Якщо ви не можете виконати вказівки, відповідь мені через день або близько того, я шукаю свій ардуїно-код і шукаю посилання, які він містить, і напишу відповідь тут.
piojo

1
Посилання гинуть, і здатність цієї відповіді створювати рішення в майбутньому сильно залежить від того, що посилання залишається активною. Чи можете ви додати кроки до своєї відповіді?
Keeta - відновити Моніку

Я копіюю і вставляю розділ коду відповіді; // Це приклад коду про те, як читати термістор, "Thermimistor.h", що знаходиться там лише ацепти Beta // coeficient, і в моєму випадку поступається результатам, це більш точний спосіб зчитування // термістора , у випадку, якщо у вас є непарні або неправильні вимірювання, виконайте наступні кроки: // // Для отримання чітких результатів для цього коду вам знадобляться; // мультиметр, терморезистор NTC, інша актуальна їх температура // зондометр. // Крок 1. - Встановіть мультимітер на режим вимірювання опору
Алехандро Сантьяго,

// Крок 2.- Прочитайте та анотуйте фактичний опір термістора // та фактичну температуру (дозвольте 1 хв отримати стабільні вимірювання). // Якась гаряча вода та чашка. // Крок 3. - розмістіть обидва датчика (термістор та датчик температури в // реципієнті, що містить воду при температурі навколишнього середовища). // В іншій чашці нагрійте трохи води. // Доливайте гарячу воду, поки не нагрієте понад 10 ° C темп-зонд, зачекайте // стабільного вимірювання і помацайте температуру та опір. // Додайте більше води для нагрівання елемента на 20 ° від першого вимірювання. // Візьміть до уваги температуру і опирайтеся
Алехандро Сантьяго

1
@newbie Якщо у вас є термістор NTC, вам потрібно обчислити константи A, B і C і підключити їх до рівняння Хартія Штейнхарта, щоб вирішити температуру від опору. Щоб знайти ці константи, потрібно три вимірювання температури / опору. (Константи відрізняються в залежності від термістора, а пошук констант - це ваша калібрування.) У цій статті показано, як це зробити, але оскільки в ньому використовується матрична математика, я пропоную знайти онлайн-калькулятор. thinkrs.com/downloads/pdfs/applicationnotes/…
piojo

9

Наповніть чашку кубиками льоду і залийте водою, щоб залити до крайок. Надайте йому час від часу розмішати. Коли лід почне танути, ти опинишся при 0 ° C. Вставте датчик у воду і відведіть показання.

Якщо ваш датчик може це переносити, опустіть його в чайник окропу. На рівні моря, що дасть вам 100 ° C відліку.

Якщо вам потрібно нагріти датчик для гідроізоляції, вам доведеться дозволити деякий час стабілізації показань.

схематичний

імітувати цю схему - Схематично створено за допомогою CircuitLab

Малюнок 1. Проста лінійна калібрувальна крива.

  • y1 - опір, напруга або показник АЦП при 0 ° C.
  • y2 - показник опору, напруги або АЦП при 100 ° C.

Т=100у-у1у2-у1

Як зазначено в коментарях, якщо ви використовуєте термістор, вам потрібно буде перевірити таблицю даних на предмет лінійності. Якщо цей простий підхід недостатньо хороший, вам доведеться використовувати обчислення поліномів або таблицю пошуку в мікроконтролері.


3
Це дасть вам два бали, які ви можете використовувати для обчислення бета-версії для цих двох темпів. Відповідь у цьому діапазоні ніде не буде лінійною (якщо припустити, що ОП означає це, коли він / він називає це "термістором"),
Скотт Сейдман

1
@newbie: Дивіться оновлення.
Транзистор

5
@newbie Як пише транзистор наприкінці, такий підхід може виявитися недостатньо хорошим. Не можу уявити, що це колись буде досить добре, відверто кажучи. Єдине, що цей підхід отримає від вас - це повторюваність (припустимо, що 40 ° C завжди будуть однаковими, як передбачається, 40 ° C, але це дійсно може бути 20 ° C або 60 ° C).
piojo

2
Чиста вода кипить при 100 ° C, якщо тиск 1,01325 бар або 1013,25 мілібар або гектопаскаль. Тиск на рівні моря залежить від погоди.
Уве

1
@newbie. Це виглядає корисно. Якщо ви змусили його працювати, опублікуйте якийсь зразок коду у вашому запитанні або як відповідь. Я впевнений, що інші вважають це кориснішим, ніж моя відповідь.
Транзистор

2

Лінійні термометри мають помилку посилення та зміщення.

  • Біполярні запаси, швидше за все, змістять нульовий показник у 0В.
  • Одиничні мости живлення матимуть деяке відношення Vref або R Vref або Vcc, коли зміщення відмінено при цій температурі. Зазвичай це симетрично, щоб це відповідало середині точки вашого дизайнерського діапазону.
  • термістори калібруються при 25 ° С із специфічною кривою чутливості з 2 змінними.

  • для його калібрування вам потрібно лише 2 вимірювання

    • Нульове регулювання, де напруга помилки = null = 0, Vt = Vref
    • підсилення підсилення при T max
      • для типового 4-мостового мосту, який зазвичай є середньою точковою температурою.
  • використовувати будь-який кращий термометр для калібрування або
    • використовуйте крижану воду і киплячу воду при температурі 0, 100 ° C
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.