Термометр сопротивления
Термо́метр сопротивле́ния — электронный прибор, предназначенный для измерения температуры. Принцип действия основан на зависимости электрического сопротивления металлов, сплавов и полупроводниковых материалов от температуры[1]. При применении полупроводниковых материалов его обычно называют термосопротивле́нием, терморезистором или термистором[2].
Содержание
- 1 Металлический термометр сопротивления
- 2 Термисторы
- 3 Зависимость сопротивления от температуры
- 4 Преимущества термометров сопротивления
- 5 Недостатки термометров сопротивления
- 6 Таблица сопротивлений некоторых термометров сопротивления
- 7 Функция получения значения температуры (C++)
- 8 Примечания
- 9 См. также
Металлический термометр сопротивления[править | править вики-текст]
Представляет собой резистор, выполненный из металлической проволоки или плёнки и имеющий известную зависимость электрического сопротивления от температуры. Наиболее распространённый тип термометров сопротивления — платиновые термометры. Это объясняется тем, что платина имеет стабильную и хорошо изученную зависимость сопротивления от температуры и высокую стойкость к окислению, что обеспечивает их высокую воспроизводимость. Эталонные термометры изготавливаются из платины высокой чистоты с температурным коэффициентом 0,003925. В качестве рабочих средств измерений применяются также медные и никелевые термометры. Действующий стандарт на технические требования к рабочим термометрам сопротивления: ГОСТ 6651-2009 (Государственная система обеспечения единства измерений. Термопреобразователи сопротивления из платины, меди и никеля. Общие технические требования и методы испытаний). В стандарте приведены диапазоны, классы допуска, таблицы НСХ и стандартные зависимости сопротивление-температура. Стандарт соответствует международному стандарту МЭК 60751 (2008). В стандарте отказались от нормирования номинальных сопротивлений при нормальных условиях. Начальное сопротивление изготовленного терморезистора может быть любым. Промышленные платиновые термометры сопротивления в большинстве случаев считаются имеющими стандартную зависимость сопротивление-температура (НСХ), что обусловливает погрешность не более 0,1 °C (класс АА при 0 °C). Термометры сопротивления, изготовленные в виде напыленной на подложку плёнки, отличаются повышенной вибропрочностью, но меньшим диапазоном рабочих температур. Максимальный диапазон, в котором установлены классы допуска платиновых термометров для проволочных чувствительных элементов, составляет 660 °C (класс С), для плёночных — 600 °C (класс С).
Термисторы[править | править вики-текст]
Термистор — полупроводниковый резистор, электрическое сопротивление которого зависит от температуры. Для термисторов характерны большой температурный коэффициент сопротивления, простота устройства, способность работать в различных климатических условиях при значительных механических нагрузках, стабильность характеристик во времени. Они могут иметь весьма малые размеры, что существенно для измерений температуры малых объектов. Обычно термисторы имеют отрицательный температурный коэффициент сопротивления, в отличие от металлов.
Зависимость сопротивления от температуры[править | править вики-текст]
Для промышленных платиновых термометров сопротивления используется уравнение Каллендара-Ван Дьюзена (en), с известными коэффициентами, которые установлены экспериментально и нормированы в международном стандарте МЭК 60751(ГОСТ 6651-94):
Здесь, сопротивление при °C, сопротивление при 0 °C, и константы (для платинового сопротивления) -
Поскольку коэффициенты B и C относительно малы, сопротивление растёт почти линейно по мере роста температуры.
Для термометров повышенной точности и эталонных выполняется индивидуальная градуировка в ряде температурных точек и определяются собственные коэффициенты вышеприведенной зависимости[3].
Используется 3 схемы включения датчика в измерительную цепь:
- 2-проводная
В схеме подключения простейшего термометра сопротивления используется два провода. Такая схема используется там, где не требуется высокой точности, так как сопротивление проводов включается в измеренное сопротивление и приводит к появлению дополнительной погрешности. Такая схема не применяется для термометров класса А и АА.
- 3-проводная обеспечивает значительно более точные измерения за счёт того, что появляется возможность измерить в отдельном опыте сопротивление подводящих проводов и учесть их влияние на точность измерения сопротивления датчика.
- 4-проводная — наиболее точная схема, обеспечивает полное исключение влияния подводящих проводов. При этом по двум проводникам подается ток на датчик, два других, в которых ток равен нулю, используются для измерения напряжения на датчике. Недостаток — увеличение объёма используемого материала, стоимости и габаритов сборки. Невозможно использовать в четырехплечем мосте Уитстона.
В промышленности наиболее распространенной является трёхпроводная схема. Для точных и эталонных измерений используется только четырёхпроводная схема.
Преимущества термометров сопротивления[править | править вики-текст]
- Высокая точность измерений (обычно лучше ±1 °C), может доходить до 0,13 тысячных °C (0,00013).
- Возможность исключения влияния изменения сопротивления линий связи на результат измерения при использовании 3- или 4-проводной схемы измерений.
- Практически линейная характеристика.
Недостатки термометров сопротивления[править | править вики-текст]
- Относительно малый диапазон измерений (по сравнению с термопарами)
- Дороговизна (в сравнении с термопарами из неблагородных металлов, для платиновых термометров сопротивления типа ТСП).
- Требуется дополнительный источник питания для задания тока через датчик.
Таблица сопротивлений некоторых термометров сопротивления[править | править вики-текст]
Температура в °C |
Pt100 | Pt1000 | нем. PTC | нем. NTC | NTC | NTC | NTC | NTC |
Typ: 404 | Typ: 501 | Typ: 201 | Typ: 101 | Typ: 102 | Typ: 103 | Typ: 104 | Typ: 105 | |
−50 | 80,31 | 803,1 | 1032 | |||||
−45 | 82,29 | 822,9 | 1084 | |||||
−40 | 84,27 | 842,7 | 1135 | 50475 | ||||
−35 | 86,25 | 862,5 | 1191 | 36405 | ||||
−30 | 88,22 | 882,2 | 1246 | 26550 | ||||
−25 | 90,19 | 901,9 | 1306 | 26083 | 19560 | |||
−20 | 92,16 | 921,6 | 1366 | 19414 | 14560 | |||
−15 | 94,12 | 941,2 | 1430 | 14596 | 10943 | |||
−10 | 96,09 | 960,9 | 1493 | 11066 | 8299 | |||
−5 | 98,04 | 980,4 | 1561 | 31389 | 8466 | |||
0 | 100,00 | 1000,0 | 1628 | 23868 | 6536 | |||
5 | 101,95 | 1019,5 | 1700 | 18299 | 5078 | |||
10 | 103,90 | 1039,0 | 1771 | 14130 | 3986 | |||
15 | 105,85 | 1058,5 | 1847 | 10998 | ||||
20 | 107,79 | 1077,9 | 1922 | 8618 | ||||
25 | 109,73 | 1097,3 | 2000 | 6800 | 15000 | |||
30 | 111,67 | 1116,7 | 2080 | 5401 | 11933 | |||
35 | 113,61 | 1136,1 | 2162 | 4317 | 9522 | |||
40 | 115,54 | 1155,4 | 2244 | 3471 | 7657 | |||
45 | 117,47 | 1174,7 | 2330 | 6194 | ||||
50 | 119,40 | 1194,0 | 2415 | 5039 | ||||
55 | 121,32 | 1213,2 | 2505 | 4299 | 27475 | |||
60 | 123,24 | 1232,4 | 2595 | 3756 | 22590 | |||
65 | 125,16 | 1251,6 | 2689 | 18668 | ||||
70 | 127,07 | 1270,7 | 2782 | 15052 | ||||
75 | 128,98 | 1289,8 | 2880 | 12932 | ||||
80 | 130,89 | 1308,9 | 2977 | 10837 | ||||
85 | 132,80 | 1328,0 | 3079 | 9121 | ||||
90 | 134,70 | 1347,0 | 3180 | 7708 | ||||
95 | 136,60 | 1366,0 | 3285 | 6539 | ||||
100 | 138,50 | 1385,0 | 3390 | |||||
105 | 140,39 | 1403,9 | ||||||
110 | 142,29 | 1422,9 | ||||||
150 | 157,31 | 1573,1 | ||||||
200 | 175,84 | 1758,4 |
Функция получения значения температуры (C++)[править | править вики-текст]
Приведённый ниже код позволяет получить значение температуры датчика Pt100 или Pt1000 из его текущего сопротивления.
float GetPt100Temperature(float r)
{
float const Pt100[] = { 80.31, 82.29, 84.27, 86.25, 88.22, 90.19, 92.16, 94.12, 96.09, 98.04,
100, 101.95, 103.9, 105.85, 107.79, 109.73, 111.67, 113.61, 115.54, 117.47,
119.4, 121.32, 123.24, 125.16, 127.07, 128.98, 130.89, 132.8, 134.7, 136.6,
138.5, 140.39, 142.29, 157.31, 175.84, 195.84};
int t = -50, i, dt = 0;
if (r > Pt100[i = 0])
while (250 > t) {
dt = (t < 110) ? 5 : (t > 150) ? 50 : 40;
if (r < Pt100[++i])
return t + (r - Pt100[i-1]) * dt / (Pt100[i] - Pt100[i-1]);
t += dt;
};
return t;
}
float GetPt1000Temperature(float r)
{
return GetPt100Temperature(r / 10);
}