Как любителю, у которого нет доступа к лабораторному оборудованию, мне кажется невозможным откалибровать имеющийся у меня термистор.
Конечно, есть калиброванные датчики температуры, такие как DS18B20, но термисторы, особенно на медленных микроконтроллерах, таких как Aruino UNO (по сравнению с новыми микроконтроллерами), работают быстрее.
Какие есть варианты калибровки термистора без использования лабораторного оборудования?
thermistor
calibration
ElectronSurf
источник
источник
Ответы:
Калибровка термистора (или, как правило, любого датчика) представляет собой двухэтапный процесс:
Первый шаг самый трудный, и, к сожалению, тот, с которым у меня меньше всего опыта. Тогда я опишу это только в общих чертах. Второй шаг в основном математика.
Измерение данных калибровки
Вам необходимо заполнить таблицу парами (T, R), то есть значениями сопротивления, измеренными при известных температурах. Ваши данные калибровки должны охватывать весь диапазон температур, которые вам понадобятся при фактическом использовании. Данные точки выхода из этого диапазона не очень полезны. В противном случае, чем больше у вас точек данных, тем лучше.
Для того чтобы измерить сопротивление терморезистора, я советую вам с помощью омметра. Вместо этого используйте ту же настройку, которую вы будете использовать для фактических измерений после калибровки. Таким образом, любые систематические ошибки в измерении сопротивления (такие как смещение АЦП и ошибки усиления) будут откалиброваны.
Для определения температуры у вас есть два варианта: либо использовать фиксированные точки температуры (например, кипящую воду или тающий лед), либо использовать уже откалиброванный термометр. Фиксированные точки являются золотым стандартом калибровки температуры, но их трудно понять правильно, и вы, вероятно, не найдете многие из них в диапазоне температур, которые вас интересуют.
Использование заведомо хорошего термометра, вероятно, будет проще, но есть еще несколько предостережений:
Помогая поместить их близко друг к другу, внутри шкафа с высокой тепловой инерцией (холодильник или духовка).
Очевидно, что точность эталонного термометра является здесь очень важным фактором. Это должно быть значительно точнее, чем требования, предъявляемые к вашей окончательной точности измерений.
Подгонка закона калибровки
Теперь вам нужно найти математическую функцию, которая соответствует вашим данным. Это называется «эмпирическое соответствие». В принципе, любой закон может действовать до тех пор, пока он находится достаточно близко к точкам данных. Здесь предпочитают многочлены, так как подгонка всегда сходится (потому что функция линейна относительно ее коэффициентов), и они дешевы в оценке даже на слабом микроконтроллере. В особом случае линейная регрессия может быть самым простым законом, который вы можете попробовать.
Однако, если вы не заинтересованы в очень узком диапазоне температур, отклик термистора NTC является крайне нелинейным и не очень поддается полиномам низкой степени. Тем не менее, стратегическое изменение переменных может сделать ваш закон почти линейным и очень простым для подгонки. Для этого мы отвлечемся от некоторой базовой физики ...
Электрическая проводимость в термисторе NTC является термически активируемым процессом. Затем проводимость может быть смоделирована уравнением Аррениуса :
G = G ∞ exp (−E a / (k B T))
где G ∞ называется «предэкспоненциальным множителем», E a - энергия активации , k B - постоянная Больцмана , а T - абсолютная температура.
Это можно переставить как линейный закон:
1 / T = A + B log (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 можно пренебречь. Если вы пренебрегаете им, у вас есть знаменитое уравнение Стейнхарта – Харта .
Как правило, чем выше степень многочлена, тем лучше он должен соответствовать данным. Но если степень слишком высока, вы закончите переоснащение . В любом случае количество свободных параметров в подгонке никогда не должно превышать количество точек данных. Если эти числа равны, то закон будет точно соответствовать данным , но у вас нет никакой возможности оценить правильность соответствия. Обратите внимание, что этот термисторный калькулятор (связанный с комментарием) использует только три точки данных для предоставления трех коэффициентов. Это бог для предварительной приблизительной калибровки, но я бы не стал полагаться на нее, если бы мне нужна была точность.
Я не буду обсуждать здесь, как на самом деле выполнить подгонку. Программных пакетов для создания произвольных данных достаточно.
источник
Чтение термистора немного сложно. Приведенный выше метод калибровки не дает возможности обнаружить ошибку. Он создает две точки логарифмической кривой (кривая отклика термистора.
Это означает, что для каждого изменения температуры на 0,1 ° C соответствующее изменение сопротивления будет изменяться в зависимости от диапазона температуры.
Сначала вы можете увидеть ошибку примерно на 2–5 ° C от реальной температуры, но ошибки нет, только плохое показание.
Вы не публикуете подробностей о том, как вы читаете этот термистор, может быть Arduino? Я должен сказать, что некоторые библиотеки вообще не работают, поэтому вы должны создать специальную функцию для этого.
Разместите подробное объяснение того, как охарактеризовать и прочитать термистор. Сообщение на испанском языке, но в кодовых тегах, все объяснения на простом английском языке.
Как только вы получите коэффициенты ABC, ваша ошибка будет примерно 0,1 ° C по сравнению с другим измерением, даже при 6-метровой длине сетевого кабеля.
Этот тест считал одновременно 4 термистора. Вы можете увидеть небольшую разницу в температуре от 2 из них, которые я кратко держал в моих пальцах.
источник
Наполните чашку кубиками льда и залейте водой до краев. Дайте этому время от времени шевелиться. Когда лед начнет таять, вы будете при 0 ° C. Вставьте датчик в воду и снимите показания.
Если ваш датчик может это терпеть, опустите его в чайник с кипящей водой. На уровне моря это даст вам эталонное значение 100 ° C.
Если вам нужно термоусадить датчик для гидроизоляции, вам потребуется некоторое время для стабилизации показаний.
смоделировать эту схему - схема, созданная с использованием CircuitLab
Рисунок 1. Простая линейная калибровочная кривая.
Как указано в комментариях, если вы используете термистор, вам необходимо проверить таблицу на линейность. Если этот простой подход недостаточно хорош, вам придется использовать полиномиальный расчет или справочную таблицу в микроконтроллере.
источник
Линеаризованные термометры имеют погрешность усиления и смещения.
Термисторы откалиброваны при 25 ° С с определенной кривой чувствительности с 2 переменными.
для калибровки нужно всего 2 измерения
источник