新入社員の独り言 STEP7:カメラレンズを設計してみました

こんにちは。お久しぶりです。みなさまいかがお過ごしですか?
前回の更新からひと夏が過ぎ去ってしまいました。すみません・・・
最近、近所の家電量販店でカメラを買いました。実際に写真を撮ってみると、少し世界が変わったような気がします。カメラを持つまでは気にも留めなかったモノや風景が無意識に飛び込んでくるようになりました。そして、ある1点にピントを合わせ、意図的に周囲をぼかすことにより撮りたいモノ、見せたいモノを強調するという撮り方もあることを知りました。いや〜、奥が深くて難しいですね。

さて、今回でとうとう最終回です。
前回のSTEP6:CODE Vに再挑戦!で先輩からもらった仕様書を満たすレンズを設計します。
うまく設計できるかどうか不安ですが、頑張ってやってみます。
また最終章では、この「新入社員の独り言」を執筆するなかで、自分が勉強したものからピックアップして、「おまけ」として簡単にまとめてみました。
基礎的な内容ですが、みなさまの復習などにご利用ください。でも、厳密な解釈に関してはお手元の参考書をご参照ください。

このページの内容
  1. 仕様書の解釈
  2. 初期光学系の設定
  3. とりあえず自動設計1回目
  4. 何回か自動設計してみます
  5. 自動設計&細かな性能チェック
  6. 最後に・・・
  7. おまけ

仕様書の解釈

【仕様書】
35mmカメラ用交換レンズの設計

仕様
  • イメージサークル:Φ43.3
  • 焦点距離:100mm
  • Fナンバー:4
  • バックフォーカス:40mm以上
  • 評価波長:C,d,F,g
  • 参照波長:d
  • レンズ枚数:4枚以下
  • 全長(レンズ第1面〜像面):なるべく短く(90mm以下)
収差補正の指針(目標)
  • 球面収差はフルコレクションに
  • 歪曲収差は±1%以内
  • 非点収差を極力小さく(収差図上5割像高までは、TとSの分離が見えない程度)
  • 色収差補正(d線とg線とで色消し、など)

S君:この仕様書を解釈すると、次のようになります。

仕様書の通りに描くと・・・

収差補正の目標は・・・

閑話休題
「仕様」の図のように、焦点距離よりも全長が短いレンズ系は、○○タイプと呼ばれています。物体側に○○レンズ、像側に○○レンズを配置されているのが特徴です。
さて、「○○」には何が入るでしょう?同じ文字ではないですよ。

初期光学系の設定

CODE Vには、自由に使えるパテントレンズのデータが2400個も用意されています。今回は、全くの「0」から設計を開始するのではなく、このパテントレンズから適当なレンズを抽出し、ここから設計を開始したいと思います。
しかし、この2400個のレンズを1つ1つ確認して、目標の性能を満たしそうなレンズを選び出すのは至難の業です。少なくとも、自分にはとても無理です。そこで、CODE Vの「フィルタ」機能を使用しました。 このフィルタ機能を使用すると、2400個のパテントレンズの中から、ユーザーが入力する条件を満たすものを抽出することができます。以下の条件が与えられているため、少し余裕を持たせて条件を設定しました。

Fナンバー:1〜3.5 (仕様書の条件より明るい)
レンズエレメント数:1〜3枚

この条件で抽出したレンズのうち、比較的画角の大きなものを選びました。
仕様よりも小さなFナンバー(小さいほど明るい=光を多く取り込める)、大きな画角(同じ理由です)のものを選んでおくと、パラメータを変更するときに比較的楽なのではないか、と考えました。

とりあえず、最大4枚使えるので、1枚少ない3枚のパテントレンズから選択しました。
(4枚目は3枚レンズの設計で行き詰ったら使おうと思います。)

先輩: 初期光学系を選ぶ際に、「Fナンバー」と「エレメント数」でフィルタをかけたようですが、これらに加えて、「画角」や「全長(像距離あり)/EFL」などを条件に入れるのも良いかもしれませんね。


次に、仕様書に沿ってレンズパラメータを変更します。
設計を始める前に、パテントデータを仕様書に適合するように変更します。最適化機能を利用しました。ここでは収差状態は無視し、全長、有効焦点距離などが仕様書に適合するように光学系を変形します。手計算でこの作業をやるのは・・・考えたくないですね。

全長、有効焦点距離を制約条件として与え、最適化を実行します。

先輩: 最適化を用いて「仕様の変更」を行うのは、あまり良い方法ではないかもしれません。元のレンズデータは一応特許データなので、それなりに考えられたパワー配置になっていると思われます。CODE Vの最適化では、そんなことはお構い無しにパワー配置を変更してしまいます。後から気づいたので申し訳なかったですが、単純な”スケーリング”の方が良かったかもしれません...


