光学設計コンテスト(CODC)/ Iさん. Step2自作プログラムでの検討

前回:レンズタイプの予想、結像性能を回折限界に追い込めそうなレンズタイプを予想しました。予想した結果、良さそうなレンズタイプが3タイプ挙がりました。

ズームレンズのワイド端


“ステッパー”から“最初の凸レンズ群”を取り除いたタイプ


2次結像系

では、これらレンズタイプにおいて、凹凸面の配置は具体的にどのようにしたらよいのでしょうか?

これを光学系の収差係数から判断していくことにしました。

・・・が、いざやり始めるとCODE Vの操作が面倒だなぁと思い始めてしまいました。。
(CODE V技術スタッフとしてはあるまじき話ですが)

今からやろうとする操作は“パラメーターの変更と収差係数計算”というシンプルな操作の延々とした繰り返しです。
何パターンも試そうとするとかなり面倒な作業になります。

そこで、楽ができないか考え始めました。

  • 曲率半径は±Rと0のみ。それを手で入力するのは面倒!
    ⇒ボタン1つで切り替えられたら楽そう。
  • 面間隔も手入力するのが面倒!
    ⇒スライダーバーで変更できたら楽そう。
  • 曲率半径や面間隔を変更した後、収差計算マクロを実行するのが面倒!
    ⇒曲率半径や面間隔を変更すると収差値が自動更新したら楽そう。
  • 収差係数を数字で確認するのは面倒!
    ⇒グラフで表示できたら確認が楽そう。
これらはいずれも”レンズ形状と配置を多くの組み合わせから良さそうな配置を検討する”という今回の検討作業に特化した操作になります。(通常の光学設計で頻繁にやる操作ではないと思います)

というわけで、この検討に特化したプログラムを作っちゃいました♪


VisualBasicとExcelをCOMでつないだプログラムです。
これで凹凸の組み合わせをある程度絞っていきます。

ただ、このプログラムもいざ使ってみると、面倒というか不便な箇所がいくつか出てきました。
絞り面の設定やCODE Vデータの書き出し、Undo/Redoなどの機能が欲しくなりました。

ということで、どんどんバージョンアップ♪
最終的に、このプログラムはバージョン14まで機能強化されました。
このプログラム作成に1ヶ月弱を費やします。。

「何だか設計コンテストから大きく外れてない?」と思ったあなた!
そんなことはありません。
確かに最初は面倒な操作を楽ちんにするためのプログラムでした。
しかし、このプログラムはレンズの組み合わせ検討にかなり有用なものでした。

このプログラムでやっていたこと、突き詰めればそれは
”近軸光線の光路を決める”
です。

(近軸光線とは軸上マージナル光線と軸外主光線の2光線です)

CODE Vと違い、このプログラムは近軸光線の光路と収差係数しか表示しません。
いいように考えると、これら以外の情報は全て遮断されているわけです。
つまり、近軸光線の光路と収差係数、2つの情報だけに集中して検討を進めることができました。

集中して検討していくうちに、凹凸の変化が近軸光線にどう作用するか、どんどん見えてきました。
パラメーター変更のジレンマ、“一方の光線の光路を良くしようとすると、もう一方の光線の光路が悪くなる”が感覚的に分かりました。
2次結像系を予想する際に気付いた”絞り位置付近と1次結像位置付近に配置したレンズは一方の光線を優先的にコントロールできる”ということも簡単に理解することができました。

ここから、この自作プログラムとCODE Vを使って、以下の手順で設計を繰り返しました。

  1. 予想したレンズタイプを自作プログラム上にモデリング
  2. 凸、凹、平を切り替えながら収差係数と近軸光線の光路を確認
    • 面間隔は100、曲率半径は±1000または0に固定
  3. 近軸光線がゆるくなめらかに曲がり、かつ収差係数が小さくなる凹凸の組み合わせを探す
    • ペッツバール和(P)を0
    • 球面収差(T)、コマ収差(U)、非点収差(V)をできるだけ小さく
    • ディストーション(V)はあまり気にしない(後から面間隔で調整可能なので)
  4. 探し出した凹凸の組み合わせを持つレンズをCODE Vでモデリング
  5. EPDと最大画角を徐々に大きくしながらCODE Vで最適化
  6. これ以上MFが上がりそうにないと思ったところで設計終了。うまくいかなかった場合はその理由をとことん考える
ちなみにCODE Vでの作業方針は
  • 凸、凹、平の組み合わせはCODE V上では切り替えない
  • 曲率半径はピックアップして常に同じ値
  • 画角は軸上画角と最大画角にプラス1または2画角。最適化で何かあった場合のみ追加
  • 最適化の設定はできるだけシンプルに
    • 基本はAUT; EFL=100; GO
    • 予想したレンズタイプの配置から外れていきそうであれば調整
    • [放射状(GQ)グリッドを利用(NRR)]を使用して最適化の収束を早める
    • 改善率(IMP)を小さく、最大サイクル数(MXC)を多くし、1回の最適化を長時間まわす
    • 設計の最終段階で評価関数のタイプを横収差から波面のバリアンス(WFR)へ変更
    • 最適化がAbnormal AUTO Completionで終了したら、光路または導関数差分量(DER)を確認
      • ある面の面間隔が大きくなると、その面より前にある変数の導関数差分量も大きくなる、という傾向がありました。
        この状況になった場合は大きな面間隔を持つ面より前の面間隔変数はすべて固定にする、などの対策をとりました。

この手順で設計できたモデルの1例を予想レンズタイプ別に紹介します。

ズームレンズのワイド端タイプ

T:2.42488
U:0.98114
V:0.79655
P:0.00000
X:2.13174

全長=3907689.5mm(3.9km!)

ステッパータイプ

T:2.42603
U:0.26124
V:-0.05676
P:0.00000
X:1.55727

全長=1862049.8mm(1.8km)

2次結像系タイプ

T:-11.26157
U:0.62764
V:-0.14961
P:0.00000
X:1.26235

全長=56187.2mm(56.1m)

ズームレンズのワイド端タイプとステッパータイプはそこそこ良い結果を出せました!
ただ、どのタイプも全長が伸びていく傾向にあるようですね。
設計後の光学系は長すぎて、1枚1枚のレンズの配置が確認できません。。

このほかにも様々な凹凸の組み合わせを試してみました。
が、だいたいMFは同じようなところで頭打ち。

さぁ、この時点で締め切りまで後1週間! 時間がありません。

『根本的なところを見直さないと、これ以上MFを上げられない??』
時間がないにも関わらず、こんな考えが浮かんできました。。
できれば考えたくないことなのですが。

<< 前へ | 次へ >>

目次

 


お問い合わせ