周辺光量比をグラフで見たい !

※ CODE V 10.6から以下で紹介するマクロは、[周辺光量比]機能として標準実装されました。

「透過率解析(TRA)オプション」を実行すると、周辺光量比が数値で出力されます。
ただし、周辺光量比だけでまとまってないので、値をひとつひとつ追うのは面倒ではありませんか?

例えば、こんな風に・・・

これはサンプルダブルガウスの透過率解析結果です。
周辺光量比はそれぞれの画角ごとに“RELATIVE ILLUM:”の項目に出力されます。
当然、「透過率」の解析ですので、反射損失、吸収損失、透過率がそれぞれに出力されています。

お気づきかもしれませんが、画角が3つしかないこのモデルでも、ウィンドウをめいっぱい広げて、やっと全部の値を確認できます。
もし、画角が10個に増えたとしたら・・・もう、大変です。
しかも、設定した画角数しか値が出てこないですし、それに数値だけでは何だかピンときません。

みなさんは、どのようにして周辺光量比を確認されていますか?
もしかして、画角を追加して、ひとつひとつスクロールして数値を見ていたり、Excelに数値をいちいちコピペして、グラフを書いていませんか?
「だいたいこれぐらい!」と最大画角の周辺光量比だけを見て、全体を決め打ちしていませんか?

これが今回、攻略すべき問題点です。

こんな時は、周辺光量比をグラフでプロットできる“RELILLUM.seq”が便利です。
まず、以下のリンクから“RELILLUM.seq”をダウンロードしてください。

RELILLUM.seq

それを作業フォルダ(デフォルトではC:\CVUSER)にコピーします。
そして、コマンドウィンドウでIN relillum と入力して、Enter を押すだけです。
これを実行すると以下のようなグラフが出力されます。

非球面を多用していない光学系であれば、周辺光量比の落ちるカーブは大体予測がつきますが、このようにグラフで見ることにより、画角が大きくなるにつれて、照度が落ちていることが一目で確認できます。
最大画角の周辺光量比は50%程度ですが、最大画角の8割では65%、5割では80%と、相対照度比が落ちる傾向がつかめます。

よく、「周辺光量比は最大画角の値だけ確認するだけで十分だ」とおっしゃる方がおられますが、実はそんなことはありません。
ある程度、周辺光量が落ちる傾向をグラフで確認しておくことで、最適化の効率が劇的に変わります!

攻略のポイント!

  • 最大画角の周辺光量を直接あげるようなコンストレインツをかけていませんか?
  • 最大画角以外の周辺光量比を見逃してはいませんか?
  • コンストレインツをいくつも設定して最適化が遅くなっていませんか?

周辺光量比を最適化のコンストレインツとする方法は、FAQをご覧ください。
   ※FAQを閲覧するには、ログインアカウントとパスワードが必要です。
   ユーザー登録がお済みでない方は、こちらから登録して下さい。

さて、先ほどのモデルの周辺光量比を65%以上に上げるべく最適化をかけます。

誰しも、普通は一番周辺光量比が落ちている最大画角を引き上げようとすると思います。

しかし、今回はRELILLUMマクロで周辺光量比の落ちる傾向がグラフからわかっています。
カーブの傾向から、「最大画角の8割の画角を75%くらいに引き上げると、最大画角も65%くらいになるかなぁ」と予想できます。
そこで、最大画角の8割の画角の周辺光量比を75%に引き上げるコンストレインツを設定して、最適化をかけます。

ここで実行した処理は、非常に単純なものです。
IN CV_LENS:dbgauss !レンズ読み込み
DRO FCT @ill  
IN ill !周辺光量比を計算するユーザー定義関数読み込み
AUT !最適化開始
@ill(1,2,0,14*0.8)=0.75 !第1ズーム位置、第2波長、8割画角の周辺光量比を75%にコンストレインツ
GO !最適化実行


結果は・・・最大画角の8割の画角の周辺光量比が75%となるモデルに最適化されました。
さらに、周辺光量比グラフを見ると、最大画角の周辺光量比も65%近くになりました。
※ちなみに最適化にかかった時間は、8割の画角の周辺光量比だけをコンストレインツとした場合、21秒でした。
※評価関数は622.7です。

では、最大画角の周辺光量比を直接65%に引き上げた場合どうなるでしょうか。

IN CV_LENS:dbgauss
DRO FCT @ill
IN ill
AUT
@ill(1,2,0,14)=0.65
GO

最適化の結果、周辺光量比のカーブはほぼ同じになりました。
ただし、光学系の配置を確認してみると・・・

