前回は、本設計をはじめるにあたっての、より有力視される初期光学系の選定と、具体的な最適化手順についての考察を行いました。今回が最終回です。さて、どんな最終解が得られるのでしょうか?
初期解は、CODE Vのパテントデータより抽出した以下のモデルです。


“全系において、面の曲率半径の絶対値を等しく、もしくは平面にする”という制約がありますので、指定面の曲率半径を基準として、光学面の曲率半径を合わせこむように、最適化コンストレインツを追加します。
最大レンズ枚数21枚、42面もあるので各面について、ユーザ定義コンストレインツを定義して、全て制約条件を入れるのはとても面倒!
そこで、ループ処理で自動定義・設定するようにしました。
S2を基準面として、この面と曲率半径の絶対値が等しくなる、もしくは平面(曲率 → 0)となるようにコンストレインツを定義します。
※ユーザ定義コンストレインツは、同一名をつけることができないので、上記のように少し煩雑な記述が必要になります。
使用した最適化シーケンスファイルは、こちら( auto_fin0.seq )。
|
CONCAT(文字列1,文字列2) NUM_TO_STR(数値) ABSF(数値) . “$(文字列変数)” |
:「文字列1」と「文字列2」とをつなぐ関数 :引数(数値)を「文字列」に変更します :引数の絶対値を返します . :「文字列変数」をコマンドとして実行します |

最適化を開始しましたが、あっという間に局所解に落ち込んでしまいました。収差図から見るとどうも近軸像面からデフォーカスによりバランスがとられているようです。これを嫌って、近軸像面からのデフォーカス(像面間隔)を変数化せずに、再度最適化を実行します。
順調に最適化評価関数も下がって行く。。。ように思われましたが、またここでローカル解に落ち込んでしまいました。


レンズデータを確認してみて気がつきました。「なんで平面が無いんだろう??」
よくよく考えてみると、「有限と無限では、任意の有限値に近づくように動いた方が、制約を満足しやすいからじゃないかな。」ということに思い至りました。ということは、このまま続けていても、絶対に平面になる面は出てこないような気がします。どうしよう・・・。
悩んだ結果、平面に向かうことを阻害しないように、各面の曲率半径同士の制約ウェイトを最初はもっと軽くしておくことにしました。もう少し何か上手い方法がありそうなものですが、それを再考するには時間が。。。
結局、こんな手順で行くことにしました。
■曲率半径のコンストレインツのウェイトは最初小さめに
そしてもう一点、収差図を確認すると、残存収差が大きすぎる事に気づきます。最適化評価関数が大きいことからも、きれいに補正されていないんじゃないかとは、思っていました。そこで、
「口径を大きくするためには、球面収差の補正から!」
ということで、全系の球面収差係数を抑えることを考えました。
縦収差を確認すると、球面収差は7次収差まで出ていますので、各面で発生する3次収差を収差係数で抑えていくことで間接的に補正できます。しかし、まずは全系の球面収差係数を小さくする制約を掛けて最適化を実行します。
■EPDを大きく取るためにさらに、画角特性の向上も視野に入れ、ペッツバール和およびタンジェンシャル方向の非点収差係数も制約に加えます。
■画角を広く取るために
さてさて、3度目の正直。 今度こそ上手く行くのでしょうか?
最終的に使用した最適化シーケンスはこちら(auto_fin.seq)
途中レンズの分割を行って、最終的に13枚構成の光学系となりました。

全長は、何と240m!しかし、大きくなったな〜。
まぁ、ある程度は想定の範囲内です。仕様には全長制約が無かったので問題はないのですが、何でしょうこの釈然としない感は?

↑ディストーションを見ると、まだ画角に余裕がありそうですが、
↓RMS波面収差からはギリギリのようです。

さて、このレンズでコンテストにエントリーします。果たして結果は。。。