Уравнение Стейнхарта — Харта
Простая модель с коэффициентом B ошибается на градус уже в нескольких десятках градусов от точек, по которым её считали. Уравнение Стейнхарта — Харта с тремя коэффициентами описывает кривую термистора на порядок точнее и легко считается в микроконтроллере.
Обновлено Редакция GAW
Уравнение Стейнхарта — Харта (Steinhart–Hart equation) — эмпирическая формула, связывающая сопротивление NTC-термистора с его абсолютной температурой:
где T — температура в кельвинах, R — сопротивление в омах, a, b, c — коэффициенты конкретного термистора. Microchip в AN685 называет её полиномом третьего порядка, который заменяет экспоненциальную модель термистора и широко принят для точных расчётов; для типичного термистора она даёт около ±0,1 °C во всём диапазоне — обычно лучше, чем разброс самих экземпляров. В обратной форме формула выглядит как ln R = B0 + B1/T + B3/T³ (DS00685B).
Коэффициенты по трём точкам
Три коэффициента находят по трём парам (Ti, Ri) из таблицы даташита. Обозначив Li = ln Ri и Yi = 1/Ti, систему решают так:
Наш пример для Vishay NTCLE100E3 10 кОм (B25/85 = 3977 К): по кривой производителя при 0, 25 и 50 °C сопротивление 32,55; 10,00 и 3,605 кОм. Отсюда a = 1,1345·10⁻³, b = 2,3302·10⁻⁴, c = 9,377·10⁻⁸. С этими коэффициентами уравнение отклоняется от кривой Vishay не больше чем на 0,04 °C от −40 до 85 °C. Для сравнения: модель с одним коэффициентом B при −40 °C даёт −37,0 °C вместо −40.
Расширенная форма
Vishay для своих термисторов приводит формулу с четырьмя коэффициентами и нормированием на R25:
и обратную к ней R(T) = R25·exp(A + B/T + C/T² + D/T³). Коэффициенты даны для каждого материала: для материала с B25/85 = 3977 К A1 = 3,354016·10⁻³, B1 = 2,569850·10⁻⁴, C1 = 2,620131·10⁻⁶, D1 = 6,383091·10⁻⁸. По даташиту две формулы совпадают с точностью 0,005 °C в диапазоне 25…125 °C и 0,015 °C в диапазоне −40…25 °C (Vishay 29049). При R = R25 логарифмы обнуляются, и 1/T = A1 даёт ровно 298,15 К.
На практике
Точность уравнения не спасает от ошибок измерения: самонагрев термистора током делителя и допуск R25 обычно больше, чем погрешность формулы. Коэффициенты для своего термистора по трём точкам и готовую функцию на C даёт калькулятор NTC, а пример терморегулятора — схема термостата на NTC.
Частые вопросы
Где взять коэффициенты a, b и c?
Либо у производителя — Vishay для NTCLE100E3 приводит даже расширенную форму с четырьмя коэффициентами, — либо посчитать самим по трём точкам таблицы R(T) из даташита: решить систему из трёх уравнений. Точки берут по краям и в середине рабочего диапазона, например 0, 25 и 50 °C для комнатного термометра.
Насколько уравнение точнее модели с коэффициентом B?
Наш расчёт для Vishay NTCLE100E3 10 кОм: модель B с B25/85 = 3977 К при 0 °C ошибается на 0,8 °C, при −40 °C — на 3 °C. Уравнение с коэффициентами по точкам 0, 25 и 50 °C отклоняется от кривой производителя не больше чем на 0,04 °C во всём диапазоне −40…85 °C. Microchip в AN685 оценивает точность уравнения в ±0,1 °C.
Хватит ли точности float в микроконтроллере?
Да: коэффициенты порядка 10⁻³, 10⁻⁴ и 10⁻⁷, а одинарная точность даёт около семи значащих цифр — ошибка вычисления намного меньше сотой градуса. Медленнее всего в формуле логарифм; если вычисления дороги, по уравнению заранее строят таблицу код АЦП — температура и интерполируют.
Источники
- Vishay BCcomponents. NTCLE100E3 NTC Thermistors, Radial Leaded, Standard Precision (document number 29049, revision 07-May-2025) — Formulae to determine nominal resistance values: расширенный Стейнхарт — Харт R(T) = Rref·exp(A + B/T + C/T² + D/T³) и 1/T = A1 + B1·ln(R/Rref) + C1·ln²(R/Rref) + D1·ln³(R/Rref), Rref = R25, T в кельвинах; обе формулы взаимозаменяемы с ошибкой не более 0,005 °C в диапазоне 25…125 °C и 0,015 °C в диапазоне −40…25 °C; материал 9 (B25/85 = 3977 К): A = −14,6337, B = 4791,842, C = −115334, D = −3,730535·10⁶, A1 = 3,354016·10⁻³, B1 = 2,569850·10⁻⁴, C1 = 2,620131·10⁻⁶, D1 = 6,383091·10⁻⁸; пример: термистор 10 кОм при 0 °C — 32,55 кОм
- Microchip. Baker B. C. AN685 Thermistors in Single Supply Temperature Sensing Circuits (DS00685B, 1999) — нелинейность термистора исправляют программно эмпирическим полиномом третьего порядка или таблицей; полином третьего порядка — уравнение Стейнхарта — Харта, широко принятое для точных расчётов: T = 1/(A0 + A1·ln RT + A3·ln³ RT), обратная форма ln RT = B0 + B1/T + B3/T³, коэффициенты даёт производитель; для типичного термистора точность ±0,1 °C во всём диапазоне — обычно лучше разброса самих экземпляров
Нашли ошибку?
Смотрите также
- NTC-термисторТермистор с отрицательным ТКС, коэффициент B
- NTC-термисторR(T), B и Стейнхарт — Харт, делитель для АЦП
- Термостат на NTC-термистореNTC 10 кОм, LM393 с гистерезисом, MOSFET и реле; расчёт порогов и погрешности
- Самонагрев датчикаДатчик греется током измерения: ΔT = P/δ
- Датчики температуры: NTC, Pt100, термопара, DS18B20, TMP117Термистор, Pt100, термопара, микросхемы и датчик МК: точность, подключение, самонагрев