ぜんぜん違います!
最大画角の周辺光量比を補正したほうは、最終レンズの外側を光線が通っています。
完全に適切なレンズ配置になっていませんので、これでは最適化のやり直しです。

それでは、もう少し具体的な話をします。
今回の光学系では、最適化のプロセスで最大画角の周辺光量比を確保しようと、最大画角の光線を寝かせようとしています。
その結果、最終レンズだけをレンズ群から離そう離そうと、最適化プロセスは動いてしまいました。

では、これを回避するためにはどうしたらいいでしょうか?
みなさんは、光学系の全長をコンストレインツに加えますか?

もちろん、最適化されたモデルの周辺光量比はコンストレインツを満たしますし、光学系の配置も問題ありませんが、最適化にかかった時間や最終的な評価関数の値はどうでしょうか? たとえば、全長を現在の±5%に押さえるコンストレインツを追加した場合、最適化に36秒もかかりました。
しかも、評価関数はなんと2553.2です。
8割画角だけコンストレインツにした場合に比べ、時間は1.5倍、評価関数は4倍となりました。

ちなみに、最大画角の周辺光量比だけの制御では最適化を1回まわすのに31秒、最大画角と8割画角の2箇所の周辺光量比では93秒もかかりました。
もちろん、今回はモデルもコンストレインツも非常に単純ですので、この最適化例は全ての光学系に一概には当てはまらないかもしれません。

実は、この違いは小さな違いのように見えますが、無視できない違いなのです。
なぜなら、この結果が示しているのは、モデルの最適化を高速にするための真髄です。

というのも、より最適な光学系により早く自動設計させるには、ちょっとしたコツがあります。

ちょっとしたコツ

  • コンストレインツは出来るだけ少なく
    ※最適化サイクルでのパラメータの自由度をあげるためです。
  • 最適化前の光学系の特性値と最適化の目標値の差は出来るだけ小さく
    ※最適化プロセスでの補正時間の短縮化と光線追跡エラーの回避のためです。

今回は、コンストレインツを8割画角の周辺光量だけにして、パラメータの自由度をあげました。
さらに、8割画角を制御することで、現在の値から目標値までが近いコンストレインツとなりました。
これが最適化の時間が短縮された上に、評価関数が一番小さくなった要因です。

このように、同じ特性を得るために必要な最適化のアプローチは様々です。
最適解へより早くたどり着くには、押さえておくべき要点がいくつかあります。
CODE Vでの最適化のテクニックを知りたい方は「機能別セミナー」をお勧めしています。

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

周辺光量比はMTFオプションでも解析できます。
でも、TRAオプションのほうが正確な周辺光量比を計算しているということはご存知ですか?
ORAセミナ2006のプレゼン資料「最も最適な解が得られるアルゴリズムの選択」のslide8以降をご覧ください。

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

RELILLUMマクロの中身を詳しく見てみると、光学系の設計に役立つこともあります。
relillum.seqの中身を開いてみてください。

まず最初に、ヘッダー情報があります。

次に、透過率解析(TRA)オプションの結果がバッファに格納されます。

ここで、透過率解析オプションでエラーが発生した場合、マクロを中断する処理が続きます。

この次から、バッファの中身、つまり透過率解析結果から周辺光量比の結果を収集していきます!
面倒だった周辺光量比だけを拾うという作業をマクロが勝手にやってくれます。
バッファ内の検索コマンド“BUF FND”がこれを可能にします。
さらに随時全画角の周辺光量比を計算しながら配列に保存していきます。

次は、その得られた周辺光量比の数値をテキスト出力する処理です。

最後に、ユーザー定義グラフィックを利用して、周辺光量比グラフをプロットしていきます。 マクロプログラミングの中身に興味がある方は「機能別セミナー」をお勧めします。

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

RELILLUMマクロを応用すれば、下のようなことができます。
  • 偏心光学系の周辺光量比を2次元的に見たい!
  • 非球面を多用しているモデルなので、周辺光量比カーブをもっと細かく見たい!
  • 収差曲線をもっと細かく見たい!
  • 最適化で評価関数が収束する様子を見て、今が最適限界かどうか知りたい!
CODE V のマクロ機能を利用すれば、「こんなことできないかなぁ」がほとんど実現できます。
やりたいことはあるけれど、「プログラミングしている時間がない」とか、「プログラムはどうも苦手で・・・」という方は、ぜひ「光学分野エンジニアリングサービス」をご活用ください。

その他の記事