A君のレンズ設計物語第10回:第10回:ABCD計算を様々な検討に使ってみよう アイソプラナティックとは?

博士「さて、ABCDの応用編じゃ。これまでの2回はオフアキシャル光学系に対する使用例だったが、今回は共軸系に対して使用してみる」

A君「え?でも、共軸系には普通の近軸計算で十分なのではないですか?」

博士「近軸計算では光軸近傍の振る舞いを扱うのじゃが、光軸から離れた位置での振る舞いを、ABCDを使って解析してみようということじゃ」

A君「ん?ん?どういうことでしょうか?」

博士「前回少しだけ話題に上がったピックアップ光学系を考えてみようか。軸上画角だけを最適化で無収差にすると、軸外で急激に性能劣化するという話だったね。これは、球面収差が完璧に補正されていても、大きなコマ収差がある状態で、正弦条件を満たしていないといっても良い」

A君「制限条件?制約条件のことですか?」

博士「Sine Conditionじゃ。アッベが見出した、コマ収差補正のための条件じゃが、詳しい説明は専門書に譲る。一般的には有限距離で考えるのじゃが、像空間での特性だけで考えるために、物体距離が無限遠の場合で議論してみる。正弦条件で扱う量を光路図中に示したものが以下じゃ。

ここで、hは光軸に平行に入射する”実”光線の光軸からの高さ、fはレンズ系の焦点距離、θは像空間での光軸となす角度で、これらが以下の関係を満たす場合に、正弦条件が満足されるといえる」

h=fsinθ …(1)

fは一定値なので、hとθに要求される関係と思っても良い」

A君「各光線が単に一点に集光するだけじゃなくて、像空間での角度も重要なんですか」

博士「その昔の光線追跡計算が大変な作業だった時代の、なるべく少ない光線追跡計算で光学特性を把握したいという要求に対して、軸上画角の光線追跡(球面収差)の様子から軸外収差であるコマ収差の発生が分かる、優れものじゃ」

A君「昔の人は、色々と工夫していたんですね。あれ?でも、下記のような理想レンズから考えると、h=ftanθになるんじゃないですか?」

博士「そこが間違いやすいポイントじゃ。この正弦条件を別の観点から検証してみようというのが、今回の主題じゃ」

A君「温故知新ってやつですかね」

博士「焦点距離fは、近軸光線から計算される量だね。では、光軸から離れた位置hを通る、実光線上の焦点距離はどうなると思う?」

A君「軸上画角の各光線ということですね?・・・よく分かりませんが、近軸焦点距離と一致して欲しい感じがします」

博士「うむ。収差が完璧に補正されたレンズの場合は実光線の振る舞いも近軸に一致する筈だから、光軸から離れたどの光線に対する焦点距離も近軸の焦点距離に一致する筈じゃな。さてm軸上の焦点から焦点距離分だけ物体側に戻ったところに像側主点が来るね。どの光線も焦点距離がfとして、各光線における像側主点を繋いでみると、どういう絵が描けるかな?」

A君「作図ですか。単レンズに光線を描き加えて像の位置や高さを求めるといった作業をやったことがあります。主点の軌跡は…像点を中心にした半径fの円弧になりますね」

博士「正弦条件の説明で良く出てくる図になるのじゃ」

A君「主面が、平面ではなく、球面になるんですね。主平面と呼ばれることも多いから、平面だと思っていましたよ。あ、だから、h=fsinθになるんですね」

博士「上の図はCODE Vのレンズモジュールでの光線追跡じゃが、光線が不連続に屈折しているようにも見えるね。正弦条件を満足した状態で、像空間の光線を”軸上”主点位置まで延長して描いているので、そのようになる。注意が必要じゃ」

A君「技術サポートにも良く問い合わせが来てましたもんね」

博士「さて、このような状況を鑑みると、軸上画角内の全光線に対して焦点距離が一定値になれば、正弦条件が満たされて、コマ収差が補正されると考えられるね?」

