Помимо попытки найти зависимость фокуса от температуры я еще проанализировал зависимость между температурой зеркала и подкупольного. Результаты получились из разряда "отсутствие результата — тоже результат": зависимость фокуса от температуры разных элементов крайне неявная (коэффициент корреляции мал, стандартное отклонение велико); зависимость температуры зеркала от разности температур между ним и подкупольным та же, что и была раньше (для изменения температуры зеркала на 1°C за один час в подкупольном температура должна отличаться на 10°C).
Наилучший коэффициент корреляции (-0.66) получился между фокусом и температурой зеркала. Получилось, что F = 40.22 - 0.166*Tmirror. Стандартное отклонение, правда, все равно велико: 1.49°C. Вот картинка:
Фокус и температура зеркала.
Температуры я взял из своего архива, написав утилитку для извлечения данных (на основе CGI, который используется для формирования графиков и выдачи данных в веб). Так как данные шли с разрывами (то сервер ломался, то свет отключали), я выбрал 10 наиболее длинных непрерывных кусков и проанализировал их. Получилось, что, во-первых, почему-то корреляция между температурами зеркала и подкупольного вышла несмещенной (максимум приходится четко на 0). Понятно, что в случаях, когда включалась система охлаждения, наблюдался сдвиг максимума.
Температуры для корреляции
Корреляция температур с рисунка выше
Температуры, когда система охлаждения не включалась
Корреляция температур с рисунка выше
Ну, а для скоростей изменения температуры зеркала получались примерно одинаковые коэффициенты: около 0.01час-1. Вот пример данных с наибольшей корреляцией:
Зависимость скорости изменения температуры зеркала от разности температур зеркала и подкупольного
А вот все (за исключением выбросов) данные:
Все данные: с 31/12/10 23:29:58 по 24/09/13 13:56:57; аппроксимация: F=0.0096*dT+0.0152
Для того, чтобы преобразовать UNIX-time и юлианские даты в обычные даты я использовал простую функцию:
function S = JDtoSTR(J)
fmt = "%d/%m/%y %T";
if(nargin == 2) fmt = "%d/%m/%y"; endif
J = J(:);
S = [];
for i = 1:size(J,1)
S = [S; strftime(fmt, localtime((J(i)-2440587.5)*86400))];
endfor
endfunction
(аналогично с UNIX-time, только не надо юлианские даты в UNIX-time переводить).
function Y = movingavg(Window, Data)
% Y = movavg(Window, Data)
% moving average of *Data* by patterns of *Window* size
%
Y = filter(ones(1,Window)/Window, 1, Data);
endfunction
скорее всего можно, но не просто из температуры :) то как крайние значения практически лежат на параллельных прямых говорит о простой линейной связи. нужен только параметр в модель --- может это в какую сторону был наклонен агрегат? есть ведь записи привязанные по времени о том как установка была ориентирована в моменты замера температуры?
no subject
Date: 2013-09-26 06:44 pm (UTC)no subject
Date: 2013-09-26 06:49 pm (UTC)