A A A A Автор Тема: РОС - программа расчёта оптики телескопов  (Прочитано 88601 раз)

0 Пользователей и 2 Гостей просматривают эту тему.

Оффлайн nolv

  • *****
  • Сообщений: 2 642
  • Благодарностей: 194
    • Сообщения от nolv
Я так понимаю, Глеб говорит не о "настоящем" ПЭ, а о макетировании каких-то внешних компонентов или составных частей, до которых фактическое моделирование ещё не дошло, с помощью ПЭ.

Это не то, что в отечественной литературе называется "оптика нулевых лучей"?

Оффлайн Дмитрий Серегин

  • ****
  • Сообщений: 274
  • Благодарностей: 11
  • Мне нравится этот форум!
    • Сообщения от Дмитрий Серегин
    • dseregin.nm.ru
Уважаемые, ну сделайте Вы фрагмент среды с показателем преломления "0", если элемент на входе, и получите выход по нормали от формы этой поверхности....
см. наше пособие open.ifmo.ru›images/7/7c/133651_mu_kmko2012.pdf


Оффлайн serega2007

  • ...
  • *
  • Сообщений: 67 117
  • Благодарностей: 1127
    • Сообщения от serega2007
    А это разве не грозит бесконечной скоростью света ?
До встречи на Астрофесте !
Ибо на Астрофоруме жизни нет .
                                            Серега .

Оффлайн Дмитрий Серегин

  • ****
  • Сообщений: 274
  • Благодарностей: 11
  • Мне нравится этот форум!
    • Сообщения от Дмитрий Серегин
    • dseregin.nm.ru
Проверено, работает.

Оффлайн serega2007

  • ...
  • *
  • Сообщений: 67 117
  • Благодарностей: 1127
    • Сообщения от serega2007
   Ну если математика допускает , значит и физический смысл имеется .
До встречи на Астрофесте !
Ибо на Астрофоруме жизни нет .
                                            Серега .

Оффлайн Gleb1964

  • *****
  • Сообщений: 2 271
  • Благодарностей: 313
    • Сообщения от Gleb1964
Я так понимаю, Глеб говорит не о "настоящем" ПЭ, а о макетировании каких-то внешних компонентов или составных частей, до которых фактическое моделирование ещё не дошло, с помощью ПЭ.
Это не то, что в отечественной литературе называется "оптика нулевых лучей"?
нет. Система все равно трассируется реальными лучами. Просто на параксиальном элементе не создаются аберрации, потому что лучи преобразуются на нем по законам параксиальной оптики. Параксиальный элемент всегда дифракционного качества

Оффлайн ekviАвтор темы

  • *****
  • Сообщений: 7 067
  • Благодарностей: 410
    • Сообщения от ekvi
сделайте ... фрагмент среды с показателем преломления "0", если элемент на входе, и получите выход по нормали от формы этой поверхности....
надо будет попробовать...

Вопрос введения параксиальных элементов в РОС тривиально упёрся в проблему маркировки - их идентификации при прогоне через них лучей: требуется перетряска всего программного кода. Целесообразности в такой работе пока не вижу.

Должен признаться, что Д.А. Серёгину долго пришлось убеждать меня в реальности существования "глобальных" минимумов - 40-летняя инерция - это вам не пуп царапать! Зато сейчас меня нужно "отдирать" от проблемы "глобальной" оптимизации. Возможно, и с параксиальными элементами будет также: не будем предопределять...
« Последнее редактирование: 04 Окт 2015 [21:30:55] от ekvi »

Оффлайн ekviАвтор темы

  • *****
  • Сообщений: 7 067
  • Благодарностей: 410
    • Сообщения от ekvi
Вот сам код алгоритма GlobalSeach:

