ゴースト像がどこに発生しているか見当をつけたい!

設計した光学系に「発生するかもしれないゴースト像やフレア」って気になりませんか?

実は、設計初期に光学系の像面に発生するゴーストやフレアの影響や傾向を察知していると、もしかしたら、時間や材料などのコストを抑えられるかもしれません。

例えば、闇雲にコーティングを施すのではなく、ゴーストの影響が大きい面に対してのみコーティングを施して、逆に影響が小さい面に対してコーティングを施さなければ、生産コストを抑えることになります。

そもそも、試作してから「ものすごくゴーストが発生してる!」となると、レンズのタイプを変更して最初から設計するような手戻りが生じてしまい、試作の費用と設計工数が2倍になってしまいます。

このように、ゴーストを事前に察知して設計段階で対策しておくことが、後々の工程やコスト面で重要なポイントになります。

そこで、CODE Vでゴースト像の解析をしてみませんか?

CODE Vにはゴースト像解析オプションなる機能があります。
下のような光学モデル内で2面反射が発生したときの値を解析できます。

  • ゴースト光の結像位置と像面の距離
  • ゴースト光の焦点距離
  • 像面に作る光束の半径
  • 絞り面上での光線の通過位置と絞り径の比
  • ゴースト光の結像サイズと実際の像の結像サイズの比

ゴースト像解析オプションの出力の意味はFAQで紹介しています。
 ※このリンクを閲覧するには、ユーザーIDとユーザーパスワードが必要です。
  ユーザー登録がお済みでない方は、こちらから登録してください。

このゴースト像解析オプションを使うと2面反射のゴースト像の影響を確認できます。
ここで注意すべきは、このオプションは近軸光線追跡で結果を計算していることです。
光学系に非球面を使ったり、エレメントを偏心させていると正確な結果を返しません。
さらに、影響を数値でしか見られないので、集光する位置や光の経路は分かりません。

では、もっと直感的にゴースト像を確認する方法はないのでしょうか?
気になるゴーストが発生する2面反射の組み合わせをモデル化して、さらに追加解析できないでしょうか?
これが今回、攻略すべきポイントです。


こんなときにはゴースト像の様子を断面図で確認できるマクロ“GHOST_VIEW.seq”が便利です。

攻略のポイント!

  • 適切にアパチャーを設定できていますか?
  • ゴースト光の発生原因となる2面反射が起こりそうな面は、どのあたりにありますか?
  • ゴースト光の集光径は、どれくらいであれば許容できますか?

サンプルレンズdbgauss.lenを例にとってこのマクロを利用してみます。

まずはモデルを読み込みます。
RES CV_LENS:dbgauss

次に光学系の性能を上げておきます。
ここで仕様に合うように最適化を行ってください。
今回は何の指定もせずにざっくり最適化しておきます。
AUT; GO

次にアパチャー、つまり光線通過有効径を設定します。 CODE Vが自動的に設定するデフォルトアパチャーのままでもかまいませんが、できればアパチャーを設定してください。
というのも、ゴースト像となる光線を追跡するとき、この光線有効径がキーポイントとなってくるからです。
アパチャーの外側を通過する光線の振る舞いは機構部との兼ね合いもありますので、一概にレンズ構成だけではゴーストが発生するかどうかわかりません。
そのため厳密にアパチャーを設定することでゴースト光の通過できるエリアを光線有効径内だけに制限します。
今回は単純に現在のデフォルトアパチャーの径をユーザー定義アパチャーに変更しておきます。
SET APE
メニューからはレンズ>計算>アパチャーの設定です。

ここで名前をつけて一旦このモデルを保存しておきます。
SAV ghostest.len

では、メニューのツール>マクロマネージャからサンプルマクロのツリーの下の幾何光学的解析のリストで
“C:\CODEV*****\macro\ghost_view.seq”を選択してください。
そして実行ボタンを押せばGHOST_VIEW設定画面が現れます。

毎回この作業が面倒に感じる方は“お気に入りに追加”か“ツールバーに指定”、“メニューバーに追加”をすれば、次回からは簡単にこのマクロにアクセスできます。

まずFirst SurfaceとLast Surfaceに反射面の組み合わせ候補となる面の範囲を指定してください。
First SurfaceとLast Surface、どちらも1とすると全ての面の組み合わせを考えます。

またZoom Positionに解析するズームポジションを指定してください。
さらにプロットする断面をYZ平面かXZ平面から選んでPlot planeに指定してください。

最後のWrite sequence filesはデフォルトではNoとなっていますが、Yesがお勧めです。
これをYesとすると各組み合わせのゴースト光モデルがファイル名_Z*_S*_S*.seqという名前のファイルに保存されます。
これで気になるゴースト像が発生する2面反射面を持つモデルを後からさらなる解析ができるようになります。


OKを押してください。

すると一番初めに現在の光学系の断面図が描画されます。
続いて2面反射する面の組み合わせを変えながらモデルの断面図で続々と描画されます。

GHOT_VIEWマクロついて詳しくはFAQに紹介されています。
   ※FAQを閲覧するには、ログインアカウントとパスワードが必要です。
   ユーザー登録がお済みでない方は、こちらから登録して下さい。

