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

Category:

И вновь продолжается... метрология!

Работы по зеркалу как-то уж очень форсировали. Неожиданно оказалось, что завтра мне нужно ехать и отрывать старые датчики от зеркала №1 (и отрывать аккуратно, т.к. их нужно будет использовать на зеркале №2). Возможно, уже в понедельник будет произведена "рокировка" зеркал.
Я тем временем решил-таки сравнить показания тех термодатчиков, что у меня оставались, чтобы хотя бы по одной точке привести их к единой шкале.

Для начала просто замотал пучок из 28 датчиков тряпкой, поверх обмотал фольгой и снова тряпкой.
Паутина...

Однако, такой метод не позволяет зафиксировать температуру: она постоянно плывет (в последней - самой длинной - серии за 3000 с лишним секунд температура поднялась аж на 0.12°C!). В результате данные получаются не очень...
Нужно будет прикупить побольше фольги и сделать более приличную теплоизоляцию. А по-хорошему, конечно, нужно бы еще и внутри термостат соорудить...
Для того, чтобы логгировать данные, пришлось написать небольшую утилиту (заодно еще раз воспользовался своей библиотечкой сниппетов). Она просто сохраняет в текстовый файл время начала измерений и измеренные величины. Дальше этот файл считывается:
function rdfile(infile, graph)
    XX=dlmread(infile, '', 1, 0);
    time = XX(:,1) - XX(1,1);
    XX(:, 1)=[];
    medval = median(XX,2);
    Tcorr = XX - medval;
    plot(time, Tcorr);
    legend("0-10","0-11","0-20","0-21","0-30","0-31","0-40","0-41","0-50","0-51","0-60","0-61","0-70","0-71", ...
            "1-10","1-11","1-20","1-21","1-30","1-31","1-40","1-41","1-50","1-51","1-60","1-61","1-70","1-71");
    xlabel("time, s"); ylabel("T, {}^\\circ{}C");
    plotgr(sprintf("%s_corrected", graph));
    Corrections = median(Tcorr);
    printf("Correction values:\n");
    for x = 1:size(Corrections,2)
        if(x != 1) printf(", "); endif;
        printf("%g", Corrections(x));
    endfor
    printf("\n");
    plot(time, Tcorr - Corrections);
    legend("0-10","0-11","0-20","0-21","0-30","0-31","0-40","0-41","0-50","0-51","0-60","0-61","0-70","0-71", ...
            "1-10","1-11","1-20","1-21","1-30","1-31","1-40","1-41","1-50","1-51","1-60","1-61","1-70","1-71");
    xlabel("time, s"); ylabel("T, {}^\\circ{}C");
    plotgr(sprintf("%s_zeroed", graph));
endfunction

а этот скрипт строит графики:
function plotgr(nm)
    h = gcf();
    TL = get(gca, 'ticklength');
    set(gca, 'ticklength', TL*1.5);
    set(gca, 'linewidth', 3);
    H = 8; W = 12;
    lg = findobj(h, "type","axes", "Tag","legend");
    set(lg, "FontSize", 16);
    set(gca, 'fontsize', 16);
    set(get(gca(), "xlabel"), 'fontsize', 16);
    set(get(gca(), "ylabel"), 'fontsize', 16);
    set(h,'PaperUnits','inches')
    set(h,'PaperOrientation','landscape');
    set(h,'PaperSize',[W,H]);
    set(h,'PaperPosition',[0,0,W,H]);
    print(h, '-dpdf', sprintf("%s.pdf",  nm));
    print(h, '-dpng', sprintf("%s.png", nm));
endfunction

Вот такой кошмар получается:
Даже на короткой серии видно, как ползут температуры.

Невязки после приведения к общему нулю.

Более длинная серия, здесь вообще вначале черт знает что творится...

И невязки длинной серии.

Всего сделал четыре серии измерений. В каждой серии для каждого момента времени вычислялась медианная температура, которая вычиталась из показаний (это первый и третий графики). Далее вычислялись медианы для каждого термодатчика — это как бы и есть их "нуль-пункты", которые нужно вычитать из результатов измерения, чтобы получить правильные данные.
То, что в результате таких неправильных измерений, которые заставили бы плакать любого метролога, ничего не получилось, можно судить по RMS полученных данных:
0.03, 0.02, 0.01, 0.01, 0.02, 0.02, 0.02, 0.01, 0.00, 0.01, 0.03, 0.01, 0.01, 0.01, 0.01, 0.01, 0.02, 0.02, 0.02, 0.01, 0.02, 0.03, 0.01, 0.01, 0.02, 0.02, 0.01, 0.02 (а хотелось бы меньше единицы в третьем знаке!).
А вот — сами нуль-пункты:
0.08, -0.03, -0.10, -0.03, -0.05, 0.01, -0.03, -0.08, 0.03, -0.01, 0.10, 0.03, 0.08, 0.06, -0.01, 0.04, 0.07, 0.04, -0.01, -0.03, 0.04, -0.03, 0.02, -0.04, -0.01, 0.00, 0.03, -0.02.
Если под "точность 0.1°C" понимать ±0.1°C, то все датчики честно это условие выполняют (правда, только на одной точке — замерить хотя бы в двух-трех точках я не смогу — полноценного термостата нет). В принципе, будь датчиков сотни три, из них вполне бы можно было отобрать 80-100 штук, имеющих расхождение меньше ±0.05°C и не париться с вводом калибровочных параметров в систему сбора.
Но все же нужно попробовать провести измерения с лучшей теплоизоляцией. Как вариант, можно расположиться с ноутбуком в пяте БТА, где температура в течение года меняется не больше, чем на ±2°C. Заодно и температура там ниже (в кабинете у меня 23°C, зеркало до такой температуры никогда не нагревалось, максимум был около 18°C).
Tags: octave, термодатчики
Subscribe

  • Темы-2

    Некоторые испугались, прочитав предыдущие темы. Повторяю: темы для работы в течение всей школы (три года). А вот — их части, которые можно осилить за…

  • Темы для творческих работ школьников

    В связи с возможным проведением очной весенней школы АФШ (детей набрали еще прошлым летом, но пока очно не было возможности встретиться из-за…

  • Бюджетная читалка с алиэкспресса

    Долго искал вменяемые электронные читалки, но за формат примерно А4 просят около $900, вообще озверели. ОК, решил взять мелкую дешевую читалку, чтобы…

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

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

  • 11 comments

  • Темы-2

    Некоторые испугались, прочитав предыдущие темы. Повторяю: темы для работы в течение всей школы (три года). А вот — их части, которые можно осилить за…

  • Темы для творческих работ школьников

    В связи с возможным проведением очной весенней школы АФШ (детей набрали еще прошлым летом, но пока очно не было возможности встретиться из-за…

  • Бюджетная читалка с алиэкспресса

    Долго искал вменяемые электронные читалки, но за формат примерно А4 просят около $900, вообще озверели. ОК, решил взять мелкую дешевую читалку, чтобы…