Точности термодатчиков
May. 21st, 2018 05:40 pm![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
К утру термодатчики нагрелись только до 19°C (в комнате, судя по нескольким платиновым терморезисторам, было +21.7°C, хотя настольный китайский термометр упорно рисует аж 24.2), я продержал их до 10 утра (за эти два часа они нагрелись еще на 1°C) и закончил мониторинг.
В позапрошлый раз я уже приводил исходник скрипта для считывания файлов с температурами. Для того, чтобы вычислить аддитивные поправки для сведения показаний датчиков к одной точке, написал еще два скрипта. Первый вычисляет поправку и погрешность для двух термометров пары.
Второй скрипт вычисляет то же самое для нулевых термометров разных пар.
Так как расстояние между термодатчиками внутри каждой пары было достаточно маленьким, то даже при перепаде в пару градусов по всей диагонали градиент между датчиками пары был небольшим. Поэтому RMS разницы их показаний не превышал 0.03°C (самый худший случай), правда, поправка для приведения температур к одной точке принимала значения от -0.24°C до +0.56°C! Однако, во всем диапазоне температур после введения этой поправки показания датчиков шли, как говорится, ноздря в ноздрю.
С межпарными поправками сложней: во всем диапазоне температур из-за значительных градиентов статистика пострадала, поэтому я считал для двух диапазонов (полный и 19±1°C). Естественно, в узком диапазоне RMS болтался в районе тысячных градуса, а вот в полном диапазоне составлял от 0.0031°C до 0.1203°C. Поправки же в обоих диапазонах отличались лишь на 2-5 сотых градуса. Точно так же в пределе отклонение было 0.55°C.
Так что, если для датчиков в паре я уверенно могу сказать, что точность у них не хуже ±0.05°C, то между датчиками несколько сложней. Сравнивать их показания с терморезисторами я не могу, т.к. забыл откалибровать терморезисторы при минусовой температуре, и не уверен, что там реально наблюдался такой мощный градиент (да и вообще, не понимаю, как в 20-мм дюралевой плите мог наблюдаться градиент в 2-3°C на 15 сантиметров!).
В позапрошлый раз я уже приводил исходник скрипта для считывания файлов с температурами. Для того, чтобы вычислить аддитивные поправки для сведения показаний датчиков к одной точке, написал еще два скрипта. Первый вычисляет поправку и погрешность для двух термометров пары.
function plotdt(T, idxsch)
idxsch *= 2;
difrns = T(:,idxsch-1)-T(:,idxsch);
D = median(difrns);
sgn = '+';
if(D < 0) sgn = '-'; endif
sigma = std(difrns);
printf("T_1(%d) = T_0(%d) %c%.4f +- %.4f\n", idxsch, idxsch, sgn, abs(D), sigma);
plot(T(:,1), medfilt1(D-difrns, 5));
xlabel("T, ^\\circ{}C");
ylabel(sprintf("T_1-T_0%c%.4f", sgn, abs(D)));
title(sprintf("Temperature difference for pair %d (\\sigma=%.4f)", idxsch/2, sigma));
endfunction
Второй скрипт вычисляет то же самое для нулевых термометров разных пар.
function plotpair(T, idxsch1, idxsch2)
i1 = 2*idxsch1-1;
i2 = 2*idxsch2-1;
difrns = T(:,i1)-T(:,i2);
D = median(difrns);
sigma = std(difrns);
sgn = '+';
if(D < 0) sgn = '-'; endif
printf("T_0(%d) = T_0(%d) %c%.4f +- %.4f\n", idxsch2, idxsch1, sgn, abs(D), sigma);
plot(T(:,1), medfilt1(D-difrns, 5));
xlabel("T, ^\\circ{}C");
ylabel(sprintf("T(%d_0) - T(%d_0) %c %.4f", idxsch2, idxsch1, sgn, abs(D)));
title(sprintf("Temperature difference for sensors %d_0 and %d_0 (\\sigma=%.4f)", idxsch2, idxsch1, sigma));
endfunction
Так как расстояние между термодатчиками внутри каждой пары было достаточно маленьким, то даже при перепаде в пару градусов по всей диагонали градиент между датчиками пары был небольшим. Поэтому RMS разницы их показаний не превышал 0.03°C (самый худший случай), правда, поправка для приведения температур к одной точке принимала значения от -0.24°C до +0.56°C! Однако, во всем диапазоне температур после введения этой поправки показания датчиков шли, как говорится, ноздря в ноздрю.
С межпарными поправками сложней: во всем диапазоне температур из-за значительных градиентов статистика пострадала, поэтому я считал для двух диапазонов (полный и 19±1°C). Естественно, в узком диапазоне RMS болтался в районе тысячных градуса, а вот в полном диапазоне составлял от 0.0031°C до 0.1203°C. Поправки же в обоих диапазонах отличались лишь на 2-5 сотых градуса. Точно так же в пределе отклонение было 0.55°C.
Так что, если для датчиков в паре я уверенно могу сказать, что точность у них не хуже ±0.05°C, то между датчиками несколько сложней. Сравнивать их показания с терморезисторами я не могу, т.к. забыл откалибровать терморезисторы при минусовой температуре, и не уверен, что там реально наблюдался такой мощный градиент (да и вообще, не понимаю, как в 20-мм дюралевой плите мог наблюдаться градиент в 2-3°C на 15 сантиметров!).