procedure GlobalSeach(canvas:Tcanvas;Grd0,Grd1:TStringGrid);
var
 i,imn,m: integer;
 i0: int64;
 mn: float;

 procedure GScycle(z:float);
 var
  j,k: integer;
  r: float;
 begin
  for j:=0 to nVar do
  case m of
   // случайный разброс - в пределах полушага по vRange:
   0: pX^[j]:=oldX^[j]*((RanMar-0.5)/GS_Np+z);
    // случайный разброс в пределах +/- vRange:
   1: pX^[j]:=oldX^[j]*(RanMar*2-1)*vRange;
  end;
  fu:=sq2ro(pX);
  Simplex(itMaxSimplex);
  k:=i*2;
  if (z > 0) then
   inc(k);
  if (fu < mn) then
  begin
   imn:=k;
   mn:=fu;
   CopyVector(Xt,pX,0,nVar); // сохранение найденных min-Vars
   Loop(canvas,Grd0,Grd1);   // вывод данных в inf-окно
  end;
  ClrZon(canvas,15,200,wTestOS-5,215); // очистка старой строки
  canvas.TextOut(20,202,
   'imn='+inttostr(imn)+'. Fgmn='+FormatFloat('0.000',mn*1e3)+
   '. i='+inttostr(k)+', Fgi='+FormatFloat('0.000',fu*1e3)+
   '. Осталось:'+inttostr(i0-k)+' циклов, ');
  CopyVector(pX,oldX,0,nVar);
 end;

var
 f0,r: float;
begin
 f0:=fu;
 m:=frmMain.GS_RGrp.ItemIndex;
 CopyVector(oldX,pX,0,nVar);
 mn:=f0;
 imn:=GS_Np;
 i:=0;
 if (m < 1) then
 begin
  i0:=GS_Np*2;
  for i:=1 to GS_Np do
  begin
// очередное смещение по переменным:
   r:=i*vRange/GS_Np;
// "-" и к толщинам, т.к. в sq2ro d не изменит знак, а обнулится.
// R также не сколлапсирует, но будет всегда больше полудиаметра
   GScycle(-r); // 0 => -vRange
   GScycle(r);   // 0 => +vRange
  end;
 end
 else
 begin
  i0:=999999999999999;
  while not qut do
  begin
   GScycle(0);
   inc(i);
  end;
 end;
 if (mn < f0) then
// сохраняем найденные переменные
 begin
  CopyVector(pX,Xt,0,nVar);
  fu:=sq2ro(pX);
 end
 else
// возвращаемся в исходное положение
 begin
  fu:=f0;
  CopyVector(pX,oldX,0,nVar);
 end;
end;
« Последнее редактирование: 04 Окт 2015 [10:53:28] от ekvi »

Оффлайн ekviАвтор темы

  • *****
  • Сообщений: 7 067
  • Благодарностей: 410
    • Сообщения от ekvi
В алгоритме глобального поиска (GlobalSearch) параметр Npnts задаёт число исследуемых точек на весь диапазон варьирования переменными оптимизации. Порядок варьирования переменными оптимизации зависит от уставок радиобокса «Обход парам:» (см. илл.):

= при одновременном знакопеременном изменении переменные оптимизации монотонно изменяются от нуля до максимального значения vRange с одновременным случайным варьированием в пределах половины шага. Например, при Npnts = 100, не зависимо от числа переменных оптимизации nVars, время работы алгоритма составит примерно 5*100*2 сек или семнадцать минут (5 сек – среднее время выполнения одного Симплекс-шага);

= при случайном изменении каждая переменная оптимизации в случайном порядке варьируется от нуля до своего максимального значения vRange, при этом и знак вариации также случайно изменяется. Алгоритм работает в бесконечном цикле и прерывается только по нажатии кнопки «СтопМПО». Методичное «планирование эксперимента» при дроблении vRange на 10 интервалов (Npnts = 10) при nVars = 10 требует 5* 2*1010 = 10 000 000 000 сек = 318 лет – эти цифры позволяют оценить вероятность обнаружения истинного минимума за отведённое на эту процедуру время. Например, при работе 17 минут эта вероятность составит 1/10 000 000. Несмотря на столь пессимистичный прогназ, алгоритм довольно быстро находит удовлетворительное решение, которое затем с  помощью алгоритма BFGS легко довести до приемлемого результата;

- параметр vRange задаёт в относительных величинах ширину диапазона варьирования переменными оптимизации. Этот параметр используется во всех алгоритмах «глобального» поиска: SimulAnneal, GeneticAlgo и GlobalSearch, и его величина может варьироваться в широком диапазоне, например, от минус 4 до плюс 4;

