近軸光線追跡 [近軸光線追跡]
光学ではおおまかなレンズの特性を表現するために近軸近似(Paraxial Approximation)というのを使う。焦点距離や倍率といったレンズの特性は近軸近似での概念である。写真レンズなどは複数枚のガラス球面レンズを組み合わせて1枚の単レンズよりも高い性能を持つひとつのレンズとして機能するように構成する。複雑な組レンズも1枚のレンズと同じ焦点距離や倍率が定義できる。「近軸光線追跡」というのは複雑な組レンズの近軸特性を計算するための手法で、具体的に言えば2行2列のマトリクスを使った計算手法のことである。
会社の仕事でレンズの近軸特性を計算する必要が出て、Mathematicaのやっつけ仕事で片付けた。それにちょっと手を加えてもうすこし一般的に使えるパッケージにまとめたので、それをメモする。
仙台に来た時点で難しい非球面レンズや枚数の多い組レンズの設計はもうやることはない、と思ったからなんだけど、それでも簡単なレンズ設計をしなければならない場面はときどきあった。
実験のために汎用のレンズを組み合わせて簡単な光学系を組むとかの必要はあって、少なくとも近軸計算ぐらいさくっとやりたいというのがある。そこで近軸計算だけをやる簡単なMathematicaパッケージを作った。一般な近軸マトリクスを使った計算をMathematicaに書いたらしょっちゅう間違う。
普通は近軸ベクトルを縦ベクトルに書いて、マトリクスを左からかけていくが、やはりそれでは光学の普通の素子順とは逆になる。レンズ枚数が多いとこれが混乱の元になるなので、OpenGLなどで行われている横ベクトルでマトリクスを右側にかける表示に書き直すことにした。これが目的である。
まず、なぜ近軸か、というマクラを書く。
FDTDが簡単にできるからFrauhofer回折の計算は不要か?どうせ数値計算に頼る必要があるからといってなんでもかんでもFDTDでやる、というのはいくら計算効率が上がったとはいえスパコンを独り占めしているかあるいはよほどヒマなやつのすることである。
レンズ設計での、面の曲率やレンズ厚、硝材などのパラメータ空間内の評価関数の分布と言うのはフラクタルである。しかし評価関数が定義できるパラメータ範囲では、すべてのパラメータに関して微分可能な問題であって素性は悪いが解析的な手法が通用しない問題ではない。
近軸理論を使わずにズームレンズを設計するというのがどういうことか想像ができない。レンズを並べてコンストレインツを与えて最適化したらなんだかしらないけどこのレンズ位置では画角がこのくらいでこっちのレンズ位置ではそれが10倍になりました、というやりかたなんだろうか?
ほんのまれに新しいレンズタイプにたどり着いて特許が書けるかもしれない。しかし、そんなやり方を繰り返していても全然勘が養われないだろう。
N.A.を上げるのにアプラナティック面に近づけたり、絞り位置で歪曲を減らしたり、像面湾曲を最初から減らしておく、とか言った簡単なことさえ計算機をまわすのか。この面は偏芯に弱そうだよなあとかいうのも計算しないとわからない。そういうやつに限って等倍のアフォーカルリレーを非対称な配列で設計したりする。
平凸レンズ2枚の合成焦点距離を計算するのにCodeVを走らせるやつがいた。
レンズに現れる基本的な光学仕様の多くが近軸の概念である。焦点距離、バックフォーカス、倍率、主点や主平面、光軸、これはすべて近軸、正確に言えば射影変換の概念であって、さらにF/#やN.A.などの明るさに関する値など、近軸でしか定義できない量がある(正弦条件が破れた回折限界レンズでマージナル光線だけで明るさを決めても精度が出ない)。現物には収差の大きさの広がり(あいまいさ)が発生する。あきらかにこの区別ができていない設計者がいた。
「N.A.を大きくすると主平面は曲がるの」
「(現物のレンズを指して)このレンズの光軸はどこですか」
歳を食うとこういうのにつきあう元気が失われる。
ということで近軸理論をおさらいする。いつものように初心者にやさしくないが、内容は他を参照しなくてもいいようにする。
まず、屈折の法則と光線の概念から近軸理論のサワリまで。
Snellの法則は媒質の間の境界面で光がどのように進行方向を変えるか、と言う法則で図-1のように記号を定義すると と書ける。 これはMaxwellの方程式に境界条件を適用することで得られる。
ある点から発生した特定の方向に進む光を、幅のない線とみなして光線と呼ぶ。
まずSが平面であるとする。Sの法線の方向にz軸をとる。
点Oが属する方の媒質の屈折率をn1、もう一方をn2とする。光はOから出てS上の点PでSnellの法則を満たして屈折する。点Pでの入射角と屈折角をそれぞれi1、i2とする。 点OからSへの垂線がSと交わる点をNとする。この系の場合、ONを対称軸とする回転対称な系になる。
距離ONをl1とし、距離NPをdとすると、 同様に、屈折後の光線と直線ONとの交点(図では両方の延長線上で交わっている)をQとし、距離QNをl2とすると、 である。Snellの法則から であるから、 これでなにが言いたかったか、というと球面の場合との比較の意味だけだけど、屈折する位置によって物体の浮き上がりが違ってくるということ。
例えば、水の中の物体は真上から見るより斜めから見る方が浮き上がりが大きい。また、真上から明るいF/#で見たときにはボケる。これは球面収差である。収差の発生しない位置は無限遠しかない。
会社の仕事でレンズの近軸特性を計算する必要が出て、Mathematicaのやっつけ仕事で片付けた。それにちょっと手を加えてもうすこし一般的に使えるパッケージにまとめたので、それをメモする。
1 近軸光線追跡
なんでこんなことをしてるかというと、実は今年の春にCode-Vのライセンスを返上して手っ取り早く計算する環境が失われてしまった。もうずっと前にライセンスは持ってなかったんだけど、とうとう本当に使えなくなってしまった。年明けにこれまで設計したレンズデータなどはSEQファイルに変換して手元にバックアップをとったけど、テキストとして眺めることしかできない。仙台に来た時点で難しい非球面レンズや枚数の多い組レンズの設計はもうやることはない、と思ったからなんだけど、それでも簡単なレンズ設計をしなければならない場面はときどきあった。
実験のために汎用のレンズを組み合わせて簡単な光学系を組むとかの必要はあって、少なくとも近軸計算ぐらいさくっとやりたいというのがある。そこで近軸計算だけをやる簡単なMathematicaパッケージを作った。一般な近軸マトリクスを使った計算をMathematicaに書いたらしょっちゅう間違う。
普通は近軸ベクトルを縦ベクトルに書いて、マトリクスを左からかけていくが、やはりそれでは光学の普通の素子順とは逆になる。レンズ枚数が多いとこれが混乱の元になるなので、OpenGLなどで行われている横ベクトルでマトリクスを右側にかける表示に書き直すことにした。これが目的である。
まず、なぜ近軸か、というマクラを書く。
1.1 近軸理論は不要か?
パソコンの計算効率が上がったため、実追跡をすればいいので近軸理論は不要である、というのを時々見かける。若い設計者がそういう意識で実際のレンズ設計をしているとすれば驚きである。FDTDが簡単にできるからFrauhofer回折の計算は不要か?どうせ数値計算に頼る必要があるからといってなんでもかんでもFDTDでやる、というのはいくら計算効率が上がったとはいえスパコンを独り占めしているかあるいはよほどヒマなやつのすることである。
レンズ設計での、面の曲率やレンズ厚、硝材などのパラメータ空間内の評価関数の分布と言うのはフラクタルである。しかし評価関数が定義できるパラメータ範囲では、すべてのパラメータに関して微分可能な問題であって素性は悪いが解析的な手法が通用しない問題ではない。
近軸理論を使わずにズームレンズを設計するというのがどういうことか想像ができない。レンズを並べてコンストレインツを与えて最適化したらなんだかしらないけどこのレンズ位置では画角がこのくらいでこっちのレンズ位置ではそれが10倍になりました、というやりかたなんだろうか?
ほんのまれに新しいレンズタイプにたどり着いて特許が書けるかもしれない。しかし、そんなやり方を繰り返していても全然勘が養われないだろう。
N.A.を上げるのにアプラナティック面に近づけたり、絞り位置で歪曲を減らしたり、像面湾曲を最初から減らしておく、とか言った簡単なことさえ計算機をまわすのか。この面は偏芯に弱そうだよなあとかいうのも計算しないとわからない。そういうやつに限って等倍のアフォーカルリレーを非対称な配列で設計したりする。
平凸レンズ2枚の合成焦点距離を計算するのにCodeVを走らせるやつがいた。
レンズに現れる基本的な光学仕様の多くが近軸の概念である。焦点距離、バックフォーカス、倍率、主点や主平面、光軸、これはすべて近軸、正確に言えば射影変換の概念であって、さらにF/#やN.A.などの明るさに関する値など、近軸でしか定義できない量がある(正弦条件が破れた回折限界レンズでマージナル光線だけで明るさを決めても精度が出ない)。現物には収差の大きさの広がり(あいまいさ)が発生する。あきらかにこの区別ができていない設計者がいた。
「N.A.を大きくすると主平面は曲がるの」
「(現物のレンズを指して)このレンズの光軸はどこですか」
歳を食うとこういうのにつきあう元気が失われる。
ということで近軸理論をおさらいする。いつものように初心者にやさしくないが、内容は他を参照しなくてもいいようにする。
まず、屈折の法則と光線の概念から近軸理論のサワリまで。
2 Snellの法則
光は- 一様
- 等方
Snellの法則は媒質の間の境界面で光がどのように進行方向を変えるか、と言う法則で図-1のように記号を定義すると と書ける。 これはMaxwellの方程式に境界条件を適用することで得られる。
ある点から発生した特定の方向に進む光を、幅のない線とみなして光線と呼ぶ。
3 光学系と対称性
ふたつの媒質が境界面Sで接しているとする。Sに向かってある点からある向きで光線が入射することを考える。まずSが平面であるとする。Sの法線の方向にz軸をとる。
3.1 平面での屈折による光線
媒質の境界Sがある。図-2のように一方の媒質中の点Oから光が出て境界で屈折してもう一方の媒質内に入射する場合を考える。点Oが属する方の媒質の屈折率をn1、もう一方をn2とする。光はOから出てS上の点PでSnellの法則を満たして屈折する。点Pでの入射角と屈折角をそれぞれi1、i2とする。 点OからSへの垂線がSと交わる点をNとする。この系の場合、ONを対称軸とする回転対称な系になる。
距離ONをl1とし、距離NPをdとすると、 同様に、屈折後の光線と直線ONとの交点(図では両方の延長線上で交わっている)をQとし、距離QNをl2とすると、 である。Snellの法則から であるから、 これでなにが言いたかったか、というと球面の場合との比較の意味だけだけど、屈折する位置によって物体の浮き上がりが違ってくるということ。
例えば、水の中の物体は真上から見るより斜めから見る方が浮き上がりが大きい。また、真上から明るいF/#で見たときにはボケる。これは球面収差である。収差の発生しない位置は無限遠しかない。
2010-09-21 22:34
nice!(0)
コメント(1)
トラックバック(0)
沒有醫生的處方
cialis for daily use http://cialisvonline.com/ Tadalafil tablets
by Cialis generika (2018-04-15 05:16)