eddy_em: (Default)
[personal profile] eddy_em
К утру термодатчики нагрелись только до 19°C (в комнате, судя по нескольким платиновым терморезисторам, было +21.7°C, хотя настольный китайский термометр упорно рисует аж 24.2), я продержал их до 10 утра (за эти два часа они нагрелись еще на 1°C) и закончил мониторинг.

В позапрошлый раз я уже приводил исходник скрипта для считывания файлов с температурами. Для того, чтобы вычислить аддитивные поправки для сведения показаний датчиков к одной точке, написал еще два скрипта. Первый вычисляет поправку и погрешность для двух термометров пары.
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 сантиметров!).
This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

If you are unable to use this captcha for any reason, please contact us by email at support@dreamwidth.org

April 2025

S M T W T F S
  1 23 45
67 89101112
13141516171819
20212223242526
27282930   

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated May. 22nd, 2025 12:13 pm
Powered by Dreamwidth Studios