Saturday 21 April 2007

Zemax mannul tutorial version 9

(第一版,1999年7月29日)
前言
  整个中华卫星二号“红色精灵”科学酬载计画,其量测仪器基本上是个光学仪器。所以光学系统的分析乃至于设计与测试是整个酬载发展重要一环。
  这份初学手册提供初学者使用软体作光学系统设计练习,整个需要Zemax光学系统设计软体。它基本上是Zemax使用手册中tutorial的中文翻译,由蔡长青同学完成,并在Zemax E. E. 7.0上测试过。由于蔡长青同学不在参与“红色精灵”计画,所以改由黄晓龙同学接手进行校稿与独立检验,整个内容已在Zemax E. E. 8.0版上测试过。我们希望藉此初学手册(共有七个习作)与后续更多的习作与文件,使团队成员对光学系统设计有进一步的掌握。(陈志隆注)
习作一:单镜片(Singlet)
 
  你将学到:启用Zemax,如何键入wavelength,lens data,产生ray fan,OPD,spot diagrams,定义thickness solve以及variables,执行简单光学设计最佳化。
  设想你要设计一个F/4单镜片在光轴上使用,其focal length 为100mm,在可见光谱下,用BK7镜片来作。
  首先叫出ZEMAX的lens data editor(LDE),什么是LDE呢?它是你要的工作场所,譬如你决定要用何种镜片,几个镜片,镜片的radius,thickness,大小,位置……等。
  然后选取你要的光,在主选单system下,圈出wavelengths,依喜好键入你要的波长,同时可选用不同的波长等。现在在第一列键入 0.486,以microns为单位,此为氢原子的F-line光谱。在第二、三列键入0.587及0.656,然后在primary wavelength上点在0.486的位置,primary wavelength主要是用来计算光学系统在近轴光学近似(paraxial optics,即first-order optics)下的几个主要参数,如focal length,magnification,pupil sizes等。
  再来我们要决定透镜的孔径有多大。既然指定要F/4的透镜,所谓的F/#是什么呢?F/#就是光由无限远入射所形成的 effective focal length F跟paraxial entrance pupil的直径的比值。所以现在我们需要的aperture就是100/4=25(mm)。于是从system menu上选general data,在aper value上键入25,而aperture type被default为Entrance Pupil diameter。也就是说,entrance pupil的大小就是aperture的大小。
  回到LDE,可以看到3个不同的 surface,依序为OBJ,STO及IMA。OBJ就是发光物,即光源,STO即aperture stop的意思,STO不一定就是光照过来所遇到的第一个透镜,你在设计一组光学系统时,STO可选在任一透镜上,通常第一面镜就是STO,若不是如此,则可在STO这一栏上按滑鼠,可前后加入你要的镜片,于是STO就不是落在第一个透镜上了。而IMA就是imagine plane,即成像平面。回到我们的singlet,我们需要4个面 (surface),于是在STO栏上,选取insert cifter,就在STO后面再插入一个镜片,编号为2,通常OBJ为0,STO为1,而IMA为3。
  再来如何输入镜片的材质为BK7。在 STO列中的glass栏上,直接打上BK7即可。又孔径的大小为25mm,则第一面镜合理的thickness为4,也是直接键入。再来决定第1及第2 面镜的曲率半径,在此分别选为100及-100,凡是圆心在镜面之右边为正值,反之为负值。而再令第2面镜的thickness为100。
  现在你的输入资料已大致完毕。你怎么检验你的设计是否达到要求呢?选analysis中的fans,其中的Ray Aberration,将会把transverse的ray aberration对pupil coordinate作图。其中ray aberration是以chief ray为参考点计算的。纵轴为EY的,即是在Y方个的aberration,称作tangential或者YZ plane。同理X方向的aberration称为XZ plane或sagittal。
  Zemax主要的目的,就是帮我们矫正 defocus,用solves就可以解决这些问题。solves是一些函数,它的输入变数为curvatures,thickness, glasses,semi-diameters,conics,以及相关的parameters等。parameters是用来描述或补足输入变数 solves的型式。如curvature的型式有chief ray angle,pick up,Marginal ray normal,chief ray normal,Aplanatic,Element power,concentric with surface等。而描述chief ray angle solves的parameter即为angle,而补足pick up solves的parameters为surface,scale factor两项,所以parameters本身不是solves,要调整的变数才是solves的对象。
  在surface 2栏中的thickness项上点两下,把solve type从fixed变成Marginal Ray height,然后OK。这项调整会把在透镜边缘的光在光轴上的height为0,即paraxial focus。再次update ray fan,你可发现defocus已经不见了。但这是最佳化设计吗?再次调整surface 1的radius项从fixed变成variable,依次把surface 2的radius,及放弃原先的surface 2中thickness的Marginal Ray height也变成variable。再来我们定义一个Merit function,什么是Merit function呢?Merit function就是把你理想的光学要求规格定为一个标准(如此例中focal length为100mm),然后Zemax会连续调整你输入solves中的各种variable, 把计算得的值与你订的标准相减就是Merit function值,所以Merit function值愈小愈好,挑出最小值时即完成variable设定,理想的Merit function值为0。
  现在谈谈如何设Merit function,Zemax 已经default 一个内建的merit function,它的功能是把RMS wavefront error 减至最低,所以先在editors中选Merit function,进入其中的Tools,再按Default Merit Function 键,再按ok,即我们选用default Merit function ,这还不够,我们还要规定给merit function 一个focal length 为100的限制,因为若不给此限制则Zemax会发现focal length为 ∞时,wavefront aberration的效果会最好,当然就违反我们的设计要求。所以在Merit function editor第1列中往后插入一列,即显示出第2列,代表surface 2,在此列中的type项上键入EFFL(effective focal length),同列中的target项键入100,weight项中定为1。跳出Merit function editor,在Tools中选optimization项,按Automatic键,完毕后跳出来,此时你已完成设计最佳化。重新检验ray fan,这时maximum aberration已降至200 microns。
  其他检验optical performance还可以用Spot Diagrams及OPD等。从Analysis中选spot diagram中的standard,则该spot大约为400 microns上下左右交错,与Airy diffraction disk比较而言,后者大约为6 microns交错。
  而OPD为optical path difference(跟chief ray作比较),亦从Analysis中挑选,从Fans中的Optical Path,发现其中的aberration大约为20 waves,大都focus,并且spherical,spherochromatism及axial color。 Zemax 另外提供一个决定first order chromatic abberation 的工具,即 the chromatic focal shift plot,这是把各种光波的back focal length跟在paraxial上用primary wavelength 计算出first order的focal length之间的差异对输出光波的wavelength 作图,图中可指出各光波在paraxial focus上的variation。从Analysis中Miscellaneous项的Chromatic Focal Shift即可叫出。
