Какой самый простой способ калибровки термистора?


11

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

Конечно, есть калиброванные датчики температуры, такие как DS18B20, но термисторы, особенно на медленных микроконтроллерах, таких как Aruino UNO (по сравнению с новыми микроконтроллерами), работают быстрее.

Какие есть варианты калибровки термистора без использования лабораторного оборудования?


1
Используйте калиброванный датчик в качестве DS18B20 для определения характеристики термистора.
Янка

Что вы подразумеваете под "мгновенным"? Это не является хорошим оправданием, если вам нужно выполнить программную коррекцию термистора, но вы не используете DS18B20.
Эллиот Олдерсон

Если вас беспокоит задержка в одну секунду DS18B20 при полном разрешении, используйте один из датчиков датчика батареи, например, DS2438. Он имеет быстрый датчик температуры на чипе.
Янка

2
@newbie Калибровка температуры, для точности, обычно трудна. Некоторые диапазоны сложнее, чем другие. Точки замораживания общедоступных материалов могут помочь, особенно если ваш ассортимент включает в себя больше таких. Но точные ссылки будут прослеживаться до стандартов NIST или DIN (или аналогичной группы), которые хранятся где-то в лаборатории и управляются физиком или двумя. Ваш вопрос помог бы, если бы вы указали диапазон температур, а также точность и точность, которую вы ищете в этом диапазоне.
Джон

1
@newbie а дома? Ищите чистоту, а затем создавайте комбинации льда и жидкости или просто чистые конденсационные котлы. Например, лед, смешанный с водой, очень часто используется, но то, поможет ли он достаточно, может зависеть от ваших показателей точности и работы, на которую вы готовы пойти. Вы также можете использовать кипящую воду или серную кислоту, которые могут конденсироваться на дне флорентийской колбы. (Я использовал оба.) Но результаты также зависят от примесей и изменений атмосферного давления и других факторов. Ваши требования имеют много общего с тем, что можно предложить для попыток домашнего приготовления.
Джон

Ответы:


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 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 можно пренебречь. Если вы пренебрегаете им, у вас есть знаменитое уравнение Стейнхарта – Харта .

Как правило, чем выше степень многочлена, тем лучше он должен соответствовать данным. Но если степень слишком высока, вы закончите переоснащение . В любом случае количество свободных параметров в подгонке никогда не должно превышать количество точек данных. Если эти числа равны, то закон будет точно соответствовать данным , но у вас нет никакой возможности оценить правильность соответствия. Обратите внимание, что этот термисторный калькулятор (связанный с комментарием) использует только три точки данных для предоставления трех коэффициентов. Это бог для предварительной приблизительной калибровки, но я бы не стал полагаться на нее, если бы мне нужна была точность.

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


Спасибо за хорошо подробный и объясненный ответ. побочный вопрос; Я использовал датчик DS18B20 в качестве источника температуры и заметил, что показание термистора составляет около 2,2 градусов. Затем я добавил, что 2,2 градуса в расчете температуры термистора. теперь оба показания от ds18b20 и термистора практически совпадают. Я проверил изменение температуры в диапазоне от 25 до 35 градусов, и хотя термистор был более чувствителен к изменениям температуры, но в итоге результат был почти таким же. Какова обратная сторона этого метода, который я использовал?
ElectronSurf

2
@newbie: я не понимаю, что «показание термистора примерно на 2,2 градуса меньше». Термистор не дает показания в градусах. Вы имеете в виду, что вы пробовали какой-то закон калибровки (откуда?), Который дал показания 2,2 ° C? Если это так, и это смещение является строго постоянным, у вашего подхода есть небольшой недостаток - наличие более сложного закона преобразования с дополнительным арифметическим шагом. Если смещение не является строго постоянным, повторная подгонка должна дать вам лучшие результаты.
Эдгар Бонет

11

