WWW.DISSERS.RU

БЕСПЛАТНАЯ ЭЛЕКТРОННАЯ БИБЛИОТЕКА

   Добро пожаловать!


Pages:     || 2 | 3 | 4 | 5 |   ...   | 6 |
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ САНКТ-ПЕТЕРБУРГСКИЙ НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ УНИВЕРСИТЕТ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ, МЕХАНИКИ И ОПТИКИ А.П. Смирнов, Д.А. Абрамов, А.Ю. Пименов КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ ОПТИЧЕСКИХ СИСТЕМ Часть 1 ЛИНЗОВЫЕ УСТРОЙСТВА Практикум в среде MathCad Учебное пособие Санкт-Петербург 2012 Смирнов А.П., Абрамов Д.А., А.Ю.Пименов Компьютерное моделирование оптических систем. Учебное пособие - СПб: НИУ ИТМО, 2012. - …с.

Изложены принципы построения программ в среде MathCad.

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

Пособие предназначено для студентов, обучающихся по направлению «Оптотехника» и специальности 200400.68 - «Оптико-электронные приборы и системы».

Рекомендовано к печати Учёным советом факультета оптико – информационных систем и технологий, протокол № от В 2009 году Университет стал победителем многоэтапного конкурса, в результате которого определены 12 ведущих университетов России, которым присвоена категория «Национальный исследовательский университет».

Министерством образования и науки Российской Федерации была утверждена программа его развития на 2009–2018 годы. В 2011 году Университет получил наименование «Санкт-Петербургский национальный исследовательский университет информационных технологий, механики и оптики» (С) Санкт-Петербургский национальный исследовательский университет информационных технологий, механики и оптики, 2012 (С) А.П. Смирнов, Д.А. Абрамов, А.Ю.Пименов, 2012 2 Содержание:

1. Входной зрачок………………………………………………4 2. Пучок лучей………………………………………………….14 3. Параксиальная система……………………………………...18 4. Моделирование взаимодействия луча с оптической поверхностью………………………………………………...5. Преобразование координатных систем…………………….6. Линзовая оптическая система………………………………7. Компьютерное моделирование первичных погрешностей оптико-электронных приборов……………………………..8. Критерии качества изображение на основе пятна рассеяния изображения точки………………………………………….9. Расчёт на точность по методу соответствия допусков коэффициентам влияния……………………………………10. Сведения из MathCad………………………………….11. Список литературы……………………………………КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ ОПТИЧЕСКИХ СИСТЕМ Часть ЛИНЗОВЫЕ УСТРОЙСТВА 1. Входной зрачок Будем придерживаться правила: оптическая система с входным зрачком «В» (рис.1) помещёна в правое трехмерное декартовое координатное пространство. В правом пространстве направление осей таково, что если смотреть навстречу, например, оси ОХ, помеченной на рисунке верхней точкой, то ось OY совместится с осью OZ, если первую вращать против часовой стрелки (положительное направление). Аналогичное свойство справедливо осей OY и OZ.

Рис.1 АВ - входящий луч, L – оптический вектор направляющих косинусов В геометрической оптике луч берёт начало в точке предмета.

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

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

Заполнение зрачка зависит от условий задачи. Точки могут располагаться равномерно, случайно или по определённому закону, косинусному или экспоненциальному. В последнем случае моделируется неравномерная интенсивность пучка по сечению.

При равномерном заполнении конфигурация лучей на плоскости входного зрачка выбирается из условий задачи. На рис.2 приведён пример равномерного заполнения круглого входного зрачка по сетке из эквидистантных окружностей. Шаг следования точек разбиения по радиусу и окружностям выдерживается одинаковым.

Рис.2 Круглый зрачок с равномерным радиальным заполнением.

Построим алгоритм программы разбиения круглого входного зрачка по радиально-круговой сетке (рис.3). Исходными величинами являются радиус R и шаг разбиения h и координаты центра диафрагмы: вектор “c”.

Для определённости входной зрачок будем располагать в плоскости OXY (z=0). Число окружностей в разбиении определяется кратностью длин радиуса и шага. Число окружностей должно быть числом целым, поэтому при нахождении числа кратности нужно воспользоваться одной из встроенных функций Mathcad (Меню на панели инструментов f(x), например, floor). Так как в общем случае шаг не кратен радиусу, то последняя окружность не будет находиться на пограничной окружности. Для устранения этого недостатка необходимо изменить длину шага.

Заранее неизвестно точное число точек разбиения. Для их учёта необходимо открыть счётчик. По умолчанию счёт начинается с нуля, поэтому начальный индекс может быть числом -1 или 0 в зависимости от места, где будет располагаться оператор пополнения счётчика в последующем алгоритме.

