Телескопы покупают здесь


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

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

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

  • *****
  • Сообщений: 6 310
  • Благодарностей: 347
    • Сообщения от ekvi
Согласовал в РОС показания "свидетелей": F(Lam) с PolySpot - тесты по всем линиям рабочего диапазона спектра (см. илл.).
Архив модерна: https://yadi.sk/d/vviS6jkzxqKq4

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

  • *****
  • Сообщений: 6 310
  • Благодарностей: 347
    • Сообщения от ekvi
Эта модернизация касается адаптации РОС к экранам с разным разрешением:
https://yadi.sk/d/vviS6jkzxqKq4
На илл. - программа на экране с разрешением 1920х1080 пикселей.

Оффлайн Gleb1964

  • *****
  • Сообщений: 2 161
  • Благодарностей: 275
    • Сообщения от Gleb1964
Глеб, если Вы не возражаете, я попробую решить эту задачу на Дельфи?
Пожалуй, лучше продолжить дискуссию здесь.

Я посмотрел пост 538 400мм зеркало 1см толщиной в теме Анатолия Белкина и не очень понял, какую задачу решает программа:


Поэтому попробую пояснить свой подход.
Прежде всего обращаю внимание на радиальную координату. У Анатолия Белкина на графике продольных аберраций радиальная координата размечена нелинейно. У него линейно разбит квадрат радиальной координаты. И это правильно, так и нужно делать, в квадрате радиальной координаты график продольных аберраций преобразуется в прямую линию для любых коникоидных сечений. Для сферы это горизонтальная линия, для параболы линия с наклоном. Все семейство эллипсоидов с k = 0 .. -1.0 дает линии с промежуточным наклоном между сферой и параболой, а гиперболоиды дают линии с большим наклоном, чем парабола.


 
Хорошее свойство прямой в том, что производится меньше "насилия" при интерполяции.

Вот формула продольной аберрации для конического сечения:

« Последнее редактирование: 04 Ноя 2019 [14:53:06] от Gleb1964 »

Оффлайн Gleb1964

  • *****
  • Сообщений: 2 161
  • Благодарностей: 275
    • Сообщения от Gleb1964
Следующий момент - на Вашем графике я вижу, что Вы пересчитали исходные измерения на линейную радиальную шкалу (объяснил постом выше, почему я против этого), а потом сделали регрессию полинома через данные измерений (?), уничтожив тем самым исходные данные, что уже категорически неверное направление обработки.
Я правильно понял?

Вот еще картинки - парабола в квадратичной радиальной шкале выглядит как прямая линия:



А разности, взятые между различными коникоидами, представленные в 4-й степени радиальной шкалы, выглядят как прямые линии:

« Последнее редактирование: 04 Ноя 2019 [15:10:47] от Gleb1964 »


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

  • *****
  • Сообщений: 6 310
  • Благодарностей: 347
    • Сообщения от ekvi
какую задачу решает программа
Задачу мы с Вами сформулировали сами при анализе кривых dS = F(Y), представляемых А. Белкиным в его теме. Так как было бы нагляднее, глядя на график полученной асферичности, производить планирование своих дальнейших действий по асферизации зеркала, то и возникла задача перевода графика продольных аберраций нормалей асферического зеркала относительно вершины вершинной сферы dS = F(Y) в график асферичностей зеркала (отступления асферической поверхности от вершинной сферы) dd = F(Y).

пересчитали исходные измерения на линейную радиальную шкалу (объяснил постом выше, почему я против этого), а потом сделали регрессию полинома
да, так: dS = str*e2, где dS - аберрация нормали, str - стрелка, e2 - квадрат эксцентриситета.
str = ~ Y2/2/Ro - т.е. зависимость стрелки от ординаты Y - квадратичная. Поэтому кривая (судя по данным А. Белкина, - ломаная) аппроксимируется квадратичным многочленом dS = a*Y2 + b* Y + c методом наименьших квадратов.
Не знаю, как насчёт перевода графика dS = F(Y)   в график dS = F(Y2), по-видимому, польза будет, но лучше аппроксимировать полиномами высокого порядка (для графиков Белкина - обязательно!). Есть в моём архиве (впопыхах не удалось быстро найти) алгоритмы с аппроксимацией полиномами до 9 порядка.
А дальше - получив аналитическое представление dS  в виде полинома 2й степени, не мудрствуя лукаво, сделал обычное интегрирование полинома, разбив полудиаметр на 10000 отрезков, и, получив ошибку в 0.01 мкм, - успокоился на достигнутом.

