3章:光線追跡計算プログラム

    作成2016.08.29

  1. 元のプログラム
    (1)使用環境の変化により修正を繰り返しています。
    (2)VBA(Visual Basic Application)から呼び出すDLL(ダイナミックリンクライブラリ) 4章:光線追跡計算プログラムのソース公開と修正をベースにしました。


  2. 光線追跡計算プログラムのダウンロード
     光線追跡計算プログラムは以下からダウンロードできます。
     ダウンロード後は解凍してから使用してください。
     
    光線追跡計算プログラム]をダウンロードする。
     解凍すると「光線追跡」フォルダーがあります。

    「光線追跡」フォルダー内に
    (1)光線追跡実行ファイルフォルダー
    (2)光線追跡.sln
    (3)光線追跡フォルダー
    (4).vsフォルダー
    があります。
    注(1)光線追跡.slnを起動して、ビルドすると「光線追跡.VC.db」「光線追跡.VC.VC.opendb」「ipchフォルダー 」「Debugフォルダー 」「Releaseフォルダー 」が生成されますが容量が大きいので削除しました。
    注(2)ソースコードは「光線追跡」フォルダーの「光線追跡.cpp」ファイルのみに記載されています。


  3. 実行ファイル群
     「光線追跡実行ファイル 」フォルダー内に以下のファイルがあります。
    (1)光線追跡.exe:コンソールアプリ
    (2)VBA_C_W10光線追跡.xls:VBAアプリ
    (3)flag.txt:コントロールフラグファイル
    (4)IN_FM.txt:計算条件ファイル
    (4)IN_FM.txt2:計算条件ファイル
    (5)OUT_M.xls:計算結果ファイル
    注(1) 「光線追跡実行ファイル 」フォルダーの保存場所の制限は無く、任意の場所に保存して実行できます。


  4. 操作方法
    (1)近接露光.exeをダブルクリックします。
    (2)コンソールウインドウが表示されます。(文字等の表示はありません。)



    (3)VBA_C_W10光線追跡.xlsをダブルクリックします。



    注(1) VBA_C_W10光線追跡の操作はかなり複雑であり、使いこなすのは試行錯誤が必要となります。
    注(2)条件設定は、光の不思議と応用の26章〜38章を参照する必要があります。
    注(3)「IN_FM」と「IN_FM2」は「 IN_FM (演習1)」と「 IN_FM2 (演習1) 」の値がデホルトで設定されています。これは、光の不思議と応用32章の図32-2 タイプA等倍光学系の配置となっています。



    (4)「スポットダイアグラム計算実行」ボタンを押します。
    (5)スポット要約シートが表示されます。



    (6)完全等倍でテレセントリックであることが理解できます。
    (7)光線図シートをクリックします。



    (8)光線が通過する範囲が理解できます。
    (9)シート「スポット図」をクリックします。



    (10)シート「球面レンズ作図(連動用)」をクリックします。
    (11)「球面レンズ作図実行」ボタンを押します。
    (12)シート「作図」が表示されます。



    (13)シート「操作」の「波面収差計算実行」ボタンを押します。
    (14)シート「OUT_M」に波面収差計算結果が表示されます。
    *これから最大収差は波長656.3nmの円周方向に発生することがわかります。

    V[0]Y[NUMB-1]V[NUMB-1]AB
    -5.00E-028.06E-035.00E-023.50E-01
    -4.38E-027.48E-034.38E-022.76E-01
    -3.75E-026.75E-033.75E-022.08E-01
    -3.13E-025.89E-033.13E-021.48E-01
    -2.50E-024.89E-032.50E-029.66E-02
    -1.88E-023.78E-031.88E-025.52E-02
    -1.25E-022.58E-031.25E-022.48E-02
    -6.25E-031.30E-036.25E-036.24E-03
    0.00E+000.00E+000.00E+008.66E-11
    6.25E-03-1.30E-03-6.25E-036.24E-03
    1.25E-02-2.58E-03-1.25E-022.48E-02
    1.88E-02-3.78E-03-1.88E-025.52E-02
    2.50E-02-4.89E-03-2.50E-029.66E-02
    3.13E-02-5.89E-03-3.13E-021.48E-01
    3.75E-02-6.75E-03-3.75E-022.08E-01
    4.38E-02-7.48E-03-4.38E-022.76E-01
    5.00E-02-8.06E-03-5.00E-023.50E-01
    0次-4.90E-07
    1次-1.65E-16
    2次4.00E-01
    3次5.10E-16
    4次-5.56E-02
    5次-3.31E-16
    6次6.06E-03

    *上記表は波長656.3nmの円周方向の計算結果です。
    *最大収差はNA0.05の位置で0.35λです。
    *収差の分析結果は2次の焦点収差で0.4λです。
    (15)シート「レンズ間隔最適化計算実行」ボタンを押します。
    (16)シート「OUT_M」にレンズ間隔最適化計算結果が表示されます。

    N次元Gauss-Newton法によるレンズ間隔(D)最適化計算結果
    NoEXaXsYaYsD(0)
    10.003778 8.98482E-070.00382 0096.247
    20.003570 5.4499E-070.00361 0096.259
    30.003547 4.27119E-070.00359 0096.263
    40.003544 3.87847E-070.00359 0096.264
    50.003544 3.74764E-070.00359 0096.265
    60.003544 3.70416E-070.00359 0096.265
    70.003544 3.68953E-070.00359 0096.265
    80.003544 3.68492E-070.00359 0096.265
    90.003544 3.68358E-070.00359 0096.265
    100.003544 3.68282E-070.00359 0096.265

    *軸間距離D(0)=96.265mmが最適であることがわかります。
    (17)シート「IN_FM」のD18セルの値を96.265に変更します。
    (18)シート「操作」 の「スポットダイアグラム計算実行」ボタンを押します。
    (19)シート「スポット図」をクリックします。



    *スポット範囲が小さくなっているのが確認できます。

    (20)シート「操作」の「波面収差計算実行」ボタンを押します。
    (21)シート「OUT_M」に波面収差計算結果が表示されます。
    *波長656.3nmの円周方向の収差は以下に変化します。

    V[0]Y[NUMB-1]V[NUMB-1]AB
    -5.00E-026.26E-035.00E-022.82E-01
    -4.38E-025.90E-034.38E-022.24E-01
    -3.75E-025.40E-033.75E-021.70E-01
    -3.13E-024.76E-033.13E-021.21E-01
    -2.50E-023.99E-032.50E-027.94E-02
    -1.88E-023.11E-031.88E-024.55E-02
    -1.25E-022.13E-031.25E-022.05E-02
    -6.25E-031.08E-036.25E-035.16E-03
    0.00E+000.00E+000.00E+008.66E-11
    6.25E-03-1.08E-03-6.25E-035.16E-03
    1.25E-02-2.13E-03-1.25E-022.05E-02
    1.88E-02-3.11E-03-1.88E-024.55E-02
    2.50E-02-3.99E-03-2.50E-027.94E-02
    3.13E-02-4.76E-03-3.13E-021.21E-01
    3.75E-02-5.40E-03-3.75E-021.70E-01
    4.38E-02-5.90E-03-4.38E-022.24E-01
    5.00E-02-6.26E-03-5.00E-022.82E-01
    0次-4.88E-07
    1次-6.03E-16
    2次3.31E-01
    3次2.40E-15
    4次-5.55E-02
    5次-1.90E-15
    6次6.04E-03

    *上記表は波長656.3nmの円周方向の計算結果です。
    *最大収差はNA0.05の位置で0.282λです。
    *収差の分析結果は2次の焦点収差で0.331λです。

    (22)「コンソール終了」ボタンを押すとflag.txt(コントロールフラグファイル)に文字コード‘Z’が書き込まれます。
    (23)文字コード‘Z’を認識して光線追跡.exe(コンソールアプリ)が終了します。
    (24)最後にVBA_C_W10光線追跡.xls(VBAアプリ)を終了します。


  5. 光線追跡プログラムまとめ
    (1) Windows10アップグレード後から、VBA(Visual Basic Application)から呼び出すDLL(ダイナミックリンクライブラリ)が動作しなくなりました。
    (2)対応策として、 DLL(ダイナミックリンクライブラリ)をコンソールアプリケーションに変更しました。
    (3) 「近接露光実行ファイル 」フォルダーの保存場所の制限は無く、任意の場所に保存して実行できます。
    (4)コンソールアプリケーションの起動はダブルクリックが必要となります。
    (5)コンソールアプリケーションの終了はflag.txt(コントロールフラグファイル)で行うことができます。
    (6)光線追跡の計算条件の解説は光の不思議と応用の26章〜38章を参照願います。
    *光線追跡プログラムの作成は大変苦労しました。使用方法も難しく、簡単にはうまく説明できません。
    *光学条件の最適化は特に難しく、多くのノウハウが必要です。




4章:照度分布計算プログラムに行く。

トップページに戻る。