• 159 Topics
  • 228 Replies

159 Topics

[网络研讨会Q&A] Zemax 和 Lumerical 工作流程第 1 部分 - 从微观到宏观的光学仿真

感谢大家长期以来对 Zemax 的关注与支持!我们将在以下时间开展本次的网络研讨会,您可以通过以下链接进行本研讨会的注册。并且,您可以在我们全新的 Zemax 社区论坛上,事先或者结束后针对本次研讨会的内容对演讲者进行提问,也请自由留言进行交流。 时间:2022年7月22日(周五)16:00-17:00 参与链接: https://v.ansys.com.cn/live/AuYDgsCG?source=Zemax 内容摘要: 复杂的光学系统往往需要跨多个空间尺度的耦合仿真技术,以实现精确的设计和公差分析。从照明系统中的纳米级发射结构中提取光,或是通过波导和自由空间组件的混合体传播光只是复杂光学系统的一些例子。光线追迹方法在波长维度的结构中往往会失效,而电磁方法对于较大尺寸的器件计算来说过于消耗算力资源。连接纳米级和宏观级光学器件的传统方法需要繁琐的手动文件转换,并且容易出错。作为仿真领域的领导者,Ansys 致力于提供解决方案以加快分析速度并缓解光学设计工作流程中的挑战。在本次网络研讨会中,我们将重点介绍 Zemax OpticStudio 和 Ansys Lumerical 之间相互联动的一些工具,帮助工程师实现从微观到宏观光学系统的仿真设计,从而有效地设计制作创新光学系统。 演示者: 林修安 | AnsysAnsys Zemax光学应用工程师,加入Zemax三年半,目前负责Zemax相关的售前与售后技术服务支持工作。 周铮 | AnsysAnsys系统事业部光学产品应用工程师,华中科技大学和巴黎十一大光电信息硕士,目前负责Ansys Lumerical的业务开发与技术咨询工作。

关于Opticstudio选用核数跟优化速度的关系

如果一台计算机使用多个CPU进行计算,系统并不总是需要使用所有的CPU.下面的图片显示了一个多CPU/线程工作方式的例子。有些计算只由一个CPU/线程(母线程)执行。 在这段时间里,CPU的利用率很低。有些部分需要多个CPU/线程(平行区域)。 在这段时间里,CPU的利用率很高。如果在OpticStudio中为计算配置了N-cores,OpticStudio不会就获得N-cores。这是因为操作系统决定了应用程序可以使用多少个内核。OpticStudio将根据配置从Windows请求资源。在大多数情况下,OpticStudio并不能获得所有的资源。在计算方面,更多的内核并不意味着更快的计算。这取决于你在做什么样的计算。 如果计算不需要这么多的资源,而且核心/线程的数量超过了需要,那么将数据分配给每个线程的时间会更长。您可以设置OpticStudio在计算过程中可以使用的内核数量。 然而,如上所述,你将只得到所要求的一部分资源。有一个平行计算的理论叫做阿姆达尔定律。X轴代表处理器的数量。Y轴代表加速。不同的颜色代表方案/计算的视差部分的显示。可以看出,使用2到32个内核可以提高速度,但使用更多的内核并不能提高很多速度。就实际计算而言,它更为复杂。可能影响速度的因素有:核心数量、光学系统(有多少种计算可以并行进行)、OpticStudio可以获得的资源数量,由操作系统决定硬件规格等。以上只是可能影响速度的一般因素。 

请问如何让序列模式下的元件和非序列模式下的光源进行互动?

大家好,我目前在尝试复现和《Flat metaform near-eye visor》这篇文献的工作类似的光学系统。论文中的反射式超透镜我改成了透射式超透镜,参数也做了一些修改。如果全部在序列模式下建模,得到的效果大概如图所示。探索了一段时间后发现,用序列模式下的“网格相位”去定义超透镜比较合理,用非序列模式下的探测器去探测成像效果会更好。(这个结论我不确定是否正确,我邮件询问过文章作者,他说是在非序列模式下建模模拟的,但作者找不到原来的文件了。我在非序列模式下确实没有找到可以模拟超透镜的元件,所以目前的想法是在序列模式下添加两个非序列元件,分别是“矩形光源”和“矩形探测器”)看了一下用户手册,发现序列模式下的元件和非序列模式下的光源与探测器作用似乎很复杂。简单来说就是非序列模式下的“矩形光源”并不会与序列模式下的“网格相位”相互作用,尝试对照用户手册中去设置输入端与输出端,也没有得到很好的效果。想要询问大家的问题是,①是否可以在非序列模式下建立一个像序列模式下“网格相位”一样的元件呢?这样的话整个光学系统都可以在非序列模式下进行模拟。我调研了一下似乎可以用网格矢高表面,但老是会遇到问题。②如果①不可行,那像我目前在序列模式下添加非序列元件,要怎样才能让两种元件产生交互呢?附上我目前做的文件以及超透镜的相位数据文件。非常感谢各位的帮助!