Дело в том, что Белкин просто "ковыряет" поверхность, игнорируя опыт тысяч оптиков с маской, и его поверхности (на графиках я умышленно утрирую dS ломаной кривой) необходимо сглаживать высоким полиномом. Профили Г. Селевича намного плавней, и они будут отлично обрабатываться 2й степенью.
« Последнее редактирование: 04 Ноя 2019 [21:36:37] от ekvi »

Оффлайн Gleb1964

  • *****
  • Сообщений: 2 161
  • Благодарностей: 275
    • Сообщения от Gleb1964
судя по данным А. Белкина, - ломаная
У Белкина нигде нет расчета профиля поверхности из продольных аберраций (кроме моего), вторая кривая на его графике это продольные аберрации целевой параболы. В случае параболы кривая продольных аберраций совпадает с профилем (стрелкой) поверхности, но, в общем случае, для произвольного квадрата эксцентриситета или для реальной неровной поверхности такого совпадения нет. Профиль поверхности нужно восстанавливать интегрируя стрелку поверхности по частям, кусочно апроксимируя сферами, прилегающими друг к другу.
Первый сферический сегмент имеет радиус, равный вершинному. Каждый последующий радиус считается с учетом продольной аберрации нормали и проинтегрированного профиля поверхности z в точке стыка сфер.



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

Вот интреполяция (ресамлинг х3) графика измеренных продольных, жирные красные точки - реальные измерения, синия линия с крестиками - 3-х кратно проинтерполированные данные - между любыми двумя реальными точками добавлены 2 интерполированные точки. Зеленый график это продольные для целевой поверхности (параболы), просто для ориентира. Кривая представлена в квадратичных радиальных координатах с симметричным отображением в область отрицательных радиальных координат - это упрощает интерполяцию, особенно в проходе точки "0".


« Последнее редактирование: 04 Ноя 2019 [22:20:34] от Gleb1964 »

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

  • *****
  • Сообщений: 6 310
  • Благодарностей: 347
    • Сообщения от ekvi
нужно помнить, что однозначного восстановления профиля поверхности из продольных аберраций быть не может, потому что восстановление профиля между точками основано на допущениях, а не на измерениях
А вот тут не соглашусь: высокие полиномы способны восстанавливать реальные кривые с заданной точностью.

Да, грандиозную работу Вы, Глеб, провели!
Единственно, в чём я добавлю Ваше исследование: сложность в том, что при "горбатой" кривой возникает многозначность функции, когда она при разных ординатах имеет одну и ту же аберрацию. Здесь, согласен, потребуется её покусочное рассмотрение для разделения её возвратных ходов.

Но работа эта, уверяю Вас, чрезвычайно полезная: она, как полировка собственными руками, увеличивает площадь нашего контакта с действительностью.
« Последнее редактирование: 05 Ноя 2019 [10:55:18] от ekvi »

Оффлайн Gleb1964

  • *****
  • Сообщений: 2 161
  • Благодарностей: 275
    • Сообщения от Gleb1964
А вот тут не соглашусь: высокие полиномы способны восстанавливать реальные кривые с заданной точностью.
Владимир Ильич, полином степени n-1 можно провести через n точек. Если это точки реальных измерений с шумом, то они негладкие, в таком случае полином форсируется через точки, что вызывает какие угодно амплитуды осцилляций полинома между точками. Если двинуть любую точку, изменится форма всего полинома. Если полином имеет степень ниже, он не может пройти строго через все точки, это уже регрессия. Для восстановления формы зеркала по реальным измерениям полиномы высоких степеней не годятся от слова "совсем".