Радиусы окружностей представляют собой арифметическую прогрессию с заданным число членов, поэтому для моделирования удобно воспользоваться циклом «for» c фиксированным числом циклов. В теле цикла вычисляется текущий радиус: текущий элемент прогрессии. По известному радиусу и заданному шагу, в данном случае дуге окружности, аналогично операции определения числа окружностей, вычисляем число точек на текущей окружности. Так как на окружности начальная точка разбиения совпадает с последней, то при определении углового шага удобно найденное число точек на текущей окружности М увеличить на 1. Попутно это устранит возможность деления на 0.



Рис.3 Разбиение круглого зрачка радиально-круговой сетке В цикле по точкам окружности по известному угловому шагу определяется полярный угол точки разбиения. Заметим, так как пополнение счётчика происходит до вычисления координат, то начальное значение счётчика в этом случае равно -1. Вычислением вектора цилиндрических координат с учетом координат центра входного зрачка: (x,y,0)+c заканчивается цикл и программа.

Заметим, хотя MathCad визуально-ориенитрованный вычислительный пакет, но при задании векторов необходимо помнить, что вектором в mathcad считается только столбец. Формируется вектор, как и всякая матрица, с помощью соответствующей панели инструментов. Сформированный таким образом объект не содержит в себе запятых, какие присутствуют при «бумажном» написании. При желании строку можно перевести в вектор с помощью оператора транспонирования.

Заполнение площади зрачка точками со случайным равномерным распределением осуществляется с использованием встроенной функции генерации случайных чисел rnd, например (рис.4):

Рис.4.Равномерно-случайное заполнение круглого зрачка Здесь лучу с номером «ноль» присваиваются координаты центра диафрагмы, куда, обычно, направляется главный луч. Далее открывается счётчик лучей, попадающих в круг, очерченный зрачком. В цикле «пока» вычисляются случайные значения координат в описанном квадрате. Функция rnd(а) возвращает одно случайное значение, равномерно распределённое на отрезке [0,a]. Безальтернативный оператор «если» пополняет счётчик и формирует искомые координаты.

Фрагмент документа, иллюстрирующего работу программы случайного заполнения зрачка, представлен на рис.5. Созданная программа «Кругс(N,R,c)» называется функцией пользователя. В скобках указываются формальные переменные. Если в предыдущем разделе mathcad переменным N, R или с присвоены некоторые значения, то есть они определены, то это никаким образом не влияет на значение формальных переменных. И обратно, определение значений переменных внутри тела функции пользователя не влияет на значения одноимённых внешних переменных.

При обращении к функции пользователя или к встроенной функции на место формальных переменных помещаются имена реальных переменных, определённых заранее, как, например, N и R, или непосредственно при обращении, как вектор «с».

Рис.5 Работа программы случайного заполнения зрачка Результат действия функции помещается в переменную, структура которой задаётся последней строкой тела функции. В данном случае – это вектор с длиной, равной числу точек разбиения. Элементами вектора служат векторы координат. Для извлечения непосредственно абсцисс и ординат координат точек разбиения вводится так называемая ранжированная переменная i. Эта переменная содержит в себе сразу все значения, определённые параметрами ввода:(a,b…c) a - начальное значение, запятая, b- второе значение (если оно отсутствует, то по умолчанию b=1), многоточие (клавиша «;») и c - конечное значение (верхняя граница прогрессии).

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

Извлекаем из вектора «Х» абсциссы «х» (в mathcad строчные и прописные буквы различаются) и ординаты «у» и строим график (горячая клавиша @).

Удобно, когда интерфейс вычислений содержит три области: 1) область исходных данных, 2) область вычислений и 3) область результатов.

1) Оформление исходных данных:

Ввод исходных данных должен обеспечить однозначное толкование параметров, быть компактным и удобным для изменения данных. В mathcad существует несколько возможностей оформления исходных данных.

• В виде матрицы:

В идентификаторе на кириллице «входные_данные» для разделения слов использован подчерк. Можно использовать заглавную букву. Можно вставить и любой другой «запрещённый» в идентификаторах символ, если перед тем как набрать этот символ на клавиатуре нажать одновременно комбинацию клавиш ( - клавиша верхнего регистра,Ctrl,K), при этом синий маркер покраснеет. После набора «запрещённого» символа снова нажать упомянутую комбинацию клавиш, маркер посинеет. Дальше можно продолжить набор символов. Таким способом можно вместо подчерка в идентификатор вставить скрытый пробел, тире или другой необходимый, даже экзотический символ.

• В виде таблицы с нефиксированными границами:

Ввод таблицы осуществляется через главное меню: Вставка\Данные\Таблица.

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

• Отдельные идентификаторы с альтернативными значениями.

При вводе списка возможных значений вводимой переменной можно воспользоваться опцией «список». Главное меню: Вставка\Элемент\Список.

С помощью редактирования опция приобретает нужный вид:

Когда имеется два варианта продолжения вычислений, то можно воспользоваться опцией «флажок» или «переключатель». Например «флажок» имеет вид:

