[time-nuts] Sensing pendulum position, speed, or height
Hal Murray
hmurray at megapathdsl.net
Thu Mar 29 22:45:25 UTC 2007
How do modern pendulum clock geeks measure what their pendulum is doing? I'm
picturing a magnet on the bottom of the pendulum and a coil or hall effect
sensor.
Has anybody considered using disk/tape read heads?
The catch is that you need the read head to be very close to the recording
surface. The closer the better, the bit density is simple geometry. The
size of a bit scales with the distance from the head and that turns into
timing accuracy. (I think.)
You also have to find a head setup to work with your distance (aka bit
density).
Part of the idea is to use a sequence of pulses rather than a single pulse.
If you use a simple square wave as the pattern, you might be off by a cycle,
but you can use a more complicated pattern to avoid/reduce that. I know the
radar guys have collections of patterns with good correlation results. That
math is probably used in other places. Maybe just shifting by a half cycle
in the middle is the right (or good enough) approach. The pattern would be
...1010101001010101...
There is probably a square-root on the number of bits you use vs the timing
accuracy of a single bit. 100 bits per inch is the right ballpark. 1960s
tape technology was 800 bits per inch, but that was with the tape in contact
with the head. Their may have been an air bearing when it was moving, but
the tape was very close to the head.
Anybody who is working on a pendulum clock and crazy enough to consider this
idea has probably already got the length of the pendulum under control. With
a fixed mount for the head, this means they also have to control the length
of the support arms. If you don't like that, there is probably some way to
servo the height of the read head.
A variation on this would be optical as in CD reader technology. Put a
pattern on the bottom of the pendulum and then shine a light (IR?) on it and
detect the reflections. How far is the CD read mechanism above the surface
of the CD? Is it "flying" with an air bearing like disk heads?
Another variation is the head position sensing using by disks back in the
60s. There was a chunk of glass on the disk arm with N rows of black/clear
square waves at different frequencies with a light on top and sensor below.
(I assume they were gray coded.) For a pendulum, you could attach a piece of
sheet metal that stuck out the side a bit, punch if full of holes and have
that swing through a LED/detector setup.
The optical guys make 4 quadrant detectors. I think they are used for
servoing things in 2 dimensions. 2 of those quadrants would make a nice 1
dimensional detector: you get to compare the output of the two sections
rather than needing to invent a threshold.
Maybe one of the linear arrays of photodetectors used in scanners with the
pendulum swinging down the array so it can see the pattern of lines (bar
codes) on the bottom.
Or a digital camera: take a sequence of pictures and interpolate as to when
it crosses the center.
The hardware used for bar code scanners might be a useful starting place. I
assume you would have to hack the firmware/whatever to output time/position
info rather than bar code data.
My initial thought was that you would put one read head directly under the
middle of the pendulum path. That gives you a "tick" each half cycle.
With two sensors, I think you can measure the height of the swing. It's not
measuring the actual height but relative to some target. 2 sensors gives you
4 chunks of time per cycle: A-B, B-B, B-A, and A-A. If you position the
sensors along the path symmetrically on opposite sides of the center then A-A
+ B-B can match A-B + B-A and you can servo the kicker to produce that. If
you want the swing to be higher, move A and B farther apart. If they are off
center, A-A will be different from B-B and the servo filter will have some
lower frequency junk to filter out.
Sounds like a fun tar pit. :)
--
These are my opinions, not necessarily my employer's. I hate spam.
More information about the Time-nuts_lists.febo.com
mailing list