A A A A Автор Тема: Расчет коэффициентов аберраций третьего порядка  (Прочитано 5028 раз)

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

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

  • ****
  • Сообщений: 469
  • Благодарностей: 17
  • Мне нравится, просто нравится...
    • Сообщения от Serge Chuprakov
Как я уже говорил в предыдущей теме, готов ответить на все конструктивные замечания и предложения от программистов, желающих снять с плеч наших оптиков тяжкий груз вины за нарушение прав авторов программы!
К сожалению, пока никто из форумчан и вообще отечественных программистов не предложил нам никаких иных доступных средств для проведения символьных вычислений в таком же наглядном виде как соответствующая программа и схожие с ней средства. Чем я чрезвычайно опечален
Уже вышел из возраста, когда переживаешь, что о тебе подумают другие. Пусть теперь другие переживают, что о них подумаю я

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

  • ****
  • Сообщений: 469
  • Благодарностей: 17
  • Мне нравится, просто нравится...
    • Сообщения от Serge Chuprakov
А, правда, кто-нибудь набрался храбрости и открыл рекомендуемую С. Чупраковым программу?
Вообще, в свое время мне рассказали про нее студенты 20-22 лет, а до этого я все карандашиком решал.
И, главное, я не услышал ответа на свое предложение о создании софта под Windows для анализа ПРОИЗВОЛЬНОЙ системы в области Зейделя. Из сказанного Вами можно сделать вывод, что у Вас уже есть все это, и оно Вас устраивает, и "оно Вам не надо" еще и адаптировать ЭТО для других?
Хорошо, Владимир Ильич, если от меня требуется только это могу пояснить Вам как программисту свое предложение, как человек, производящий время от времени анализ произвольных систем в области Зейделя. Приведенный файл (а так же графические возможности для визуализации и средства для решения систем уравнений) — ВСЕ, чего с запасом достаточно для такой работы. Это составляет хорошо если 5-10% возможностей соответствующей программы. Если кто-нибудь из отечественных программистов, да еще и имеющих представление об оптике, взял на себя труд предложить программное средство, настроенное только на такие вычисления, этого было бы достаточно. Как легко видеть из примеров, одно из достоинств программы — наглядность представления, что чрезвычайно важно при работе с такими громоздкими формулами, с которыми имеет дело аберрационная теория. Другое — мощный алгоритм символьных вычислений и средства для решения систем нелинейных алгебраических уравнений, аналитически и численно.
Уже вышел из возраста, когда переживаешь, что о тебе подумают другие. Пусть теперь другие переживают, что о них подумаю я

Оффлайн ekvi

  • *****
  • Сообщений: 7 049
  • Благодарностей: 406
    • Сообщения от ekvi
снять с плеч наших оптиков тяжкий груз вины за нарушение прав авторов программы
Вы "раздели" чужую программу? Если только для себя - ничего предосудительного. В свое время и я дорабатывал математику в Бейсик-компиляторе. Совместный продукт может иметь "чужие вставки" - если сослаться на источник. Но я намерен сделать свободный софт.
как человек, производящий время от времени анализ произвольных систем в области Зейделя
В таком режиме можно делать преданализ - от одного диссерта до другого, содержанием которых, как я понял, и являются двухэтажные формулы, которые "генерируются" соискателем.
визуализации и средства для решения систем уравнений
- тривиальные задачи.
взял на себя труд предложить программное средство, настроенное только на такие вычисления, этого было бы достаточно
Такой опыт "сотрудничества" уже имеется.

Оффлайн ekvi

  • *****
  • Сообщений: 7 049
  • Благодарностей: 406
    • Сообщения от ekvi
Ну, давайте, Сергей, это дело переспим: утро вечера мудренее.

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

  • ****
  • Сообщений: 469
  • Благодарностей: 17
  • Мне нравится, просто нравится...
    • Сообщения от Serge Chuprakov
Если присутствующие заметили, я сегодня в хорошем расположении духа :) Это редкость, обычно я мрачен
Вы "раздели" чужую программу? Если только для себя - ничего предосудительного. В свое время и я дорабатывал математику в Бейсик-компиляторе. Совместный продукт может иметь "чужие вставки" - если сослаться на источник. Но я намерен сделать свободный софт.
Прекрасно! И помилуйте, я не раздевал ничьей программы, я скромно скачал готовенькое и пользуюсь
В таком режиме можно делать преданализ - от одного диссерта до другого, содержанием которых, как я понял, и являются двухэтажные формулы, которые "генерируются" соискателем.
Как говорил друг юности моей подруги детства Олег Григорьевич Митяев, (цитата неточная, конечно же) что то типа: «Это очень просто быть Олегом Митяевым: вот гитара, вот микрофон, выходите и поете свои песни, делов то» :)
Уже вышел из возраста, когда переживаешь, что о тебе подумают другие. Пусть теперь другие переживают, что о них подумаю я