●习作二:双镜片
 
  你将学到:画出layouts和field curvature plots,定义edge thickness solves, field angles等。
 
  一个双镜片是由两片玻璃组成,通常黏在一起,所以他们有相同的curvature。藉著不同玻璃的dispersion性质,the chromatic aberration可以矫正到first order所以剩下的chromatic aberration主要的贡献为second order,于是我们可以期待在看chromatic focal shift plot图时,应该呈现出parabolic curve的曲线而非一条直线,此乃second order effect的结果(当然其中variation的scale跟first order比起来必然小很多,应该下降一个order)。
 
  跟习作一一样,我们仍然要设计一个在光轴上成像,focal length为100mm的光学系统,只不过这次我们用两块玻璃来设计。
  选用BK7和SF1两种镜片,wavelength和aperture如同习作一所设,既然是doublet,你只要在习作一的LDE上再加入一面镜片即可。所以叫出习作一的LDE,在STO后再插入一个镜片,标示为2,或者你也可以在STO前在插入一面镜片标示为1,然后在该镜片上的surface type上用滑鼠按一下,然后选择Make Surface Stop,则此地一面镜就变成STO的位置。在第一、第二面镜片上的Glass项目键入BK7即SF1,因为在BK7和SF1之间并没有空隙,所以此 doublet为相黏的二镜片,如果有空隙则需5面镜因为在BK7和SF1间需插入另一镜片,其glass type为air。现在把STO旱地二面镜的thickness都fixed为3,仅第3面镜的thickness为100且设为variable,既然要最佳化,还是要设 merit function,注意此时EFFL需设在第三面镜上,因为第3面镜是光线在成像前穿过的最后一面镜,又EFFL是以光学系统上的最后一块镜片上的 principle plane的位置起算。其他的merit function设定就一切照旧。
 
  既然我们只是依习作一上的设计规范,只不过再加一面SF1镜片而已,所以其他的merit function设定就一切照旧。现在执行optimization,程序如同习作一,在optimization结束后,你再叫出Chromatic Focal Shift来看看,是否发现first order的chromatic aberration已经被reduced,剩下的是second order chromatic aberration在主宰,所以图形呈现出来的是一个parabolic curve,而且现在shift的大小为74 microns,先前习作一为1540 microns。
 
  再看其他的performance效果,叫出Ray aberration,此时maximum transverse ray aberration已由习作一的200 microns降至20 microns。而且3个不同波长通过原点的斜率大约一致,这告诉我们对每个wavelength的relative defocus为很小。再者,此斜率不为0(比较习作一Fig E1-2),这告诉我们什么讯息呢?如果斜率为0,则在pupil coordinate原点附近作一些变动则并不产生aberration代表defocus并不严重,而aberration产生的主要因素为 spherical aberration。故相对于习作一(比较他们座标的scale及通过原点的斜率),现在spherical aberration已较不严重(因为aberration scale已降很多),而允许一点点的defocus出现,而出现在rayfan curve的S形状,是典型的spherical balanced by defocus的情况。现在我们已确定得到较好的performance,但实际上的光学系统长的什么样子呢?选择Analysis,Layout,2D Layout,除了光学系统的摆设外,你还会看到3条分别通过entrance pupil的top,center,bottom在空间被trace出来,他们的波长是一样的,就是你定的primary wavelength(在此为surface 1)。这是Zemax default的结果。
 
  但是现在还有一个问题,我们凭直觉定出STO的thickness为3,但是真正在作镜片的时候,STO和surface 2镜面会不会互相交错穿出,即在edge的thickness值为正数或负数,还有是不是应该改一下设计使lens的aperature比 diameter小,如此我们可预留些边缘空间来磨光或架镜。
 
  于是我们可能更改的是diameter,STO的thickness 来解决上述问题。先在STO的diameter上键入14来盖过12.5,此时会有一个”U”字出现代表user define,现在设想我们要edge thickness固定为3mm,可是你或许会问这样系统岂不是弄乱了吗?defocus又会出现,关键是再一次执行optimization即可。在 STO的thickness上按一下,选择Edge Thickness项目,则会出现”Thickness”及”Radial Height”两项,设thickness为3及radial height为0(若radial height为0,则Zemax就使定user define的semi-thickness)按OK跳出,你会发现STO的thickness已改变,且会出现一个”E”字代表an active thickness solve在该项的parameter上。
 
  既然edge thickness已改变,所以focal length也一定有些许变动,为了维持原有的EFFL,现在再执行optimization一次即可。现在我们想看看off-axis的 performance,从system的Fields中的Field Data,选用3个field来作比较,怎么选呢?在第2及第3个列中的”Use”项中各按一下,在第2列的y field行中键入7(即7 degree),在第3列中键入10,第一列则让它为0即持续on-axis。而设所有的x field皆为0,对一个rotational对称的系统而言,他们的值很小,按OK键跳出。现在Update rayfan,你可看到如Figure E2-4之图。图中T代表tangential,S为sagittal,结果显示off-axis的performance很差,这是因为一开始我们就设计系统在on-axis上来作optimization,这些aberration可以用field curvature plot来估计,选Analysis中,Miscellaneous的Field Curv/Dist。则出现如Figure E2-5的图,左图表示shift in paraxial focus为field angle的函数,而右图为real ray的distortion,以paraxial ray为参考ray。在field curvature plot的讯息也可从rayfans中得知,为field curvature plot是正比于在rayfan plot中通过原点的斜率。