気になるゴースト像が発生する面の組み合わせはありましたか?
今回は第10面と第2面で反射する第1画角のゴースト光が気になります。
どっからどう見ても像面上でゴースト像となりそうです。

ではこのゴースト光がどれくらい性能に影響するのか確認してみましょう。

まずオリジナルの光学系の第1画角のスポットダイアグラムを確認しておきます。
画角を第1画角だけにして、スケールを1としてスポットダイアグラムを描画します。
DEL F2..L
SPO; SSI 1; GO

次に気になる2面反射の組み合わせ、第10面と第2面が反射するモデルを読み込みます。

IN ghostest_Z1_S10_S2.seq

スポットダイアグラムを比較します。
オリジナルの光学系のスポットダイアグラムプロットのスケールと合わせてください。
DEL F2..L
SPO; SSI 1; GO

オリジナルのスポット径と比べてゴースト光はこれだけ集光しています。
このゴースト像が無視できるものなのか、何か手を打たなければいけないものなのか・・・

例えば第2面と第10面にいいコーティングをのせて面表面での反射を極力少なくします。
これでこの組み合わせでのゴースト像の像面での影響が軽減します。

照明解析オプションを利用するともっと詳しく解析できます。
ここで反射面の反射率などは考慮されていないことに注意してください。
光線は反射面で100%反射することになります。
このことに注意してゴースト光の照明解析を行ってください。

さらに詳しくゴースト光を評価するのはLightToolsの得意とする分野です。
LightToolsでは多面反射のゴースト光や各面の反射率を考慮して解析が行えます。
さらにCADで設計した機構部分のモデルをLightToolsに取り込むと筐体やレンズコバによる反射の影響も考慮できます。
また全ての面ペアでのゴースト光の像面照度の計算、結果のレポート出力が行えるユーティリティもあります。

マクロの中身をちょっと覗いてみませんか?

GHOST_VIEWマクロの中身を詳しく見てみると、光学系の設計に役立つこともあります。
CODE Vのインストールフォルダにあるmacroフォルダ内のghost_view.seqを開いてみてください。

このマクロは結構長いですが、やっていることは単純です。
モデルにノンシーケンシャル面を設定してゴースト光をシミュレートしているだけです。

まず、ヘッダー情報とGUIダイアログのための記述があります。
次に、各パラメータ、ローカル変数の定義、初期設定が行われています。
さらに現在のモデルをghost_view_start_junkという名前で保存します。

最初にGHOオプションを実行して2面反射の組み合わせを確認しています。
その結果リストをバッファに保存しています。

次にゴースト光のシミュレーションを行うために、いくつか現在の設定を変更しています。

  • デフォルトアパチャーをユーザー定義アパチャーへ変更
    ノンシーケンシャル面を指定したときにオリジナルのアパチャーが変化するのを防ぎます。
  • 指定したズーム位置にモデルをデズーム
  • 画角タイプを物体側入射角度に変更
    近軸像高タイプや実像高タイプで発生するかもしれないトラブルを回避します。
  • 指定した面の範囲で2面反射の組み合わせが作れる面を確認
    ダミー面やミラー面を2面反射の組み合わせに選択しないようにします。
  • 全参照光線の最大値と最小値、一番左端の面を探索
    断面図プロットのスケールと描画位置を合わします。

ここからがマクロのコア部分です。
まずゴースト光の発生していないオリジナルのモデルの断面図をプロットします。
次に指定した面範囲をノンシーケンシャル範囲に変更します。

そして一組の2面反射ペアを探します。
そのペアの前の面の屈折モードを反射にし、さらに光線のヒット数2回で屈折モードを屈折に切り替える設定にします。
ペアの後ろの面はヒット数2回で反射に切り替える設定にします。
その状態でEPDを再計算します。

そしてゴースト像のないプロットの上にこのモデルの光線だけを上書きプロットします。
さらにWrite sequence filesがYesであった場合、この2面反射モデルをシーケンスファイルに保存します。


この処理を全ての2面反射の組み合わせで繰り返します。

最後にオリジナルのモデルを読み込んで、ファイル名も元に戻します。 マクロ内で使用したファイルを削除します。

マクロプログラミングの中身に興味がある方は「機能別セミナー」をお勧めします。

例えば、こんな使い方できませんか?

GHOST_VIEWマクロを応用すれば、下のようなことが出来ます。

  • 像面でのゴースト光の照度を確認したい!
  • 数多くある2面反射の組み合わせのうちゴーストの影響の大きいものだけピックアップしたい!
  • ゴースト光を描画しながら、その2面反射モデルに他の解析を行いたい!
  • ゴースト光の影響も含めて最適化したい!

CODE V のマクロ機能を利用すれば、「こんなことできないかなぁ」がほとんど実現できます。
やりたいことはあるけれど、「プログラミングしている時間がない」とか、「プログラムはどうも苦手で・・・」という方は、ぜひ「光学分野エンジニアリングサービス」をご活用ください。


その他の記事