新入社員の独り言 STEP6:CODE Vに再挑戦!

みなさまこんにちは。お久しぶりです。時間が経つのは早いですね。もう6月です。
この勢いで年齢を重ねていくと思うと非常に恐ろしい気がします。
小学生の頃は一日がとても長く、なかなか放課後にならず苦痛を感じていたように思います。歳をとるにつれ時間の流れ方が変わっていくのでしょうか?
(その通りです。私なんかS君の数倍の速度で時間軸の中を流れています・・・by先輩)

さて、今回は再度CODE Vに触れつつ、前回(STEP5:基本的な収差)の収差に関して確認と考察を行います。前回の宿題に対する回答は、本文中に書きました。
どうぞ、最後までお付き合い下さい。

このページの内容
  1. 基本概念の確認(物体面、絞り面、像面、主光線、参照光線)
  2. 5章の内容を踏まえて、球面収差(たて、よこ)、コマ収差、非点収差、像面湾曲、 歪曲収差を確認します
  3. 収差係数が0ということは・・・?(前回の宿題)
  4. 他にもこんなオプションがあります!(IMS、ズーム、ちょっと便利なマクロ)
  5. 自動設計
  6. まとめ

基本概念の確認(物体面、絞り面、像面、主光線、参照光線)

この章では、基本的に以下のレンズを使用してCODE Vの機能に触れてみたいと思います。 しかしその前に、押さえておく必要のある基本事項があるようです。

CODE Vでは、「物体面」、「絞り面」、「像面」の3面が必須であるということを以前ご紹介しました。簡単におさらいしてみます。

物体面
光(光線)が始まる面。CODE Vはこの面から光線追跡を開始します。カメラの場合、被写体に相当します。

絞り面
光学系内に取り込む光の量を調節するための「絞り」を配置するための面です。この「絞り」の大きさ(直径または半径)を変えることにより、光学系に取り込める光の量が変わります。配置する場所は光学系によって異なります。

像面
物体面から射出された光が再び集光する面です。カメラのフィルム、デジカメなら受光素子です。

主光線
物体面から射出される各画角の光線のうち、ちょうど絞りの中心を通過する光線です。従って、絞りをどんどん絞ると最後に残るのが主光線です。簡単に言うと、「まん中」の光線です。

参照光線
各画角から射出される光線のうち、最も外側を通過する4本の光線のことを指します。 +Y、-Y、+X、-X方向の最も外側を通過する光線です。絵で示すと以下の通りです。


設定した全ての画角に関して、主光線1本、参照光線4本があります。

5章の内容を踏まえて、球面収差(たて、よこ)、コマ収差、非点収差、像面湾曲、 歪曲収差を確認します

CODE Vでは、3次収差としてザイデルの5収差を出力することが出来ます。 以下のように各面ごとに計算され、最後にその和も出力されます。クリックだけで出力されます。とても簡単です。

前回、各収差が口径に依存するのか、画角に依存するのか、を先輩に教えてもらいました。ここでは、まずその確認をしてみたいと思います。

上の表から、必要な部分だけ抜き出したのが以下の表です。この表を基準に考えてみたいと思います。
口径として入射瞳直径を使用します。各収差はそれぞれ何の何乗に比例するのでしょうか?忘れた方は第5章をご覧下さい。

入射瞳直径を30mmから20mmへ小さくしました(画角はそのままです)。すると、以下のようになります。

ここでSA(球面収差)に注目してみます。
球面収差は「口径の3乗」に比例します。そのため、入射瞳直径を30mmから20mmへ変更した場合、(変更後の値)=(変更前の値)*(20/30)3 となるはずです。
では実際に変更前の値(-0.060621)をこの式に代入すると・・・
変更後の値として、「-0.0179617…」が得られます。これはCODE Vの出力と一致しています。他の収差に関しても同様(口径の何乗かは5章をご覧下さい)です。
ディストーションだけは、口径の影響を受けないため、変化をしていません。

