15章:光学パラメータの最適化(1)

    作成2013.07.04

  1. 3次元光線追跡における光学パラメータの最適化
     3次元光線追跡における光学パラメータの最適化は非常に難しい課題です。
     なぜ?難しいか?それは、地面の傾斜だけをたよりに世界最高の山頂をめざす作業にたとえることができます。
     ニュートン法やガウス・ニュートン法は誤差関数の傾斜から移動方向を算出し、誤差が最小となる条件をさがします。
     しかし、複雑な地形でたくさんの山がある場合、スタート地点から一定の手順で登るといつも同じ山の山頂にたどりつきます。この山が最高峰とはかっぎりません。
     したがって、最適化計算のスタート地点は最高峰の登山口から行う必要があるのですが、かなりの経験者でないと、最高峰の登山口を設定できません。
     最高峰の登山口の設定はかなり難しい作業です。


  2. 自動最適化のアルゴリズム
     光学パラメータの最適化にはある程度のこつが存在します。
    (1)対称配置の等倍光学系が最適化しやすい。
    (2)最初の焦点合わせを行う。
    (3)次に両テレセン調整をおこなう。
    (4)次にレンズ曲率調整をおこなう。
    (5)上記(2)から(4)を繰り返す。
     上記の操作で一つの山の山頂付近にたどりつきます。しかし、最高峰ではありません。どうしようか?あまりスマートな方法はありません。ひたすら、スタート地点を変更し、最適化手順も変更し、さまざまな山の山頂をめざします。
     そして、山頂の高さを比較して、もっとも高い山を探します。条件を固定するといつも同じ山を登ってしまうため、乱数を使ってスタート地点を設定し、乱数を使って最適化の手順を決定します。
     この自動最適化のアルゴリズムは宝くじを当てるようなプログラムで運、不運があります。運がよければ最高峰に登ることができます。だめな場合はひたすら計算をくり返すことになります。


  3. 光学系自動最適化計算C#、WPFソフト
     光学系自動最適化計算にC#、WPFアプリケーションを適用してみました。

     完成ファイルは以下からダウンロードできます。
     ダウンロード後は解凍してから使用してください。
     
    光学系自動最適化計算C#、WPFソフト]をダウンロードする。
     解凍すると「Lens2」フォルダーがあります。
    フォルダー内の「Lens2.sln」をダブルクリックすると「Express 2012 for Windows Desktop」が起動して、プログラムの修正・デバッグが可能です。

     「実行ファイル」フォルダー内の「Lens2.exe」をダブルクリックすると実行プログラムが起動して、光学系自動最適化計算が可能となります。
    フォルダー内には、操作説明用データファイル
    「標準レンズ完成.txt」
    「標準レンズ+2種元.txt」
    「標準レンズ+2種完成.txt」
    「2種レンズ元.txt」
    「2種レンズ完成.txt」
    「ミラー+レンズ元.txt」
    「ミラー+レンズ完成.txt」
    があります。


  4. メニュー機能説明
    メニュー
    (1)保存:計算条件表または計算結果表を保存します。
    (2)開く:計算条件表を読み込みます。

    操作
    (1)レンズ最適化自動計算:レンズ光学系の最適条件を探索します。
     (レンズ光学系の最適条件が不明の場合使用)
    (2)ミラー+レンズ最適化:ミラー+レンズ光学系の最適条件を探索します。
     (ミラー+レンズ光学系の最適条件が不明の場合使用)
    (3)光学系基本定数表変換:対称光学系を結像面まで展開します。
    (4)スポットダイアグラム:スポットダイアグラムを計算します。
    (5)波面収差:波面収差を計算します。
    (6)レンズ作図:レンズを作図します。
    (7)フォーカス調整:フォーカスのみ自動調整します。(追い込み調整用)
    (8)テレセン調整:テレセン調整します。(追い込み調整用)
    (9)曲率最適化:曲率最適化を実行します。(追い込み調整用)
    注:テレセン調整を行うと一時的に誤差が拡大するため、誤差標準偏差判定値を 大きめに設定が必要となります。


  5. 基本パラメータ説明
    項目記号単位説明
    Lens面数(対称面まで)NUMB8整数対称面までのレンズ面数を設定します。
    材質定数表種類数Ng10整数材質定数表の種類数を設定します。
    波長分割数NL6整数波長の分割数を設定します。
    波長初期値Lam10.48μm最小波長を設定します。
    波長終了値Lam20.66μm最大波長を設定します。
    目標焦点距離f050mmレンズの焦点距離を設定します。(ミラー+レンズの場合は無効)
    スポットダイアグラムの分割数NJ8±NJに分割スポットダイアグラムの分割数を設定します。
    光線角度変化範囲(NA)U00.08rad光学系のNAを設定します。(単位はrad)
    最適化角度分割数Nu04整数最適化計算時の光線角度分割数を設定します。
    フィールド半径X00.4mm光学系のフィールド半径を設定します。
    最適化フィールド分割数Nx04整数最適化計算時のフィールド分割数を設定します。
    誤差標準偏差判定値Esig0.001mmOKとする誤差標準偏差値(単位mm)を設定します。
    偏微分変化量DH0.00011/mm傾斜を求める際の変化量を設定します。
    初期曲率乱数係数RandARg0.002無次元初期条件で発生する曲率乱数の大きさを設定します。
    最適化探索回数Nrand20整数探索する条件の回数を設定します。


  6. 光学系基本定数表
    L面位置曲率位置材質最適化
    iaR[i]D[i]M[i]CaR[i]
    整数1/mmmm整数整数
    005010
    10.0292440
    20431
    30411
    40441
    50431
    605011
    70010
    (1)L面位置:レンズ面番号です。
    (2)曲率:曲率半径の逆数です。
    (3)位置:レンズ面の間隔を設定します。
    (4)材質:材質の種類を設定します。 (5)最適化:1を設定した面の曲率を最適化します。0は固定です。


  7. 材質定数表
    No材質名A1A2A3B1B2B3
    1空気000000
    2ミラー-200000
    3S-FPL530.9835323270.0695688141.114092380.004922350.019358109264.275294
    4S-LAL141.23720970.5897226231.31921880.015355132-0.00030789693.7202947
    5S-LAL611.110732920.8593477731.267074330.0046418120.01929892687.3917698
    6S-LAL141.23720970.5897226231.31921880.015355132-0.00030789693.7202947
    7S-BSL 7(BK)1.15150190.1185836121.263013590.010598413-0.011822519129.617662
    8S-TIM22(SF2)1.442222940.1944322651.740924820.010424940.055023526169.710769
    9S-FPL511.170105050.0475710780.7638324450.0061620390.026337288141.882642
    10S-BSM810.9963568440.6513928371.224326220.0144821590.00154826489.9818604
    (1)No:材質Noです。
    (2)材質名:理解できる名前を設定します。(計算には関係ありません)
    (3)A1〜B3:光学ガラスの定数を設定します。
    (4)空気:定数は全て0を設定します。
    (5)ミラー:A1=-2を設定します。


  8. 操作例1
     「標準レンズ完成.txt」を使用します。標準レンズですので、材質も曲率も変更できません。

    (1)「Lens2.exe」をダブルクリックします。
    (2)メニューの「開く」を選択します。
    (3)「標準レンズ完成.txt」を開きます。
    (4)操作の「スポットダイアグラム」を選択します。
    (5)計算結果数表が表示されます。
    (6)メニューの「保存」を選択選択すると計算結果数表をタブ区切テキスト形式で保存できます。
    (7)「次頁」ボタンを押すとスポットダイアグラムグラフが表示されます。
     以下にグラフを示します。(図15-1)

    ・図からスポット半径が約9μmであることがわかります。
    (8)「閉じる」ボタンを押してグラフウインドウを閉じます。


    (9)次に操作の「波面収差」を選択します。
    (10)計算結果数表が表示されます。
    (11)メニューの「保存」を選択選択すると計算結果数表をタブ区切テキスト形式で保存できます。
    (12)「次頁」ボタンを押すと波面収差グラフが表示されます。
     以下にグラフを示します。(図15-2)

    ・図から最大の波面収差は約1.1λであり、無視できない値であることはわかります。
    ・収差の内容としては、色収差と球面収差であることも推定できます。


    (13)次に操作の「光線図」を選択します。
    (14)計算結果数表が表示されます。
    (15)メニューの「保存」を選択選択すると計算結果数表をタブ区切テキスト形式で保存できます。
    (16)「次頁」ボタンを押すと光線図グラフが表示されます。
     以下にグラフを示します。(図15-3)



    (17)次に操作の「レンズ作図」を選択します。
    (18)計算結果数表が表示されます。
    (19)メニューの「保存」を選択選択すると計算結果数表をタブ区切テキスト形式で保存できます。
    (20)「次頁」ボタンを押すと波面収差グラフが表示されます。
     以下にグラフを示します。(図15-4)



  9. 操作例2
     「標準レンズ+2種元.txt」を使用します。
    (1)「Lens2.exe」をダブルクリックします。
    (2)メニューの「開く」を選択します。
    (3)「標準レンズ+2種元.txt」を開きます。
    (4)初期条件としてF=100mmの標準レンズが設定されています。標準レンズは曲率を変更できませんので最適化を0に設定します。
    (5)加えて材質9と10のレンズを設定し、初期曲率を0とし、最適化を1に設定します。
    (6)操作の「レンズ最適化自動計算」を選択します。
    (7)誤差判定値を満足する条件が見つかりました!!曲率aR[j]を書き換えます!!のメッセージがでるまで計算を繰り返します。何回で見つかるかは運しだいです!!
    (8)次に操作の「フォーカス調整」を選択します。
    (9)うまくいくと誤差判定値を満足する条件が見つかりました!!軸間Dr[j]を書き換えます!!のメッセージが表示されます。
    (10)次に操作の「曲率最適化」を選択します。
    (11)うまくいくと誤差判定値を満足する条件が見つかりました!!曲率aR[j]を書き換えます!!のメッセージが表示されます。
    (12)時々でよいのですが、操作の「テレセン調整」を実行する必要があります。
    (13)実行すると軸間Dr[j]を書き換えました!!のメッセージが表示されます。
    (14)「テレセン調整」を実施すると誤差が一時的に大きくなります。
    (15)誤差標準偏差判定値を大きめに変更してから、操作の「曲率最適化」を選択します。
    (16)操作(8)から(15)までの操作を繰り返して、誤差が最小になるようにします。最後は改善できなくなります。
    (17)以上の操作をくりかえした結果が「標準レンズ+2種完成.txt」です。


    (18)メニューの「開く」を選択します。
    (19)「標準レンズ+2種完成.txt」を開きます。
     (20)以下にスポットダイアグラムグラフを示します。(図15-5)

    ・図からスポット半径が半径方向約3μm、円周方向1.5μmであることがわかります。


     (21)以下に波面収差グラフを示します。(図15-6)

    ・図から最大の波面収差は約0.185λであり、かなり改善されています。
    ・収差の内容としては、色収差はわずかで球面収差であることが推定できます。


     (22)以下に光線図グラフを示します。(図15-7)



    (23)以下にレンズ作図を示します。(図15-8)



  10. 操作例3
     「2種レンズ元.txt」を使用します。
    (1)「Lens2.exe」をダブルクリックします。
    (2)メニューの「開く」を選択します。
    (3)「2種レンズ元.txt」を開きます。
    (4)初期条件としてレンズ面1の曲率が0.0292に設定され、最適化が0に設定されています。
    (5)これは、最適化面数が大きすぎると、計算時間が長くなり、収束性が悪くなるためです。(自動計算は万能ではありません。)
    (6)操作の「レンズ最適化自動計算」を選択します。
    (7)誤差判定値を満足する条件が見つかりました!!曲率aR[j]を書き換えます!!のメッセージがでるまで計算を繰り返します。何回で見つかるかは運しだいです!!
    (8)次に操作の「フォーカス調整」を選択します。
    (9)うまくいくと誤差判定値を満足する条件が見つかりました!!軸間Dr[j]を書き換えます!!のメッセージが表示されます。
    (10)次に操作の「曲率最適化」を選択します。
    (11)うまくいくと誤差判定値を満足する条件が見つかりました!!曲率aR[j]を書き換えます!!のメッセージが表示されます。
    (12)時々でよいのですが、操作の「テレセン調整」を実行する必要があります。
    (13)実行すると軸間Dr[j]を書き換えました!!のメッセージが表示されます。
    (14)「テレセン調整」を実施すると誤差が一時的に大きくなります。
    (15)誤差標準偏差判定値を大きめに変更してから、操作の「曲率最適化」を選択します。
    (16)操作(8)から(15)までの操作を繰り返して、誤差が最小になるようにします。最後は改善できなくなります。
    (17)以上の操作をくりかえした結果が「2種レンズ完成.txt」です。


    (18)メニューの「開く」を選択します。
    (19)「2種レンズ完成.txt」を開きます。
     (20)以下にスポットダイアグラムグラフを示します。(図15-9)

    ・図からスポット半径が半径方向約1.6μm、円周方向1.0μmであることがわかります。


     (21)以下に波面収差グラフを示します。(図15-10)

    ・図から最大の波面収差は約0.136λであり、かなり良好です。
    ・収差の内容としては、色収差はわずかで球面収差であることが推定できます。


     (22)以下に光線図グラフを示します。(図15-11)



     (23)以下にレンズ作図を示します。(図15-12)



  11. 操作例4
     「ミラー+レンズ元.txt」を使用します。
    (1)「Lens2.exe」をダブルクリックします。
    (2)メニューの「開く」を選択します。
    (3)「ミラー+レンズ元.txt」を開きます。
    (4)初期条件として曲率は全て0に設定され、最適化は1面、2面、3面に設定されています。
    (5)これは、5面の曲率でフォーカス調整、4面でテレセン調整を設定してあるため、最適化を設定しなくとも自動調整されるためです。また、目標焦点距離の設定は無視されます。
    (6)操作の「ミラー+レンズ最適化」を選択します。
    (7)誤差判定値を満足する条件が見つかりました!!曲率aR[j]を書き換えます!!のメッセージがでるまで計算を繰り返します。何回で見つかるかは運しだいです!!
    (8)次に操作の「フォーカス調整」を選択します。
    (9)うまくいくと誤差判定値を満足する条件が見つかりました!!軸間Dr[j]を書き換えます!!のメッセージが表示されます。
    (10)次に操作の「曲率最適化」を選択します。
    (11)うまくいくと誤差判定値を満足する条件が見つかりました!!曲率aR[j]を書き換えます!!のメッセージが表示されます。
    (12)時々でよいのですが、操作の「テレセン調整」を実行する必要があります。
    (13)実行すると軸間Dr[j]を書き換えました!!のメッセージが表示されます。
    (14)「テレセン調整」を実施すると誤差が一時的に大きくなります。
    (15)誤差標準偏差判定値を大きめに変更してから、操作の「曲率最適化」を選択します。
    (16)操作(8)から(15)までの操作を繰り返して、誤差が最小になるようにします。最後は改善できなくなります。
    (17)以上の操作をくりかえした結果が「ミラー+レンズ完成.txt」です。


    (18)メニューの「開く」を選択します。
    (19)「ミラー+レンズ完成.txt」を開きます。
     (20)以下にスポットダイアグラムグラフを示します。(図15-13)

    ・図からスポット半径が半径方向約0.9μm、円周方向0.2μmであることがわかります。


     (21)以下に波面収差グラフを示します。(図15-14)

    ・図から最大の波面収差は約0.112λであり、かなり良好です。
    ・収差の内容としては、色収差はわずかで球面収差であることが推定できます。


     (22)以下に光線図グラフを示します。(図15-15)



    (23)以下にレンズ作図を示します。(図15-16)



    感想:
    (1)3次元光線追跡の光学パラメータの最適化は、非常に難しいです。
    (2)本ソフトを使用すると光学パラメータの最適化の作業を軽減できます。
    (3)しかし、自動計算ソフトは万能ではありません。高NA、大フィールドのレンズ設計は極めて難しいことに変わりはありません。








16章:光学ガラスの関数近似に行く。

トップページに戻る。