INPE-14106-RPQ/807 UMA VISÃO GERAL DO ZEMAX: UM PROGRAMA DE MODELAGEM E SIMULAÇÃO DE SISTEMAS ÓPTICOS Bráulio Fonseca Carneiro de Albuquerque INPE São José dos Campos 2006 INPE-14106-RPQ/807 UMA VISÃO GERAL DO ZEMAX: UM PROGRAMA DE MODELAGEM E SIMULAÇÃO DE SISTEMAS ÓPTICOS Bráulio Fonseca Carneiro de Albuquerque INPE São José dos Campos 2006 SUMÁRIO 1.1 – Introdução................................................................................................................ 5 1.2 – Visão Geral do ZEMAX.......................................................................................... 5 1.3 – Política da Licença do Programa ............................................................................. 6 1.4 – Características Gerais .............................................................................................. 7 1.5 – Banco de Dados de Vidros ...................................................................................... 9 1.6 – Análises ................................................................................................................. 13 1.7 – Linguagem de Programação do ZEMAX e Ferramentas de Extensibilidade........ 15 1.8 – Ferramentas de Otimização do ZEMAX ............................................................... 18 1.9 – Multi-Configuração ............................................................................................... 20 1.10 – Ferramenta de Análise de Tolerância do ZEMAX.............................................. 23 REFERÊNCIAS BIBLIOGRÁFICAS ........................................................................... 25 1.1 – Introdução Neste Trabalho se descreve de maneira sumária, o “software” ZEMAX: para que serve; seu funcionamento e algumas de suas ferramentas, sendo seu principal intuito fornece uma base inicial ao leitor que esteja interessado em usar o ZEMAX, ou mesmo compará-lo com outros “softwares” semelhantes. Quase todas as informações contidas aqui foram retiradas do manual do programa (ZEMAX User’s Guide, 2002). 1.2 – Visão Geral do ZEMAX O ZEMAX 10 é um programa de simulação óptica desenvolvido pela ZEMAX DEVELOPMENT CORPORATION, que serve para modelar, analisar e auxiliar no projeto de lentes e de sistemas ópticos refrativos, refletivos e difrativos, quer sejam seqüenciais quer sejam não-seqüenciais, usando para isso basicamente o traçado de raios. O ZEMAX pode ser usado de três maneiras diferentes: completamente seqüencial, híbrida (seqüencial e não seqüencial), e completamente não seqüencial. A maior parte dos sistemas ópticos e praticamente todos os sistemas de formação de imagem são bem representados pelo modelo completamente seqüencial. A forma híbrida serve para sistemas com porções seqüenciais significativas, e alguns componentes não seqüenciais (ex. prismas), enquanto que a forma completamente não seqüencial serve para fazer análises de iluminação, espalhamento e desvio de luz. Na forma seqüencial os raios são traçados da seguinte maneira: O raio tem início na superfície objeto, então é traçado para superfície 1 em seguida para a superfície 2 e assim por diante. Um raio nunca vai da superfície 2 para 6 em seguida para 3 e depois para 1, isso seria não seqüencial. Cada raio vai para cada superfície em uma seqüência específica e pré-determinada. Se um raio não pode ser traçado para a próxima superfície nessa seqüência, o traçado para este raio é finalizado com um erro. 5 Já na forma não-seqüencial, os raios são traçados ao longo de qualquer caminho fisicamente possível, seguindo qualquer ordem. O ZEMAX, apesar de possuir tanto a forma seqüencial quanto a não seqüencial, é muito mais especializado e avançado na forma seqüencial, pois aquela forma só foi incluída no programa depois da versão 7.0. Apesar de cada atualização do programa incluir novas ferramentas, facilidades e melhorias na forma não-seqüencial, ele ainda se encontra distante quando comparado a programas desenvolvidos apenas para esta finalidade, porém, vêm se aproximando rapidamente. Neste texto só será tratada, apresentada e discutida a forma seqüencial do programa. O ZEMAX é disponível em três diferentes edições: ZEMAX–SE (“Standard Edition”), ZEMAX–XE (“Extended Edition”) e ZEMAX-EE (“Engineering Edition”); a diferença entre elas está em alguns recursos que não são disponíveis nas versões SE e XE. Este texto é voltado para a edição EE, a mais completa, já que tal versão engloba as outras duas. O ZEMAX não tem o objetivo de ensinar o usuário como projetar lentes ou sistemas ópticos, mas sim oferecer muitas ferramentas para auxiliá-lo de uma forma interativa na análise e no projeto dos mesmos. Entre essas ferramentas, destacam-se as de extensibilidade, otimização, multi-configuração, análise térmica, análise de tolerâncias, entre muitos outros recursos de análise disponíveis (veja Seção 1.6). Se o usuário tem pouca ou nenhuma experiência em projetos ópticos, antes de usar o ZEMAX, deve buscar conhecimento em literatura especializada. 1.3 – Política da Licença do Programa Para que o programa rode sem problemas é necessário que a “hardlock” que vem junto com cada licença do programa esteja conectada à porta paralela ou USB do computador. Na verdade, o “hardlock” é a própria licença. A política da licença do programa funciona do seguinte modo: pode-se instalar o ZEMAX em quantos computadores se 6 queira, porém só uma dessas cópias por licença pode ser executada por vez. O ZEMAX não possui licenças de rede que são acessadas remotamente. 1.4 – Características Gerais O ZEMAX foi desenvolvido para ser simples de usar, a interface do programa é feita através de janelas, sendo assim muito visual e intuitivo. Com um pouco de prática, pode possibilitar o desenvolvimento de um projeto de uma forma interativa e muito rápida. A maioria dos recursos do programa são acessados através da seleção do menu de opções. O teclado e as teclas de atalho são usados para uma navegação rápida, ou estabelecendo uma passagem secundária à estrutura do menu. O ZEMAX trabalha com diferentes janelas. A principal se abre ao iniciar o programa. Ela contém uma grande área em branco, com uma barra com título, barra de menu e uma barra de ferramentas no topo (Figura 1). Essa janela é usada para modelar uma lente ou um sistema óptico, e recebe o nome de “Lens Data Editor” (LDE) que é um tipo de planilha. O modelamento de uma lente ou um sistema óptico seqüencial é feito através de algumas ou inúmeras (mais de 1000) instanciações de um único tipo de objeto chamado de superfície, que são representadas pelas linhas desta planilha; já as características de cada superfície são inseridas ao longo de suas colunas. 7 FIGURA1- Janela principal do ZEMAX e uma de suas janelas secundárias chamada de “Lens Data Editor”. Ao se abrir o LDE em um novo arquivo, pode-se visualizar inicialmente três superfícies que são: OBJ, STO; e IMA (Figura 1). A primeira representa o objeto; a segunda, o “stop aperture” do sistema; a última, o plano imagem. Todo sistema modelado no ZEMAX deve conter no mínimo essas superfícies. Pode-se inserir outras superfícies clicando com o mouse dentro do LDE, e apertando a tecla “Inset”. Desta forma, pode-se inserir mais de 1000 superfícies. As colunas mais usadas, onde são colocadas as características das superfícies, são: a segunda (“radius”), onde se insere o raio de curvatura da superfície; a terceira (“thickness”) onde se insere a distância central da presente superfície até a seguinte (que pode representar tanto a espessura de uma lente ou a distância de separação entre duas superfície adjacentes); a quarta (“glass”), onde se insere o nome de um tipo de vidro, que consta em um dos catálogos de vidro do programa (Figura 1). O material definido preenche o espaço entre a presente superfície e a seguinte. Caso deixado em branco, o programa adota o ar (com índice de refração um para todos os comprimentos de onda) como material que preenche as superfícies. 8 As outras colunas são habilitadas ou não, dependendo do tipo de superfície que se escolhe na primeira coluna. Existem 52 tipos de superfícies que podem ser escolhidas no ZEMAX-EE, como por exemplo: “Standard, Even Asphere, Odd Asphere, Biconic”, etc (para mais detalhes sobre os tipos de superfície veja ZEMAX User’s Guide 2002 pp. 13-1-13-38). Depois de modelados a geometria e o material de cada lente e objeto do sistema, é necessário definir os comprimentos de onda e seus respectivos “pesos”, os quais o sistema é projetado para trabalhar, definir o tamanho da pupila de entrada e o campo de visada do sistema. Isso deve ser feito, pois esses dados servem de entrada para as simulações, análises e otimização do sistema. Os comprimentos de onda para os quais se deseja fazer as simulações, análises e otimização do sistema, são definidos em uma janela chamada “Wavelength Data”. Nessa se definem até doze comprimentos de onda em mícrons com seu respectivo “peso” e também o comprimento de onda do sistema adotado como principal. Os pesos definidos são quantidades relativas da influência ou importância do comprimento de onda no sistema e são levados em conta nos cálculos, análises e otimizações feitas pelo ZEMAX. O comprimento de onda definido como primário, é usado como referência em uma série de cálculos e análises, como por exemplo, no cálculo da distância focal efetiva do sistema modelado. O CDV do sistema pode ser definido de várias formas (e.g. ângulo, tamanho do objeto, tamanho real da imagem) em uma janela chamada de “Field Data”. Esses servem para se definir para quais regiões do CDV o ZEMAX deve gerar e executar as análises, cálculos e otimização. 1.5 – Banco de Dados de Vidros Em Óptica Geométrica, para se fazer o traçado de raios através de um sistema, só o que se precisa é a lei de Snell. Para aplicar tal lei deve-se ter as informações sobre a geometria de cada lente que compõe o sistema, o ângulo de entrada dos raios e os índices de refração do material com o qual essas lentes são feitas. Geralmente esses 9 materiais são vidros. Porém existem muitos tipos de vidros, cada um com suas características ópticas, que podem diferir muito entre si. Em programas de simulação óptica, a modelagem de vidros é um dos parâmetros mais importantes para que se tenha uma simulação mais próxima o possível da realidade. No ZEMAX, a modelagem é muito bem feita, pois considera vários efeitos. Cada vidro ou material definido em um catálogo possui uma infinidade de coeficientes, dos quais vários servem para modelar as características ópticas e físicas, sendo usados como valores de entrada nas simulações do sistema; outros são meramente informativos, e não são usados para nenhum cálculo ou simulação. Alguns dos coeficientes definidos para os vidros usados nas simulações e cálculos são: os dados de dispersão, o máximo e mínimo comprimentos de onda, os coeficientes de expansão térmica, os coeficientes da equação que modela a mudança do índice de refração com a temperatura, o valor da densidade do material, e os valores da transmitância interna do material (para mais detalhes veja ZEMAX User’s Guide, 2002 p.19-1-19-17). A dispersão de um vidro pode ser modelada através de diferentes equações (e.g. Schott, Semeirer1, Sellmeirer2, Sellmeirer3, Sellmeirer4, Herzberger e Corandy). Estas relacionam o comprimento de onda com o índice de refração do material (no ZEMAX todos os índices de refração do material são relativos ao índice de refração do ar que é tomado como um). Logo a seguir temos alguns exemplos destas equações: n 2 = a 0 + a1λ2 + a 2 λ−2 + a 3 λ−4 + a 4 λ−5 + a 5 λ−8 (Schott) (1) K 1λ2 K 2 λ2 K 3 λ2 n −1 = 2 + + (Sellmier1) λ − L1 λ2 − L2 λ2 − L3 (2) 2 n = A + BL + CL2 + Dλ2 + Eλ 4 + Fλ6 onde L = 10 1 (Herzberger) λ − 0,028 2 (3) Estas equações são curvas ajustadas a partir de coeficientes, onde, por exemplo, no caso do Sellmeier 1, são dados por seis (são eles K1,K2,K3,K4,L1,L2,L3 e L4, veja a Figura 1). Quando o usuário insere um novo vidro no catálogo, pode definir diretamente os valores desses coeficientes, ou ainda inserir os dados dos índices de refração do material nos respectivos comprimentos de onda e escolher a equação de dispersão que deseja usar, e então o ZEMAX calcula os coeficientes desta Equação através de um ajuste de curva. Esse procedimento é feito em uma janela que se abre clicando em “Fit Index Data” (Figura 2) que é uma das opções dentro da janela “Glass Catalog” (Figura 1). FIGURA 1-Janela dos catálogos dos vidros e as informações referentes ao vidro selecionado, que neste cas Os valores do comprimento de onda máximo e mínimo dados respectivamente por “Min Wave” e “Max Wave” são os valores que especificam o limite onde a equação de dispersão é válida. O coeficiente de expansão térmica dado por TCE serve para calcular a mudança no raio de curvatura, na espessura e no diâmetro de cada um dos elementos do sistema formado por vidro (ou material semelhante) quando se faz a análise térmica do sistema. Esse 11 coeficiente é válido para o intervalo de -30± a 70±C e o número inserido ou mostrado no ZEMAX é o valor do coeficiente multiplicado por 106. A mudança do índice de refração com a temperatura é modelada por uma equação de dispersão térmica com vários coeficientes (são eles: D0, D1, D2, D3, E0, E1, tk). Esses também são muito importantes quando se faz a análise térmica do sistema no ZEMAX. FIGURA 2-Janela usada para inserir os valores dos índices de refração para cada comprimento de onda de O valor da densidade do material “p” é dado em gramas por centímetro cúbico, sendo usado no cálculo da massa de cada lente do sistema. Os dados de transmitância interna do vidro servem para fazer o cálculo da transmitância total, a qual é função da transmitância interna, da transmitância de Fresnel e do efeito de “vignetting”. Os dados da transmitância interna se encontram ou são inseridos em uma janela que se abre ao clicar em “Transmission” (Figura 3) que é uma opção dentro da janela “Glass Catalog” (Figura 1). A transmissão para cada comprimento de onda é definida no catálogo de vidro por três números: o valor do comprimento de onda em micrometros, a intensidade da transmitância em porcentagem, e a espessura de referência do material em mm. Estes valores podem ser inseridos no editor de dados de transmissão para vários comprimentos de onde. Os dados de transmitância interna para cada comprimento de onda são calculados através da lei de Beer dada pela Equação: 12 t = eατ (4) Onde t é a transmitância interna, α é o coeficiente de absorção calculado pelo ZEMAX com base nos dados de transmitância interna inseridos da forma explicada, e τ é o comprimento do caminho que a luz faz dentro do vidro. Para calcular a transmitância interna referente a comprimentos de onda para os quais não se definiu nenhum dado, o ZEMAX faz internamente uma interpolação linear entre comprimentos de onda para os quais os dados foram definidos. Se o traçado de raio for feito em um comprimento de onda fora do intervalo dos comprimentos de onda definidos, então os dados do comprimento de onda mais próximo são usados. FIGURA 3-Janela onde se inserem os valores da transmitância interna do vidro. A primeira coluna é a dos 1.6 – Análises Esse programa possui um conjunto de ferramentas de análise e diagnóstico de sistemas ópticos bem completo. Para todas estas ferramentas têm-se uma “dialog box” na qual podem ser escolhidos os métodos de cálculo e as formas de apresentação dos resultados de modo a satisfazer o usuário. As ferramentas de diagnóstico que são dadas na forma de gráficos, além de poderem ser facilmente exportadas em diferentes extensões, ainda permitem o acesso aos valores 13 numéricos que geram o gráfico, bem seu como seu salvamento em arquivos .txt. Isso também vale para análises que já são dadas na forma de texto. Como são muitas ferramentas de análise disponíveis no ZEMAX é inviável fazer um comentário de cada uma delas. Contudo, na Tabela 1, encontra-se uma lista parcial das ferramentas de análise mais importantes do modo seqüencial disponíveis no ZEMAX. A lista pode servir para comparação entre ele e outros programas do mesmo tipo. TABELA 1- Lista parcial das ferramentas de análise disponíveis no ZEMAX. Layouts 2D cross section 3D perspective and wireframe Solid or shaded model Surface, singlet, and doublet element drawings ISO 10110 format drawings Fans Ray aberration Optical path difference Pupil aberration Spot Diagrams Standard field-by-field Through focus Full field, Matrix Extended source bitmaps and images (continua) (Tabela 1 – conclusão) Diffraction MTF, PSF Analysis Modulation transfer function (MTF) Sine or Square wave MTF Through focus MTF Point spread function (PSF) Surface MTF and filed MTF maps Geometric, Huygens, or FFT based MTF, PSF Wavefront maps Encircled Energy Diffraction radial Geometric radial, x, y Extended sources Line/Edge response Miscellaneous Diffraction extended source images Footprint analysis 14 Numerical Computations Polarization Ray Tracing Physical Optics Propagation Grid distortion Relative illumination, Vignetting Longitudinal aberration, Lateral color Field curvature and distortion RMS vs. field, focus, or wavelength Interferograms Y-Ybar diagram Chromatic focal shift Dispersion plot, glass map diagrams Glass internal transmittance vs. wavelength Single and multimode fiber coupling efficiency First order system data Surface power, volume, edge thickness data Ray trace data, real and paraxial Gaussian beam parameters Seidel and Zernike aberrations Wavefront, transverse, longitudinal aberrations YNI contributions Sag tables, maximum aspheric deviation Polarization Ray Tracing Polarization state evolution Polarization ellipse pupil map System transmission Coating reflection, transmission, and absorption Polarization aberrations System transmission fans User defined beam definition Irradiance plots Phase plots Encircled Energy plots Fiber Coupling Supports Polarization 1.7 – Linguagem de Programação do ZEMAX e Ferramentas de Extensibilidade A linguagem de programação do ZEMAX (ZPL) é uma linguagem interpretada, macro, de alto nível e simples de usar, especialmente desenvolvida para se usar junto com o ZEMAX. A ZPL fornece a capacidade de extensibilidade ao usuário. Isso significa que se o usuário precisar de um cálculo ou um gráfico em particular que não esteja “incorporado” no programa, ele pode escrever sua própria rotina para fazer a tarefa. Esta rotina pode ser armazenada em um disco e chamada ou acessada com o ZEMAX. É 15 possível desenvolver uma biblioteca de programas ZPL, e compartilhar com outros usuários do ZEMAX. A ZPL é similar à linguagem BASIC, exceto por não ter todos os comandos e palavras chaves disponíveis, e por ter algumas novas capacidades e funções adicionais desenvolvidas próprias para cálculos e análises ópticas. Todas as funções, operações lógicas e variáveis aceitas pela ZPL são listadas e explicadas no manual do programa. Para se escrever a rotina basta usar qualquer editor de texto e salvar o arquivo com a extensão.ZPL dentro de uma pasta do ZEMAX destinada para isso. Então, para executar essa rotina para um sistema óptico modelado no ZEMAX, basta abrir o arquivo desse sistema e, em seguida, através do menu principal do ZEMAX, escolher a rotina que se quer executar. As saídas dos cálculos e/ou resultados de uma rotina feita em ZPL podem ser dadas na forma de texto na tela do computador em uma janela que se abre ao se dar início na execução da rotina, na forma de um arquivo do tipo texto e também em forma de gráficos em uma nova janela do ZEMAX. Apesar de simples de usar e de ser uma ferramenta muito boa de extensibilidade do programa, a ZPL ainda possui muitas limitações de comando. Um exemplo disso é que não se pode definir variáveis do tipo vetor e muito menos do tipo matriz, pode-se apenas usar quatro vetores que são variáveis pré-definidas da própria ZPL, e nem mesmo os seus nomes podem ser modificados. Dessa forma limita-se e dificulta-se o desenvolvimento de rotinas mais elaboradas por parte do usuário. Outro ponto negativo está no tempo de execução das rotinas feitas nessa linguagem, que são relativamente muito lentas. Chegou-se a esta conclusão através da comparação entre o número de raios por segundo que o ZEMAX em um certo computador naturalmente consegue traçar por um dado sistema, e o número de raios por segundo que se consegue traçar usado uma rotina em ZPL nas mesmas condições. Isso foi feito da seguinte forma: aplicou-se, no sistema óptico utilizado para o desenvolvimento do trabalho de (Albuquerque, 2005), uma ferramenta disponível no ZEMAX que serve para avaliar a 16 “velocidade” em que o computador pode traçar raios por segundo por um dado sistema, e se obteve um resultado de 481880 raios por segundo. Em seguida, criou-se uma rotina na ZPL com um “loop” para traçar vários raios através do mesmo sistema óptico, obtendo-se um resultado de 5702 raios por segundo. Este valor é muito menor do que resultado fornecido pelo teste de velocidade do programa, chegando-se a conclusão de como uma rotina em ZPL pode ser lenta. Apesar disso, o ZEMAX ainda possui uma outra ferramenta de extensibilidade mais poderosa, mais rápida e mais complexa que a ZPL. Através dessa, o ZEMAX permite que outros programas do “Windows” estabeleçam comunicação com ele através de uma ferramenta Chamada “Dynamic Data Exchange” (DDE). Com isso, o ZEMAX pode trocar informações e comandos com outros programas desenvolvidos pelo usuário com um determinado objetivo. A idéia é usar o ZEMAX para traçar os raios por um dado sistema óptico, fazendo com que o programa feito pelo usuário extraia as informações do ZEMAX, de modo a fazer análises ou cálculos que ele não tem disponíveis. Ainda é possível fazer com que o programa devolva as análises e cálculos para o ZEMAX fazendo-o mostrar os resultados em uma de suas janelas usuais de gráfico ou texto. Todavia, para usar esta ferramenta, é necessário que o usuário saiba programação em “C” para Windows, tenha um compilador de “C” que possa gerar executáveis para Windows de 32 bits e aprenda a programação DDE. Segundo o manual do ZEMAX, a parte mais difícil da programação, que é fazer o programa elaborado pelo usuário estabelecer um meio de comunicação com o ZEMAX, já está feita e disponível para estudo e reutilização. Uma notícia boa é que foi criado no MATLAB uma “Toolbox” com várias funções compreendidas pelo ZEMAX que se utiliza da DDE para fazer a comunicação entre os dois programas. Esta ferramenta torna muito fácil a elaboração de rotinas de extensibilidade do ZEMAX, pois o MATLAB possui uma linguagem de auto nível com muitas funções matemáticas prontas. Esta “toolbox” recebe o nome de “MZDDE- The ZEMAX DDE Toolbox for Matlab”e pode ser baixada gratuitamente da central de troca de arquivos 17 da MathWorks.(http://www.mathworks.com/matlabcentral/fileexchange/loadFile.do?objec tId=7507&objectType=file). 1.8 – Ferramentas de Otimização do ZEMAX O ZEMAX é provido de algumas ferramentas de otimização que servem para melhorar a performance de um sistema óptico baseado em um projeto inicial, utilizando para isso poderosos algoritmos de otimização que tentam minimizar o valor de uma função chamada de Função de Mérito (“Merit Function” MF). A otimização pode ser feita usando três diferentes algoritmos, a saber: “Optimization”, “Hammer Optimization” e o “Global Search”. O primeiro deles tenta achar o mínimo local da MF baseado na técnica de otimização de mínimos quadrados. O segundo é o algoritmo de otimização que serve para escapar do mínimo local e verificar se não existe uma solução vizinha melhor no espaço solução. O último algoritmo é usado para buscar soluções com novos arranjos baseados no projeto inicial. Esse usa uma combinação de algoritmos genéricos como: “simulated annealing”, “multstart”, “expert systems”, “neural networks”, entre outros. Entretanto ele geralmente não produz projetos finalizados, para isso é necessário, após a sua utilização, aplicar o “Hammer Optimization” em uma das soluções encontradas pelo “Global Search”. Para se fazer uso de qualquer uma das três otimizações, é necessário satisfazer os seguintes requisitos: 1) ter um sistema óptico razoável o qual servirá de ponto de partida, 2) definir as variáveis do seu sistema e 3) criar uma MF. Qualquer número de variáveis pode ser simultaneamente otimizado, praticamente qualquer parâmetro do sistema que se encontra no LDE pode ser definido como variável, incluindo raio, espessura, vidros, coeficientes de superfícies não esféricas, espaçamentos, aberturas, entre outros. Para especificar uma variável usada no processo de otimização, simplesmente é necessário apertar as teclas Ctrl-Z simultaneamente, quando se estiver com a barra de seleção em cima do parâmetro a ser definido como variável no LDE. 18 A MF pode ser definida como uma representação numérica de quão perto um sistema óptico se encontra em relação a um conjunto de metas e vínculos. A MF nada mais é do que uma lista de operadores, os quais individualmente representam diferentes vínculos ou metas para o sistema. Os operadores representam metas como: qualidade da imagem, distância focal, aumento do objeto, entre outros. E podem representar vínculos como: espessura máxima de uma lente, tamanho máximo do sistema, espessura mínima da borda de uma lente, etc. O ZEMAX possui mais de 250 operadores que podem ser usados para a construção da MF. Para cada um deles, quando definidos na MF, deve-se informar o valor que se deseja que ele tenha, o “peso” relativo que esse operador tem sobre os demais, e algumas coordenadas que servem para definir para onde este operador será válido. A MF é proporcional à raiz quadrada da soma ponderada do quadrado da diferença entre o valor atual “Vi” e o valor que se deseja “Ti” de cada operador da lista (Equação 1). A MF é definida desta maneira onde o valor zero é o ideal. Então o que os algoritmos de otimização fazem é se esforçar para levar o valor desta função para o menor possível. ∑ Wi (Vi − Ti ) MF = ∑ Wi 2 2 (1) Onde MF é valor da Função de Mérito, “Wi” é o peso definido para um certo operador i, “Vi” é o valor atual do operador i e “Ti” é o valor que se deseja para o operador i. A maneira mais fácil de se definir uma Função de Mérito é usar uma das 20 funções disponíveis do “default”, e em seguida adicionar outros operadores de interesse manualmente. Para se usar uma MF do “default”, deve-se escolher uma série de opções, como: o método de otimização (RMS ou PTV “peak-to-valley”), tipo de dados a serem otimizados (que podem ser referentes a um dos raios do “spot”, x, y, ou x + y, ou ainda referentes aos erros da frente de onda), o método de integração (este método está relacionado com a geometria de distribuição na pupila de entrada dos raios usados para 19 o cálculo dos operadores), entre outros. Depois disso, o ZEMAX cria automaticamente uma MF com vários operadores podendo o usuário inserir outros manualmente (Figura 1). A primeira coluna de cada linha da MF traz o código do operador que está sendo usado, as demais colunas da mesma linha são destinadas aos parâmetros necessários para este operador. O manual do programa traz uma lista de todos os operadores de otimização e uma explicação detalhada de cada um deles. Ainda é possível se criar novos operadores através das ferramentas de extensibilidade, comentada na Seção 1.7. FIGURA 1- MFE usada para criar a função de mérito. Depois de ter feito os três passos necessários para otimização, dá-se início ao processo escolhendo um dos três métodos de otimização disponíveis. O ZEMAX suporta até 4 CPUs por computador para execução automática de encadeamento múltiplo no uso das ferramentas de otimização. 1.9 – Multi-Configuração O ZEMAX tem uma ferramenta que facilita a análise e possibilita a otimização de sistemas que possuem mais de um modo ou configuração. Exemplos desse tipo de sistema são sistemas ópticos com “Zoom”, ou mesmo sistemas ópticos que possuem uma objetiva e diferentes oculares, entre outros. Naqueles geralmente o que se tem é uma variação entre as distâncias de algumas lentes que compõem o sistema, enquanto, 20 que nesse, o que se tem é a variação completa de uma parte do sistema, tanto na geometria, material, quanto no número de elementos que formam cada ocular. Para se fazer análises de sistemas desse tipo, não é necessário o modelamento de cada configuração em um novo arquivo, pois o ZEMAX possui uma ferramenta chamada de “Multi-Configuration” ou Multi-Configuração, que possibilita a análise desse tipo de sistema. Com essa ferramenta o ZEMAX possibilita o modelamento de diferentes configurações em um único arquivo. Isso é feito em uma janela chamada “MultiConfiguration Editor” (MCE). Nas linhas dessa janela são inseridos os operadores referentes a um certo parâmetro do sistema que varia de uma configuração para outra. Na primeira coluna de cada linha (Figura 1) pode-se ver uma sigla, que identifica os parâmetros que mudam de uma configuração para outra (e.g: THIC-“Surface thickness”, CRVT- “Surface curvature”), juntamente com o número da superfície a que o operador se refere. Nas demais colunas de cada linha, estão os valores do parâmetro em cada configuração. Quando se está em uma dada configuração, todas as ferramentas de análises usadas geram resultados para essa determinada configuração. Para se mudar de uma configuração para a seguinte pode-se usar o comando Ctrl+A, ou se quiser ir para anterior Shift+Crlt+A, ao se fazer isso todas as janelas de análises que estiverem abertas irão se atualizar e fornecer os resultados para a configuração selecionada. Quando se usa Multi-Configuração, é possível criar uma MF que contenha operadores para cada uma das configurações. Desta forma, pode-se otimizar todas as configurações de um sistema simultaneamente, colocando qualquer parâmetro de qualquer configuração como variável no MCE. Existem mais de 55 parâmetros que podem ser definidos na MCE que controlam praticamente todos os parâmetros do sistema incluindo: a geometria das lentes, o campo de visada, o F/#, os comprimentos de onda, etc. 21 FIGURA 1- MCE do ZEMAX usada para modelar sistemas com várias configurações. Essa ferramenta também pode ser usada para fazer a análise térmica de um sistema. Nesse tipo de Multi-Configuração o que se faz é inserir um operador que define a temperatura do sistema em cada configuração, colocando em cada uma delas o valor da temperatura em graus Celsius nas quais se pretende fazer as análises. Em seguida, devese colocar todos os operadores para todas as superfícies que possam sofrer variações com a temperatura. Para cada uma das configurações, tirando a configuração padrão tomada como referência, deve-se definir o operador como “Thermal Pick Up” da configuração padrão. Desta forma, o ZEMAX calcula automaticamente os valores de cada parâmetro na temperatura definida na configuração em questão. Para isso, ele usa principalmente os valores encontrados no banco de vidros, e os valores de expansão térmica do material no qual as lentes do sistema estão montadas, que pode ser definido pelo usuário na última coluna do LDE. Para definir o valor de um operador em uma determinada configuração como “Thermal Pick Up”, basta dar um clique duplo sobre a célula que se deseja no MCE e então a janela mostrada na Figura 2 se abrirá. No item “Solve Type”, escolhe-se “Thermal Pick Up” e no “Config” se escolhe o número da configuração padrão, tomada como base para os cálculos. 22 FIGURA 2-Janela que se abre quando se dá um duplo clique em qualquer célula no MCE. Todavia, para facilitar a análise térmica, e evitar que o usuário cometa erros na hora de inserir todos os operadores no MCE que sofrem variações com a temperatura, o ZEMAX possui uma ferramenta que faz isso automaticamente para o usuário, criando diferentes configurações com diferentes temperaturas, já com todos os operadores necessários definidos para essa análise. O único trabalho que o usuário tem é definir a mínima e a máxima temperatura onde deseja fazer as análises, e definir o número de configurações em que esse intervalo de temperatura deve ser dividido. 1.10 – Ferramenta de Análise de Tolerância do ZEMAX Uma das poderosas e importantes ferramentas do ZEMAX é a chamada “Tolerancing”. Essa possibilita a análise, baseada em um critério de avaliação, dos efeitos decorrentes da introdução de perturbações nos valores nominais dos parâmetros do sistema, e tem como objetivo determinar a quantidade e tipos de erros que podem ser introduzidos na fabricação e montagem do sistema óptico, de modo que continue atendendo aos requisitos de performance, ou mesmo, verificar se a precisão de fabricação que se tem disponível é suficiente para isso. Essas perturbações decorrem de erros de fabricação, montagem, desvios dos valores nominais das características ópticas dos materiais, entre outros. As tolerâncias podem ser avaliadas por vários critérios diferentes, incluindo: valor RMS do tamanho do “spot”, valor RMS do erro na frente de onda, resposta da MTF em uma determinada freqüência, valor de uma função de mérito definida pelo usuário, entre outros. 23 As perturbações podem ser inseridas nos parâmetros de construção de cada elemento do sistema, a saber: curvatura, espessura, índice de refração, número Abbe, constantes não esféricas, irregularidades no formato das superfícies, entre outros, bem como em parâmetros de montagem e/ou fabricação do suporte mecânico dos elementos do sistema: posição, descentralização, inclinação dos elementos em relação a um ponto arbitrário, etc. As várias tolerâncias podem ser usadas em qualquer combinação para estimar a performance do sistema referentes aos efeitos dos erros de alinhamento e fabricação. As tolerâncias dos parâmetros de cada superfície ou elemento do sistema são inseridas e editadas individualmente em um editor chamado “Tolerance Data Editor” (TDE). Isso é feito usando operadores simples, por exemplo, o “TRAD” o qual define a tolerância no raio de curvatura de uma determinada superfície. Os operadores de tolerância são automaticamente salvos juntamente com o arquivo do sistema óptico. A análise de tolerância pode ser feita de três formas: “Sensitivity Analysis”: Neste modo o programa determina o impacto no critério de avaliação escolhido, para cada tolerância definida no TDE individualmente. Os efeitos individuais de cada tolerância são então somados estatisticamente de modo a determinar a performance estimada do sistema. “Inverse Sensitivity”: Neste modo se define um decréscimo máximo no critério de avaliação permitido para cada tolerância definida no TDE, então o programa analisa cada uma delas e, se necessário, as comprime de modo a atender o decréscimo máximo definido. Os efeitos individuais de cada tolerância são então somados estatisticamente de modo a determinar a performance estimada do sistema. “Monte Carlo”: As análises estatísticas fornecidas através dos dois métodos anteriores assumem que cada tolerância definida no TDE é perturbada pelo valor máximo definido, e o que os erros são independentes. Já neste modo, o programa gera aleatoriamente uma série de sistemas respeitando as tolerâncias definidas, onde todos os parâmetros são aleatoriamente perturbados usando modelos estatísticos apropriados 24 definidos pelo usuário, baseado nos dados efetivos de fabricação (Normal, Uniforme ou Parabólica). Com isso, o sistema como um todo é avaliado considerando todos os defeitos possíveis simultaneamente. Deste modo, o ZEMAX pode simular rapidamente a fabricação de um imenso número de lentes e informar a estatística da produção baseado no critério de avaliação. REFERÊNCIAS BIBLIOGRÁFICAS Focus Software, Incorporated. ZEMAX Optical Design Program User's Guide. Tucson-Arizona, 2002. 561p. 25