Оффлайн ekvi

  • *****
  • Сообщений: 7 049
  • Благодарностей: 406
    • Сообщения от ekvi
Ваши разъяснения не прибавили к уже сказанному ни грамма ясности: так и остались одни догадки и домыслы, "а воз - и ныне там".

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

  • ****
  • Сообщений: 469
  • Благодарностей: 17
  • Мне нравится, просто нравится...
    • Сообщения от Serge Chuprakov
Ваши разъяснения не прибавили к уже сказанному ни грамма ясности: так и остались одни догадки и домыслы, "а воз - и ныне там".
1. См. Seidel_tutorial_1.jpg, читаем начало темы В такой форме надо задавать начальные условия?
- количество рабочих поверхностей
- условие масштаба (или фокусное расстояние (последний угол и первую высоту) присвоить 1, как обычно принято при таких расчетах)
- положение входного зрачка (может совпадать с какой-то поверхностью, может «в воздухе висеть»)
- известные параксиальные углы (никогда не известно, сколько их)
- расстояния (тоже не известно, иногда требуется решать полученные уравнения не только относительно углов, но и расстояний)
- коэффициенты асферичности (некоторые или все равны нулю, тоже никогда не знаешь, на какую поверхность захочется нанести асферику)
- показатели преломления (обычно известны)
- дисперсии (тоже обычно известны)
- и/или соотношения между ними, в зависимости от условий задачи (в рассмотренном примере задано условие Д.Д.Максутова, но иногда требуется задать плоскую поверхность, поверхность, работающую в обратном ходе и т. п.)
Мне кажется, здесь нужен какой-то скриптовый язык, причем позволяющий наглядность представления формул с самого начала, на этапе задания начальных условий. Иногда соотношения между задаваемыми переменным бывают весьма причудливы и громоздки.
2. В итоге, на первом этапе, пусть программа хотя бы запишет уравнения, показанные на картинке Seidel_tutorial_4.jpg
3. Полученные выражения для коэффициентов хотелось бы:
- приводить к общему знаменателю (максимально упрощать),
- раскладывать в полином относительно выбранной переменной (любой, с отбрасывание степеней выше заданной),
- группировать относительно выбранной переменной (выносить ее за скобки)
пока как то так...
« Последнее редактирование: 24 Ноя 2014 [08:55:30] от Serge Chuprakov »
Уже вышел из возраста, когда переживаешь, что о тебе подумают другие. Пусть теперь другие переживают, что о них подумаю я

Оффлайн ekvi

  • *****
  • Сообщений: 7 049
  • Благодарностей: 406
    • Сообщения от ekvi
