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

Category:

Расчет синусного механизма

Синусный механизм применяют для превращения поступательного движения во вращательное.
При разработке ИК-спектрофотометра мне понадобилось рассчитать узел, позволяющий с минимальными затратами денег и энергии изменять угол падения света на дифракционную решетку. Здесь-то и спасает синусный механизм: для движения дифракционной решетки поперек пучка (чтобы ее центр всегда совпадал с центром пучка) и наклона диагональных зеркал, ломающих пучок, достаточно одного актуатора, перемещающего решетку. А зеркала будут подпружинены, и их верхние края, упираясь в расположенный на креплении решетки пирамидальный толкатель, будут сходиться/расходиться, изменяя синхронно с движением решетки угол наклона зеркал.


Оптическая схема


Понятное дело, что конусный толкатель будет наклонять зеркало. Однако, при этом если центр вращения зеркала проходит через оптическую ось, длина центрального луча будет сильно изменяться. Если мы сместим ось вращения по горизонтали на x, то получим, что в результате наклона изменение длины отраженного луча будет немного компенсироваться изменением длины падающего луча. Для вычислений сделаем такую схему:



Наклон зеркала производится перемещением дифракционной решетки и толкателя вниз. В результате хоть при больших углах часть пучка блендируется оправой коллиматора и камеры, зато углы падения света на зеркало не становятся слишком большими, т.е. эффективность отражения и поляризация от этого не страдают.
Из треугольника ABC получим, что длина отраженного луча L2 = w / cos(2α). При повороте зеркала на угол α длина падающего луча, L1, уменьшается на величину DC = b = x - EF. EF найдем из треугольника CEF: EF = x tg(π/4 + α).
Таким образом, полная длина луча будет равна
L = w - x[1 - tg(π/4 - α)].
Если луч будет поворачиваться не вниз, а вверх, то ось вращения надо смещать не от, а к дифракционной решетке.
Все вычисления при этом будут похожими, в результате получим:
L = w - x[tg(π/4 + α) - 1] .
Если сравнить формулы для этих двух случаев, заметим, что разница лишь в знаке. Т.о., если для первого случая считать x и α отрицательными, мы смело можем пользоваться второй формулой:
L = w - x[tg(π/4 + α) - 1] .
Для заданных величин x, w и α мы можем расчитать L при помощи такого простенького сценария Octave:

function l = L(w,x,angles)
  printf("first part:\n")
  L1 = w - x * (tan(pi/4 + angles) - 1)
  printf("second part:\n");
  L2 = w ./cos(2 * angles)
  l = L1 + L2;
endfunction

Вертикальное смещение пучка в зависимости от угла наклона зеркала тоже легко вычислить:
Δy = w tg(2α) - x tg(π/4 + α) - 1).
И оформить в сценарий:

function y = DY(w, x, angles)
% y - вертикальное смещение пучка в зависимости от угла
% w - расстояние по оси х от центра зеркала до оси решетки
% x - координата x центра вращения от центра зеркала
% angles - углы наклона зеркала (относительно 45 градусов) - в радианах
	y = w*tan(2*angles)-x*(tan(pi/4+angles)-1);
endfunction

Теперь нам надо расчитать еще и смещения дифракционной решетки с толкателем в зависимости от угла. Для этого нам нужно знать еще и смещение верхнего края зеркала (dz) в зависимости от угла поворота зеркала. Далее из простой тригонометрии мы получим смещение толкателя в зависимости от угла наклона зеркала и угла среза толкателя.

function z = dz(x, D, angles)
% z - горизонтальное смещение края зеркала от угла
% x - координата x центра вращения от центра зеркала
% D - полуширина зеркала в проекции на ось х
% angles - углы наклона зеркала (относительно 45 градусов) - в радианах
	z = (D-x)*(1-sqrt(2)*cos(pi/4+angles));
endfunction


function y = Y(x, D, angles, gamma)
% смещение клина в зависимости от угла
% x - координата x центра вращения от центра зеркала
% D - полуширина зеркала в проекции на ось х
% angles - углы наклона зеркала (относительно 45 градусов) - в радианах
% gamma - угол наклона грани призмы относительно вертикали - в радианах
	b = sqrt(2)*(D-x);
	z = dz(x, D, angles);
	y = b*(sin(pi/4+angles)-1/sqrt(2)) + z/tan(gamma);
endfunction

Для того, чтобы определить оптимальное смещение оси вращения зеркала, x, просто построим график зависимости максимальной величины (L-120) для каждого x с шагом 0.1 и посмотрим, куда же попадет минимум:


Зависимость изменения длины центрального луча от координаты x оси вращения зеркала

Итак, наименьшее отклонение у нас получится в случае, когда x=13.6мм.
Аналитически определить оптимальный угол среза толкателя в принципе можно, но реально все-таки проще сделать это перебором: зададим угол γ с определенным шагом и будем вычислять разность между смещением пучка и смещением решетки. Итак, нарисуем на графике зависимость положения луча и положения решетки от угла наклона зеркал. Кроме того, посчитаем среднеквадратичное отклонение этих величин и максимальный модуль отклонения.

function pl(x, D, w, angles, gamma)
% рисует отклонение пучка от центра в зависимости от параметров
% x - координата x центра вращения от центра зеркала
% D - полуширина зеркала в проекции на ось х
% w - расстояние по оси х от центра зеркала до оси решетки
% angles - углы наклона зеркала (относительно 45 градусов) - в радианах
% gamma - угол наклона грани призмы относительно вертикали - в радианах
	YY = Y(x,D,angles,gamma);
	DYY = DY(w,x,angles);
	plot(angles*180/pi, [YY; DYY]);
	xlabel('\alpha, degr');
	ylabel('Y, mm');
	stder = std(YY-DYY);
	tit = sprintf('Y vs \\alpha, x=%g, D=%g, w=%g, \\gamma=%g^o;  \\sigma_y=%g;  \\Delta_{max}=%g',x,D,w,gamma*180/pi,stder, max(abs(YY-DYY)));
	title(tit);
	legend('move of stage, mm', 'move of beam center');
	printf('std err: %g\ndelta max=%g\n', stder, max(abs(YY-DYY)));
endfunction

В результате получим, что для γ=28° отклонения будут наименьшими:



Теперь остается лишь подставить рассчитанные значения L1, L2 и углов в Zemax и посмотреть, насколько же ухудшится точечная диаграмма.



Tags: octave, синусный механизм
Subscribe

  • Понаблюдал, блин!

    Опять у нас что-то с сетью поломали. Хотел было протестировать, как наша подвесная часть оптоволоконного спектрографа работает, а из дома связь с…

  • Релюшки на CAN-шине

    Закончил с прошивкой для новой железяки. Как "наследница" USB-CAN переходника, она умеет все то же самое + несколько специфичных вещей (опрос…

  • Дохлый SSD

    Писал уже о китайском SSD, сдохшем за полтора месяца работы. Вот он, герой: Сегодня у нас опять работы с оптоволоконным спектрографом на цейссе,…

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
  • 2 comments