[54] メリットファンクションと最適化ウィザード_ノンシーケンシャル光学系の最適化 (3)

OpticStudio

こんにちは。光学、光でのお困りごとがありましたか?

光ラーニングは、「光学」をテーマに様々な情報を発信する光源を目指しています。情報源はインターネットの公開情報と、筆者の多少の知識と経験です。このページでは、OpticStudioノンシーケンシャルモードのメリットファンクションエディタの設定と、最適化ウィザードの基本的な使い方について説明します。

結論

  • OpticStudioノンシーケンシャルモードのメリットファクションエディタには、「ディテクタのクリア」と「光線追跡の実行」も記載する必要があります。
  • 基本となる最適化のターゲットはNSDDオペランドです。NSDDオペランドについては、最適化オペランドNSDD_ノンシーケンシャル光学系の最適化 (2) を参照してください。
  • オブジェクト形状を制限するオペランドは少ないですが、数値演算オペランドを活用して対応できます。

このページの使い方

このページで参考にした技術記事(ナレッジベース)は、ノンシーケンシャル光学系を最適化する方法 です。この記事は、OpticStudioのノンシーケンシャルモードの最適化に関連する機能を紹介する入門記事になります。

このページでは、ナレッジベースで使われている光学用語、技術用語、前提知識について、もう一歩踏み込んだ説明を加えていきます。ナレッジベースの長さは記事によってまちまちなので、いくつかのブロックに分けて注釈を加えています。この記事は3番目です。(2)は、最適化オペランドNSDD_ノンシーケンシャル光学系の最適化 (2) です。

ノンシーケンシャルモードのメリットファンクション (Merit Function in Non sequential mode)

OpticStudioの最適化の基本的な流れは、シーケンシャルモードもノンシーケンシャルモードも同じです。①メリットファンクションを設定、②変数を指定、③最適化の実行です。最適化の基本的なプロセスについては、最適化の基本3ステップ_シングレットレンズの設計(OpticStudio入門) (10) を参照してください。

図 54-1 最適化のプロセス。シーケンシャルもノンシーケンシャルもプロセスは同じ。

シーケンシャルモードとノンシーケンシャルモードで異なる点の1つに、光線追跡が実行されるタイミングがあります。シーケンシャルモードは、光学系のパラメータが変更されると即座に自動的に光線が追跡されて、解析結果やオペランド、メリットファンクションの出力値が更新されます。

一方ノンシーケンシャルモードはというと、パラメータを変更した後一度光線追跡コントローラを立ち上げて、ディテクタのデータをクリアして、光線追跡を実行する必要があります。完了後、新しく保存されたディテクタの光線データに基づいてディテクタビューアやメリットファンクションエディタの数値が更新されます。

この「設計条件を変えるたびに光線追跡を実行しなければならない」という特徴が、メリットファンクションにも表れます

メリットファンクションの基本的な構成

ノンシーケンシャルモードの光学系を最適化するためのメリットファンクションの基本構成を、技術記事をもとに確認します。丁寧に各オペランドの前にコメントが入れてあって助かるので、これを参照します。

図 54-2 ノンシーケンシャルモードを最適化する典型的なメリットファンクションエディタ。

2行目のNSDDオペランドで、ディテクタの情報をクリアします。これは、Det#パラメータを0にした時の役割です。これは、光線追跡コントローラの「ディテクタのクリア」の機能に相当します。

4行目のNSTRオペランドは、光線追跡の実行を指示します。詳細は後述します。

6行目以降のNSDDオペランドは、実行された光線追跡の結果を保持したディテクタから出力される統計データです。NSDDについては 最適化オペランドNSDD_ノンシーケンシャル光学系の最適化 (2) を参照してください。 他にも、NSDC、NSDE、NSDPなどがディテクタの結果を出力するオペランドとして使用できます。

つまり、メリットファンクションエディタは上から順に実行されます。一番下のオペランドの計算まで終わったらメリットファンクションを計算して、次の設計案を検証します。

パラメータの調整後、シーケンシャルは光線追跡が自動で実行されますが、ノンシーケンシャルは光線追跡がマニュアルです。そのため、最適化の一回の試行のように、メリットファンクションを計算するたびにNSDD -> NSTR 2行のオペランドによる光線追跡の実行が必要になります。

図 54-3 2つのモードでメリットファンクションエディタの処理は同じで、光線追跡の実行を指示するかどうかが異なる。

NSTRオペランド = 光線追跡コントローラ

NSTRオペランドを少し細かく見ます。NSTRにもいくつかのパラメータがあり、それらは光線追跡コントローラのオプションに対応しています。NSTRの構造は以下の通りです。

NSTR ①Surf ②Src# ③Splt? ④Scat? ⑤Pol? ⑥IgEr?

特に重要なのが、③の光線分割、④の散乱、⑤の偏光です。⑥のエラー光線の無視は、最適化を実行する際には有効にする場合がほとんどです。③~⑤の設定については、ノンシーケンシャルの3つの特技_OpticStudioのノンシーケンシャルモードについて (4 fin) を参照してください。大切な点なので、短縮して引用します。

