• 139 Topics
  • 186 Replies

139 Topics

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

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

Distortion Focal Length的定義 (ZPL範例)

本文章介紹了:    Field Curvature/Distortion分析的文字區塊中Distortion Focal Length的定義    使用Single Ray Trace驗證    介紹用ZPL中的PLOT、RAYTRACE指令    用ZPL簡單的驗證Distortion Focal Length的定義文章發布時間:September 23, 2015 系統分析功能中的Distortion Focal Length當我們在OpticStudio中打開Field Curvature/Distortion分析功能時,會在文字區塊中看到這個參數,有些使用者會好奇這是什麼參數,為什麼他與狀態列上的有效焦距EFFL不同。請開啟範例檔:\Zemax\Samples\Sequential\Objectives\Double Gauss 28 degree field.zmx請開啟Analyze Ribbon > Aberration > Field Curvature and Distortion,並記得在Settings中設定使用主波長2,也就是0.587 um。(這是為了與之後我們撰寫ZPL時使用相同的波長驗證)點擊一下視窗下方的Text標籤,並找到如下的Distortion focal length參數。 可以很輕易的發現他與整個主視窗下方的狀態列上的EFFL數值不同。  什麼是Distortion Focal Length要瞭解Distortion Focal Length,首先我們先查看Help檔案。 根據上面反白的文字,系統會先追跡小視場,然後其他較大視場的入射光線再根據Yref=f*TAN(theta)放大。其中f就是在小視場下計算的,我們可以用追跡工具Single Ray Trace簡單的驗證: (請注意波長為2)由於此範例最大視場為14度,因此Hy = 0.0001代表0.0014度,Px = Py = 0代表chief ray,可看到第7個面的像高為2.4271401744E-003。我們把公式轉換為f = Yref / TAN(theta) = 2.4271401744E-003 / TAN(0.0014 degree) = 99.3320630可發現與Field Curvature/Distortion分析功能文字區塊

用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,可以看到如下:  備

如何模擬光學低通濾波器 (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文

公差分析時會看到的Root Sum Square (RSS) 有什麼意義?

簡介在本知識庫中的 “如何進行序列模式公差分析” 這篇文章中,我們簡單說明了RSS的計算方式如下:在所有公差單獨計算之後,OpticStudio可以計算各種不同的統計資料,其中最重要的就是 "Estimated Change" 以及 “Estimated Performance” (本範例中為Estimated RMS Wavefront)。Zemax使用RSS (Root Sum Square) 方法來計算品質的Estimated Change。對於每一個公差操作數,相對於原始設計的評價標準改變量之計算方法是最大與最小公差的評價標準改變各自平方,然後再取平均。最大與最小值之所以取平均是因為它們不可能同時發生,如果相加的話會導致過分悲觀的預測。我們將用公差統計中的堆疊問題 (Stack Up) 說明 RSS 的計算。堆疊問題問題的描述是這樣的:想像我們有5個木板要疊在一起,並需要估計疊在一起的總厚度。已知每一片木板的厚度都有些許不同 (現實世界總是會有誤差!),每片木板的厚度大約在25 mm加減0.1 mm的範圍內隨機分布。假設這些木板的厚度機率是常態分布,中心是25 mm,機率最大,25.1 mm跟24.9 mm的機率則是e^-2,剛好會是距離中心兩倍標準差 (sigma) 的位置,畫出來如下圖。 好,所以現在問題是,如果我們疊了5塊木板以後,厚度的機率分布會變成怎樣? 答案是125 mm加減0.224  mm。並且也會是常態分佈。以125作為中心,125.224與124.776的位置發生機率恰好是e^-2。換句話說,整個系統的總厚度:1. 也是常態分佈。2. 常態分佈中心剛好是每塊木板的各自機率分佈的中心的總合:5+5+5+5+5=125。3. 整個系統常態分佈機率為e^-2的地方,會是每塊木板各自常態分佈為e^-2時的偏差值 (deviation) 各自平方後、再加總、再開根號,也就是所謂的Root Sum Square (RSS),你可以在Excel中輸入這右邊這串計算來驗證:sqrt(0.1^2+0.1^2+0.1^2+0.1^2+0.1^2)。答案正是0.224。詳細的證明可以參考Wiki的說明:https://en.wikipedia.org/wiki/Sum_of_normally_distributed_random_variables解讀與假設看

圖解Ray Database Viewer中Segment的參數

本文章旨在說明Ray Database 分析結果中出現的相關名詞與標示,包含Ray、Segment、Path、Prnt、Levl、In、Hit等等。首先我們設定一個簡單的系統以便說明,這個系統設定如下: 使用Source Ray,並設定#Layout Rays以及#Analysis Rays。這會讓系統僅追跡一條光線,方便我們觀察光線分裂 (Ray Split) 與線段 (Segment) 的關係。物件2與3是兩片BK7平板。Minimum Relative Ray Intensity = 0.005,當光線能量相對於從光源出發時的比例低於此值時,將會停止追跡,此時該光線能量會計入Energy Lost (Threshold) 並顯示在Ray Trace視窗的下方。打開3D Layout並確認勾選 “Use Polarization” 、 “Split NSC Rays” 以及 “Fletch Rays” ,Layout上的追跡結果如下圖 打開Analyze > Ray Database Viewer,打開設定對話框,取消勾選XYZ,勾選Path  設定後點選OK,可以看到如下資訊 表中列出Ray 1在系統分裂後的線段 (Segment) 詳細資訊,Seg# 欄位代表線段編號,光源本身代表Seg# = 0,每一次光線與物件交錯後若有反射、折射、繞射、散射等行為,即產生新的線段,表中線段編號如下 從Ray Database Viewer的報告中可以看到,此光線追跡後共產生16個線段 (Segment),7個分支 (Branch),分支的意思是 “光線從光源追跡到停止為止” 算一個分支,不同的分支可能會包含同樣的中間線段,但最後一個線段一定是不同的。舉例來說,上圖中的分支共有以下17個:Branch1: 0 > 1 > 2 > 3 > 4 > 5Branch2: 0 > 1 > 2 > 3 > 4 > 6 > 7Branch3: 0 > 1 > 2 > 3 > 8 > 9 > 10Branch4: 0 > 1 > 2 > 3 > 8 > 11Branch5: 0 > 1 > 2 > 12 > 13Branch6

Badge winners

Show all badges