●习作三:牛顿望远镜
 
  你将学到:使用mirrors,conic constants,coordinate breaks,three dimensional layouts,obscurations。
 
  牛顿望远镜是最简单的矫正所有on-axis aberrations的望眼镜。牛顿望远镜是利用一个简单的parabolic mirror完美地矫正所有order的spherical aberration,因为我们只在optical axis上使用,除spherical aberration外并没有其他的aberration。
 
  假想要设计一个1000mm F/5的望远镜,我们需要一个具有2000mm的curvature及200mm的aperture。在surface 1即STO上的curvature项中键入-2000 mm,负号表示对object而言,其曲面为concave,即曲面对发光源而言是内弯的。在thickness项中键入-1000,负路表示光线没有透过mirror而是反射回来,在Glass项中键入MIRROR,最后在System的General项中的aperture中键入200。
 
  Wavelength选用0.550,field angel则为0。现在看看spot diagram,你会看到一个77.6 microns RMS的spot diagram,而一个很方便估算image quality的方法就是在spot diagram的顶端上再superimpose一个Airy diffraction ring。从spot diagram的menu bar选择Setting,在Show Scale上选”Airy Disk”,结果如图Figure E3-1所示,你会发现和选”scale bar”的结果是一样的。图中所列的RMS spot size选”Airy Disk”为77.6 microns。光线并没有diffraction-limited的原因是因为我们还没有设定conic constant。先前我们设定的curvature的值为-2000只是定义一个球面,若要定义一个抛物面镜,则在STO的Conic项中尚需键入- 1,接下来Update spot diagram,你会看到”Airy ring”为一个黑圈,而光线则聚集在圈内中心上,RMS值为0。
 
  可惜的是,成像的位置很不好,所谓的不好是它位于在入射光的路径上,若你要看这个像的话,你的观看位置刚好挡住入射光。改善的方法是在反射镜的后面再放一个折镜,fold mirror(后面是相对于成像点而言)。这个fold mirror相对于光轴的倾斜角度为45,把像往上提离光轴。因为进来的光束为200mm宽,因此成像平面至少在离光轴100mm的上方,如此”看”像的时候才不会挡住入射光。我们决定用200mm,而fold mirror离先前的反射镜面为800mm,因为200+800=1000等于原先在STO上的thickness,即成像”距离”不变。操作如下,先把 STO的thickness改为-800,然后在imagine plane前插入一个dummy surface,为何要插入dummy surface呢?又dummy surface是什么呢?dummy surface的目的只是在帮助我们把fold mirror的位置标示出来,本身并不具真实的光学镜片意义,也不参予光学系统的任何”反应”,所以称为dummy surface。怎么插入dummy surface呢?先在image plane前面插入一个surface,这个surface很快地就会被转变成fold mirror,但是你不要自己在surface type处去改变它成为fold mirror,而是选Tools中的Add Fold Mirror,并在其”fold surface”处选”2”代表定义surface 2为fold mirror,完成后你将看到如Zemax P.31页中LED的表。或许你会问,表中surface type处在surface 2及4中皆为Coord Break,这又是什么?coordinate break surface是在目前的系统内定义一个新座标系统,它总是用dummy surface的观念用来作ray tracing的目的。而在描述此新座标系统中,通常选用6个不同参数,即x-decenter,y-dencenter,tiltx,tilty, tiltz及一个flag来指示tilting或decentration的order。
 
  要注意的是,coordinate break总是相对于“current”而“global”的coordinate system,即只是在一个系统内部,若要改变某样物件的位置或方向,我们即利用coordinate break来作此物件的区域调整,而不用重新改变所有的系统各部份。Coordinate break就像是一个平面指向调整后的局部系统的方位。然而coordinate break surface绝不会显示出来。而它的glass项中显示为”-“代表不能键入,而它的surface type型式一定跟它前一面镜的glass type一致。现在我们来看看layout,不能选2D(2D只能看rotational symmetric systems),要用3D看,叫出layout后,按↑↓ 或page down or up可以看立体效果,这个设计尚可再作改善,首先入射光打到fold mirror背后的部份可以vignetted,这在实际的系统中是一个很重要的思量。在STO的前面插入一个surface,令这个surface的 thickness为900,在surface type中的Aperture Type还为“Circular Obscuration”,在Max Radius键入40,因为fold mirror的semi-diameter为31,如此才能遮蔽。Update 3D layout,如看不到像Figure E3-3的图,则在3D layout的setting项中改变the first surface和the last surface分别为1及6即可。
