Емельянов Эдуард Владимирович (eddy_em) wrote,
Емельянов Эдуард Владимирович
eddy_em

Category:

Точности термодатчиков

К утру термодатчики нагрелись только до 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 сантиметров!).
Tags: octave, термодатчики
Subscribe

  • Мини-ремонт

    Празднички что-то подзатянулись. И решили мы купленные еще в январе обои наклеить на ободранную кошаками стенку. Еще одной проблемой было то, что…

  • Праздничные будни

    Праздник — праздником, но уж слишком жирно это — квасить по 4 дня две недели кряду. На первомайские съездили к кумовьям, а дальше занялись работой.…

  • Вестник ремонтного фронта

    Мало-помалу, я за пару недель сделал шкаф для своего инструмента. Вот такое получилось: Частично заполненный шкаф На двери, к сожалению,…

promo eddy_em август 17, 2019 12:33 3
Buy for 10 tokens
Юра намедни напечатал корпус для хронометра. Для первого блина получилось неплохо: И еще немного фотографий:
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic
  • 1 comment