近軸光線追跡 - その10 [近軸光線追跡]
昨日はレンズを描いてみた。データさえちゃんとしていればきれいに描ける。それも面白いんだけど、やっぱりMathematicaを使う最大のメリットは代数式のまま書けるということ。そのメリットがよくわかる例を考えてみる。
まず、変数に適当な数字を入れてレンズを書かせてみる
ダミー面と凹レンズとの距離は全長がd2に関わらず一定になるように
これでふたつのレンズの間隔d2を変えたときの焦点距離を描かせてみる
もちろんこの単純な例では収差を考えたらこんな広い範囲で使えるようなレンズにはならないが、収差補正したとしても基本的にはまったく同じ。とはいえこんなズームレンズでも干渉計の中の結像系のような、F/Noが大きくて画角が狭い場合にはこれでも使い物になる。
7.3 ズームレンズのカムカーブ
ズームレンズのカムカーブを書いてみよう。カムカーブというのはズームレンズのレンズ位置をきめるために鏡筒に切った溝のことで、ズームリングを廻すとそれに沿ってレンズの間隔が変わるようになっている。 とりあえずズームレンズとしては一番簡単な2群レトロフォーカス型。In[2]:= n = 1.5; In[3]:= surfzoom = {{0, d1, 1}, {0, 1, n, 5}, {7, d2, 1, 5}, {10, 3, n, 5}, {-10, lk, 1, 5}, {0, 0, 1}}; In[4]:= zoom = buildParaxialSystem[{1, infinityDistance}, surfzoom, {1, 0}, 5] Out[4]= "- paraxial System -"凹レンズと凸レンズの組み合わせで、データは最前面がダミー面になっている。面データの一部として像面も含めて、ダミー面と凹レンズとの面間隔をd1、凹レンズと凸レンズの面間隔をd2、凸レンズと像面との間隔をlkとしてある。
まず、変数に適当な数字を入れてレンズを書かせてみる
In[5]:= Block[{d1 = 3, d2 = 3, lk = 3}, drawParaxialSystem[zoom]]と図-10のようになる。 像面までの間隔lkを焦点位置になるようにきめてしまう。
In[6]:= lk = lk /. Simplify[ Solve[Simplify[focalPoint[zoom, imageSpace]] == 0, lk][[1]]] Out[6]= (1.04286+ 0.0642857 d2)/(0.0307143+ 0.00678571 d2)この場合は収差補正を考えていない2枚のレンズだけど、どんな複雑な組レンズになっても面間隔の式は必ずこれと同じような有理式になる。
ダミー面と凹レンズとの距離は全長がd2に関わらず一定になるように
In[7]:= d1 = 45 - d2 - lk;とする。
これでふたつのレンズの間隔d2を変えたときの焦点距離を描かせてみる
In[8]:= Plot[Evaluate[{d2 + lk, focalLength[zoom], lk}], {d2, 3, 30}]と、図-11のようになる。 カムカーブになるように横軸をレンズ間隔に、縦軸を焦点距離にしてプロット
In[9]:= ParametricPlot[ Evaluate[{{-d1 - d2 - lk, focalLength[zoom]}, {-d2 - lk, focalLength[zoom]}, {-lk, focalLength[zoom]}}], {d2, 3, 30}, Frame -> True, PlotRange -> {{-46, -10}, {0, 20}}]すると図-12のようになる。 これがレトロフォーカス型ズームレンズのカムカーブ。凹凸レンズ間隔を広げると焦点距離は短くなる。像面からの距離で言うと先玉(凹レンズ)の動きは途中で反転する。例えばこの形をそのまま鏡枠に切れば回転角に比例して焦点距離が変化することになる。しかし普通は焦点距離の逆数が線形になるような、長い焦点距離は少ない角度で大きく変化するようになっているほうが使いやすい。その辺のサジ加減はメーカによって工夫が凝らされている。普通実際の設計でカムカーブは数値的に計算されるが、実は群数が多くても比較的簡単な有理関数で表される。Mathematicaを使えばこうやってそれを確認することができる。
もちろんこの単純な例では収差を考えたらこんな広い範囲で使えるようなレンズにはならないが、収差補正したとしても基本的にはまったく同じ。とはいえこんなズームレンズでも干渉計の中の結像系のような、F/Noが大きくて画角が狭い場合にはこれでも使い物になる。
2010-10-07 21:46
nice!(0)
コメント(0)
トラックバック(0)
コメント 0