●习作四:Schmidt-Cassegrain和aspheric corrector
 
  你将学到:使用polynomial aspheric surface, obscurations, apertures, solves, optimization, layouts, MTF plots.
 
  本习作是完成Schmidt-Cassegrain及polynomial aspheric corrector plate。这个设计是要在可见光谱中使用。我们要一个10inches的aperture和10inches的back focus。开始设计之初,先把primary corrector System, General, 在aperture value中键入10,同在一个screen把unit”Millimeters”改为”Inches”。再来把Wavelength设为3个,分别为 0.486,0.587,0.656,0.587定为primary wavelength。你可以在wavelength的screen中按底部的”select”键,即可完成所有动作。目前我们将使用default的 field angle value,其值为0。依序键入如Zemax P.33页的starting prescription for schmidt cassegrain的LDE表,此时the primary corrector为MIRROR球镜片。你可以叫出2D layout,呈现出如Figure E4-1之图。现在我们在加入第二个corrector,并且决定imagine plane的位置。键入如Zemax P.33 Intermediate prescription for schmide cassegram的LDE,注意到primary corrector的thickness变为-18,比原先的-30小,这是因为要放second corrector并考虑到其size大小的因素。在surface4的radius设定为variable,透过optimization, Zemax可以定下他的值。先看看他的layout,应如Figure E4-2所示。叫出merit function, reset后,改变”Rings” option到5。The rings option决定光线的sampling density, default value为3,在此设计,我们要求他为5。执行optimization, 用Automatic即可,你会发现merit function的值为1.3,不是很理想。这是residual RMS wave error所致。跳出merit function,从system中选Update All,则secondary corrector的radius已变成41.83。从Analysis, fans,中选Optical Path, OPD plot如Figure E4-3所示,发现其为defocus且为spherical,大概约有4个wave aberration需要矫正。
 
  现在切入另一个主题,利用指定polynomial aspheric cofficients来作aspheric correction。改变surface 1的surface type从standard改为”Even Asphere”,按OK后跳出,回到surface 1 列中,往右移直到4th Order Term, 把此项设为变数,依法炮制,6th, 8th,后再次执行optimization。把OPD plot update,其图应如Figure E4-4所示,你会发现spherical aberration已被大大地减少。小心一点的观察,不同的三个波长其相对的aberration有不同的spherical amount, 这就是spherichromatism,是下一个要矫正的目标。依据经验所得,我们要用axial color来矫正spherochromatism,何谓axial color balance呢?而实际上spherochromatism是在first order axial color中被忽略的higher order效应。而现在first order axial color并不存在,如果first order存在的话,代表其效应(首先axial color既是指轴而言,他即表示paraxial-optics,即不同color在轴上的效应,也就是first order optics)要远大于higher order, 即higher order的aberration会被balance掉,即first order会抢higher order的aberration, 用first order axial color来消除higher order的spherochromatism这是在光学设计上常用的手法。
 
  要怎么引进axial color呢?我们改变surface1的curvature来达到axial color的效果。把曲面1的radius设为variable,执行optimization,再看看update后OPD plot图,如图E4-5所示,这就是我们所要设计的,残余的像差,residual aberration小于1/20波长,这个良好结果,可以让我们些微改变field angle,从system, field中,把field angle的值设为3个,分别是0.0, 0.3, 0.5。现在field angle已改变,等于boundary condition已改变,所以你需要重定你的merit function。把merit function的”Rings”改变为”4”后跳出执行optimization, 则新的OPD plot应如图E4-6所示,虽有不同的field angle,但是所有的aberrations却可以接受。说明此设计还不错。
 
  假想我们要用此望远镜来照相,则这组望远镜的鉴别转换功效为何?什么是鉴别转换功效(Modulation Transfer Function)呢?这就是说,若是发光物Object的鉴别率为M0,而经过此望远镜后所得到的鉴别率是Mi,则MTF=Mi/ M0即MTF愈大,代表此望远镜较不会降低原有的鉴别率,也就比较不会失真。而MTF的横轴为spatial frequency in cycles per millimeter, spatial为鉴别尺(bar target)明暗条纹中其分隔空间宽度之意,通常以millimeter为单位,而frequency in cycles即每millimeter有几组明暗条纹,所以可鉴别最小刻度,即反应该光波的频率。Modulation Transfer Function,即呈现如图E4-7所示之图,而tangential & sagittal对各种入射光field angle的response也一并显示。
 
  对一个有经验的设计者而言,此设计所呈现的MTF为circular pupil autocorrelation的结果。这是我们尚未考虑the secondary corrector所带来遮蔽效应。既然secondary corrector放在primary的前面中心位置上,则入射光一定有部分被挡住,并且在primary上有个洞把成像的光放出去,此洞也需纳入考量,所以我们高估了我们的performance。改良如下,回到LDE,在曲面3的第一项中点两下,从Aperture types中选Circular Aperture,在Min Radius中键入1.7,即入射光离光轴的半径需大于1.7才可进入,此动作再处理primary上的洞,同时把Max Radius改为6。再来处理secondary corrector的obscuration,在surface 3的前面,插入一个surface这个new surface就变成了surface 3,把其thickness改为20,且surface 2的thickness改为40,如此20+40=60并不改变光从BK7后到primary的长度。调整surface 3的Aperture type,设定为Circular Obscuration。把Max Radius订为2.5,按OK后跳出,同时设定surface 3的semi-diameter也是2.5,update后的MTF,你会发现performance已降低,特别是在medial spatial frequencies部分。
