Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
МИНОБРНАУКИ РФ
Федеральное государственное бюджетное образовательное учреждение
высшего профессионального образования
«Ижевский государственный технический университет имени М.Т. Калашникова»
(ФГБОУ ВПО «ИжГТУ имени М.Т. Калашникова»)
Кафедра «Радиотехника»
Лабораторная работа №4
КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ
ОПТИЧЕСКИХ СИСТЕМ
«ЛИНЗОВЫЕ УСТРОЙСТВА»
в среде MathCad
Выполнил:
ст. гр. 8-76-1
Бердников А. С.
Проверил:
Шишаков К. В.
Ижевск 2013
Цель: рассмотреть принципы построениея программ в среде MathCad. Провести моделирование оптических систем в параксиальном приближении и реальных линзовых осесимметричных систем, на основе которых рассмотрены некоторые свойства измерительных процессов применительно к конструированию оптико-механических систем.
Ход работы:
Входной зрачок
Будем придерживаться правила: оптическая система с входным зрачком «В» (рис.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) область результатов.
Вывод: В ходе работы я создал программу в среде MathCad. Программа создает модель входного зрачка, и выводит ее в виде графика в координатных осях OXY.