handout - Helios

advertisement
Problem Assignment
PH 360
Due Apr. 16, 2007
Chapter 6: 2, 20, 23*, C1 (5), C2 (15)
C1.
ZEMAX is an optical design program. Use one of the computers in Science 204. Logon as user
“phlab”, password “electron”. Use Start, Physics, ZEMAX and load each of the demonstration
files listed below. Each file has a .zmx extension. To get a feeling for the system, click the L3d
button and use the arrow keys to get different views.
cylinder
dbgauss
offaxis
spider
cylindrical lens
double Gauss
off-axis parabola for an unobscured Gregorian
telescope support spider for the secondary mirror
Here are some other files that you should open, look at the 3D diagram, and choose Reports,
Surface Data. Record the thickness and diameter. Then choose Reports, System Data. Record
the number of surfaces and the number of stops in the system.
hubble
cassrc
cooke
petzval
tessr100
wideang3
Hubble Space Telescope
Cassegrain Ritchey-Chretien telescope
(same design as the Celestron C14 in our observatory)
a simple Cooke triplet lens
Petzval lens
P. Rudolph Tessar lens
210E wide angle lens
Exit ZEMAX.
C2.
Use the True BASIC program THILEN (listing attached) to draw ray diagrams. In each
part below, change the title of the graph to correspond to what is being displayed. Click on
Start, Physics, TB Bronze. Load the file THILEN from the 360 folder. Run it to see
what the graph looks like. Click anywhere on the graph to return to the program listing.
(a)
Scale up the thick lens parameters of problem 6.20 by a factor of 100. Use
these values in the appropriate data statements in THILEN. Draw several
rays parallel to the axis of the lens. Examine your results closely and
compare them to problem 6.23. You may want to change the vertical scale
(ymin, ymax, ytick, ydot) to "zoom in" and determine the location of Fi more
precisely. Hand in a hard copy of your graph by choosing File, Copy (not
Print), opening Word, and then CRTL-V. The results of parts b and c
(below) can be added to this document.
(b)
Scale up the parameters of the Tessar shown in Figure 6.10 by a factor of 10.
Draw several rays parallel to the axis of the lens. Compare your results to
those worked out on p. 251. Hand in a hard copy of your graph.
(c)
Run the program again for a single diverging lens placed near the right side
of the picture. You choose the parameters. Draw a few rays corresponding
to the top and bottom of an "arrow object" positioned along the left edge of
the graph. You may sketch the extra projected rays by hand or by adding a
few lines to the program in the section where the "last ray" is drawn. Also,
sketch in the object and the image. Describe the image (in words). What is
the magnification (calculate it both ways)? Hand in a hard copy of your
graph.
Program thilen
! Traces light rays through thick lenses.
!
Reference: "Using Computers in Physics" by John Merrill, p. 124.
!
Adapted by David Renneke.
!
!
!
!
!
!
This is a graphics program which traces light rays through a series
of media of different indices of refraction. The media are separated
by spherical interfaces. The center of curvature and vertex of each
spherical boundary is on the x-axis. The limits of the plotting
window are: x = 0 to 100, y = -30 to 30. Rays start at x=0 and
travel to the right.
dim n(30), x2(30), r2(30)
data 3
! number of regions
data 1,1.5,1
! index of refraction of the regions
data 10,15
! vertices of each surface (left to right)
data 40,-40
! radius of curvature of these surfaces
! For each ray, specify the starting point y (in cm) and the
! angle a (in degrees). a = 0 is horizontal.
data
data
data
data
data
8,0
4,0
0,0
-4,0
-8,0
read nreg
for i = 1 to nreg
read n(i)
next i
for i = 1 to nreg-1
read x2(i)
next i
for i = 1 to nreg-1
read r2(i)
next i
declare
declare
declare
declare
public
public
public
public
! number of regions
! indices of refraction
! vertices of each surface
! radius of curvature
hmin,hmax,vmin,vmax
xmin,xmax,xtick,xdot,ymin,ymax,ytick,ydot
xorigin,yorigin,tick
xtype,ytype
library "genplot.trc"
call initialize
clear
! contains subroutines 'graph' and 'mark'
! set up values for display and user windows
! clear screen
call graph
! draw grid
window #0
! display window (full screen): (0,0) to (80,25)
T$ = "Thick lenses"
X$ = "x (cm)"
tcen = 40 - len(T$)/2
xcen = (hmax + hmin)/2 - len(X$)/2
plot text, at tcen,24.3: T$
plot text, at xcen,0.2: X$
plot text, at 0,13:
"y (cm)"
window #1
! user window to plot data and/or draw curves
for i=1 to nreg-1
theta=pi/2
for z = -theta to theta step theta/100
x = x2(i) + r2(i) - r2(i)*cos(z)
! move to starting point
y = abs(r2(i))*sin(z)
plot x,y;
! draw surface
next z
plot x,y
! turn off beam
next i
do
when error in
read y0,a
call ray
use
exit do
end when
loop
! read starting y value and initial angle (in deg.)
! draw the ray from left to right
sub ray
a = pi*a/180
x1 = xmin
y1 = y0
plot x1,y1;
! convert to radians
! initial point on ray
for i = 1 to nreg
! go through the regions
if i = nreg then
y1 = y1 + tan(a)*(xmax - x1)
! final point on ray
x1 = xmax
plot x1,y1
! draw ray, turn off beam
exit sub
end if
t = tan(a)
! slope of ray
r = r2(i)
x5 = x2(i) + r
e = t^2 + 1
! coefficients in quadratic equation
f = 2*(y0*t - x5 - t^2*x1)
! for intersection of ray and next surface
g = y0^2 + x5^2 - r^2 + t^2*x1^2 - 2*y0*t*x1
f1 = f^2 - 4*e*g
if f1 =< 0 then
plot text, at x1+2,y1-.7: "Missed next surface"
plot x1,y1
! turn off beam
exit sub
end if
if r<0 then
x0 = (-f + sqr(f1))/(2*e)
else
x0=(-f - sqr(f1))/(2*e)
end if
! x of intersection of ray with surface
y0 = y0 + t*(x0 - x1)
x1 = x0
y1 = y0
! y of intersection
! next point on ray
plot
a1 =
a3 =
a0 =
x1,y1;
atn(y0/(x5 - x0))
a1
a + a3
! draw ray
! angle of ray to x-axis
! angle of ray to surface normal
for j=1 to 4
if abs(a0) - j*pi/2 <= 0 then
j0 = j - 1
exit for
end if
next j
! find quadrant
s1 = sin(a0)
s2 = n(i)*s1/n(i+1)
! Snell's law at surface
if abs(s2) >= 1 then
plot text, at x1+2,y1-.7: "Total internal reflection"
plot x1,y1
! turn off beam
exit sub
end if
a2 = atn(s2/sqr(1 - s2^2))
! find new angle
a2 = a2 - sgn(a0)*j0*pi/2
a = a2 - a3
next i
end sub
sub initialize
! establish values for both windows
! display window (full screen):
window #0
hrange = 80
! character coordinates (80 hor. x 25 ver.)
vrange = 25
set window 0,hrange,0,vrange
hmin = 10
! corners of user window in display
hmax = 76
! window coordinates: (12,2.5) to (76,23.5)
vmin = 2.5
vmax = 23.5
! user window:
open #1: screen hmin/hrange,hmax/hrange,vmin/vrange,vmax/vrange
xmin = 0
! left edge
xmax = 100
! right edge
xtick = 10
! hor. tick mark interval (0=no ticks)
xdot = 2
! hor. dot spacing (0=no dots)
xtype = 0
! x-axis type: 0=linear, 1=log-ticks,
!
2=log-both, 3=log-grid
ymin = -30
! bottom edge
ymax = 30
! top edge
ytick = 5
! ver. tick mark interval (0=no ticks)
ydot = 2
! ver. dot spacing (0=no dots)
ytype = 0
! y-axis type: see xtype
window #1
set window xmin,xmax,ymin,ymax
xorigin = xmin
! origin of graph: (xorigin,yorigin)
yorigin = ymin
tick = 2
! 1=single ticks, 2=double ticks, 3=grid lines
end sub
end
Download