(回内容纲目)
●习作五:multi-configuration laser beam expander
 
  你将学到:使用multi-configuration capability。
 
  假设你需要设计一个在波长λ=1.053μ下操作的laser beam expander,Input diameter为100mm,而output diameter为20mm,且Input 和output皆为collimated。在此设计之前,我们必须遵守下列设计条件,
 
1. 只能使用2个镜片
2. 本设计在形式上必须是Galilean(没有internal focus)
3. 只有一个aspheric surface可以使用
4. 此光学系统必须在λ328μ下完成测试。
 
  本设计任务不只是要矫正aberration而已,而是在两个不同wavelengths的情况下都要做到。先谈谈条件2中什么是Galilean呢? Galilean就是光线从入射到离开光学系统,在光学系统内部不能有focus现象,在本例中即beams在两个镜片之间不能有focus。好在本系统不是同时在2个wavelengths下操作,所以在操作时我们可以变动某些conjugates。现在开始设计,依据Zemax P.4-18页的LDE表中键入各surface的相关值。其中surface 5的surface type从Standard改为Paraxial,这时在镜片后面的focal length项才会出现。注意到使用paraxial lens的目的是把collimated light(平行光)给focus。同时把surface 5的thickness及focal length皆设为25,entrance pupil的diameter定为100,wavelength只选一个1.053 microns即可,记住不要在设第二个wavelength。叫出merit function,在第1列中把operand type改为REAY这表示real ray Y将用来作为一种constraint,在本设计中,我们被要求Input diameter为100而output diameter为20,其比值为100:20=5:1,即入射beam被压缩了5倍,在srf#中键入5,表示在surface中我们要控制他的ray height,而Py上则键入1.00。把target value定为10,这个动作将会给我们一个diameter collimated为20mm的output beam。为什么呢?因为Py是normalized的pupil coordinate,即入射光的semi-diameter为50。,Py=1即现在的入射光is aimed to the top of the entrance pupil,把target value定为10,就是输出光的semi-diameter为10,所以50:10=5:1,光被压缩了5倍,达到我们的要求。semi- diameter的值定为10,现在选Tools,Update,你会看到在value column上出现50的值,这就是entrance pupil radius即表示coordinates是座落在一个单位圆(unit circle)上,而其半径为50,当Px=0,Py=1即表示在y轴的pupil大小为50,而在x轴的则为0。
 
  从edit menu bar选Tools,Default Merit Function,按Reset后把”Start At” field的值改为2,这表示以后的operands会从第二列开始,而不会影响已建立的REAY operand。执行optimization后,把OPD plot叫出来,如图E5-1所示,你会发现performance很差,大约为7个waves。
 
  这个aberration主要来自spherical aberration,所以我们要把surface 1改为a spheric,把surface 1列中的conic设为variable,再次执行optimization,你会看到较好的OPD plot。现在把所有的variable都去掉,然后将此field存档,因为你已完成wavelength在1.053μ下的beam expander设计。但是wavelength在0.6328μ的情况怎么办呢?我们进入此习作的另一个主题,也就是multi- configuration可以在同一系统中同时设定不同的configuration,以适应不同的工作环境或要求,先前我们已完成了 wavelength为1.053μ的configuration,把他看做configuration 1,而wavelength 0.6328为configuration 2。
 
  把wavelength从1.053改为0.6328后看看OPD plot,出现非常差的performance,这是因为glass dispersion的缘故。我们调整lens spacing来消除此defocus把surface 2的thickness设为variable,执行optimization后,update OPD plot,此时的aberration大约为一个wave,接下来消掉surface 2 thickness的variable。现在我们来使用Zemax的multi-configuration capability功能,从main menu上选Editors,后Multi-configuration,再选其中的Edit,Insert Config,如此我们就可以加入一个新的configuration,在第一列的第一项中按两下,选”wave”,同时在”Wavelength#”中选为1,这表示在不同的configuration,我们使用不同的wavelengths。在Config 1下键入1.053,Config 2下键入0.6328,在插入一个新的列于此列的第一项中按两下,选THIC为一个operand type,这会让我们在各别的configuration中定义不同的thickness,从”surface” list中选2后按OK。在Config 1下键入250,Config 2也键入250,不过在surface中选2即表示在LDE中surface 2的thickness是当作mult-configuration的一项oprand value,把Config 2下surface 2的thickness设为variable。回到merit function editor,选Tools,Default Merit Function,把”StartAt”的值改为1,使default merit function会从第一列开始考虑。现在先前设定的REAY constraint条件必须加到此新的multi-config merit function,在merit function的第一列中,有一个CONFoperand且在”Cfg#”项中定为1,表示现在configuration 1是avtive。在此列之下尚有三个OPDXoperands,于CONF和第一个OPDX之间插入一个新列,把其operand type改为”REAY”,”Srf#”键入5。表示我们要控制的ray height是对surface 5而言,Py键入1.00target value设为10。如同先前的file让输出beam的diameter为20mm。在CONF 1的要求接设定完毕,在CONF 2则不设任何operand,因为我们不可能在两种wavelengths操作下要求exact 5:1的beam。回到LED,把surface 1,2,4的curvatures及surface 1的conic皆设为variable,执行optimization(现在有5个variable为active,3个curvatures,1个 conic,1个multi-config thickness)。叫出update的OPD plot,你可以在mulit-configuration editor上在“Config 1”或“Config 2”上按两下,则OPD plot会显示其对应的configuration,或者你可用Ctrl-A的hot key,在不同的configuration间作变换,你会发现两者的performance都很好,表示我们所设计的系统在wavelength 1.053或0.6328μ的laser之下皆可以工作。
