光学設計コンテスト(CODC)/ Uさん. Step3本設計開始に当たっての各種処理

ひとまず、大まかな筋道をたてて小手調べに設計を開始して感触を見てみることにしました。CODE Vにあるサンプルレンズ“WIDEANG.len” を使用して、面の分割をしながら、最適化を実行して全系の曲率を揃える。結果は、惨憺たるものでした。

そこで、本腰を入れて設計を進めるために、きちんと戦略を立てていくことにしました。

初期光学系の見直し

前回:初期推定についての確認設計の小手調べでは、サンプルレンズを使用して、それを初期解として設計をスタートしました。しかし、もっと素性のよいレンズを初期解とすることで、よりスムーズに良解へたどり着けるのではないかと思われます。
そこで、本格的にCODE Vのパテントデータの選別使用を考えることにしました。

既存レンズデータの選別

STEP1で少し書きましたが、CODE Vには2500件ものパテントデータが存在します。この中から目ぼしいデータを選別して使用することになります。

これらも、やはり硝材、評価波長、焦点距離など、設計仕様と全く違っているので、この辺をまずそろえてから、比較評価をすることになります。

  • 評価波長を変更( WL 532 )
  • 焦点距離を、スケーリングで合わせる( SCA SPC EFL 100 )
  • MF順にパテントレンズファイル名をリストアップ
  • 光学仕様に入っている”ディストーション”も検討要件に加える
  • 物体側テレセントリック系は、”EPD=無限“となるので除外
  • アフォーカル系などの非結像系も除外
  • レンズ枚数は、分割処理などを考えて、大体10〜13枚程度を目安とする
※これらは、マクロを組んで処理します( pickup_result_patlen.seq )。

初期光学系の調整最適化

作成した既存レンズの選別マクロ( pickup_result_patlen.seq )では、MF順にファイル名をソートした結果のテキストファイルが出力されるようになっています。
このファイルデータを元に、順次レンズファイルを呼び出して、材質の置き換え、貼り合わせレンズの処理などを実行するマクロを作成ました( init_handle.seq )。
このとき、各面の曲率に関する制約は与えず、あくまで結像性能重視で形状を最適化します。

貼り合わせレンズの処理

本設計課題では単波長ですが、パテントレンズの多くは、複数波長について最適化されています。このため、色消しのために貼り合わせレンズが使われているモデルも多数あります。

本設計課題では、全て同一硝材を使用しなくてはなりません。
そこで、貼り合わせレンズの両材質も揃えるという処理を行います。このとき、STEP2でも言及したように、ベンディングを行います。

以下具体的な処理の例です。
--------------------------------------------------------------------
res cv_lens:doublet

gla s1 p nbk7
gla s2 p nbk7
tin s1 (thi s2)
del s2
!貼り合わせ前側のレンズの硝材を変更(ベンディング)
!貼り合わせ後側のレンズの硝材を変更(ベンディング)
!前側レンズの芯厚に、後側のレンズの芯厚を加える
!貼り合わせ面を削除する
--------------------------------------------------------------------

しかし、貼り合わせ面のパワーによっては、上記処理を実行すると途端に光線追跡エラーを起こしてしまうものもあります。このため、光線追跡エラーを一旦回避してから、徐々に元の光学仕様に戻していくという処理を行いました。

設計仕様に合わせたデータの修正

  1. 評価波長の変更( WL 532 )
  2. 硝材の変更(GLA Sk P NBK7)
    ・貼り合わせレンズの処理
       - 貼り合わせレンズは、前後のレンズを硝材変更&ベンディング処理後、統合します
  3. 材質変更で光線が通らなくなった場合
    ・初期の(EPD)および(YAN FL)を保存しておき、一旦口径および画角を小さくしておいて、徐々に元に戻す(loop処理)
  4. 系のスケーリング
    ・焦点距離が100mmとなるように、系を単純拡大(縮小)。( SCA SPC EFL 100 )
  5. 性能を整えるための最適化
    [制約条件]
       - 焦点距離 = 100 ( EFL = 100 )
       - ディストーション ±5%の範囲 ( DIY FL > -0.05 < 0.05 )
    ※性能を整えることを重視するため、曲率などの制約は与えない。
  6. 光路図などにより、初期レンズを決定します。

