ノンシーケンシャル光学系を最適化する方法

この記事では、ノンシーケンシャル光学系の最適化で推奨できる手法を紹介します。ここで紹介する方法は、ピクセル補間、集計ディテクタ データ (照度のモーメントのデータ)、および直交降下法による最適化機能の使用です。
一例として、23 Cd の明るさの LED から 250 Cd を超える最大の明るさが得られるように、自由曲面ミラーをわずか数分で最適化できます。

Authored By Akash Arora

Downloads

記事の添付資料

序論

OpticStudio の最適化機能により、ユーザーはシステムパラメータ変数を設定し、メリット ファンクション エディタでパフォーマンス基準を定義することにより、設計を改善できます。この最適化のプロセスは設計に大きな影響を与える可能性があるため、適切な変数と基準を選択することが重要です。使用可能な基準のタイプは、シーケンシャルモードとノンシーケンシャルモードで異なります。この記事では、ノンシーケンシャルシステムの最適化に推奨されるアプローチを示す。

一例として、フリーフォームミラーは、わずか数分の最適化でLEDの輝度を23Cdから> 250Cdに最大化するように最適化されます。

 

減衰最小二乗法と直交降下法の比較

OpticStudio には、2 つのローカル最適化アルゴリズムとして、減衰最小二乗法 (DLS) と直交降下法 (OD) が用意されています。DLS (減衰最小二乗法) は、数値微分を使用して、解空間の中でより評価関数値が小さい設計が得られる方向を判断します。
この勾配法は光学系設計向けに開発されたもので、結像光学系と従来の光学系を最適化するあらゆる問題にお勧めできます。一方、純粋なノンシーケンシャル光学系の最適化では、ピクセル化されたディテクタに対して検出が実行されることから、DLS では良好な結果が望めません。評価関数が本質的に不連続になるので、勾配法が良好に機能しない可能性があるからです。

以下の図は、変数を 1 つのみとして、その変数の関数としてノンシーケンシャル光学系の評価関数が変化する様子を示したものです。

 

 

評価関数空間の広い領域にわたって、評価関数にまったく変化がなく、ある時点で突然変化が発生し、それが不連続になることがわかります。このため、勾配を求める手法による最適化が困難になります。

OD (直交降下法) 最適化では、解空間での変数と離散サンプリングの正規直交化を使用して、評価関数の値を小さくします。OD アルゴリズムでは、評価関数の数値微分は計算されません。ノンシーケンシャル光学系のように、評価関数のノイズが本質的に多い光学系では、DLS 最適化よりも OD の方が優れていることが普通です。この手法は、照度の最大化、輝度の向上、均一性の最適化などの最適化問題できわめて効果的です。

 

ピクセル補間とNSDD

OpticStudio では、特定のアルゴリズムを使用するほか、ノンシーケンシャル光学系の最適化を大幅に改善するいくつかの機能が用意されています。

前述のように、ノンシーケンシャル解空間は、ピクセル化されたディテクタの性質に起因して不連続となる傾向があります。特定の光線のエネルギーを 1 つのピクセルにのみ割り当てると、光学系の変更によってそのピクセルのどこかに光線がシフトしても、定量的な相違が検出されません。その結果、最適化が困難となり、光線が新しいピクセルに向かって境界を横断するときに評価関数に不連続な導関数 (傾斜) が発生します。

これは、ディテクタを横切る 1 本の光線を走査することで確認できます。以下のユニバーサル プロットは、光線の位置によってディテクタ上で放射照度のセントロイドが変化する様子を示しています。

 

Universal_plot

 

この問題を解決する方法として、ピクセル補間の使用があります。光線が到達したピクセルにその光線のエネルギーをすべて割り当てるのではなく、ピクセルの中で光線が到達した位置に基づいて、そのエネルギーの一部を隣接するピクセルに配分します。これにより、光学系の変更によって光線がピクセル内部を移動しただけでも、検知可能な変化が評価関数に現れます。ピクセル補間は、ディテクタ オブジェクトのプロパティから [タイプ] (Type) タブで有効にすることができます。

 

Non-sequential_component_editor

 

ピクセル補間を有効にしてディテクタ上で 1 本の光線を走査すると、放射照度のセントロイドなどのほとんどの基準が連続的に変化するようになり、DLS を容易に使用できます。

 

Universal_plot_2

 

評価関数で報告される放射照度のセントロイドは、NSDD 最適化オペランドを使用して計算されます。NSDD は Non-Sequential Detector Data の略で、インコヒーレントなディテクタ データを報告するための最も有用なオペランドです。コヒーレントな計算を扱うオペランドとして NSDC があります。NSDD オペランドの構文は、次のとおりです。

