切換到寬版
  • 廣告投放
  • 稿件投遞
  • 繁體中文
    • 1789閱讀
    • 0回復(fù)

    [原創(chuàng)]SYNOPSYS 光學(xué)設(shè)計軟件課程二十三:參數(shù)優(yōu)化研究+光線追跡失敗校正 [復(fù)制鏈接]

    上一主題 下一主題
    離線optics1210
     
    發(fā)帖
    476
    光幣
    317
    光券
    0
    只看樓主 倒序閱讀 樓主  發(fā)表于: 2019-01-24

    在本課中,我們將探索一個功能強大但很少使用的SYNOPSYS功能:它可以進(jìn)行參數(shù)研究,顯示兩個變量對第三個變量的影響。在這種情況下,我們希望了解鏡頭優(yōu)化運行的結(jié)果如何取決于初始結(jié)構(gòu)。 在一個理想的設(shè)計中,每一個起點都將達(dá)到最佳可能的結(jié)果,但現(xiàn)實并不如此。 對于任何給定的問題,通常存在許多局部最小值,并且我們期望的最好的優(yōu)化算法應(yīng)該可以得到最好的結(jié)果。

    因此,人們會期望兩個幾乎完全相同的初始結(jié)構(gòu)將達(dá)到相同的局部最小值,即使它不是全局的。 當(dāng)前算法在此優(yōu)化上的表現(xiàn)如何? TU Delft的Florian Bociort博士發(fā)現(xiàn)了一些非常有趣的結(jié)果。 他做了一個很簡單的例子,如下圖所示。

    為了使工作變得非常簡單,他只在主波長的三個視場點校正了光線,忽略了邊緣誤差。 然后,他以曲率半徑2和曲率半徑3的起始值為變量做柵格,并繪制一個圖,其中網(wǎng)格上每個像素的顏色編碼評價函數(shù)的最終值。 他發(fā)現(xiàn)有幾個局部最小值,即使對于如此簡單的問題也不足為奇 - 但完全出乎意料的是,在許多地方,評價函數(shù)以非;靵y的方式變化。 因此,附近的起點經(jīng)常會到達(dá)截然不同的終點。 (他在Code-V上做了這個分析。)這是他在http://homepage.tudelft.nl/q1d90/FBweb/fractals.html 上的文章中的一個圖解。

    (我們將這張照片放在了一邊,以便它與下面的SYNOPSYS分析一致。)

    注意邊界附近的結(jié)果是非常復(fù)雜和混亂的。 黑色區(qū)域表示光線失效的起點,因此無法進(jìn)行分析。

    我們認(rèn)為SYNOPSYS中的PSD算法比上面的方法更可靠和穩(wěn)定,因此我們在3參數(shù)評估功能PA3上設(shè)置了運行。 這是輸入:

    開始雙膠合鏡頭:

        RLE

        ID FLORIAN STARTING DOUBLET

        WA1 .5876000

         WT1 1.00000

         APS               1

         UNITS MM

         OBB  0.000000    3.00000   16.66670    0.00000    0.00000    0.00000   16.66670    0 AIR

           1 CV      0.0146498673770   TH     10.34600000

           1 N1 1.61800000

        1    GID 'GLASS           '

        2    RAD   -174.6512432672814   TH      1.00000000 AIR

        2    AIR

        3    RAD    -80.2251653581521   TH      2.35100000

           3 N1 1.71700000

        3    GID 'GLASS           '

        4    RAD   -111.8857786363961   TH     92.41206276 AIR

           4 AIR

           4 CV      -0.00893769

           4 UMC     -0.16667000

           4 TH      92.41206276

        4    YMT      0.00000000

        5    CV      0.0000000000000   TH      0.00000000 AIR

           5 AIR

         END

        STORE 5

        And this is the input for the PA3 program):

        ON 78           ! use finer grid (118x118 points) 使用更精細(xì)的網(wǎng)格(118x118點)

        PA3 LOOP COLOR          ! initialize PA3, request color boxes for output初始化PA3,設(shè)置輸出顏色框

        RZ1 -.025 .04          ! set the range of variable Z1設(shè)置變量Z1的范圍

        RZ2 -.045 .075          ! set the range of Z2設(shè)置Z2的范圍

        RZ3 0 5.5      ! display results over this range of merit function values

            在此評價函數(shù)值范圍內(nèi)顯示結(jié)果

        NOSMOOTH               ! there will be steps in the output; do not smooth

        按步輸出; 結(jié)果不會很平滑

        XLAB "2 CV -.025 .04" ! define the label for the X-axis, which is variable Z1

                                 定義X軸的標(biāo)簽,即變量Z1

        YLAB "3 CV -.045 .075" ! label for Y-axis, Z2 Y軸,Z2的標(biāo)簽

        ZLAB "MERIT"          ! label for Z-axis, the final merit function Z軸的標(biāo)簽,最終的評價函數(shù)

        LOOP

             ! tell PA3 to loop over the above raster of data告訴PA3循環(huán)上面的數(shù)據(jù)柵格

        GET 5           ! get the starting lens each time每次都得到初始結(jié)構(gòu)的始鏡頭

        2 CV = Z1      ! set curvature 2 to the value of variable Z1將曲率2設(shè)置為變量Z1的值

        3 CV = Z2      ! and CV 3 to Z2, using the artificial-intelligence parser

            CV 3到Z2,使用人工智能解析器

        PANT           ! initialize the variable list初始化變量列表

        VLIST RAD 2 3     ! and vary two radii 兩個不同的半徑

        END

             ! end of the variable list 變量列表的結(jié)尾

        AANT           ! initialize the merit function definition初始化評價函數(shù)定義

        GSR .5 10 3 P 0       ! correct a sagittal fan, three rays, on axis 在軸上修正一個光扇圖,三條光光線

        GNR .5 1 3 P .75       ! correct a full grid of rays, primary color, 0.75 field point

                                            校正完整的光線網(wǎng)格,原色,0.75視場點

                GNR .5 1 3 P 1       ! same, at full field. 全區(qū)域相同

        END           ! end of merit function definition 評價函數(shù)定義結(jié)束

        DAMP 10000      ! initial damping (see below) 初始阻尼(見下文)

        SNAP 50               ! watch what happens, but not too often, in order to keep it fast

                                                                       觀察發(fā)生狀況,但不要太頻繁,以保持高效

        SYNOPSYS 100           ! optimize until it converges  優(yōu)化到收斂

        Z3 = MERIT      ! assign the current merit function value to variable Z3 PA3      告訴PA3循環(huán)到下一個案例。

            ! tell PA3 to cycle to the next case. 告訴PA3循環(huán)到下一個案例。

    為什么需要高阻尼? (默認(rèn)值為1.0或0.01,具體取決于模式切換。)SYNOPSYS中的第一次迭代是用DLS(阻尼 - 最小二乘法)循環(huán)法,我們希望避免在該算法的第一次傳遞時產(chǎn)生的任何混亂; 高阻尼將確保鏡頭在該過程中變化很小。 更強大的PSD算法追跡從傳遞到傳遞的一階導(dǎo)數(shù)的變化,并推導(dǎo)出關(guān)于高階導(dǎo)數(shù)的信息。 這是PSD方法背后的技巧,但它只能在第二遍開始。

    該研究的結(jié)果如下所示。 左側(cè)和底部附近的紫色區(qū)域顯示該程序在不同的初始點上達(dá)到相同的最小值 - 而在Florian的研究中,這些區(qū)域達(dá)到了不同的最小值。 在相交的邊界沒有明顯的混亂,正如我們所期望的那樣,PSD方法就是這種情況,盡管在中央綠色區(qū)域出現(xiàn)了散亂的極點。 我們將后者歸因于第一遍中DLS方法所做的非零更改。 實際上,如果我們用不同的初始阻尼再次運行,那些隨機點出現(xiàn)在不同的地方。

    頂部和底部的黑色區(qū)域顯示了起點產(chǎn)生光線失效的位置,與他們在Florian研究中所做的相同。 我們很好奇如果我們激活僅在SYNOPSYS™中發(fā)現(xiàn)的自動光線故障校正功能會發(fā)生什么。 我們將SYNOPSYS命令更改為

        SYNOPSYS 100 0 FIX

    并重新運行優(yōu)化

    現(xiàn)在我們看到該程序已經(jīng)糾正了之前發(fā)生過的每一個故障。Florian無法優(yōu)化的初始鏡頭現(xiàn)在都能產(chǎn)生可觀的解決方案。 現(xiàn)在,在以前全黑的區(qū)域的邊界處有一些非常輕微的混亂,我們將其歸因于更改了光線失效校正程序?qū)υ撈瘘c的影響。 這些變化有時會使鏡頭更接近另一個相交的區(qū)域。

    這項非常簡單的研究只涉及兩個變量的優(yōu)化。 如果我們將CV 1添加到變量列表會發(fā)生什么?

    試試看吧。ㄟ吔缬行┢,散亂的斑點不再出現(xiàn)。)

     
    分享到