A君「ははぁ、それで任意の光線に対する近軸計算を行うABCDを適用してみて、正弦条件との関係をみてみるということですか。やってみましょう!」

博士「ちょっと脱線するが、自動設計のときの設計変数は多い方が良いのかな?」

A君「そりゃそうでしょう。設計自由度は高い方が良い。これは常識でしょ」

博士「今回のサンプルを作っているときに、その”常識”では解せない状況が見られたので、ちょっとだけ触れておこうか。

両面非球面の単レンズに対して、最適化のコンストレインツは同じ設定で、非球面係数の数を変えて最適化してみた結果のMTFが、以下じゃ」

A君「むむっ・・・非球面係数が多い方が良くない結果になっていますね・・・なんでだろう?あ!導関数増分量が良くなかったのかも! CODE Vには、変数の導関数増分量を適切に決めてくれるモード(DER FDF IA)もあるんですよ!それを使えば・・・」

博士「残念でした。それを使っても、設計変数が少ないときの結果には及ばない。また、GS(グローバル最適化)を使用して5分間の計算で100個以上の解が得られても、左の状態を上回る設計値が得られないこともある(※)」
(※)GSでは乱数を使用しているため、ここでの議論と異なる結果になることもあります。

A君「非常に強力な自動設計といえども、何も考えずに使っているだけでは、良い解へ到達できないということですかね」

博士「因みに、非球面係数を低次側から徐々に導入していくと、係数の数を5つにした時点で上記7つの場合を上回る。自動設計といえども、効果の低い設計変数が無い方がスムーズに動くのじゃ」

A君「うーん。でも、どの変数が必要でどの変数が必要でないのか、その見極めは難しいところですよね」

博士「最近は非球面を使用した設計・製造も容易になってきたためか、安易に高次の係数を使用したりコーニック定数を併用している設計も散見されるが、効率的な自動設計のためには、闇雲に変数を増やしたりせずに、良く考える必要がある。これに関しては別の回で触れてみたい。

またもや前置きが長くなってしまったな・・・では、本題に入ろうか」

A君「はい」

博士「まず、一つ目の検討では、軸上画角の各光線の焦点距離のばらつきを調べて、軸外画角のコマ収差の状況と比較してみよう。

firABCD.seqマクロおよび@firABCDマクロ関数は、画角番号を引数として使用するようになっている。

一つの画角の近軸量を参照するだけであれば、そのまま使用しても良いが、複数画角に対して使用する場合には、配列変数の名前も変更しなければならず、面倒じゃ。ユーザー定義関数を作ってみた(ABCDのUDF化)」

A君「ユーザー定義関数は便利ですよね」

博士「さて、ここに(a)正弦条件不満足レンズと(b)満足レンズの二つがある。光路図を見ただけでわかるかな?」


(a)正弦条件不満足レンズ


(b)正弦条件満足レンズ

A君「殆ど同じに見えます・・・」

博士「それぞれの軸上・軸外画角の横収差とMTFを見てみようか。以降の二つ並べた比較では、左が(a)のレンズ、右が(b)のレンズじゃ」

(a)のレンズはコマ収差が大きいため、軸外で急激に性能が悪くなっているのが分かるね」

A君「これ、軸外画角といっても0.1°なんですね!軸上からちょっとずれただけなのに・・・軸上だけで最適化してしまうと、こんな感じになりがちです」

博士「次に、瞳内の焦点距離の変化を見たのが、これじゃ。横軸が相対瞳位置、縦軸が焦点距離じゃ」

A君「なるほど。これを見ると、 (a) のレンズは、コマ収差が大きくて、軸上画角内の光線の焦点距離が等しくない、 (b)のレンズは、コマ収差が抑えられていて、軸上画角の各光線の焦点距離が等しい、 というように、密接な関係がありそうですね」