- параметр nCycles, задавая алгоритмам число циклов оптимизации, определяет период обновления информационного окна. Например, процессор с тактовой частотой 2 ГГц тратит 6 - 8 сек
для LMgold, PSD, Marquardt и BFGS при nCycls = 200,
для SimplexNM при nCycls =  6000.
У глобальных алгоритмов периодичность  информирования не зависит от числа nCycls, а определяется значениями вышеуказанных целочисленных уставок.
« Последнее редактирование: 04 Окт 2015 [10:45:26] от ekvi »

Оффлайн Gleb1964

  • *****
  • Сообщений: 2 271
  • Благодарностей: 313
    • Сообщения от Gleb1964
Уважаемые, ну сделайте Вы фрагмент среды с показателем преломления "0", если элемент на входе, и получите выход по нормали от формы этой поверхности....
см. наше пособие open.ifmo.ru›images/7/7c/133651_mu_kmko2012.pdf
а при вводе лучей в такую среду разве не получится полного внутреннего отражения при любом угле входа? Ну, а на выходе будет всегда одна точка, через которую проходят все лучи - центр кривизны поверхности с 0-вым коэффициентом преломления, никаких других полевых точек не получить

Оффлайн Дмитрий Серегин

  • ****
  • Сообщений: 274
  • Благодарностей: 11
  • Мне нравится этот форум!
    • Сообщения от Дмитрий Серегин
    • dseregin.nm.ru
а при вводе лучей в такую среду разве не получится полного внутреннего отражения при любом угле входа?
Полное внутреннее отражение происходит при выходе из более плотной среды в менее плотную по показателю преломления.
А тут наоборот.
 ;)

Ну, а на выходе будет всегда одна точка, через которую проходят все лучи - центр кривизны поверхности с 0-вым коэффициентом преломления, никаких других полевых точек не получить
Для поля можно наклон и смещение попробовать задействовать.
« Последнее редактирование: 05 Окт 2015 [22:28:43] от Дмитрий Серегин »

Оффлайн Gleb1964

  • *****
  • Сообщений: 2 271
  • Благодарностей: 313
    • Сообщения от Gleb1964
а при вводе лучей в такую среду разве не получится полного внутреннего отражения при любом угле входа?
Полное внутреннее отражение происходит при выходе из более плотной среды в менее плотную по показателю преломления.
А тут наоборот.
 ;)
да, смотрю на формулу, думаю... вот и приходят всякие мысли. Что это, если не полное внутреннего отражения? Просто деление на ноль, как и подобает при полном внутреннем отражении при вводе в менее плотную среду... А среда с показателем "0" всегда менее плотная

\[ n_{1}\cdot sin(\theta _{1} ) = n_{2}\cdot sin(\theta _{2} ) \]
\[ n_{2}=0 \]
\[ sin({\theta _{2}})=\frac{n_{1}\cdot sin(\theta _{1})}{0}=\infty \]
« Последнее редактирование: 05 Окт 2015 [23:52:41] от Gleb1964 »

Оффлайн Дмитрий Серегин

  • ****
  • Сообщений: 274
  • Благодарностей: 11
  • Мне нравится этот форум!
    • Сообщения от Дмитрий Серегин
    • dseregin.nm.ru
Предмет находится в среде с показателем 0.

Оффлайн Gleb1964

  • *****
  • Сообщений: 2 271
  • Благодарностей: 313
    • Сообщения от Gleb1964
Предмет находится в среде с показателем 0.
В таком случае работает, но не проще просто лучи из точки предмета на конечном расстоянии пустить?

Оффлайн Алексей Юдин

  • *****
  • Сообщений: 28 807
  • Благодарностей: 1131
  • Так-с, где тут у Вас Кровавое Мясное Бодалово?
    • Сообщения от Алексей Юдин
Предмет находится в среде с показателем 0.
А каков физический смысл такой среды?

Оффлайн serega2007

  • ...
  • *
  • Сообщений: 67 117
  • Благодарностей: 1127
    • Сообщения от serega2007
    В том , что о Вашем Счастии на М42 узнали раньше даже , чем в Питере .
До встречи на Астрофесте !
Ибо на Астрофоруме жизни нет .
                                            Серега .