更にこの状態から最大画角を変更してみました。(5°→2.5°)

球面収差(SA)は画角の影響を受けないので変化していません。
今度はコマ収差(TCO)に注目してみます。
コマ収差は口径の2乗、画角(厳密には正接(タンジェント))の1乗に比例します。従って、最初の状態から考えると、
口径は30mm→20mm、画角は5°→2.5°へと変更したので、
(変更前の値)*(20/30)2*(tan2.5°/tan5°)=-0.007216*(tan2.5°/tan5°)=0.0036009 となり、CODE Vの計算結果とも一致します。

他の収差係数に関しては、ご自身で計算してみてください!

収差係数が0ということは・・・?(前回の宿題)

前回、「収差係数が0でも収差が残っている」ということをアドバイスとしてもらいました。
ここでは実際に球面収差が0であるレンズデータを使用して確認してみたいと思います。
(先輩、レンズデータの提供ありがとうございます。)

実際、先輩に球面収差係数=0のレンズデータを作成していただき、収差図を出力してみました。すると、上図の通り、収差は残っていました。なぜなのでしょうか?

収差とは、理想的(収差が無い状態=近軸的)な光線通過位置と実際の光線通過位置とのズレを表しています。前回の先輩のアドバイスにもあるように、球面収差は口径の3乗に比例します。必然的に光軸から離れた位置を通過する光線ほど収差量が大きくなります。(光軸から離れるにつれ、通過する球面となす角は大きくなる、と考えるとイメージをつかみやすいのではないでしょうか。)

ザイデルの5収差は3次の近似式を使用して光線収差を表現しています。そのため1次近似の場合よりも広範囲にわたり、精度良く像面まで追跡することが出来ます。しかし、3次式にも限界があり、ある範囲よりも外側では精度が急激に落ちると考えられます。そのため、上図のように「0.5」(主観的なものです)を過ぎた辺りから急激に収差量が大きくなるのではないでしょうか?
下図はそれぞれsinX、X、X-(X^3)/6です。3次近似の方がsinXをより広範囲までカバーしていますが、やはりその範囲は限られていることがわかります。


(横軸X:画角または入射高)

つまり、3次の近似式を使用して収差係数が0となっても、収差は存在します。理由は、3次の近似式がsinXに対して良い近似を与える範囲が存在し、その範囲の収差量は非常に小さいのですが、その範囲外ではやはりズレが大きくなってしまうからです。その結果、画角や口径が大きくなるにつれて収差が現れるというわけです。

-----------先輩からのアドバイス-------------------------
ほぼ正解です。sin(x)を展開して収差の式を計算すると、Rと(tanω)に関する1次項、3次項、5次項、7次項...と続きます。このうち1次の部分が近軸の式に相当し、3次の部分がザイデルの5収差です。
ですので、3次収差だけをゼロにしても、5次収差、7次収差・・・が存在するので、収差を完璧にゼロにすることはできません。
むしろ設計では、3次収差を少し残しておいて高次収差とキャンセルさせるような収差補正が行われることもあります。ときどきお客様の中でも、「5次収差を制御したい」という方も居ますよね。
------------------------------------------------------------------

他にもこんなオプションがあります!(IMS、ズーム、ちょっと便利なマクロ)

IMS
CODE Vでは、今設計している光学系を通して画像を見ると、どのように写るのか?ということがシミュレーションできます。「2次元像シミュレーション」という機能です。略して「IMS」と呼んでいます。

ご覧の通り、収差の影響が含まれています。そのため、収差図との対応も理解しやすいです。

ズーム
通常のカメラや携帯電話のカメラには、撮影したいものをズームイン/アウトして撮影する機能が付いています。これは、内部のレンズ配置を変更して倍率を変えています(デジタルズームは除きます)。
CODE Vでは、勿論このような光学系の設計に対応した機能が実装されています。機能名はそのまま「ズーム」機能です。

