LightTools最佳化技術應用光學部王弘鈞(Richard)ora_support@terasoft.com.tw02-2788-9300#2322Agenda•Optimization設定環境與架構說明•基本Optimization使用•特殊MeritFunction應用–NS-RayMeritFunction–FocusandCollimateMeritFunction–MeshMeritFunction•導光系統之均勻度優化•LED發光曲線優化•參數控制(ParametricControl)的使用•背光板網點排列設計工具BPO使用說明3Optimization設定環境與架構說明•所謂的最佳化就是根據標準或是誤差函數,透過自動計算來改善系統的性能•在光學領域裡,成像工程師往往都會透過最佳化方式來自動地設計光學系統•而照明工程師往往卻只能透過手動調整的方式來最佳化照明系統–無聊且冗長–通常會藉由工程師的經驗,透過線性的改變參數來搜尋4背景•以往成像設計的最佳化是徒手操作來完成的–使用成像分析代碼–需要用非線性方程式同時解決問題–重複地計算,耗時也耗費人力–需要花幾個月的時間來完成一新的設計•30年前ORA開發了“CODEV”最佳化功能,開始了成像系統設計的新革命–功能強大而且使用簡單–目前仍是CODEV最主要的功能–把最佳化所需要花費的幾個月時間縮短為幾天•現今的系統更為複雜–需要更多變數與分析,徒手操作已不敷需求了5LightTools®照明最佳化•如今ORA投入了大量的人力物力,終於克服了照明系統最佳化的挑戰–照明系統最佳化的變數與目標相對的比成像系統大的多,困難度相對提昇不少•LightTools提供了一功能強大也使用簡單的最佳化功能–使用與CODEV相同的DampedLeastSquares(DLS)的最佳化引擎6WhatisOptimization?•最佳化三大基本組成:–誤差函數MeritFunction(ErrorFunction):•系統的一個目標函數,是單一的數值。若該數值為0表示已經達成目標–變數Variables:•系統中可以允許改變的特性,藉由特性改變可以降低誤差函數–限制條件Constraints:•在進行最佳化的過程中,系統無論如何都必須要達到的情況•最佳化的目的–藉由改變系統的變數,在能夠滿足限制條件的情況下來降低目標函數7如何設定變數•LightTools屬性對話窗中的參數都可以設定成為變數(只要按滑鼠右鍵即可)•幾乎所有可輸入的欄位都可以設定•變數的設定應該以能改變系統性能為優先設定為變數的欄位將會改變其顏色(內訂是紅色)8定義MeritFunctions•定義價值函數(MeritFunction)是在進行最佳化步驟中最重要的一環•一個適當的價值函數設定可以簡化最佳化問題–您一定要常常的確認目標值與權值是適當的•盡量使用必要的參數來建構價值函數(不要設定太過)–盡量使用對稱模型–避免模糊不清的目標9設定Constraints可用不等式定義限制條件CurrentvalueofthisparameterRelationshipTarget(=)orBoundary(=,=)10LocalOptimization:2DExample•LightTools的最佳化方式是尋求區域解,LightTools會在起始點的位置尋求可改變價值函數的解•右圖概說了起始位置與價值函數間的關係•LightTools的區域解最佳化方式是一個功能強大,可以搜尋至多100個變數的工具Meritfunction,includingvalleyIfthestartingdesignis……here,optimizationcan’tfindtheminimum.…inthevalley,optimizationcanfindtheminimum.ValleyLocalminimum11如何建立價值函數•LightTools屬性對話窗中的參數都可以設定成為變數(只要按滑鼠右鍵即可)•大多數的計算欄位都可以建立成價值函數•價值函數可以多群組化12OptimizationInput•OptimizationInput控制最佳化時變數改變的方向以及去編輯與觀察變數、限制條件與價值函數13VariablesSummary•VariablesSummary可以觀察變數•個別的變數可以在進行更多的控制14MeritFunctionSummary•使用summary來編輯價值函數–計算價值函數–設定目標–計算noisefloor15NoiseFloor•當價值函數是以MonteCarloraytrace結果為基準時noise是一個必須要考慮的因素•NoiseFloorestimate可以避免在進行最佳化時所搜尋的解釋來自於noise•LightTools內定設定當MF低於1.2*NF時將終止在這個區域Inthisregion(MF=NF),meritfunction的改善將便的不確定MeritFunctionNoiseFloorIterationMFValues16Meritfunction參數設定計算目前的meritfunction與noisefloor(forMonteCarlo-basedMFitems)多個MeritFunction時可以給不同計算權重17目標值的輸入Defaulttarget=0CheckifitemdependsonMonteCarlosimulation18進行最佳化•當所有設定都完成後就可以開始進行最佳化計算•OptimizationOptimize!19基本Optimization使用•對鏡片的焦點進行表面曲率最佳化設計–單一鏡片•Diameter:10mm•Thickness:4mm•FrontandBackRadii:10mm•Material:BK7–Front曲率可變,目標焦距8mm•最佳化元素–變數:FrontSurface曲率(曲率半徑)–價值函數:焦距20設定與結果變數目標值結果21最佳化結果•最佳化後發現邊緣厚度太小,有製造問題•利用限制條件,將製造限制加入再做一次最佳化–邊緣厚度作為限制條件(=1mm)22Workshop1:混光系統•混光系統的最佳化–找出R、G、B三色光源的功率比,達到白光效果•最佳化必要兩元素–變數:Variable•光源的功率就是變數–價值函數:MeritFunction•利用CIE的座標值定義白光–CIEx,CIEy(0.333,0.333)23StartingtheModel•開啟已建構好的模型Color_Mix.lts–TheModelSpec.:•–Red;WL=630nm;XYZ–0.5,cos(30),0•–Green;WL=530nm;XYZ–0.5,-cos(30),0•–Blue;WL=430nm;XYZ1,0,0•AimSphereangle:0~12。•ObservePlane:6x6mm@(0,0,10)•觀察模擬30萬條光線後的結果–Illumination-SimulationInfo.–300000–Illumination-StartSimulation(orbuttonontoolbar)–IlluminationIlluminanceDisplayCIE/RGBRGBRasterChart24BeforeOptimization•Tips:–只要設定兩個變數–利用CIE(x,y)定義目標值–利用RGB交集區域設定MeritFunctiononlythisareawillbeconcernedinMeritFunctionMeshDimension改為1x1MeshBoundaries改為-0.4~0.4mm25定義最佳化參數•變數(Variables)–GreenSource功率–BlueSource功率•Tips:SystemNavigator-IlluminationManager-SourceListRight-click–Properties-Emittance•MeritFunction–CIExandCIEy•Tips:InCIEMesh–Right-click–Resulttab•目標值(Targets)–CIEx=0.333–CIEy=0.333•Tips:Optimization–Input–MeritFunction-Group•限制條件(Constraints)-無Ref:C:\LTUser\Color_Mix_Set.lts(NumberofRays30000)*ShowColorTriangle26最佳化後的結果27最佳化前後的比較最佳化前最佳化後28特殊MeritFunction應用•針對特殊需求,LightTools另提供三種MeritFunction–NS-RayMeritFunction–Focus/CollimateMeritFunction–MeshMeritFunction29NS-RayMeritFunction•所有的RaysFan/Grid將會以目標表面的設定為目標進行最佳化•可以讓使用者藉由NSRay在每一個表面上的點座標來定義成價值函數30如何設定NSRayMeritFunction•有兩種方式可以設定NSRaymeritfunction利用SystemNavigator或是PropertiesDialog–點選NSRay,Fan,orGrid–按下滑鼠右鍵,選擇“AddNSRayToMeritFunction”新的NSRaymeritfunction會出現在OptimizationManager(inSystemNavigator)31NSRaymeritfunction目標設定方式•Todefinethetargetsurface:–Selectasurfaceinthe3DDesignVieworintheSystemNavigatorandclick“UseSelectedSurface”or–TypeintheElementandSurfacename.•Specifydataitemsrelativetothesurface(nottoagivenraysegment)–Duringoptimizationray“segments”canchangeAllraysinfan/gridmusthittargetsurface!32各個NSRay也可設定獨立的目標值SelectquantitytooptimizeSetindividualorcommontargetsCurrentvalueImportanceinMF33Workshop2:AimingaRay•利用Mirror角度改變,使光線正對接收面中心34Workshop2:CreateModel•Startanewmodel•CreateamirrorattheoriginnormaltotheZaxisusingtheMirroronthePlaceSingletPalette–XYZ0,0,0–Diameter:10mm35Workshop2:CreateModel•PlaceasingleNSRayinthemodel–XYZ5,5,-9–Alpha:-30–Beta:25•PlaceaDummyplaneinthemodel–XYZ–13,-4,-14–Alpha:5–Beta:-40–Uncheck“ClipRaystoBoundary”36Workshop2:VariablesandMeritFunctions•SettheAlphaandBetaanglesofthemirrortoVariable•CreatetwoNSRaymeritfunctionswiththeNSRay–SetthefirstdatatoLocalY(default)withatargetof0.0(default)–SettheseconddatatoLocalXwithatarget