博士「では、不満足レンズ(a)に対して自動設計をかけてみるが、通常使われる正弦条件の制約条件(式(1)のhとθに関する規定)ではなく、各光線のfを揃えるように最適化してみるぞ。ただし、firABCDは画角の主光線に対する計算のため、そのままでは軸上画角の各光線(主光線以外)に対して利用することができない。そこで、レンズデータにちょっとした工夫を行っている」

A君「え?こんな光路図見たことないです!軸上の複数光線が別画角として設定されているようですが、どうやったのですか?」

博士「物体側テレセントリックを指定して(TEL Y)、物体高をずらして(YOB 0 10 20…)、ビネッティングにより細い光束を定義(VUY 0 0. 99 0.99…)しているのじゃ」

A君「物体距離無限遠で物体側テレセントリックなんて普通は使いませんけど・・・こういう光線配置になるんだ」

博士「で、各画角(=軸上光束の各部分)の焦点距離を揃えるように最適化してみると・・・

fが揃って、コマ収差もなくなっていることが分かる。

これらの検討から、「軸上各光線のfが揃う」は「正弦条件を満足する」ための必要十分条件と考えて差し支えなさそうだね」

A君「古典的な話でしたけど、実際の設計に応用できるんですか?」

博士「そうじゃな・・・非球面を多用したレンズなどで特に顕著かもしれないが、自動設計をかけた結果、収差がうねうねとした状態になることがある。高次収差が打消しあっている状態じゃ。そういった場合に、特定の位置の横収差を個別に小さくするという方法が良く採られているね。これは各光線の収差を小さくしているのじゃが、その位置での焦点距離の変化を確認したり、主光線のfに揃えるようにしてみる方が本質的な性能向上につながるかもしれん。試してないけどな」

A君「じゃあ、さっき言っていた非球面の回に検討しましょう」

博士「次の検討例では、軸外画角(主光線)の焦点距離と軸上の焦点距離との関係を見てみようか」

A君「今回は盛りだくさんですね」

博士「軸外画角の焦点距離fは、軸上焦点距離f0に対してどうなっていると良いのかな?」

A君「”薄肉レンズで考える”と、軸上に比べて主点から像点までの距離が長くなっているのだから、焦点距離も長くなるのが自然であり、理想的な気がします」

博士「そうだね。fx=f0/cos(ω)、fy=f0/cos(ω)^2が理想的な状態じゃ。

そこで、画角ωに対する焦点距離が、上記となるように制約をかけて最適化を行ってみる。使用するレンズデータは、特許データとしても付属しているサンプルじゃ。まず、軸上の焦点距離だけをコンストレインツに採って最適化したときの、各画角焦点距離と縦収差図がこれじゃ」

A君「まあ、制約してないんだから、焦点距離は理想値からずれてますよね」

博士「次に、前述の制約条件も追加した結果がこれじゃ」

A君「まあ、制約条件に入れたんだから、焦点距離は理想値に近づいてますよね。ん?歪曲収差が無くなっていますね。制約条件として考慮していないのに!」

博士「先の”各画角の理想的な焦点距離”は、理想像高がy’=ftanωに従う中心射影の場合に対しての計算値で、その目標値に到達しているからじゃろうな」

A君「ふーん、近軸計算の基準軸を光軸から変えてみることで、様々な検討に利用できそうですね」

博士「近軸と収差などの相互の関係性を知ることで、自動設計で矛盾する条件設定を入れたりしているような状況を認識できるようになるじゃろう」

A君「ところで、テレセントリックの場合って、どうなんでしょう?」

博士「テレセントリックだと何か特別なことがあるのかな?」

A君「だって、たとえば像側テレセントリックだと、こういう光路になりますよね。軸外画角も軸上画角も焦点距離は等しくなるような気がするんですが、違いますかね」

博士「像側テレセントリック系は、薄肉レンズの物体側焦点に絞りをおいたものだね。