Оффлайн Дмитрий Серегин

  • ****
  • Сообщений: 274
  • Благодарностей: 11
  • Мне нравится этот форум!
    • Сообщения от Дмитрий Серегин
    • dseregin.nm.ru
Предмет находится в среде с показателем 0.
А каков физический смысл такой среды?

Я использовал для расчета компенсаторов аберраций нормалей для асферических поверхностей, т.к. программа РОС не работает с конечного расстояния, то я предложил использовать аналогичный вариант для имитации конечного расстояния.

Оффлайн ekviАвтор темы

  • *****
  • Сообщений: 7 067
  • Благодарностей: 410
    • Сообщения от ekvi
Просто деление на ноль, как и подобает при полном внутреннем отражении при вводе в менее плотную среду...
Параксиальный элемент - абстракция, и обработка прохождения реальных лучей через него - также специально изобретённый мат-аппарат, т.е  ИМИТАЦИЯ, как и сам автор говорит об этом:
я предложил использовать аналогичный вариант для имитации конечного расстояния.

При "маркировке" ПЭ я попробовал задавать ему нулевой радиус, а реальный его радиус хранить и брать из массива эксцентриситетов. При этом возникли трудности при специальной обработке ПЭ.
Побарахтавшись этак с полдня, я решил оставить эту затею: сфера с небольшим радиусом и вынесенным вперёд входным зрачком (микрокамера Шмидта) или обращенный микроскоп Бёрча с лихвой решают проблему расчёта проекционных систем, безо всякой мат-магии.

Таким же образом - в своё время - мне удавалось производить расчёт телескопических систем: параллельные пучки на выходе из окуляра преобразуются микрокамерой Шмидта с заданным фокусным расстоянием в сходящиеся пучки, а расстояние от центра поля зрения до данной точки в фокусе легко переводится в угловые минуты поля. Также оценивались и ошибки - по размеру пятен в фокусе микрокамеры.

Последняя версия РОС для пользователей: https://yadi.sk/d/igg9zkWOJNZZU
« Последнее редактирование: 08 Окт 2015 [19:48:36] от ekvi »

Оффлайн Gleb1964

  • *****
  • Сообщений: 2 271
  • Благодарностей: 313
    • Сообщения от Gleb1964
хорошо скоррегированный оптичекий компонент приближается по функциональности к параксиальному элементу и в расчете может быть подменен им, так что параксиальный элемент не такая уж и абстракция. Но зато ход лучей через ПЭ просчитывается быстрее, что может иной раз принести пользу. Кроме того, что ПЭ можно иногда подменить скомпенсированный компонент с неизвестной оптической схемой.
Хорошее приближение к параксиальному элементу можно получить, если использовать тонкую линзу с очень большим индексом преломления среды (устремленным к бесконечности). При этом сферические поверхности линзы устремляются к плоскости, толщину нужно сделать близкую к нулю, получиться параксиальный элемент, который можно расчитывать стандартными формулами, даже без формул параксиальной оптики. Чтобы получить определенное фокусное расстояние элемента, нужно завязать радиусы с показателем преломления формулой
признак параксиального элемента в таком случае - очень высокий индекс преломления

Оффлайн ekviАвтор темы

  • *****
  • Сообщений: 7 067
  • Благодарностей: 410
    • Сообщения от ekvi
Глеб!
Сегодня ПЭ уводят слишком далеко в сторону. Давайте оставим их на тот случай, когда без них не удастся обойтись?

Обсуждение в одной из тем навело на мысль о создании искусственного звёздного поля для тестирования по нему ОС.
На прилагаемых иллюстрациях примеры таких тестов. В них "звёзды" имеют 7-кратный перепад по яркости - так задумано.

Из всех ОС из комплекта TRAIN программы РОС наивысший контраст показал обращенный микроскоп Бёрча (на вкладке "ФРТ" правого блокнота главного окна программы РОС в правом нижнем углу страницы приводится численное значение уровня фона dIsqim в относительных единицах).
Две другие иллюстрации демонстрируют, что у разных систем - разные способности к отображению звёздного поля, а сами картины близки к реальности.
« Последнее редактирование: 10 Окт 2015 [20:53:27] от ekvi »