●习作六:fold mirrors和coordinate breaks
 
  你将学到:瞭解coordinate breaks, sign conventions在调整倾斜度,或改变系统中心的作用和如何装置fold mirrors等,本习作的大部分技巧在“Add Fold Mirror”工具中可自动执行,然而瞭解实际的操作内容和细节,才是本习作的目的。
 
  在习作3时或许你已学会如何设计Newtonian望远镜,其中已经有coordinate breaks的操作,以及光在经过mirror反射后thickness虚设定为负值,和coordinate breaks需伴随著一对使用,而把要的fold mirror如三明治般地夹在其中。本习作将教你如何在一个简单的converging beam中manually加入fold mirrors,而不使用Tools中的“Add Fold Mirror”功能。
 
  叫出 LDE,把STO的surface type改为paraxial,thickness定为100,这时对paraxial lens的default focal length值,然后从System, General,中把aperture设为20,即产生一个F/5的lens。完毕后看看3D layout,一个简单的paraxial lens所造成converging beam的光学系统已完成。假设我们要把输出的convergingbeam导向上,怎么作呢?那就是加入一个fold mirror,先假定此fold mirror为45°oriented且具paraxial lens为30mm。总共需要3个镜片。一个为coordinate break把coordinate system转45°,然后一个mirror来反射光线,最后再一个coordinate break把反射后的beam给转45°这是很重要的一点,共要3个surface来装置一个fold mirror。coordinate breaks本身没什么作用,只是把入射光和输出光作同样的倾斜或改变中心座标的动作而已。在imaging surface前面出入3个lens,把surface 1的thickness定为30,在surface 3的glass fold mirror尚未titled,所以系统会在paraxial lens的左边40mm处focus。更改surface 2及4的surface type为Coordinate Brek,回到LDE往右一,在surface 4的第3个parameter column中期heading上头标示为”Title About X”。在此项中按两下,选”Pick Up”,且设定”From Surface”为2,”Scale Factor”为1.0,这代表surface 4的coordinate break动作会跟surface 2的一样。移由标到surface 2的”title about x”项中,键入45,Update layout你会看到如Figure E6-1的图。注意到coordinate break的thickness为0,表示mirror和coordinate break surface是重合的。应该注意的是,mirror本身并没有转,转的是入射前合入射后的座标系统,在反射后除了转45°外,并且移了-70units 去focus,所有的tilt或decenter动作总是在光线跑,即thickness之前完成。现在再装第二个fold mirror,同样在imagine surface前面插入3个surface,把surface 4的thickness从-70改为-30,在surface 5的tilt about x项键入-45,目的是在把光的进行方向还原到平行于原始入射方向,而surface 7的tilt about x项一样选择pick up from surface 5且scale factor定为1。
 
  Update 3D layout,则呈现如Figure E6-2的图,如我们期待的,+45和-45互相抵消,输出光平行于入射光,又要改变两组的coordinate breaks的参数,只要改变surface 2及5即可。因为surface 4及7会各别依随他们变动而变动。
●习作七:使用Extra Date Editor, Optimization with Binary Surfaces
 
  或许你不会相信,会有”achromatic singlet”这样的东西。当然,mirror是一个achromatic singlet,姑且不论之,去设计一个矫正到first-order chromatic aberration混合refractive/diffractive成分是可能的。其中的技巧就是使用一个传统refrative singlet,然后将其中的一面蚀刻成一个diffractive surface。此singlet造成很大的focusing power,而the weak diffractive component则提供足够的dispersion来补偿glass的dispersion。让我们来回顾一些概念,一个focal length f的singlet其optical power为φ=f-1,在λF-λC的波长范围下,power的变异部分可由singlet其glass的Abbe number V来描述,其中λF及λC为hydrogen的F及C line的wavelength依序为0.4861μm和0.6563μm。故
    Δφ=φ/V