如何模擬光學低通濾波器 (Optical Low Pass Filter)

簡介光學低通濾波器 (optical low-pass filter, OLPF) 廣泛應用於高階成像系統中,通常放置在CCD或COMS的前方。主要的功能是過濾影像中特定的空間頻率,避免因為空間頻率跟感測器取樣頻率過於接近時,因為發生混疊 (Aliasing) 而造成摩爾紋 (Moiré)。解決這種問題可能的做法有好幾種,目前最為符合量產可行性的常見作法之一就是利用雙折射晶體把光路分裂,透過控制分裂距離,來消除特定的空間頻率。經過光學低通濾波器處理系統,反應在MTF上的效果就是特定頻率的對比會下降,如同我們使用IR-CUT削去紅色波長一樣,OLPF也可以過濾不希望出現的空間頻率。建立雙折射晶體這邊我們打開內建範例: \Documents\Zemax\Samples\Sequential\Objectives\Double Gauss 28 degree field.zmx我們將會在像面 (IMAGE) 之前建立光學低通濾波器的結構,示意圖如下: 要建立這個結構,我們在LDE中新增五個面,並設定如下: Surface 12: Birefringent InThickness: 0.1Material: CALCITEY-cosine: 1Z-cosine: 1Surface 13: Birefringent OutThickness: 0.1Surface 14: Jones MatrixThickness: 0.1A (real, image) = (1, 1)B (real, image) = (1, -1)C (real, image) = (1, -1)D (real, image) = (1, 1)Surface 15: Birefringent InThickness: 0.1X-cosine: 1Z-cosine: 1Surface 16: Birefringent OutThickness: 0.1由於在像面之前加上幾片玻璃,我們需要重新對焦,因此這裡打開Quick Adjust,調整透鏡最後一個面的厚度,如下: 最後打開多重組態編輯器,並設定如下。 由於在序列模式中我們無法讓光線分裂,因此要模擬雙折射分裂,必須使用多重組態來模擬。每個雙折射晶體都會依據偏振方向分裂為兩個光路,兩個雙折射晶體共會有4個組合,關於雙折射晶體的設定與模擬方式請參考Help文

如何輸入量測資料到Grid Sag面

摘要:這篇文章示範了如何輸入量測資料到Zemax OpticStudio中的Grid Sag,表面起伏資料應為Z座標的sag。原文作者:永田信一さん原文發布時間:Feb 7, 2009假設我們有如下資料 表面起伏資料的定義如下。第一行,由7個數字表示。第1, 2個數字,代表X與Y方向的資料數量,資料形式為整數。第3, 4個數字,代表X與Y方向的資料間距,資料形式為浮點數。第5個數字,代表資料的單位,0表示單位是mm。第6, 7個數字,代表整體資料點的偏心量,資料形式為浮點數。第二之後的資料格式如下,z dz/dx dz/dy d2z/dxdy每行都是如上的資料,資料形式為浮點數。z代表sag值。dz/dx dz/dy代表X與Y方向的微分值。d2z/dxdy代表交叉微分值。資料最少需要5x5個點。在Grid Sag面的設定中,若指定使用Bicubic-spline內插的情況,為了使資料點之間sag的內插結果平滑,必須要輸入微分值。但是,若設定所有的微分值為0,或是該資料留白不輸入,Zemax會自訂使用有限差分法 (Finite Difference Method) 來計算微分值。資料的紀錄順序如下:1.    從的面的左上角,也就是Xmin、Ymax開始。2.    下一個輸入的資料是該點的右邊一個值 (就是X方向加一個間隔)。3.    第一行結束後,往地第二行左邊開頭繼續。4.    填滿時,最後一個數字應為Xmax、YminSag資料的基準面不只是平面,也可以是球面、圓錐曲面或是非球面。檔案的副檔名方面,若是在序列模式,應為 “.DAT”,若是在非序列模式,應為 “.GRD”。在序列模式下定義這個面時,面的型態為 “Grid Sag”。曲率半徑、圓錐係數以及非球面係數可以用來定義輸入資料的基礎面。上圖中看到的參數0,代表sag資料的內插形式,0表示Bicubic-spline,1表示線性內插。 輸入的方式,請將 .DAT 檔置於 “\Documents\Zemax\Objects\Grid Files” 資料夾中。請開啟鏡頭數據編輯器,選擇Grid Sag面,並打開面屬性對話框 (Surface Properties)。然後選取您的 .DAT檔,點選 Import,點擊 OK 輸入。資料輸入後,如果想要檢視輸入結果的話,請選擇 “Ribon工具列 > An