図 54-4 光線追跡コントローラ。Split rays, Scatter rays, Use Pol, Ignore ErrorsがNSTRのパラメータに対応している。

Scatter NSC Rays (NSC光線の散乱):
散乱を発生させるオプションです。オブジェクトに散乱を設定しただけでは、光線追跡には適用されませず、このオプションを有効にすることで光線が散乱します。
Use Polarization (偏光を使用):
偏光を考慮するオプションです。このオプションは、「コーティングを有効にする」という意味があります。このオプションが無効ならコーティングが無視されます。
Split NSC Rays (NSC光線の分割):
1本の光線から透過光線と反射光線、回折光線、散乱光線として、複数の光線を生成するオプションです。このオプションを有効にすると「Use Polarization」も自動で有効になります。

ノンシーケンシャルの3つの特技_OpticStudioのノンシーケンシャルモードについて (4 fin) から短縮して引用

NSTRのオプション設定によって光線の追跡条件が変わるため、オペランドの出力値の正しさに影響します。また、最適化では何度も光線追跡を繰り返すので、1回の光線追跡が短時間で終わるよう必要十分な設定とすることで、最適化そのものの時間削減につながります。

ノンシーケンシャルモードの最適化ウィザード

以上のようにメリットファンクションを設定しますが、毎度手作業で設定するのは面倒です。この設定を自動入力するために、OpticStudioにはノンシーケンシャル用の最適化ウィザードが用意されています。NSDD、NSTRオペランドを自動で生成してくれます。選択するディテクタの種類に応じて、ディテクタ(極)用のNSDP、ディテクタ(色)用のNSDEが生成されます。

図 54-5 ノンシーケンシャルの最適化ウィザード。右枠を使えば、NSDDを適切に設定してくれる。

最適化の目標にするNSDDオペランドを複数同時に生成することができません。NSDDオペランドのみを追加したい場合は、「ディテクタのクリア(左上)」と「光線追跡の設定(中央)」のオプションを外して、「開始行(左下)」でオペランドを追加したい行を指定します。そして、「基準の設定(右側)」を入力し、OKをクリックします。開始行の「上書き?」をオフにしておけば、既存のオペランドを残して新しいオペランドを追加できます。最初のディテクタクリア用のNSDDよりも下に追加することだけ注意します。筆者なら、追加のオペランドはヘルプファイルを見ながらマニュアルで入れるかも。。。

ノンシーケンシャルモードの最適化ウィザードについては、Using the OpticStudio Non-Sequential Optimization Wizards (Zemax技術記事、英語) を参照してください。そのほかに、ビットマップウィザードと道路照明ウィザードという、Premiumエディション限定の機能があります。残念ながら、これらの機能は使用したことがないので、筆者からの追加の説明はできません。実際にどのくらい求める結果が得られるのか、興味はあります。

ちなみに、シーケンシャルモードの最適化ウィザードについては、最適化ウィザード_シングレットレンズの設計(OpticStudio入門) (11 fin) を参照してください。

形状パラメータの制限

ノンシーケンシャルモードを最適化する上で、形状パラメータの制限はシーケンシャルモードよりも面倒です。形状を制約するオペランドの種類が少ないためです。基本的に、制約できるのは「位置パラメータ(XYZ座標 + ティルトXYZ)」、「ノンシーケンシャルパラメータ」の2種類です。シーケンシャルモードにある、レンズのエッジ厚み、中心厚み、サグといったデータを出力するオペランドはありません。複雑な3次元形状を自由に設定できますが、その自由度ゆえに一般化したオペランドは作りにくいのだと思います。

演算オペランドの活用

ノンシーケンシャルモードに限った話ではありませんが、最適化を正常に動かすためには、各オペランドに貢献率が適切に配分されるような調整が必要です。形状パラメータとNSDDなどのディテクタから出力される数値はスケールが異なることも多いです。あまりに数値が異なる場合、重みの調整だけでは最適化の誘導が困難になる場合があります。メリットファンクションエディタの重みについては、最適化メリットファンクションの重み_Zemaxコミュニティ注目トピック (8) を参照してください。

このような、最適化対象とするオペランドごとにスケールが異なる状況への対応として、演算オペランドの活用は重要です。定数をかけて数値の大きさやスケールを調整する(PROD, PROB)、出力値を大きくしたいオペランドの数値の逆数を取ってゼロを目指すようにする(RECI)、平均値をとって一つのオペランドで複数のオペランドを一括で制約する(SUMM, DIVI, DIVB)、などはよく使うテクニックです。

まとめ

ここでは、Zemaxのホームページからアクセスできる公開記事、 ノンシーケンシャル光学系を最適化する方法 から、「ノンシーケンシャルモードのメリットファンクションエディタ設定」を取り上げ、オペランド設定の意味と、最適化ウィザードについて説明しました。シーケンシャルモードに比べると、直観的でない構造となってしまいますが、ノンシーケンシャルモードの最適化を行うためには大切な知識になります。

コメント

タイトルとURLをコピーしました