もともとは、レンズ位置が可変である「ズームレンズ」を設計するためのものでしたが、レンズの位置だけでなく、角度や波長をはじめ、ユーザーが設定可能な殆どのパラメータに対してズーム機能を使用することが出来ます。

ちょっと便利なマクロ 〜ゴーストマクロ〜
私たちが写真を撮る場合、時としてゴーストやフレアなど予期しないものまで撮ってしまうことがあります。朝日を撮影すると白い「点」が写ったりもします。これは、カメラ内部のレンズ面やその側面などで意図せず光が反射し、光が予想外の振る舞いをすることに起因します。CODE Vでは、怪しい2面を指定すると、その面で反射が起こったとして光線追跡を行うことが出来ます。これにより、像面上のどのあたりにゴースト像が出来やすいのか?ということを予測することが出来ます。

他にも、「きちんと光線が追跡できる状態にあるかをチェックするマクロ」などもあります。 CODE Vには、大小合わせて300以上のマクロが実装されています。使い慣れるととても便利です。

自動設計

ここまで、CODE V を使用して現在のレンズの性能を把握してきました。つまり、おおよそではありますが、レンズの性能の良し悪しを基本的な収差図から読み取ることができるようになりました。
次のステップは、「性能改善」です。ここでもまたCODE Vの力を借ります。「最適化」機能です。
最適化とは、ある制約条件を設定し、その範囲内で最も性能の良い光学系へと改良することを言います。制約条件やパラメータを多数設定するため、手計算では非常に困難です。私などは一生かかっても不可能です。そこで、コンピュータの計算速度とCODE Vの計算アルゴリズムを利用します。
では、設定画面を紹介します。日本語化されているので、非常に分かりやすいです。
以下はデフォルトの画面です。赤線で囲んだところから制約条件を入力します。

例えば・・・前回、今回と学んだザイデルの5収差に関しても制約条件を与えることが出来ます(下図参照)。他にも全長や焦点距離を始め、さまざまな制約条件を設定可能です。 勿論、ズーム機能を使用した光学系でも問題はありません。

まとめ

では、最後にまとめてみたいと思います。
  • CODE Vを使用する上での基本概念を確認
    物体面、絞り面、像面、主光線、参照光線。
  • ザイデルの5収差に関する確認と考察
    簡単な計算によって開口/画角依存性の確認と収差係数=0の場合について考えました。
  • CODE Vの便利な機能
    IMSオプション、ズーム、マクロなど。
  • 自動設計について
    設定可能な制約条件に関して少し調べて紹介しました。
S君: 次回は最終回です。これまで基本的な収差やCODE Vについて学んできました。 最終回はこれらを・・・
先輩: 最終回はこれらを駆使し、CODE Vを使って光学系を設計してみましょう。 CODE Vを実際に試行錯誤しながら操作してみてください。
S君: えぇ〜っ!
設計ですか?僕に出来るんですか? でたらめなものが出来たらどうしよう・・・永久に最終回がこなくなりますよ〜。
先輩: S君、実際にCODE Vを使って失敗することも勉強のうちです。
「どうしたら上手く行くのか」だけでなく、「どうしたら上手く行かないのか」、「そこからどうやれば抜け出せるのか?」ということを試行錯誤しながら経験を積んでいくことは非常に重要です。今後の仕事でも必ず役にたちますよ。
S君: はい・・・。そうですよね。 GUIも日本語ですし、マニュアルや参考資料を見ながらやってみます。 「出藍の誉れ」目指してがんばります!
先輩: そうそう、その勢いです。では、これが仕様書ね。
S君: ????
先輩: あれ、どうかしました?「出藍の誉れ」ってそういう意味でしたっけ? 顔色が優れないようですが・・・

いかがでしたか?
次回(STEP 7)はいよいよ最終回です。
初めて仕様書なるものを目にしたS君の奮闘ぶりをお楽しみに。

新入社員S君へのご声援・ご意見・ご感想はこちらから!!

<< 前へ | 次へ >>

目次

 


お問い合わせ