eddy_em: (Default)
[personal profile] eddy_em
Хоть нормальных наблюдений вчера провести не удалось (погода была ужасной), мы успели по крайней мере снять несколько гартманнограмм Веги для измерения точного положения фокальной плоскости для нового светоприемника (многострадального Apogee).

Итак, возьмем две гартманнограммы: предфокальную
и зафокальную:

Ее я обработал в своей fitsview для определения параметров пятен. Т.к. fitsview у меня еще сильно недопиленная, дальнейшие вычисления делаю в Octave.
Считываем X и Y предфокального (textread работает через задницу, поэтому делаем так):

> [id0 X0 Y0 a b c d e f g h] = textread('f0.93_0003.spotlist');
Считываем X и Y зафокального:

> [id1 X1 Y1 a b c d e f g h] = textread('f198.57_0003.spotlist');
Выкидываем маркеры и внешнее кольцо:

> idx0 = find(id0 != 299 & id0 < 700);
проверяем, все ли точки попали в наш список:

> 32*7
ans =  224

> size(idx0)
ans =

   224     1
То же самое делаем с зафокальным:

> idx1 = find(id1 != 299 & id1 < 700);
> size(idx1)
ans =

   224     1
Все ОК, ничего лишнего и ничего пропущенного.
Теперь нам надо найти центр гартманограммы. Среднее значение и медианное значение по всем точкам довольно прилично отличаются:

> X0Cm = median(X0)
X0Cm =  1876.5
> Y0Cm = median(Y0)
Y0Cm =  1867.5
> X0Ca = mean(X0)
X0Ca =  1900.6
> Y0Ca = mean(Y0)
Y0Ca =  1837.3
Попробуем по-другому: будем искать центр тяжести для каждой противоположной пары пятен:

function [Xc Yc] = getcenters(X, Y)
	Xc = []; Yc = [];
	for ring = [0:6]*32
		for point = [1:16]
			xx = (X(ring+point)+X(ring+point+16)) / 2;
			yy = (Y(ring+point)+Y(ring+point+16)) / 2;
			Xc = [Xc; xx]; Yc  = [Yc; yy];
		endfor
	endfor
endfunction
Пробуем:

[Xc0 Yc0] = getcenters(X0, Y0);
> std(Xc0)
ans =  12.199
>std(Yc0)
ans =  6.0896
> mean(Xc0)
ans =  1910.4
> mean(Yc0)
ans =  1830.9
> median(Xc0)
ans =  1911.8
> median(Yc0)
ans =  1831.5
Отлично: теперь у нас среднее и медиана почти совпадают, а среднеквадратическое отклонение хоть и не 1..2, но все-таки более-менее нормальное (не стоит забывать, что у нас и зеркало не идеальное, и погода мягко говоря плохонькая была).
Добавляем теперь в нашу функцию поиска центров "усреднялку":

	sx = std(Xc); sy = std(Yc);
	printf("sigma(Xc) = %g, sigma(Yc) = %g\n", sx, sy);
	Xc = median(Xc);
	Yc = median(Yc);
И вычисляем координаты центров обеих гартманограмм:

[Xc0 Yc0] = getcenters(X0, Y0)
sigma(Xc) = 12.1989, sigma(Yc) = 6.08961
Xc0 =  1911.8
Yc0 =  1831.5
> [Xc1 Yc1] = getcenters(X1, Y1)
sigma(Xc) = 15.8502, sigma(Yc) = 8.59652
Xc1 =  1889
Yc1 =  1837.5
Координаты центров по X разошлись почти на две сигмы. Но судить о том, произошло ли это по вине кривой посадки матрицы или же из-за статистики, рано: надо было сделать несколько гартманограмм с разными углами вращения поворотного стола.
Теперь определяем средние радиусы каждого кольца:

function [R err] = getR(Xc, Yc, X, Y)
	R = []; err = [];
	for ring = [0:6]*32
		idx = [1:32] + ring;
		radii = sqrt((X(idx)-Xc).^2+(Y(idx)-Yc).^2);
		R = [R; median(radii)];
		err = [err; std(radii)];
	endfor
endfunction

> [R0 err0] = getR(Xc0, Yc0, X0, Y0);
> [R1 err1] = getR(Xc1, Yc1, X1, Y1);
Итак, радиусы мы вычислили. Теперь посмотрим, сильно ли отличаются их отношения:

> R1./R0
ans =

   1.2787
   1.3226
   1.3203
   1.3381
   1.3318
   1.3366
   1.3334
Все более-менее прилично, определяем медиану:

> ratio = median(R1./R0)
ratio =  1.3318
Итак, габариты зафокальной гартманнограммы примерно в 1.33 раз больше габаритов предфокальной.
Пусть расстояние между снимками равно L, расстояние от фокальной плоскости до предфокальной гартманнограммы равно d0, до зафокальной - d1 (L=d0+d1). Характерные размеры гартманограмм обозначим как h0 и h1. Тогда элементарная пропорция h1/d1=h0/d0 даст нам выражение для вычисления положения фокуса относительно положения предфокального снимка:
d0 = (L*h0)/(h0+h1) = L/(1+r),
где r = h1/h0.
F = f0+d0 где F - искомая величина перемещения привода фокуса, f0 - отсчет привода фокуса для предфокального изображения.
Получаем:

> L = 198.57 - 0.93
L =  197.64
> d0 = L / (1+ratio)
d0 =  84.760
> F = 0.93 + d0
F =  85.690
Итак, значение F=85.69мм соответствует положению фокальной плоскости для нашей камеры.
Для того, чтобы это положение соответствовало ровно середине диапазона перемещения стола, нам надо укоротить крепеж камеры на

100 - F
ans =  14.310
В итоге получили, что нам надо отрезать 14мм от стоек крепления светоприемника. Отрежем, а на следующую техническую ночь проведем повторные измерения. Если все будет ОК, сделаем уже нормальный прибор, с турелью фильтров. И будем раз в месяц-два проводить позиционные измерения и снимать гартманнограммы. Правда, еще бы найти время, чтобы довести до ума восстановление профиля зеркала по гартманнограмме + автоматизировать позиционные измерения.

Date: 2012-07-13 05:33 am (UTC)
From: [identity profile] Вадим Крушинский (from livejournal.com)
http://ccd.com/pdf/altamech_d7.pdf

вот здесь есть расстояние и чертежи корпуса.

Date: 2012-07-13 05:52 am (UTC)
From: [identity profile] eddy-em.livejournal.com
Спасибо! Я такого чертежа не нашел.
Интересно: в документации "оптическое" расстояние равно 25мм, а наши измерения 30мм дали… Правда и чип у нас совсем другой (хоть и U16M).

Date: 2012-07-13 05:55 am (UTC)
From: [identity profile] eddy-em.livejournal.com
Кстати, Вадим, как там спектрограф поживает? А то что-то давненько от вас никаких вестей не было.

Date: 2012-07-13 07:43 am (UTC)
From: [identity profile] Вадим Крушинский (from livejournal.com)
Привет! Чип вряд ли влияет. Рабочий отрезок одинаковый для всех камер в этом корпусе. Проверяйте измерения))
Вот здесь для всех камер этого типа есть чертежи
http://ccd.com/alta_mechanical.html

Спектрограф поживает хорошо. Постепенно выходим на рабочий режим. Надеюсь этой зимой будем наблюдать уже регулярно.

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 08:54 am
Powered by Dreamwidth Studios