スポットの広がりと許容錯乱円を比較したい!

※ CODE V 9.82から以下で紹介する機能は[スポットダイアグラム](SPO)解析機能に標準実装されました。 詳しくはFAQをご覧ください。
FAQを閲覧するには、ログインアカウントとパスワードが必要です。ユーザー登録がお済みでない方は、こちらから登録して下さい。

スポットの広がり方って気になりませんか?

レンズの仕様ではよくスポットのサイズが決められています。
このスポットサイズの仕様は許容錯乱円などから算出されていると思います。
銀塩フィルムだったら33ミクロン、デジタルカメラであればディテクタであるピクセルサイズの1.6倍くらいでしょうか?

スポットのサイズは大きすぎると性能が出ません。
逆に撮像素子(フィルム、固体撮像素子)では解像できないくらいスポットを小さく集光させても意味がありません。
カラーフィルタを使用したイメージセンサーの場合、偽色が発生する原因にもなります。

光学系の集光状態はスポットダイアグラムからわかります。
ただしスポットダイアグラムだけでは許容錯乱円に対してどれくらい広がっているのかよくわかりません。

では横収差曲線で確認してみてはどうでしょうか?
曲線からスポットの広がりが数値でわかりますので、許容錯乱円と比較ができます。
でもいまいちピンと来ない、またあまり直感的ではないと思いませんか?

スポットダイアグラムで許容錯乱円とスポットの広がりを比較することはできないのでしょうか?
これが今回、攻略すべきポイントです。

こんなときにはスポットダイアグラム上に矩形、円形のスケールを重ね書きできるマクロ“SPOTDET.seq”が便利です。

攻略のポイント!

  • スポットと比較するのは許容錯乱円ですか?ディテクタですか?
  • その比較したいサイズはどれくらいですか?
使い方は簡単です。

メニューのツール>マクロマネージャからサンプルマクロのツリーの下の最適化のリストで
“C:\CODEV*****\macro\spotdet.seq”を選択してください。
そして実行ボタンを押せばSPOTDET設定画面が現れます。

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

Ditector x widthで許容錯乱円の直径を指定します。
フィルムの場合は33ミクロン、つまり0.033mmをDitector x widthに指定してください。
このときDitector y widthは0にしておきます。
Ditector y widthを0にしておくとスポットダイアグラムにDitector x widthを直径とする円が上書きされます。
矩形のディテクタのサイズを指定するときはDitector x widthに横方向の幅、Ditector y widthに縦方向の幅を指定してください。
例えば38万画素の2/3型CCDでは画素サイズは11×13μmになります。
ちなみにDitector x widthにAIRYと入力すればエアリーディスク径がスポットダイアグラムに上書きされます。

Scale sizeはスポットダイアグラムのプロットのスケールです。
Ditector x widthの1.5倍くらいでちょうどいいと思います。

その他のパラメータは特に変更する必要はありません。
OKをクリックしてください。

すると各画角のスポットダイアグラムのプロットに許容錯乱円が上書きされます。
この円の中心は参照光線の主光線です。

いかがでしょうか?
ある程度許容錯乱円内に収まっています。
焦点深度のことを考えるともう少し集光させたほうがよさそうです。

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

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

まず、ヘッダー情報とGUIダイアログのための記述があります。
ヘッダー情報に2つ但し書きがあります。
1つめ:スルーフォーカスが設定されていたモデルではマクロは実行されません。
2つめ:エアリーディスクのサイズはビネッティングなしのビームから算出されています。ビネッティングを設定している画角には正確でないサイズが設定されます。

続いて、各パラメータ、ローカル変数の定義、初期設定が行われています。
プロットのスケールサイズや単位が細かく調整されています。

次に各ズーム位置のエアリーディスク径、「2.44×最長波長÷1e6×0.5÷像面でのY方向近軸周辺光線射出角」が計算されています。
エアリーディスクの半径εは0.61×λ÷NAですので、近軸でのエアリーディスク直径が計算されていることが分かります。
ただしこの計算ではアフォーカル系のモデルのエアリーディスク径は計算されていません。
アフォーカルモデルに対しては「2.44×最長波長÷1e6÷EPD×物体面でのY方向近軸主光線射出角÷像面でのY方向近軸主光線射出角」が計算されています。

ここで正しくプロットが出来るように、設定した許容錯乱円やディテクタのサイズが隣の画角のプロットエリアにオーバーラップしていないかチェックしています。

ここからがマクロのコア部分です。
通常のスポットダイアグラムオプションを実行しています。
このときGRAコマンドを利用して、スポットダイアグラムプロットをファイルspot_diagram.pltに出力しています。

実は.pltフォーマットのファイルはプロットをテキストで定義しています。
そのため.pltファイルの中身のテキストを「直接編集」することが出来るのです。
このマクロはこの「直接編集」を利用してディテクタ形状をスポットダイアグラムに上書きしています。

そのためにまずspot_diagram.pltの中身のテキスト情報をバッファにインポートしています。

そしてマクロ内の下の部分が.pltファイルを直接編集している部分です。

ここでバッファ内、つまりプロットのテキスト情報の中で2から始まる列を検索しています。
2とは1枚のプロットが終了するコードです。

そのコード2の前にディテクタ形状を描画するコードを追加しています。
ディテクタ形状を黒(0)で描画するために、最初に“5 0”を追加しています。
次に、矩形のディテクタを上書きするように指定されている場合は、各画角の主光線位置を中心として矩形形状を描画しています。
コード“3 X座標 Y座標”でペンを移動させます。
コード“4 X座標 Y座標”で現在のペンの位置から指定した座標までラインを描画します。

円形の許容錯乱円の場合は10度刻みでラインを描画して円形にしています。

そして最後にこの許容錯乱円を「直接編集」して上書したプロットファイルを表示しています。

.PLTファイルの描画コードの詳細は、CODE V リファレンスマニュアル日本語版を以下のキーワードで検索してご確認ください。
『ニュートラルプロットファイルフォーマット』

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

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

SPOTDETマクロを応用すれば、下のようなことが出来ます。
  • 上書きする許容錯乱円のそばにその直径の値を表示したい!
  • 描画する許容錯乱円の中心をスポットの重心にしたい!
  • 像面をデフォーカスして焦点深度と許容錯乱円の関係を比較したい!
  • 指定した許容錯乱円に何%の光線が入射しているか確認したい!
CODE V のマクロ機能を利用すれば、「こんなことできないかなぁ」がほとんど実現できます。
やりたいことはあるけれど、「プログラミングしている時間がない」とか、「プログラムはどうも苦手で・・・」という方は、ぜひ「光学分野エンジニアリングサービス」をご活用ください。

その他の記事