С помощью побитового изображения, созданного графическим редактором Paint и помещённого в буферную память, идентификатор «Button» может быть заменён на созданную картинку. После скрытия наименования, флажок может быть представлен в виде:





• Заполнение вектора с фиксированной верхней границей. Верхний индексвектора определяется ранжированной переменной. Следующее значение элемента вектора вводится через запятую. При этом появляется ячейка с знакозапонителем. Процесс не лиммитирован. Заполнится только заданное крайним значением ранжированной переменной число ячеек вектора, как показано на фрагменте документа Маткад ниже.

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

Далее формируется информация для вывода в удобном для восприятия виде.

Область обычно скрывается. Это осуществляется через Главное меню:

Вставка\Область Вычисления в области могут быть скрыты, раскрыты, блокированы и разблокированы. Границы области могут сопровождаться для удобства комментариями. При блокировании области обязательно запомните, и запишите пароль.

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

Необходимо провести следующие операции:

1) Извлечение входных данных для программ из исходных данных. Радиус зрачка, координаты его центра и примерное число точек разбиения извлекается из исходной матрицы по месту положения искомых величин:

В начале приведённого документа сокращается длинное имя матрицы.

Далее формируются с помощью оператора присваивания (горячая клавиша «:») переменные R, N и вектор «с». Переменные подчёркнуты зелёной волнистой линией: так mathcad напоминает, что используемые переменные уже раньше использовались в Вашем документе или являются именами встроенных констант, а именно, с – скорость света в вакууме, N – единица измерения силы «Ньютон». Двойные нижние индексы (строка, столбец) около переменной вводятся или через панель инструментов, или горячей клавишей «[».

2) Для программы равномерного разбиения в качестве входного параметра используется шаг разбиения h. Чтобы его определить требуется взять целое число (см. Панель инструментов: f(x)\Категория- Усечение и Округление- выбор имени функции по результату) от деления общей площади зрачка Rна общее число точек N. После чего извлечь квадратный корень. Это вычисление, определяющее переменную h, должно предварять обращение к программе Кругс.

3) Если «тип разбиения» введён не списком, при котором идентификатору присваивается номер строки списка, то требуется операция обработки текстовых переменных, так как параметры списка являются текстовыми переменными. (Панель инструментов: f(x) \ Категория – Строка). В случае же текстовой переменной в исходной матрице информацию о типе разбиения и форме зрачка удобно извлечь с помощью функции «y=if(a,b,c)». Здесь а – условие. Если оно выполнено, то y=a, иначе y=b.

Следует отличать эту функцию от оператора «if», вводимого только с панели программирования, тогда как ввод функции «if» может быть осуществлён вручную с клавиатуры. В приведённом ниже документе переменная, шифрующая тип разбиения TR и формы зрачка FZ вводятся с помощью функции «if», причём, первая с помощью вложенной функции.

3) Как следует из исходной матрицы возможно 6 вариантов вычислений (комбинации 2-х форм и 3-х типов разбиения) и столько же вариантов вывода информации. Таким образом требуется формирование результата с выбором направления вычислений. Для этой цели также удобно воспользоваться функций «if». Если, например, следует произвести вычисления по одной из двух программ, то это может быть оформлено в виде:

Если TR=1, то происходит вычисление координат по программе радиальнокругового заполнения, составленной по алгоритму (рис.3), иначе зрачок заполняется случайным образом по программе (рис.4). При этом нужно следить, чтобы форма вывода координат точек разбиения была одинаковой в обеих программах, то есть в виде вектора векторов координат.

При вводе имени «Кругс» с нижним индексом нужно быть внимательным и различать два типа индексов: текстовый, как в данном случае, и вычисляемый индекс, который сам в свою очередь является переменной или константой в зависимости от применения. Вычисляемый индекс использовался выше для извлечения параметров из исходной матрицы. Текстовый индекс – это текст, опущенный на половину строки.

Перед вводом текстового индекса набирается «.», при этом языковый регистр стоит в положении «EN».

4) Результат.

Результат оформляется для наглядности в виде таблиц, списков и графиков с соответствующими комментариями. В данном случае выводится график точек разбиения.

Один из вариантов вычислений показан на рис. 6.

Задание 1:

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

Рис.6 Вывод результата 2. Пучок лучей Луч характеризуется двумя векторами: связанным вектором A(x,y,z) – пространственными координатами произвольной точки на луче, и свободным вектором L(p,q,m) оптическим вектором направляющих косинусов. Вектор называется оптическим, так как умножается на показатель преломления пространства, где луч распространяется (рис.7).

Pages:     || 2 | 3 | 4 | 5 |   ...   | 6 |










© 2011 www.dissers.ru - «Бесплатная электронная библиотека»

Материалы этого сайта размещены для ознакомления, все права принадлежат их авторам.
Если Вы не согласны с тем, что Ваш материал размещён на этом сайте, пожалуйста, напишите нам, мы в течении 1-2 рабочих дней удалим его.