Калибровка термистора (или, как правило, любого датчика) представляет собой двухэтапный процесс:
- измерять данные калибровки
- разработать закон калибровки, который соответствует этим данным
Первый шаг самый трудный, и, к сожалению, тот, с которым у меня меньше всего опыта. Тогда я опишу это только в общих чертах. Второй шаг в основном математика.
Измерение данных калибровки
Вам необходимо заполнить таблицу парами (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
можно пренебречь. Если вы пренебрегаете им, у вас есть знаменитое уравнение Стейнхарта – Харта .
Как правило, чем выше степень многочлена, тем лучше он должен соответствовать данным. Но если степень слишком высока, вы закончите
переоснащение . В любом случае количество свободных параметров в подгонке никогда не должно превышать количество точек данных. Если эти числа равны, то закон будет точно соответствовать данным , но у вас нет никакой возможности оценить правильность соответствия. Обратите внимание, что этот термисторный калькулятор
(связанный с комментарием) использует только три точки данных для предоставления трех коэффициентов. Это бог для предварительной приблизительной калибровки, но я бы не стал полагаться на нее, если бы мне нужна была точность.
Я не буду обсуждать здесь, как на самом деле выполнить подгонку. Программных пакетов для создания произвольных данных достаточно.