在大部分的glasses种类中,他们的dispersion都很小,如BK7来说,其V值为64.2。而Δφ大约为整体的2%。
 
  而Diffractive optics则直接使用phase of wavefront操作来增加光数的optical power。对一个具有quadratic phase profile的diffractive surface,其phase为
    ψ=Ar2
A为每平方单位长度的弧度量,而r为radial coordinate。如此的diffrective surface,他的power为
    φ=λA/π
和他所承受的波长呈线性相关。在同样的波长范围下,refractive singlet的power变异为2%,而diffractive optic power则几乎为40%,此外,dispersion的正负号可由A的正负号来决定。这有什么好处呢?如果我们在refractive部分增加一些 positive power,同时可由在diffractive部分增加一些negative power来达到补偿的效果。所增的power量可以从”Standard”改为”Binary 2”。然后在IMA前面加入一个新的surface,即插入surface 2,其thickness设为100。STO的thickness设为10,glass选为BK7,从System, General中Aperture Value定为20。Wavelengths选0.486,0.587及0.656,选0.587定为primary。首先我们看一个convex- plano singlet的performance,把surface 1的radius设为variable,且从Merit Function Editor的tools中使用Default Merit Function。子行Optimization,叫出OPD plot,你会发现其aberration约为8个waves。除了axial color主宰此设计外,spherical aberrotion和default也相当可观。
 
  现在改良此设计,从Editors,Extra Data中在”Max Term”项上键入1和”Norm Aper”上键入10,而”Coeff on PΛ2”此项则设为变数。然后执行Optimization,其中有两项变数,分别是surface 1的radius及diffractive power。Update OPD plot则maximum aberration已经降至约一个wave,造成aberration的主要原因只剩下secondary spectrum及spherical aberration。我们利用higher order term的技巧来矫正他,回到Extra Date Editor,把”MaxTerm #”改为2,且社fourth order term项为variable,再次执行optimization。叫出updated后的OPD plot,你会发现wavefront aberration已大大降至1个wave以下。

Pasted from <http://33tt.com/article/2006-02/867.htm>

Java Envoroiment Setting within ultraedit

Java环境变量设置

如果是Win2000/NT/XP系统,则设置环境变量为:
系统变量->新建->变量名:“JAVA_HOME”,变量值“C:\Java\jdk1.5.0_06”;
系统变量->新建->变量名:“CLASSPATH”,变量值“.;%JAVA_HOME%\lib”;
系统变量->编辑->变量名:“Path”,变量值“%JAVA_HOME%\bin”。
注:CLASSPATH中有一英文句号“.”后跟一个分号,表示当前路径的意思。


UltraEdit中设置Java环境
在“高级”菜单下,选择“工具配置”,然后添加:
命令行:C:\Java\jdk1.5.0_06\bin\javac.exe %f或C:\Java\jdk1.5.0_06\bin\javac.exe %n%e
%f、%n、%e分别表示完整文件名、不含扩展名的文件名、扩展名;
工作目录:%p,%p表示当前目录;
菜单项目名称:编译Java程序
最后,分别选中“保存活动文件”、“输出到列表方块”、“捕捉输出”。
在“高级”菜单下,选择“工具配置”,再次添加:
命令行:C:\Java\jdk1.5.0_06\bin\java.exe %n
%f、%n、%e分别表示完整文件名、不含扩展名的文件名、扩展名;
工作目录:%p,%p表示当前目录;
菜单项目名称:运行Java程序
最后,分别选中“保存活动文件”、“输出到列表方块”、“捕捉输出”


源文档 <http://www.cublog.cn/u/11335/showart.php?id=71772>

Friday 20 April 2007

C with input argue

main(int argc,char *argv[])
{
char b[10];int c,d;

strcpy(b,argv[1]);/*get the first parameter*/

c=atoi(b);/*convert string to numbers*/
d=c+1;

printf("argv[1] is %s\n\n",b);
printf("convert argv[1] is %d\n",c);
printf("d=c+1 is %d\n",d);
}

feed之我见

1. 微软的space,rss format;
调google的blogger的feed,会下载一个xml文件或者是直接以xml方式打开;调用space的feed完美;调用其它格式的feed效果也不错(除了直接调用blogger的feed,但是经格式转换后,没有问题,不管是什么格式)。

2. google的blogger,atom fromat;
调用微软的space的feed,会同不行很差或者时间排序混乱,尤其是当space中的post经过编辑,删除后。
其实blogger对feed的调用本身存在问题:同一个feed,在space中显示是正确的,blogger中就经常与之不同,延时大很明显,而且显示顺序混乱,可能是blogger系统自己有备份feed的功能?而且就连调用blogger的feed也是很多问题。详见本夜footer.

3. feedburner.com 类似接口的第三方平台。
可以导入一个feed,然后让这个feed转换成你需要的feed format(rss,atom,或者自动smart识别转换)。它的存在说明了当今feed方面的技术的不统一。