NSDD  Surf  Det#  Pix#  Data  #Ignored

  • Surf はノンシーケンシャル グループの面 (純粋な NSC では 1)
  • Det# は目的のデータを記録しているディテクタ (1 つまたはすべてのディテクタのクリアに使用することもできます)
  • Pix# は特定のピクセルまたは返される計算値をそれぞれ定義します。
  • Data は、光束、放射照度、強度のうち、どのデータを返すかを定義します。
  • #Ignored は、無視するエッジ ピクセルの数を定義します。

これらの引数を使用して実行できる最適化として、最小スポット サイズ (最小 RMS 空間幅)、最大エネルギー (最大光束)、空間均一性 (すべてのピクセルの標準偏差)、コリメーション (最小 RMS 角度幅) などがあります。NSDD の機能の詳細については、OpticStudio のヘルプ ファイルで「[最適化] (Optimize) タブ ([シーケンシャル UI モード] (Sequential UI Mode))」→「[自動最適化] (Automatic Optimization) グループ」→「メリット ファンクション エディタ ([自動最適化] (Automatic Optimization) グループ)」→「カテゴリ別の最適化オペランド」→「ノンシーケンシャル光線追跡とディテクタのオペランド」を参照してください

 

光学系の設定

発光ダイオード (LED) は、さまざま用途で重要な光源となっています。自動車照明やディスプレイ照明のような分野では、補助的な光学系を追加してこのような光源の光度を変更することにより、LED の明るさを改善する必要があることが普通です。

まず、実際の LED 光源の実測データを取り上げます。LED をモデル化する方法の詳細については、「LED などの複雑な光源のモデルの作成方法」 を参照してください。ここでは、光源 (ラジアル) を使用して、角度の関数として実測されたパワーを入力するということだけを認識しておけば十分です。この光源は、合計出力が 27 Lumens であることが測定済みで、合理的に単色と判断できる範囲で 627 nm のピーク波長を有しています。このデータの入力方法については、記事「簡単なノンシーケンシャル光学系の作成方法」を参照してください。最も少ない光線で最良の信号対雑音比を得るために、この光源ではソボル サンプリング(英語)を使用します。

[システム エクスプローラ] (System Explorer) → [単位] (Units) で、以下のように光学系の単位を設定します。

 

System_explorer

 

LED の光束はルーメンの単位で測定されているので、このシミュレーションではこの単位を選択します。したがって、照度の単位は lm/m2 (ルクス) になります。光度 (「明るさ」) の単位は lumens/steradian (カンデラ (Cd)) です。輝度の単位は lm/m2/sr (Cd/m2) です。これはニットと呼ばれることがあります。開始時点の光学系は次のように設定されています。

 

3D_layout

 

LED 光源から光線が平面ミラーに照射され、このミラーがディテクタ面を照射します。このファイルは、このページの冒頭にある「記事添付ファイル」からダウンロードできます。このディテクタでは、以下の空間分布および角度分布を認識します。

 

Detector_viewer

 

LED からミラーにやや過剰な光が入射しているため、空間分布および角度分布がわずかに非対称になっていることがわかります。設計を少し複雑にするために、意図的にこのような構成にしています。

光度プロットを見ると、27 度の極角前後で約 41 Cd のピークの明るさが発生していることがわかります。ディテクタ面にほぼ垂直な光線による光度は 23 Cd にとどまっています (この値の測定方法については次のページで説明します)。このようなプロファイルは、ヘッドライトやプロジェクタの照明光学系としては適切ではありません。一般的に、光源で長距離を照らすことができるように、角度が浅い光線から可能な限り高い明るさが得られることが望まれます。

ここでは、軸上で最高の明るさが得られるようにミラーの形状を最適化します。この最適化に向けて、次の手順を実行する必要があります。

  1. 目標を記述した評価関数を定義する
  2. ミラー面をどのように変更するかを定義する
  3. 最適化を実行する

評価関数

評価関数は、光学設計がその指定された動作特性をどの程度満足しているかという観点から、その光学系の「品質」を定義します。ここでは、0 度の角度で最高の明るさ (光度) を得ることを目標としています。この目標は、NSDD オペランドと NSTR オペランドで容易に実現できます。

この設計ではディテクタはオブジェクト番号 3 であり、そこで角度ゼロでの光度を取得する必要があります。ディテクタ ビューアには次のように表示されます。

 

Detector_viewer_2

 

