CYBERNET

資料ダウンロード

波面収差とゼルニケ係数を用いたレンズ形状データのブラックボックス化

解析概要

レンズ設計では、レンズの曲率半径や面間隔、屈折率などから光線の通り方を制御して結像状態を作り上げていくものです。レンズの性能を決定するこれらのパラメータは、光学製品設計における知的財産に当たるものなので、基本的には他社へ開示することはありません。
レンズの設計データそのものは渡さず、ブラックボックスにした状態でデータ提供する方法のひとつとして、ゼルニケ係数で波面収差を再現するというものがあります。これを利用することで取引先他社との間で知的財産を守りつつ、シミュレーションソフトによる設計性能のやり取りが可能になります。
本稿では、光学設計ソフトウェア Ansys Zemax OpticStudio(以下、OpticStudio)で、ゼルニケ係数を用いてレンズ性能を再現する方法をご紹介します。

背景/課題

ブラックボックスレンズの弱点

知的財産を守りつつ他社とレンズ性能のシミュレーションを共有する方法として、OpticStudioには従来から使用されている「ブラックボックスレンズ機能」があります。図1のように、レンズの曲率半径、厚み、材質を隠したままシーケンシャルモードの結像性能解析が実行できます。

図1 : ブラックボックスレンズの例

しかし、どのような設計モデルでもブラックボックスレンズにできるわけではありません。例えば図2のように、材質がモデルガラスのデータはブラックボックスレンズにできない例のひとつです。他にも、ユーザー定義のガラスカタログ内の材質を採用している場合は、ブラックボックスレンズにはできますが、そのカタログデータも提供しないとブラックボックスデータを受け取る側は性能解析ができません。

図2 : モデルガラスをブラックボックスレンズ化するとエラーが発生

そこで、ブラックボックスレンズ機能を使用せずに、形状情報を隠したままレンズデータの性能を再現する方法として、ゼルニケ係数を利用するというものがあります。

ゼルニケ係数と波面収差

光の正体は波です。光がレンズを通過する前後の平面波・球面波は、理想的なレンズなら完全な球面波になって焦点に集まります。しかし、実際には光がレンズを通過すると様々な収差を含むので、完全な球面波とはならずに伝搬していきます(図3)。この収差を含んだ波面と完全な球面波とのずれを波面収差と言います。そして、焦点面に到達した波の干渉でできあがる明暗のパターンを観察したものがPSFで、ここから結像の品質が決定されます。つまり、波面の位相のずれを調べることで干渉の仕方がわかるので、レンズの結像性能もわかります。

図3 : 波面の伝搬の様子

波面収差はゼルニケ多項式で展開できます。そこで使われる係数がゼルニケ係数です。複数あるゼルニケ項にかかる各ゼルニケ係数が各種収差の量を表します。以上のことから、ゼルニケ係数で元のレンズが持つ波面収差を表現することでレンズの性能を再現できます。

設計の仕様

ゼルニケ係数の扱い

本事例ではゼルニケ標準位相面の係数に波面収差を利用します。この面タイプでは、ゼルニケ係数を位相量に変換したゼルニケ位相データを利用しており、単一視野および単一波長における性能を表します。したがって、複数視野と複数波長のデータでは、(視野,波長)の各組合せについて調べる必要があります。

モデル

OpticStudioに搭載されているサンプルデータDouble Gauss 28 degree field.zmx(図4)について、波長0.588nmにおける入射角0°、14°、20°の3パターンそれぞれの結像性能を再現します。

図4 : Double Gauss 28 degree field.zmx

設計条件

まず基本の形として、物体面から射出する光線が像面で結像するモデルを再現するために、近軸面を用いて一次光学系をモデリングします。このとき、波面データが射出瞳上で計算されるため、アパチャーに入力する入射瞳径と近軸面の焦点距離は、再現元のモデルの射出瞳径と射出瞳位置を採用します。そして、近軸面で生じる波面にゼルニケ標準位相面で収差を与えます。ゼルニケ標準位相面はゼルニケ位相で表現される面ですが、モデリングとしてはゼルニケ係数を記入することで収差を再現できます。

設計結果

実際の設計

Ⅰ : 再現元のデータからゼルニケ係数を取得