------------------------------------------------------------------

summy:space调用feed--删除的post,顺序,同步速度都没问题。唯一是atom的feed list的链接问题。
blogger调用feed--google reader包括在内,删除的post显示在list里,顺序混乱,同步速度很差。

------------------------------------------------------------------

a). space和其他微软产品一样:广告多;扩展性差,给你什么你就用什么,别想发挥自己的想象力,一般用微软产品的人不想在这方面浪费时间和精力,也不具备这方面的能力,其不支持javascript,实在让我鄙视。
傻瓜相机,会按快门就行,你可以什么都不懂,也可以使用;系统稳定性较好。

b). blogger就像opensource社区的产品:无广告,免费;自由度极高,扩展性非常好,和其他技术融合度很好,可以调用其它平台的产品(space只能调用微软给你的badget)。
单反相机,手动功能丰富,需要一定的了解才能运用自如;其也具备opensource产品的特点,bug很多。

solidworks画螺纹

其实在零件中也可以显示螺纹线,只不过SW的默认选项不显示螺纹装饰线罢了。具体方法如下:
在"工具--选项--文件属性--注解显示"选中"上色的装饰螺纹线"和"显示注解"选项,按回车键保存设置。然后,用异型导向孔命令,在"孔规格" 属性管理中,"孔规格"选"螺纹孔"图标;"标准"选"ISO"项,同时在下面的"选项"中选中"装饰螺纹线"就可以了。

Tuesday 17 April 2007

Virginia Tech School Shooting Video

Virginia,上个星期重温海上钢琴师,那富有传奇色彩的virginia号在我头脑中徘徊多日,周日晚就传来了virginia的这个惨案。。。。。



coord break旋转对称性问题总结

surfac: coord break如果和光源或者IMA surface的距离为0,会产生,正负方向旋转不对称的现象,不知道是不是个bug。
此问题发现在otter optics probe的设计之中。

解决方法:
a) coord break和光源或者IMA surface的距离设置为较小的剧烈,即可解决,比如0.0001,这样比较make sense。如果距离太小,0.000000000001,zemax也会出现对称性问题,可能是zemax对数字精度有一定的limit,如此小的数字当成0处理,所以又出现了之前提到的tilt不对陈问题。
但是此时各部件间距为相互垂直距离,而不是中心距离。
此种设计适合对光源和成像面的旋转;比如光源旋转后,其中心不因旋转而改变,所以各部件间距仍有意义。
b) 精确定位各光学器件的距离,如果要旋转,必须被旋转部件被两coord break前后包住;每部件间距离为0,此部件与其它部件的距离由之前的部件的thickness和最后的coord break确定(add fold mirror的默认设置)。如此也可以实现对称性。
但是,(虽然各部件距离是两部件中心距离),旋转角度很受限制,因为部件的旋转,导致其前后各部件无法在同一条线上。

Saturday 14 April 2007

conic of surface

Standard


The most commonly used optical surface is a spherical surface. The sphere is centered on the current optical
axis, with the vertex located at the current axis position. ZEMAX treats planes as a special case of the sphere (a
sphere with infinite radius of curvature) and conics as a special case as well. The "sag" or z-coordinate of the
standard surface is given by


where is the curvature (the reciprocal of the radius), is the radial coordinate in lens units and is the conic
constant. The conic constant is less than -1 for hyperbolas, -1 for parabolas, between -1 and 0 for ellipses, 0 for
spheres, and greater than 0 for oblate ellipsoids. For more information on conic constants, see “REFERENCES
ON LENS DESIGN” on page 15. The standard surface does not use any of the parameter values.

Friday 13 April 2007

zemax - Ray Aiming

I.光线定位 ( Ray Aiming )

Fig.1 在System/General中选择Ray Aiming卷标

 

II.光线定位的类型(Ray Aiming Type)

Fig.2 选择任一种光线定位的类型

(1)无 ( None ) 使用近轴入瞳尺寸和位置来决定光线追迹,忽略入瞳像差。对于中等视场的小孔径系统选用,表示不需使用光线定位。

(2)近轴光线参考 ( Aim to unaberrated [paraxial] stop height )使用近轴光线计算光阑面半径,考虑入瞳像差。对于F number小或大视场角的系统时选用。通常优先使用近轴光线参考。

(3)实际光线参考 ( Aim to aberrated [real] stop height )使用实际光线计算光阑面半径,考虑入瞳像差。对于F number小或大视场角的系统时选用。实际光线追迹影响近轴光阑尺寸时使用。

 虽然光线定位比近轴入瞳定位更精确,但在做运算的时候,大多数的追迹光线将花费2到8倍的时间。

III.设定结果

Fig.3 未使用光定位前


Fig.4 使用光线定位后的结果

天道酬勤,厚积勃发

Sunday 1 April 2007

31.3.07

原来powerpoint显示效果不佳原因在于dpi这个东西,疏忽了,只是扫描的时候常常记起这个词.
photoshop并非全矢量作图,还是那句老话,修图它行,作图还得illustrator,coreldraw这些纯矢量作图软件.

My photo
London, United Kingdom
twitter.com/zhengxin

Facebook & Twitter