続いて、現状の性能を把握するため、解析オプションを実行します。現状を把握することで、今後どのように制約条件を与え、データを修正する必要があるのかが分かります。CODE Vのツールバーから各解析オプションを実行して各収差を確認します。

現在の収差状況

S君: た、たくさん収差が残っていますね・・・
球面収差は、「フルコレクション」ではないですし、非点収差も残っています。ディストーションも2.5%程度あります。この状態から仕様書の収差条件を満たすようにレンズパラメータを変えていかなければならないのですか・・・


先輩: 設計の初期段階では、縦収差図によって特徴を確認しながら収差補正の方針を検討するというのは良いです。
縦収差曲線(FIE)オプションで、「フォーカスが0になるよう像面湾曲をシフト」にチェック”zfo y”を入れていませんか?
ここにチェックが入っていると、あたかも近軸像面での評価が行われているように錯覚することがあるので要注意です。また、球面収差図が一波長しか描かれていないのは何故でしょうか?軸上色収差の様子が分かりません。
今回の設計では、単純に結像性能を良くする(=収差を小さくする=スポットを小さくする)というのとは、ちょっと違って、収差をコントロールする術を学んで欲しいと考えています。ソフトフォーカスレンズの設計などでは、球面収差を故意に発生させるということも行われています。


S君: は、はい。これからは使用している全ての波長に対して収差図を出力します。
初めなので基準となる波長だけを出力しました。すみません。

自動設計1回目

まず、レンズデータマネージャ上で変数にできるものは変数とし、自動設計オプションを何回か実行しました。勿論、目標の性能を持つように制約条件は設定しています。具体的には、最も外側を通過する軸上光線が、像面上で光軸と交わるように制約条件を設定しました。
まずは、球面収差のフルコレクションから達成しようと考えたのです。何故でしょう・・・上手く行きません。途中でレンズを1枚追加したりもしました。速くも挫折してしまいました。
尚、光学系の外観と収差図は以下の通りです。

球面収差図中の曲線にご注目ください。この緑色の曲線が縦軸1.00のところで「0(横軸)」とならなければいけないのですが、縦軸から離れた位置に来ています。収差自体は小さくなっていますが、このままでは「フルコレクション」になっていません。
何かおかしな設定を行っているのでしょうか・・・?

先輩: 初期光学系の設定を行った段階で、近軸解として「近軸像面」を指定、像面の面間隔はゼロに固定しておきましょう。そして、再度最適化を実行してみてください。どうなりますかね・・・

S君: あっ!レンズ枚数を増やさなくても上手く行きました!ありがとうございます!
ところで、この近軸像面ってどういう意味があるのですか?


先輩: 近軸像面とは、文字通り近軸光学的に求めた像面位置です。光軸近傍の光線を追跡して得られる像面位置です。そのため、入射瞳を通過する全ての光線を追跡し、最も良い集光位置を像面とした最良像面位置とは若干異なります。
「近軸像面」解を指定することにより、近軸像面が性能評価面として設定されます。この近軸像面指定を行わずに最適化を実行した場合、収差の基準となる近軸像面と性能評価基準である面とがずれてしまう、ということが起こります。今回のS君が与えた「最も外側を通過する軸上光線が、像面上で光軸と交わるよう」に与えた制約条件は、「最良像面位置において光軸と交わるように」設定しているのであって、「近軸像面上で光軸と交わるように」設定したのではありません。そのため。何回最適化を実行しても、フルコレクションとはならなかったのです。次の図のような状態だったのです。

S君: なるほど・・・自分が制約条件として指定した面が、収差を計算する基準となる面と異なっていたんですね。

何回か自動設計してみます

その後、いくつかコンストレインツを設定して仕様を満たすように最適化を繰り返しました。また、どうしても達成できないため、レンズを1枚追加しました。
が、しかし・・・非点収差は何とかぎりぎり条件を満たしそうですが、ディストーションと色消しがなかなか達成できません。



先輩: 今回のレンズの仕様は、あまり画角が大きくないので、ディストーションの補正はそれほど大変ではない筈なのですけどねぇ・・・どういうコンストレインツを与えていますか?闇雲に自動設計を繰り返してもうまくいかないようになっています。補正すべき収差に対してコンストレインツを適切に設定する必要があります。性能は二の次です(今回はね)。

自動設計&細かな性能チェック

先輩からのアドバイスを参考に、再度自動設計を繰り返した結果、何とか仕様を満たす(?)ものができました。レンズ形状や収差図は以下の通りです。