Оффлайн Gleb1964

  • *****
  • Сообщений: 2 161
  • Благодарностей: 275
    • Сообщения от Gleb1964
Предлагаю простую задачу (или серию задач) на развитие понимания метода продольных аберраций.
Начнем со сферического зеркала - график продольных аберраций горизонтальная линия, где все точки лежат на нуле. Теперь пусть одна точка в средней зоне отклоняется от нуля (скажем в минус), как изменилась форма зеркала?

Графическое решение выглядит так: 


Оффлайн Gleb1964

  • *****
  • Сообщений: 2 161
  • Благодарностей: 275
    • Сообщения от Gleb1964
А теперь как выглядит решение этой простой задачки в программе Excel (помним, что график приводит не форму самой поверхности, а отступление поверхности, в данном случае, от сферы с тем же вершинным радиусом):



Как видите, образовалась ступень на поверхности, волновой фронт будет несинфазный, зеркало представляет собой три зоны и все с разными радиусами. Предлагаю как тестовый пример для вашей программы.
« Последнее редактирование: 05 Ноя 2019 [12:36:25] от Gleb1964 »

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

  • *****
  • Сообщений: 6 310
  • Благодарностей: 347
    • Сообщения от ekvi
полином форсируется через точки, что вызывает какие угодно амплитуды осцилляций полинома между точками
- это Вы мыслите интерполяцией.
Аппроксимация МНК пройдёт мимо точек и ляжет, как надо, обеспечив заданное СКО.

На предложенный тест dsTOd3 отреагировала так:
Нормальная реакция для полинома 2й степени.
Только надо, чтобы dS(190) не был нулевым.
« Последнее редактирование: 05 Ноя 2019 [12:55:02] от ekvi »

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

  • *****
  • Сообщений: 6 310
  • Благодарностей: 347
    • Сообщения от ekvi
Аппроксимация МНК пройдёт мимо точек и ляжет, как надо, обеспечив заданное СКО.
На илл. - подтверждение сказанного:
- аппроксимация полиномом 5й степени,
- аппроксимация полиномом 19й степени.
- тестовый при аппроксимации полиномом 19й степени,
Степень полинома можно увеличивать хоть до 250, только mPol должна быть меньше числа точек измерения, в данном случае mPol < Npt  = 20.

Оффлайн Gleb1964

  • *****
  • Сообщений: 2 161
  • Благодарностей: 275
    • Сообщения от Gleb1964
Ну, а профиль поверхности где посмотреть?

Метод должен пройти тест.
Например:
1. Задаем исходную поверхность z(r) с малым шагом по радиальной координате r. Поверхность может быть идеальная или реалистичная, со всякими отлонениями.
2. Берется первая производная по радиальной координате.
3. Расчитываются положения нормалей по зонам - продольные аберрации.
4. Из продольных аберраций выбирается ограниченный набор данных, они представляют набор измеренных продольных, 10-20 точек. Больше точек реальный пользователь измерять не будет.
5. Выбранный набор продольных аберраций предлагается программе, программа восстанавливает профиль поверхности.
6. Восстановленный профиль поверхности сравнивается с исходным.

Все - смотрим профиль разностей между исходным и восстановленным. Делаем выводы о работоспособности программы.

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

Картинка одного из тестов - к параболе добавил искажения полиномом Цернике - сферическую аберрацию 5-порядка. Потом посчитал аберрации нормалей и прогнал через восстановление профиля, из профиля вычел исходную идеальную параболу - получил ту же волну искажений, что и добавил.

« Последнее редактирование: 06 Ноя 2019 [13:21:06] от Gleb1964 »

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

  • *****
  • Сообщений: 6 310
  • Благодарностей: 347
    • Сообщения от ekvi
Ну, а профиль поверхности где посмотреть?
Вот здесь, в синем цвете: только не профиль, а то, что нужно ещё снимать.
Экзешник приложен в формате *.rar.
« Последнее редактирование: 07 Ноя 2019 [15:18:21] от ekvi »