模擬同調長度(Coherence Length)的另一種方式

在OpticStudio中,我們有下面的同調長度模擬功能。這個功能的基本原理是依據相應頻譜,亂數擾動每一條光線的波長來達到考慮頻譜的目的。但在這篇文章說,我們要要紹另一種方法。這個方法假設不同波長的光線無法互相干涉。由於光波的頻率非常高,高過幾乎所有sensor能偵測的極限,這個假設基本上可以說是正確的。基於這個假設,我們可以得到一個結論,就是對於一個有多波長的光源,其干涉結果的計算其實就單純是每個波長各自把干涉圖案算出來後,直接把照度用對應權重相加。下面有對於不同波長為什麼不同互相干涉,用比較數學的形式去解釋。 目前沒有工具可以分別計算個別波長的干涉圖形並相加,因此我們要利用MATLAB透過ZOS-API來自動化這一過程。各位可以打開附件的麥克森干涉儀的檔案如下。注意光源的Coherence Length是設為0,這邊我們不使用內建功能,設為0代表關閉。首先在允許OpticStudio被連結下面螢光筆圈起來的地方需要使用者自己設定。detnum代表你要觀察繞射圖形的Detector Rectangle的物件編號。 wavenum是光源的參數Wavenumber,建議是明確指定對應的波長編號,而不要用預設0。   n_smooth的使用方式跟Detector Viewer中的同名參數一樣。   wave_FWHM是高斯分布的半高全寬,我們這裡假設光源頻譜是高斯分布。一般來說這對於LED或LD都是大致正確的。 wave_center是高斯分布的中心波長。注意因為高斯分布其實是在頻率空間,所以在波長空間中劃出來看起來會像是有點歪的樣子。 spect_samp是你想要取樣頻譜的點數量。取越多越準確,但是越慢。 以下是模擬結果。 Enjoy!

用Zemax OpticStudio模擬投射式車燈 (分析色散)

本範例將會示範在Zemax OpticStudio模擬一個初步簡易的投射車燈,主要目的在於介紹各種模擬中使用者可能會用到的功能,包含Lens Catalog、光源建模、光源頻譜、拋物面建模、設置探測器、色彩分析以及照度分析。簡介本文章介紹如何在Zemax OpticStudio中模擬投射式車燈,主要分為以下章節:    使用透鏡資料庫 (Lens Catalog)    建立拋物面物件    建立鎢絲光源,設定黑體輻射頻譜    建立擋板物件    設定探測器    追跡並檢視結果我們的最終架構將如下: 建立橢圓反射面橢圓反射面可以把其中一個焦點的光線反射到另一個焦點。 我們透過Standard Surface來建立。 參數設定如下:Material:MIRRORRadius:30.165Conic:-0.712Maximum Aper:50 建立光源我們將建立帶有黑體輻射頻譜的鎢絲光源,首先是光源的外型,新增物件定設定如下:Object 2: Source FilamentX Position:3Z Position:16.126Tilt About Y:-90Layout Rays:100Analysis Rays:2E7Length:5Radius:0.6Turns:8接下來點一下 NSCE 上灰色的 Object Properties選擇 Source 並設定黑體輻射頻譜如下圖:Source Color: Black Body SpectrumTemp (K): 5000Spectrum: 7、Wavelength From 0.44 To 0.64 備註:    OpticStudio 內建許多常見的頻譜模型,例如黑體輻射、LED、D65 標準白光等    也可以根據三色刺激值、色座標、sRGB 等資訊模擬頻譜    有需要也可以使用純文字文件夾自行定義 備註2:想要確認頻譜的時候,可以到Libraries > Source Spectrum Plot,輸入與剛剛一樣的頻譜設定   如所見到的,Source Spectrum Plot 用繪圖方式讓你瞭解剛剛的光源頻譜是如何設定的,這是個很方便的工具。你可以試著改變參數看看,如下圖:現在回到3D Layout設定,設定Color Rays: Wavelength,可以看到如下:  備

Badge winners

  • Visibly Un-Polarized
    nadav.amitaihas earned the badge Visibly Un-Polarized
  • Allow me to introduce myself
    TMXhas earned the badge Allow me to introduce myself
  • Visibly Un-Polarized
    Yang.Yongtaohas earned the badge Visibly Un-Polarized
  • Allow me to introduce myself
    yingjie.liuhas earned the badge Allow me to introduce myself
  • Allow me to introduce myself
    Sean Turnerhas earned the badge Allow me to introduce myself
Show all badges