では、その絞りの位置を、焦点から主点へ、つまり薄肉レンズ位置に移動すると、どうなるかな?

A君「像面への入射角度が、垂直に近い状態から角度がついてきました」

博士「この状態で考えると、同一画角内の各光線の焦点距離が等しくなる筈じゃったな?」

A君「でも、この状態は、テレセンじゃないですよ」

博士「二つの光路を重ねてみると、どうなるかな?」

A君「入射瞳径の大きな一つの光路になりました!」

博士「この状態で、全ての光線の焦点距離が等しくなることも異存は無いじゃろ?」

A君「なるほど。絞りの位置というのは、軸外画角のどの部分の光束を使用するかを決めるんですね。テレセントリックというのは、そのうちの像面に垂直に入射する光線が光束の中心(≒主光線)になっている状態なんですね」

博士「最後に、ちょっと変わったレンズデータを用意した。スポットダイヤグラムを見れば分かるが、軸上よりも軸外の方が格段に結像性能が高い。

このレンズに対してMTFを計算すると、This system is not isoplanatic at field(s) ? という警告が発せられるのじゃが、どっちの画角だと思う?」

A君「その警告メッセージ時々見ますけど・・・性能が悪いから出ると思ってました。つまり、第1(軸上)画角では?」

博士「然に非ず、これが第2(軸外)画角じゃ。第1画角と第2画角の、瞳内での焦点距離変化をみてみる」

第2画角は、集光性能が高い(小さな点に集光している)けれど、焦点距離の変化が大きくて、アイソプラナティックではない状態ということですね。この警告が出る原因って良く分からなかったんですけど、自動設計で性能が上がれば、件の警告は出てこなくなるものと思ってましたよ。でも、単純な最適化を行っても解決できないんですね」

博士「自動設計(AUT)は“評価関数が十分小さいんだから問題ないだろ”と言っているのに対して、MTFは“いやいや、この状態は問題アリだよ”と言っているような状態じゃからな。

第1の事例でみたように、画角内焦点距離を揃える方法も有効じゃが、もっと簡単な方法もある。isoplanatic警告が出ている画角の近傍に、別の画角を追加して最適化するのじゃ」

A君「やってみました・・・isoplanatic警告は出なくなりましたが、性能が悪くなっちゃいましたよ!」

博士「局所解から脱出したため、一時的に悪くなるのは仕方のないことじゃ。isoplanatic警告が出る画角が在るのは結像系では好ましくない状態なのだから、むしろ良くなったと考えるべきじゃ!」

A君「はい」

博士「レンズの設計においては、こうすれば絶対に上手くいくという方法は無い。色々な方法を知っておくことで、自動設計で行き詰まったときでも打開策が見い出せるようになる。大事なことじゃ」

今回の話で使用したCODE V用のレンズデータやコマンド操作などは、ここからダウンロードできます。

<< 前へ | 次へ >>

目次
おすすめリンク:光学基礎(入門)

光ってなんだろう!?
小学生にもわかる、光についての基礎的な話を紹介します。

いまさらきけない光学計算
光学ソフトウェアを、不安なく使うために必要な「光学」やその「計算過程」などを紹介します。

A君のレンズ設計物語
レンズ設計の初心者 A君がレンズ設計を学んで行く物語を連載しています。
「何故凸レンズと凹レンズが必要なのか?」「設計ツールが無いと単レンズさえ設計できない・・・」などお悩みの方にお勧めです。

新入社員の独り言
入社1年目のS君が光学と光学設計・シミュレーション解析ツール CODE Vを学び、一人前の技術スタッフになっていく過程をご覧ください。(全7話:完結)

光学設計コンテスト
弊社で光学設計コンテストを開催し、エンジニア同士が、互いの設計スキルを競い合いました。エントリーした4人の設計アプローチを順次ご紹介します。

 


お問い合わせ