Чтение термистора немного сложно. Приведенный выше метод калибровки не дает возможности обнаружить ошибку. Он создает две точки логарифмической кривой (кривая отклика термистора.

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

Сначала вы можете увидеть ошибку примерно на 2–5 ° C от реальной температуры, но ошибки нет, только плохое показание.

Вы не публикуете подробностей о том, как вы читаете этот термистор, может быть Arduino? Я должен сказать, что некоторые библиотеки вообще не работают, поэтому вы должны создать специальную функцию для этого.

Разместите подробное объяснение того, как охарактеризовать и прочитать термистор. Сообщение на испанском языке, но в кодовых тегах, все объяснения на простом английском языке.

Как только вы получите коэффициенты ABC, ваша ошибка будет примерно 0,1 ° C по сравнению с другим измерением, даже при 6-метровой длине сетевого кабеля.

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


@newbie Это правильный подход. Если вы не можете следовать инструкциям, ответьте мне через день или около того, и я посмотрю свой код arduino, посмотрю содержащиеся в нем ссылки и напишу здесь ответ.
piojo

1
Ссылки умирают, и способность этого ответа создать решение в будущем сильно зависит от активности ссылки. Можете ли вы добавить шаги к своему ответу?
Keeta - восстановить Монику

Я копирую и вставляю раздел кода ответа; // Это пример кода о том, как читать термистор, "Thermimistor.h" Lib там только принимает коэффициент Beta // и в моем случае уступает ошибочным результатам, это более точный способ чтения // термистора , если у вас есть странные или неправильные измерения, пожалуйста, выполните следующие действия: // // Для получения точных результатов для этого кода вам понадобится; // мультиметр, терморезистор с отрицательным температурным коэффициентом, другой точный ток // измерительный щуп. // Шаг 1. - Установить мультимитер на режим измерения сопротивления
Алехандро Сантьяго

// Шаг 2. - Считать и аннотировать фактическое сопротивление термистора // и фактическую температуру (подождите 1 мин, чтобы получить стабильные результаты измерений). // Немного горячей воды и чашки. // Шаг 3. - поместите оба датчика (термистор и температурный датчик в // приемник, содержащий воду при температуре окружающей среды). // В другой чашке нагреть немного воды. // Добавляем горячую воду до тех пор, пока температура датчика не превысит 10 ° C, дождемся // стабильного измерения и аннотируем температуру и сопротивление. // Добавьте больше воды, чтобы нагреть элемент на 20 ° от первого измерения. // Обратите внимание на температуру и сопротивляемся
Алехандро Сантьяго

1
@newbie Если у вас есть термистор NTC, вам нужно рассчитать константы A, B и C и включить их в уравнение Хейнта-Стейнхарта, чтобы определить температуру из сопротивления. Вам нужно три измерения температуры / сопротивления, чтобы найти эти константы. (Константы различаются в зависимости от термистора, и поиск констант - это ваша калибровка.) В этой статье показано, как это сделать, но, поскольку в ней используется матричная математика, я предлагаю найти онлайн-калькулятор. thinksrs.com/downloads/pdfs/applicationnotes/...
piojo

9

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

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

Если вам нужно термоусадить датчик для гидроизоляции, вам потребуется некоторое время для стабилизации показаний.

схематический

смоделировать эту схему - схема, созданная с использованием CircuitLab

Рисунок 1. Простая линейная калибровочная кривая.

  • y1 - значение сопротивления, напряжения или АЦП при 0 ° C.
  • y2 - значение сопротивления, напряжения или АЦП при 100 ° C.

Tзнак равно100Y-Y1Y2-Y1

Как указано в комментариях, если вы используете термистор, вам необходимо проверить таблицу на линейность. Если этот простой подход недостаточно хорош, вам придется использовать полиномиальный расчет или справочную таблицу в микроконтроллере.


3
Это даст вам два балла, которые вы можете использовать для расчета бета для этих двух временных. Отклик в этом диапазоне будет далеко не линейным (при условии, что ОП означает, что он / она называет это «термистором»),
Скотт Сейдман

1
@newbie: смотрите обновление.
Транзистор

5
@newbie Как пишет транзистор в конце, такой подход может быть недостаточно хорош. Откровенно говоря, я не могу себе представить, что это когда-нибудь будет достаточно хорошо. Единственное, что даст вам этот подход, это повторяемость (предполагаемая 40 ° C всегда будет такой же, предполагаемая 40 ° C, но на самом деле это может быть 20 ° C или 60 ° C).
piojo

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

1
@newbie. Это выглядит полезным. Если вы заставите его работать, отправьте пример кода в свой вопрос или в качестве ответа. Я уверен, что другие найдут это более полезным, чем мой ответ.
Транзистор

2

Линеаризованные термометры имеют погрешность усиления и смещения.

  • Биполярные поставки, скорее всего, будут иметь нулевое значение.
  • одиночные питающие мосты будут иметь некоторое отношение Vref или R к Vref или Vcc, где смещение обнуляется при этой заданной температуре. Обычно это симметрично, так что это соответствует средней точке вашего проектного диапазона.
  • Термисторы откалиброваны при 25 ° С с определенной кривой чувствительности с 2 переменными.

  • для калибровки нужно всего 2 измерения

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