本設計の開始

初期レンズデータ候補として選出したパテントデータについて、各面の曲率を合わせこみながら最適化を実行し、全系の形状を求めていきます。

本設計の流れと指針

本設計の大まかな流れ

  1. 焦点距離、ディストーションを制御しながら最適化
  2. 各エレメントの分割を行って、枚数を増やす
    - 1つのエレメントの曲率半径を倍にして2つのエレメントへ分割
  3. 概ね同じ曲率になったら随時ピックアップ設定をしていく
    - 曲率半径が±3%以下になったら、ピックアップ設定を行うマクロを作成して処理( pickup.seq )
本設計でも、流れはSTEP 2とほぼ同じです。STEP 2との違いは、[各面の形状の制御]についても制約を掛けていくというところです。具体的には、以下のようなアプローチを検討しました。
  • まずは、分割ありき。分割で形状をそろえ易いように各面の形状を制御
  • 分割は最終手段。最適化で形状を決定すると共に、各面の形状を合わせこむように制御

分割を前提としたアプローチ

分割で全系の曲率を揃えていくなら、
「系全体を通して、各面同士が最小公倍数をもつように最適化制御するほうが良い」
「レンズの前後面は同曲率となるように制御したほうが良い」
と考えました。

各面同士が最小公倍数をもつという制約

まず、ユークリッドの互除法を使用して、入力した2数の最大公約数と最小公倍数を計算するマクロを作成しました( gcd_lcm_calc.seq )。
このマクロを元に、最小公倍数を返すマクロ関数(@lcm)を定義するマクロ( gcd_fct.seq )を作成し、最適化のコンストレインツとして、各面の曲率半径の制御を行います。

ここで考慮しなくてはならないのは、“分割数”です。
例えば、150と1500という2数の最小公倍数は、1500です。これらを曲率半径に置き換えて、分割数を考えると、曲率のキツイ面(150)を10分割する必要があるということになります。お分かりですね?今回の設計仕様では、レンズ枚数の上限が設けられていることより、余りにたくさんの面に分割する必要があるという状態は避けたいわけです。当然こちらの制約も加える必要がありそうです・・・

と、能書きをたれてきましたが結果として、これは余り上手く機能しませんでした。
そもそもこんな面倒なことをしなくても、曲率半径が最も短い面を基準として、他の面がその倍数となるように制御する方がスマートなような。。。そうです。結局のところ “基準面” を決めてやって、それに合わせるように最適化をする方が、はるかに制御し易いようです。
う〜ん、我ながら妙案だと思ったのですが、「策士、策におぼれる」とはまさにこのこと。無駄な時間を費やしてしまいました。

形状決定と、形状の合わせこみを同時に制御するアプローチ

最小公倍数を用いた面形状の制御について玉砕しましたので、もう一方のアプローチを検討する必要があります。そのために[基準となる面の曲率半径を、基準曲率として、これに近づける]ように最適化が実行されるようなコンストレインツを考えなくてはなりません。

各面のとりうる形状は設計仕様に基づき、基準曲率と絶対値で同一、もしくは、平面です。

前者は、基準曲率と当該面の曲率との(絶対値での)差がゼロになるように制約することで達成されます。では、同時に平面ともなるように制約するには?

この場合には、曲率の差分と当該面の曲率の積がゼロとなるように制約すれば達成できます。
具体的には、S2を基準面としてS1の形状を制約するコンストレインツは、
-----------------------------------------------------------------
@curv_s1 == (absf((cuy s1))-absf((cuy s2)))*(cuy s1)
@curv_s1 = 0
-----------------------------------------------------------------
というように、記述することができます。

実際には、第1面、もしくは第2面を基準面として、その他の面の形状を制約しながら最適化を実行して解を求めていきました。

初期レンズ


※こちらのレンズでは、第1面は、ほぼ曲率ゼロだったので、平面として、第2面を基準面としてこの面に曲率を揃えるように最適化を実行していきます。

さて、一旦コケタ本設計、今後の首尾はどうなるのでしょうか?

ということで、次回:本設計開始。最終設計解へのアプローチ最終回に続きます。

<< 前へ | 次へ >>

目次

 


お問い合わせ