Оффлайн Gleb1964

  • *****
  • Сообщений: 2 161
  • Благодарностей: 275
    • Сообщения от Gleb1964
Попробовал задать в качестве отправной поверхности для тестирования сферу, квадрат эксцентриситета 0, все продольные - 0.
Получил вот это (русские шрифты не видны, как обычно, это отдельная проблема для меня  :'(  ):
« Последнее редактирование: 07 Ноя 2019 [12:53:05] от Gleb1964 »

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

  • *****
  • Сообщений: 6 310
  • Благодарностей: 347
    • Сообщения от ekvi
Получил вот это
Пожалуйста: сфера - никаких проблем (последняя точка д.б. не нулём!).
PS. Как "пацак - пацаку" вынужден напомнить: вообще-то, всякая программа проходит период аппробации.

Оффлайн Gleb1964

  • *****
  • Сообщений: 2 161
  • Благодарностей: 275
    • Сообщения от Gleb1964
Хорошо, учел это, добавил 10-6, программа посчитала поверхность с волнами.
Моя программа аналогичные данные (сфера, все продольные по нулям) обсчитала с отклонением 10-12 микрона - чисто шум конечной разрядности.
Добавил на поверхности канавку, на 80мм продольная 1мм, поверхность отклоняется вниз, на 90мм продольная -0.9мм - поверхность поднимается обратно вверх, примерно выравниваясь с поверхностью до канавки.
Вот сравнительные результаты - Владимир Ильич, Ваша программа делает канавку широкой, затрагивая зоны, где изменений не было внесено, по всей поверхности зеркала идут волны. Это следствие использования полинома. Этого делать нельзя, у полинома изменение любой точки влечет осцилляцию полинома по всей поверхности. А в жизни, на реальном зеркале, изменение одной зоны поверхности не влияет на другие зоны.
 



« Последнее редактирование: 07 Ноя 2019 [15:13:40] от Gleb1964 »

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

  • *****
  • Сообщений: 6 310
  • Благодарностей: 347
    • Сообщения от ekvi
Ваша программа делает канавку широкой, затрагивая зоны, где изменений не было
Единичная импульсная функция (кажется, она называется функцией Грина - давно не общался с этими товарищами - Кронекер, Грин и др) - в данном случае вряд ли является уместным тестом.
Сейчас поигрался с программой - пока она не вызывает желания вносить какие-то изменения. Пусть пройдёт обкатку.

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

  • *****
  • Сообщений: 6 310
  • Благодарностей: 347
    • Сообщения от ekvi
По настоянию И.Н. Панкратова (INPan) начал эпопею по созданию в программе РОС экранной лупы для рассматривания на схеме ОС мелких оптических элементов.
Вот первый вариант такого увеличителя (пока без привлечения векторной графики):
1 илл. - вся схема - в обычном масштабе,
2 илл. - блок с полевыми линзами увеличен в sqrt(ns) раз, в данном случае - в 3 раза.

Моё мнение: всё-таки РОС - техническая, даже математико-расчётная, а не развлекательно-рекламная  программа, и инициатору этого направления её развития просто нужно освоиться с таблицей параметров ОС (на интерфейсе РОС это - Таблица "ОСпарам" в левом блокноте) и приучить себя её легко читать - так, как этому в своё время научаются все расчётчики.

Сама же схема во всех подобных программах приводится в качестве опоры для подтверждения правильности её прочтения.
Мне представляется неправомерно ожидать от схемы ОС CAD-овских функций с возможностью манипулирования с 2d- или 3d-изображением ОПТИЧЕСКОЙ КОНСТРУКЦИИ ПРИБОРА. Такой задачи перед программой РОС (и ей подобным) не ставится.

Тем не менее, вот сегодняшняя версия программы РОС с только что описанной опцией увеличения размеров части элементов оптической схемы: https://yadi.sk/d/vviS6jkzxqKq4
Кто знает, может быть новая опция окажется полезной?
« Последнее редактирование: 10 Ноя 2019 [21:37:50] от ekvi »

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

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