図5のように、[解析]タブ > [波面収差] > [ゼルニケ標準係数]からこのモデルの各画角についてゼルニケ係数を確認できます。この値を使ってブラックボックスを作成します。

図5 : ゼルニケ標準係数 (左 : 0°, 中 : 14°, 右 : 20°)

ゼルニケ係数で表された波面収差の算出では、サンプリング数とゼルニケ項数を指定して、RMSフィットエラーおよび最大フィットエラーから精度を確認します。今回は全画角についてサンプリング数64×64、ゼルニケ項数37とします。例えば図6左より、画角0°における実際の波面とゼルニケ係数で表現された波面とでは0.00001572波数の誤差があり、これは波長の10万分の1のオーダーということになります。一方画角20°においては1万分の1オーダーなので少々精度が落ちています。

図6 : 波面収差算出の精度 (左 : 0°, 中 : 14°, 右 : 20°)

これらの係数をゼルニケ標準位相面に入力するのですが、手入力では手間がかかります。そこで、図7のようなマクロでこれらゼルニケ係数を抽出したzernike.datファイルを作成して、ゼルニケ標準位相面にインポートすることで設定することにします。このマクロではGETZERNIKEキーワードで図5と同じゼルニケ係数を取得して、zernike.datファイルに書き込んでいます。また、ゼルニケ標準位相面にインポートする際に必要な情報として、ゼルニケ項数と正規化半径も書き込んでいます。正規化半径は射出瞳半径と同じ値です。今回はこのようにして3つの画角分の.datファイルを作成し、それぞれ名前を変えておきました(zernike_f1.datなど)。

図7 : ゼルニケ係数抽出マクロ

Ⅱ : ブラックボックスの作成

新規に開いたOpticStudioで、波長を0.588nm、アパチャーを再現元の射出瞳径36.25844mmに設定します。次に、絞り面に近軸面を設定し、焦点距離に射出瞳位置の値の正の値108.0596mmを設定します。近軸面では一次光学系をモデリングし、物体面から像面へ光線が飛ぶようにしています。そして近軸面の直後に厚み0でゼルニケ標準位相面を追加し、この面の厚みに再び射出瞳位置の値を設定します。近軸面で生じる波面にゼルニケ標準位相面で波面収差を与えることになります。なお、射出瞳位置は像面基準で表記されるのでマイナスの符号がついています。

図8 : ブラックボックスデータの初期設定

次に、zernike.datをインポートすることでゼルニケ標準位相面にパラメータを自動で記入します。この際、ゼルニケ標準位相面の回折次数を-1にしておきます。これはOpticStudioの仕様で、軸上光線とマージナル光線の経路長を合わせるために、負の位相係数を与えているためです。ここで回折次数を-1としておくことで、zernike.datの各ゼルニケ係数をそのままの値であたえることができます(+1だとゼルニケ係数が-1倍されてしまいます)。
図9のように、[面のプロパティ] > [インポート]から参照ボタンで.datファイルを選択し、インポートボタンで適用完了です。図10のように各種パラメータが記入され、波面収差での性能再現データができあがります。

図9 : ゼルニケ標準位相面へ.datファイルのインポート

図10 : .datファイルインポート完了後のゼルニケ係数

結果の評価

図11~13に再現元のデータと波面収差で再現したデータの性能を比較したものをまとめます。大きな差分は無く、よく再現できていると言えるでしょう。より高精度に合わせるには、Ⅰの手順でゼルニケ係数を求める際に、項数を増やしたり、サンプリング数を大きくしたりする必要があります。

図11 : レイアウト

図12 : 波面収差マップの比較

図13 : FFT MTFの比較

まとめ

本事例では、波面収差のみでレンズ性能を再現したブラックボックスデータを作成する例をご紹介しました。一般に使われる暗号化データのブラックボックスレンズ機能では対応できないようなモデルでも、この手法を使えばレンズの形状情報を隠したまま性能の共有が可能になります。

関連記事

お問い合わせ

サイバネットシステム株式会社
製品お問い合わせ窓口

anssales@cybernet.co.jp

メールでのお問い合わせも承っております。
販売店契約に関するお問い合わせは、こちらからお願いいたします。

お問い合わせフォームはこちら