известные параксиальные углы (никогда не известно, сколько их)
Структуру ОС = число компонентов -> задавать на берегу, иначе можно "растечься мыслью по древу".
расстояния (тоже не известно
и все ниже перечисленное - производится во время оптимизации ОС.
наглядность представления формул
и все, относящееся к формулам, - это последствия лобового решения проблемы взаимодействия "человек <=> ПК".
С машиной нужно говорить на ее языке, т.к. мы никогда не дождемся, чтобы она заговорила на нашем. И те, кто постарался в решении проблемы ввода "человеческих" формул в машину, создав всевозможные лабы и кады на базе своей математики, оказали молодым людям медвежью услугу, вырастив из них беспомощных лентяев, не способных к переложению решающих алгоритмов на машинный язык посредством программирования.

Эту задачу я уже пытался разложить на составляющие;
для 1-, 2х-, 3х и т.д. -зеркальных и -линзовых систем составить интерфейсы - пара пустяков.
Но когда составишь, возникает недоумение: для чего?! - если проще достать аналог из базы данных, отмасштабировать его, выбрать переменные и запустить на оптимизацию - пара минут, и ответ получен!
Потому и вопрос: о чем весь этот сыр бор про Зейделя?!
Да, иногда возникают тупиковые ситуации, когда оптимизатор буксует, но "подключаешься" к системе, осознаешь, чего она "хочет", и дело налаживается.
Разве не о том же говорили все оптические корифеи - Слюсарев, Чуриловский, Русинов?
А Попов, с самого начала склонный к аналитическому решению в общем виде, свои уравнения решал аналитически и не пытался "перепоручить интеллектуальное занятие другому", т.е. машине.
Вот так, приблизительно, я вижу ситуацию с 3ми порядками.
« Последнее редактирование: 05 Дек 2014 [10:30:42] от ekvi »

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

  • ****
  • Сообщений: 469
  • Благодарностей: 17
  • Мне нравится, просто нравится...
    • Сообщения от Serge Chuprakov
Попытаюсь подытожить, Вы видели какие параметры задаются:
1. Они могут быть напрямую заданы ВСЕ.
2. КАЖДЫЙ из них, в свою очередь, может быть произвольной алгебраической функцией тех, которые заданы напрямую.
3. Какие-то могут быть вообще опущены (приравнены нулю), например дисперсии в чисто зеркальной системе или системе, работающей монохроматическим излучением или параметры деформации в системе со сферическими поверхностями
Остальные соотношения (Seidel_tutorial_2.jpg и Seidel_tutorial_3.jpg — собственно сами коэффициенты)
То что на первом этапе хотелось бы получить — тоже видели. Пусть просто выражения для коэффициентов. Решать их не требуется пока
« Последнее редактирование: 24 Ноя 2014 [10:42:01] от Serge Chuprakov »
Уже вышел из возраста, когда переживаешь, что о тебе подумают другие. Пусть теперь другие переживают, что о них подумаю я

Оффлайн ekvi

  • *****
  • Сообщений: 7 049
  • Благодарностей: 406
    • Сообщения от ekvi
Попытаюсь подытожить
еще рановато.
параметры задаются:
1. Они могут быть напрямую заданы ВСЕ.
2. КАЖДЫЙ из них, в свою очередь, может быть произвольной алгебраической функцией тех, которые заданы напрямую.
Оптимизатор сам определится.
опущены (приравнены нулю), например дисперсии
Можно организовать перебор стекол при оптимизации, но по этоиу поводу почитайте наш диалог с Незнайкой и резюме Тригубова в Теме "Наши программы...", которую модератор перекинул в ветку "Астрономия м компьютеры".
на первом этапе хотелось бы получить ... Пусть просто выражения для коэффициентов
Машина может выдать только число, т.е. к-ты в Вашем выражении. А выражение остается головоломкой для пользователя.
Вот я и спрашиваю: если Вы привязали пользователя к машине, решая задачу в диалоговом режиме, то для чего вплетать в этот процесс рудимент, когда тот же результат может быть получен непосредственно оптимизацией натуральных, а не абстрактных, параметров сисстемы?

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

  • ****
  • Сообщений: 469
  • Благодарностей: 17
  • Мне нравится, просто нравится...
    • Сообщения от Serge Chuprakov
Владимир Ильич, мне НЕ нужны цифры, мне нужны аналитические выражения.
Пусть программа будет вроде «компилятора». Пусть она «читает» скрипт, которым задана система, при необходимости находит в нем ошибки, сигнализирует о них до тех пор, пока пользователь не введет все, что необходимо для получения исходных данных. Потом мы жмем на кнопочку «Evaluate...» и программа выдает выражения для коэффициентов примерно в том виде, как показано на рисунке Seidel_tutorial_4.jpg
Решать будем потом, пусть пока она делает вышеописанное
Уже вышел из возраста, когда переживаешь, что о тебе подумают другие. Пусть теперь другие переживают, что о них подумаю я

Оффлайн ekvi

  • *****
  • Сообщений: 7 049
  • Благодарностей: 406
    • Сообщения от ekvi
Пусть программа будет вроде «компилятора». Пусть она «читает» скрипт, которым задана система
Сергей!
В такой постановке это - Ваша сегодняшняя задача, и не надо меня подряжать на ее решение: каждый должен решать свою часть.
Речь нужно вести о симбиозе теории (Ваша часть) и численного эксперимента (моя часть).
Давайте подумаем.
Уже хорошо, что хоть какое-то начало положено.
Появятся идеи - вернемся в тему.
А пока - до свидания!

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

  • ****
  • Сообщений: 469
  • Благодарностей: 17
  • Мне нравится, просто нравится...
    • Сообщения от Serge Chuprakov
Вы сами предложили написать программу анализа системы в области Зейделя. Спросили меня как человека, который «на самом гребне» (это даже льстит, уверен, есть люди которые гораздо больше в теме, но ладно). Я ответил и примерно расписал, как мне удобно работать с ОС.
Численные расчеты легко реализуются другими, не такими сложными средствами (да в том же ZEMAX-e можно оптимизировать коэффициенты аберраций «вслепую», т. е. радиусами, толщинами и асфериками). Я сам в студенчестве писал такую программу, правда без интерфейса, еще под DOS. Для оптимизации реальных лучей есть программы трассировки.
И только Mathematica  дает уникальную возможность проводить аналитические исследования, о которых и идет речь в этом топике.
« Последнее редактирование: 24 Ноя 2014 [12:52:43] от Serge Chuprakov »
Уже вышел из возраста, когда переживаешь, что о тебе подумают другие. Пусть теперь другие переживают, что о них подумаю я

Оффлайн ekvi

  • *****
  • Сообщений: 7 049
  • Благодарностей: 406
    • Сообщения от ekvi
Вы сами предложили написать программу анализа системы в области Зейделя.
Свое видение такой программы я выше изложил, и оно В ПРИНЦИПЕ ОТЛИЧАЕТСЯ  от Вашего.
Потому и было предложено Вам, осмыслив ситуацию, не упираться в трансформацию формул (писать которые - Ваша прерогатива), а составить универсальный алгоритм взаимодействия пользователя с ПК во время постановки ему своей исследовательской задачи. Вот когда эта логика будет осмыслена и изложена в виде схемы, то, учитывая Ваш "опыт" написания программ для ОС Windows, я готов в среде Дельфи трансформировать этот УниверсальныйДиалог3 в винд-приложение.
Но, как я понимаю, кроме "формул по зейделю" пока ничего не сгенерировано в свете предыдущих переговоров.

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

  • ****
  • Сообщений: 469
  • Благодарностей: 17
  • Мне нравится, просто нравится...
    • Сообщения от Serge Chuprakov
Ну так Вы сами спросили, что мне нужно, как оптику для анализа в области Зейделя. Я отвечаю, что программа, которая как Mathematica работает с формулами. Я не знаю как написать такую программу, ведь я не позиционирую себя как профессиональный программист. Что не так?
Если Вы не согласны, что результатом работы такой программы должны быть формулы, зачем тогда меня спрашивали?
Уже вышел из возраста, когда переживаешь, что о тебе подумают другие. Пусть теперь другие переживают, что о них подумаю я

Оффлайн ekvi

  • *****
  • Сообщений: 7 049
  • Благодарностей: 406
    • Сообщения от ekvi
сами спросили, что мне нужно
Разве так ставился вопрос?
не согласны, что результатом работы такой программы должны быть формулы
Результатом работы программы АОС3 (Анализ ОС в области Зейделя) должна быть схема НОВОЙ системы, удовлетворяющей поставленным требованиям, с выходными параметрами - как первое приближение толщин и радиусов.
Задание д.б. аналогом целевой функции, которая составляется в Земаксе перед оптимизацией. И тут помощником, скорей всего, может оказаться не Чупраков, а Юдин.

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

  • ****
  • Сообщений: 469
  • Благодарностей: 17
  • Мне нравится, просто нравится...
    • Сообщения от Serge Chuprakov
Результатом работы программы АОС3 (Анализ ОС в области Зейделя) должна быть схема НОВОЙ системы, удовлетворяющей поставленным требованиям, с выходными параметрами - как первое приближение толщин и радиусов.
Задание д.б. аналогом целевой функции, которая составляется в Земаксе перед оптимизацией.
Не знаю, что в итоге выйдет, но ТОЧНО ТАК, чтоб программа изобретала НОВУЮ систему, т. е. занималась не чем нибудь, а композицией ОС — не получится.
И тут помощником, скорей всего, может оказаться не Чупраков, а Юдин.
Ну попробуйте спросить у Алексея, он скажет то же самое
Уже вышел из возраста, когда переживаешь, что о тебе подумают другие. Пусть теперь другие переживают, что о них подумаю я

Оффлайн ekvi

  • *****
  • Сообщений: 7 049
  • Благодарностей: 406
    • Сообщения от ekvi
Позвольте изложить свое понимание вопроса.
Процесс разработки ОС состоит из нескольких этапов.

А. Для разрабатываемой системы пользователем программы Задаются:
1. Структура ОС - состав и расположение компонентов.
2. Внешние характеристики ОС - Ф, ЭФ, 2w, Sp, ЦЭ.
3. Критерии качества - 2ro, dW, Кш, dIsqim, осредненные по полю.
4. Параметры, переменные для оптимизации.

Б. В программу вводится начальное приближение ОС и произвольно задаются:
1. Радиуса кривизны.
2. Начальные значения параметров АП.
3. Расстояния между компонентами.
4. Толщины линз и призм.
5. Диапазоны изменения переменных.
6. Марки стекол.

В. Варьируя радиусами силовых компонентов и значимыми расстояниями ОС, пользователь добивается желанного ЭФ и ЦЭ.

Г. Программа запускается на исполнение и дальнейший процесс идет в автоматическом режиме.
Программа:
1. Составляет и решает систему из семи аберрационных уравнений, варьируя переменными в заданном диапазоне.
2. Вычисляет первое приближение для переменных параметров.
3. Производит оценку качества полученного решения системы путём прогона через нее лучей.
4. При необходимости производит оптимизацию ОС.
5. Если качество не удовлетворяет ТЗ, этап Г повторяется в цикле.
6. При достижении заданного качества или числа циклов  происходит останов программы и выдача результатов оптимизации.

Д. Производится аттестационное тестирование ОС.

В настоящее время работа с программой РОС производится по вышеизложенной схеме, за исключением п. 1 на этапе Г.
Как видите, по этой схеме не требуется:
- составлять высокоинтеллектуальные уравнения,
- мучить машину, заставляя ее считывать формульные символы,
- решать численными методами 3х-этажные уравнения.

В п. 1 на этапе Г содержится несколько подводных камней:
1. Система аберрационных уравнений (САУ) может не иметь решения в заданном диапазоне варьирования переменных.
2. Решение САУ приводит к нереальным значениям параметров.

Обе ситуации требуют вмешательства пользователя в диалоговом режиме и принятие компромиссного решения, либо корректировки ТЗ.
« Последнее редактирование: 26 Ноя 2014 [20:13:13] от ekvi »

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

  • ****
  • Сообщений: 469
  • Благодарностей: 17
  • Мне нравится, просто нравится...
    • Сообщения от Serge Chuprakov
В настоящее время работа с программой РОС производится по вышеизложенной схеме, за исключением п. 1 на этапе Г.
Ну и правильно делает Ваша программа. Зачем нужно оптимизировать какие то коэффициенты аберраций, если про систему известен состав и расположение элементов? Аберрационная теория нужна не для этого. Кстати, в порядке общего образования, аберрационные уравнения не записываются относительно конструктивных параметров  ;) , весь смысл в том, чтобы потом, после решения, находить конструктивные параметры через параксиальные. Посчитать коэффициенты через конструктив можно, только весь вопрос зачем, если есть трассировка лучей???
Как видите, по этой схеме не требуется:
- составлять высокоинтеллектуальные уравнения,
- мучить машину, заставляя ее считывать формульные символы,
Увы, но для меня как оптика нужны именно уравнения, нужно видеть их вид, зависимости коэффициентов от параксиальных параметров. Вам картинка Seidel_tutorial_4.jpg кажется «высокоинтеллектуальной»? Это еще очень несложная система, бывает хуже, много хуже
- решать численными методами 3х-этажные уравнения.
Самое оптимальное — стремиться решать их аналитическими методами. Численные методы в аберрационной теории — на самый крайний случай, это обычно неудачно поствленная задача так решается.
« Последнее редактирование: 27 Ноя 2014 [06:25:01] от Serge Chuprakov »
Уже вышел из возраста, когда переживаешь, что о тебе подумают другие. Пусть теперь другие переживают, что о них подумаю я

Оффлайн ekvi

  • *****
  • Сообщений: 7 049
  • Благодарностей: 406
    • Сообщения от ekvi
для меня как оптика нужны именно уравнения, нужно видеть их вид, зависимости коэффициентов от параксиальных параметров
А Вы, Сергей, не пробовали решать свою задачу в Экселе?

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

Один мой студент диплом на ней сделал и все меня агитировал с Паскаля съехать под Эксель. Но, т.к. Эксель не позволяет разрабатывать самостоятельные приложения под Виндоуз, как Дельфи, то я отказался переезжать; да и как-то привычнее считать и программировать на "родном" языке.
« Последнее редактирование: 27 Ноя 2014 [13:36:58] от ekvi »