この図には、x と y の両方向に -90°~ +90°の範囲でディテクタに入射する光線の角度の範囲が示されています。約 35 度を超える角度では光線がディテクタに到達していません。LED からは、この角度を超える光線が照射されないからです。ピーク強度は約 27 度で発生しています。ここでは、ゼロに近い角度で到達するパワーが問題です。このような分布で目標とする基準として、RMS 角度幅と光度セントロイドの 2 つがあります。RMS 幅は複数の光線を平行にする (入射角を同じにする) ための基準であり、セントロイドはこの入射角をゼロにするための基準です。次の評価関数は、この角度で得られる光度を取得します。

 

Merit_function_editor

 

最初の NSDD オペランドは、ディテクタ オブジェクト 0 を読み取りますが、オブジェクト 0 は設定できません。これはこのオペランドの特殊な使い方であり、すべてのディテクタがクリアされます。負の数を定義すると、ディテクタを個別にクリアできます (たとえば、Det# = -3 に設定するとディテクタ 3 のみがクリアされます)。これは、複数のディテクタを定義している光学系で役立ちます。

NSTR オペランドは OpticStudio に光線追跡を指示します。2 番目と 3 番目の NSDD オペランドは、ディテクタ オブジェクト 3、セントロイド x および y (Pix# = -6、-7)、データ項目 2 (単位立体角あたりのパワー) を読み取ります。この光学系で目標としているデータは、照度 (空間) セントロイドではなく、光度 (角度) セントロイドです。4 番目の NSDD オペランドは、すべてのピクセル データの RMS 角度幅を読み取ります。最後の NSDD オペランドは、比較のために中央のピクセル (5101) での強度を報告します。このオペランドには重みが割り当てられていないので、評価関数の値には影響しません。この値は約 23 Cd です。

この最後の NSDD オペランドは OPGT オペランドと組み合わされて、ディテクタ上で最小限の光束を維持します。この値を 25 に設定します。この値がディテクタ上の初期光束であるからです。このオペランドが存在しない場合、ミラーを取り除くことによって評価関数をゼロにすることが可能です。エネルギーがディテクタに到達していないと、強度のセントロイドと RMS 半径はゼロとなり、ここでの目標が実現します。この「解」は、明確に定義した評価関数の重要性を示すものです。最適化では評価関数がゼロに近づくように演算が実行されますが、得られた解が光学系で物理的に意味のあるものであるかどうかは考慮されません。

 

自由曲面ミラー

自由曲面は、スプラインやベジエ曲線などの低次多項式を複数使用して記述することが普通です。これらは、多くの場合、タービン ブレード、車体、船体などの形状を記述するために使用します。

一方、光学系設計では、基本的な二次曲面部分の概念を保持したうえで、その部分に自由曲面にするための偏差を設定することが効果的です。この理由は、この後で直ちに紹介します。このことから、拡張多項式面オブジェクトを使用します。この面は、次の方程式で記述できます。

 

Equation

 

第 1 項は、光学設計で多用されている標準のコーニック非球面であり、球面、楕円面、放物面、双曲面などのミラーの設計に使用します。第 2 項は、この面に対する変形を表す高次多項式の級数です。この多項式は、x と y のべき級数です。最初の項は x で、y、x*x、x*y、y*y のように続きます。1 次項には 2 つの項、2 次項には 3 つの項、3 次項には 4 つの項があり、以降の項も同様に最大次数の 20 次項まで続きます。多項式非球面係数は最大で 230 個となります。正規化半径で位置の値 x と y を割るため、多項式係数は無次元です。この設計では、多項式の最大次数項が 20 項に制限されているので、自由曲面とするための最大偏差は x0y5 および x5y0 になります。これは必ずしも必須ではなく、推奨事項でもありません。設計プロセスで選択された値に過ぎません。

ここで、たとえばミラーの曲率半径を調べる際に、次のようにユニバーサル プロットを使用して中央のピクセルでの強度を表示するとします。次のような結果が得られます。

 

Universal_plot_3     Universal_plot_4

 

このグラフは、ノンシーケンシャル光学系の最適化の難しさと、明確に定義した評価関数の必要性の両方を示しています。総合的な評価関数の値と基円半径を比較すると、セントロイドとスポット半径が最適化の目標値として優れている理由がわかります。

 

Line_merit     Universal_plot_5

 

評価関数で設計基準を適切に定義したので、ローカルな最適化アルゴリズムとグローバルな最適化アルゴリズムの両方を使用して DLS と OD による最適化の結果を比較します。

 

最適化

OpticStudio には、より広い領域の解空間を求めるために使用できる 2 つの「グローバル」最適化ルーチンが組み込まれています。グローバル最適化アルゴリズムは、遺伝的最適化、ランダム開始点、およびローカル最適化を組み合わせて使用することから、多次元パラメータ空間で値が小さい評価関数が得られる領域を効率的に検索する作業に適しています。グローバル最適化で有望なパラメータ空間の領域を見つけた後、ハンマー最適化で同様に遺伝的最適化機能とローカル最適化機能を使用して設計を徹底的に改善します。

評価関数の開始値は 14.8 で、0 度での明るさは 23 Cd です。

 

Detector_viewer_3

 

高い局所的な最小値ではなく、合理的な最適解に到達したことを確認するために、両方のシステムで Hammer 最適化を実行してみます。下の表の結果は、DLS最適化の方が若干の改善を示していますが、中央のピクセルの明るさはOD最適化よりもまだ低く、2つの局所最適化ルーチンの威力を示しています。これらのテストで使用されたマシンは、Intel Quad Core CPU(2.90 GHz)と16GBのRAMを搭載しています。

まず、ローカル最適化ルーチン ([最適化] (Optimize) → [最適化] (Optimize!)) を使用して DLS で最適化し、OD を使用した最適化と比較します。どちらでも最終的にはハンマー最適化が実行されます。

評価関数と当初の光学系を定義したので、残っている手順は変数の割り当てのみです。22 個の変数 (半径、コーニック、および 20 個の多項式係数) を使用できます。これらのパラメータに変数ステータスを割り当て、DLS アルゴリズムを使用して、自動的に設定されるサイクル数でローカル最適化機能を開始します。

しばらくすると (所要 4.4分) 解が得られます。評価関数は約 6.69 に低下し、中央のピクセルでの明るさは 238 Cd になります。この最適化は、ピクセル補間と明確に定義した評価関数を使用すれば、DLS アルゴリズムであってもノンシーケンシャル解空間で効率的に機能することを示しています。

比較のために結果のファイルを新しい名前で保存し、開始時点のファイルを再度開きます。今度は 22 個の変数すべてを割り当て、OD アルゴリズムを使用して最適化します。2 つのローカル最適化アルゴリズムを比較した以前の説明に基づくと、この最適化の方が実行速度が速く、より優れた解が得られることが期待できます。この最適化では DLS 実行よりも実行時間がわずかに長くなりますが (6.5 分)、より小さい評価関数値が得られます (6.68)。

ローカルでの最小値にとどまるのではなく最適解に到達したことを確認するために、両方の最適化で得られた光学系に対してハンマー最適化を実行します。以下の表にまとめた結果では、DLS 最適化でも一定の改善が見られますが、中央のピクセルでの明るさは OD 最適化で得られる値よりも低くなっています。コンピュータの仕様はIntel Quad Core CPU (2.90 GHz)、16GB RAMです。

 

アルゴリズム 評価関数の値 光軸上の光度 (Cd) 最適化の時間
DLS 6.69 238 4.4 min
Hammer (DLS) 6.68 24 30 min
OD 6.68 254 6.5 min
Hammer (OD) 6.68 254 30 min


最適化開始時点での放射照度と放射強度の分布、および DLS アルゴリズムと OD アルゴリズムを使用して最適化した光学系での同様な分布を以下に示します。

最適化開始時点

Starting Point

DLS での最適化後

DLS Optimization

OD での最適化後

OD Optimization

 

結果を比較すると、どちらの最適化方法でも同様の解に到達したように見えます。しかし、OD を使用した最適化は DLS の場合よりわずかに長時間を要していますが、得られた性能は DLS 最適化と 30 分のハンマー最適化で得られたものよりも優れています。実際に、22 個の変数といくつかの照度目標を指定して光学系を最適化するために要した時間はわずか数分に過ぎません。平面ミラーから完全に最適化した解に至るまでの時間は、光学系の公差を決めて図面を生成する作業に必要な時間よりも短くなっています。同じ個数の変数を使用してシーケンシャル光学系のスポット半径を最適化する場合の所要時間も、この最適化と同程度になります。この例は、ノンシーケンシャル光学系を最適化する際の OD アルゴリズムが効率的であることを明確に示しています。この記事の冒頭にある「記事添付ファイル」に、OD で最適化したファイルが収められています。

ここでは、中央のピクセルでの明るさは最適化の直接の目標ではなく、RMS 半径とセントロイドの位置を最適化した結果得られた副産物であることを認識することが重要です。この基準にはいつでも有限の重み付けを適用できますが、RMS 半径が大きい結果となる可能性が高くなります。照度の二次モーメントではなく、中央のピクセルでの強度を目標にすると、光学系の性能が大幅に悪化することがわかります。

参照

1. Video Tutorial: Optimization – Illumination System Design

KA-01591

この記事は役に立ちましたか?
1人中1人がこの記事が役に立ったと言っています

コメント

0件のコメント

記事コメントは受け付けていません。