S君: せ、先輩。どうでしょうか?何とかぎりぎり仕様をクリアしていると思います。非点収差が少し怪しいですが・・・
自動設計実行時に設定するコンストレインツや、各画角に対する評価関数の重みをつけたりして、試行錯誤の末ここまでたどり着きました。収差図を見ながら自動設計をし、自動設計を走らせては収差図を確認し・・・の繰り返しでとても疲れました。ある性能が仕様を満たすと別の性能が仕様から離れる、改善しようと自動設計を実行すると逆に改悪になってしまうことが多く、森の中で迷っている気がしました。
慣れてくると、見通しよく設計が出来るものなのでしょうか・・・


先輩: ほほぅ・・・エッジ厚が極めて薄い・・・などの問題はとりあえずおいておきましょうか。
収差図の横軸のスケールが大きすぎて、軸上色収差の様子がよく分かりません。設計中の性能の変遷を見る場合には、同じスケールでの比較が分かりやすいですが、最終設計値の性能評価はもっと小さなスケールの方が収差の状況を確認しやすいでしょう。

「ある性能が仕様を満たすと別の性能が仕様から離れる」というのは、まさにレンズ設計の大変さを言い得て妙です。ある収差を補正しようとすると、どうしても他の収差に影響を与えます。この各収差のバランスをどう取るかが設計者の腕の見せ所となるわけです。最適化アルゴリズムによる自動設計で上手く行かない場合、どこに原因があるのか?そういったことを見つける際には、近軸論や収差論を知っているといないとでは、大きな差が出てくるのです。


S君: 今回、初めてレンズ設計をやってみました。これが、「設計」と呼べるレベルかどうかは疑問ですが、ほんの少しかじってみただけでもレンズ設計の難しさを垣間見ることが出来た気がします。先輩から与えられた仕様は、とても初歩的なレベルだと思いますが、その仕様を満たすレンズを設計することでさえ、自分にはかなり困難を伴いました。振り返ってみると、全て自分で選択、判断、決定しなければならないからかもしれません。CODE Vが持っている特許切れデータだけでも2400あります。言い換えると、スタート地点が2400もあります。更に自分で選んだデータをどのように変更していくかという道筋は無数にあります。途中、何をどうすれば正しいのかが分からなくなりました。目の前には進むことの出来る道が無数にあるのですが、自分が自信を持って進める道は全く無かったように思います。はぁ〜、レンズを設計するって、難しいですね〜。
ちなみに、絞りの位置を変えて全く同じように自動設計を行っても、下図のように異なる収差性能を持つ光学系となってしまいます。ひょっとして、こちらの方が良い収差状態なのでしょうか・・・

先輩: こちらも、スケールが大きすぎてよく分かりません。もっとスケールを小さく(収差を拡大して観察)してみましょう。
絞りの位置を変えると、球面収差は変化せずに他の収差が変化します。この辺りのことは、収差論を学べば分かります。上のS君の設計でも、球面収差は殆ど変わらず、非点収差が改善したようですね(スケールが大きくてはっきりしませんが・・・)。

CODE Vは、非常に強力な最適化機能を持っています。このおかげで、設計者があまり考えることをしなくても、ある程度の設計は出来るようになっています。しかしながら、機械に頼ってばかりいると、人間本来の力はどんどん衰えていくのです・・・


S君: 先輩、分かりました! 引き続き光学、収差論の勉強をしつつCODE Vに使われないようにCODE Vを使っていこうと思います。いろいろありがとうございました。
ちなみに、先輩が「ちょいちょい」っと設計した結果はこちらです。

最後に・・・

これまで光学の知識「ゼロ」の状態から、光の基本的な性質や基本的な収差を学び、そしてCODE Vを通して光学設計の一端に触れてきました。
自分が勉強していく過程で理解しにくかった箇所、あるいは市販の参考書では少ししか記述がなくて、その行間を読むのがしんどかった箇所を中心に「新入社員の独り言」を書きました。
ですので、皆様にとっては少し物足りない内容であったかもしれませんが、なるべく絵(イラスト)を使用するようにして、直感的な表現を心がけたつもりです。
何か一つでも皆様のお役に立つようなことがあったとすれば、非常にうれしく思います。
最後までお付き合いくださいまして、誠にありがとうございました。

おまけ

自分が光学を学ぶ過程で、いくつか手を動かして作成したものがあります。これを読んでいる皆様にとっては、簡単すぎるかもしれませんが、もしかしたら誰かの役に立つかもしれないので、掲載することにしました。厳密性が気になる方は、お手元の参考書を参照してください。
  1. スネルの法則を導出してみました
  2. ホイヘンスの原理とは?
  3. スネルの法則を波動光学的に考えてみました
  4. 近軸焦点位置を考えてみました
新入社員S君へのご声援・ご意見・ご感想はこちらから!!

<< 前へ

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

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

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

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

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

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

 


お問い合わせ