Loading [MathJax]/jax/output/HTML-CSS/jax.js
Skip to main content

The Piston Wave Project

 

DIY mechanical wave machine,DIY variation on the pendulum wave

Inspired by demonstrations of Pendulum Waves, an apparatus was created that utilizes the same mathematics, using pistons driven by a hand crank, allowing the patterns to evolve forward, backward or be paused.


Pendulum Waves


Pendulum Wave is a popular physics demonstration that uses a series of pendulums of different length, initially oscillating in synchrony that evolves interesting wave patterns before it returns to perfect unison. Videos of pendulum waves (actual and simulated) are plentiful on the internet. 

There are essentially two basic principles at work: 
  1. The pendulum frequencies fi are a mathematical progression, where integer i is the designated number for each pendulum, ranging from 0 to Np1, and Np is the number of pendulums. The progression is: fi=f0K+iK, where f0 is the lowest frequency (longest pendulum), and K is an integer. 
  2. The oscillation frequency f of a pendulum is governed by its length L: f=12πgL, where g is the Earth’s gravitational constant. A long pendulum has a lower frequency than a short pendulum. Sometimes we refer to an oscillator’s period T = 1f instead of its frequency, giving T = 2πLg. The angle θ that the pendulum makes with the vertical at a time t is: θ=Acos(2πft), where A is the angle at t = 0.
The lengths Li are calculated by combining the above equations to get: fi=f0K+iK=12πgLi, which can be rearranged to give: Li=(g2πfi)2=(gK2πf0(K+i))2 . Li can then be determined from i, f0 and K.

Note: A more detailed mathematical analysis of this demonstration is given in: James A. Flaten and Kevin, A. Parendo, Am. J. Phys. 69, 778 (2001); doi: 10.1119/1.1349543 

Pendulum Wave Simulation

The pendulum angles can be simulated using the above equation. As an example, for Np=16 pendulums and K = 33, we begin at t = 0 with all the pendulums ends aligned. Their angular positions are plotted below as a function of i = 0 to 15:


As the pendulums are released, they form a sinusoidal pattern with more peaks as time progresses.
The number of peaks in the undulation increases until the limited number of pendulums can no longer smoothly represent a sine wave. This can give the appearance of chaotic motion, but it is just an under-sampling of a sine wave by too few points.

At f0t=K2, the undulation pattern has Np2 peaks and valleys, one from each pendulum. At that point, θi=Acos(2πf0K+iKt)=Acos(π(K+i))=±A (left plot below). After this, the pattern reverses (due to the symmetry of a cosine) until f0t=K, giving θi=Acos(2π(K+i))=A for all the pendulums, back to the original state (right plot below). We can refer to this time as tc=Kf0 as the full cycle time.


Pendulum Wave K

A larger value of K reduces the range of pendulum lengths (LiL0). The plots below show that the lengths become more linear vs. i as K increases from 10 to 40. This gives more of an illusion of similarity in the pendulums, making the undulation pattern more visually surprising. Mechanical differences such as friction between the longer and shorter L could also complicate the apparatus, favoring larger K.


Pendulum Wave Challenge (sensitivity to errors in Li)

Any collection of pendulums will have errors in their length compared to the exact design values. If we add a random error value to the prescribed LiL0 values, there will be an error in the pendulum amplitude that grows as time proceeds, as seen in the plots below for K = 33. The error in amplitude will increase with K and i, since these increase the number of oscillations.


The result shows that a pendulum wave apparatus must control the lengths of each pendulum to better than 0.1% to avoid significant noise in the amplitudes at the end of the full cycle. For L0 = 1m, the lengths need to be controlled to better than 1mm. This behavior becomes the most important design concern for a pendulum wave apparatus.

Alternative Systems to Pendulums

Anything that oscillates, whose frequency of oscillation can be controlled to 0.1% or better is a candidate to illustrate the undulation effect. Potential examples include:

  • Springs: 2πf=km; To vary f, the spring constant k can be adjusted by spring length or the attached mass m could be varied. This method is a bit fragile with short oscillation times due to friction.



  • Stepper motors: rack and pinion drives each ball up or down. Micro-controllers simulate Acos(2πfit) motion, with perhaps a Hall position sensor (or manual adjust) to initialize. A crank connected to an encoder could be used to increment time. Versatile and accurate but expensive and not purely mechanical. 16 NEMA 17 motors is approximately $150.


  • Pistons: Another option is pistons attached to rotating wheels. This is a purely mechanical design that can be run at any rate or direction and can be stopped and examined at any time.
    • Case 1: The pistons are attached to independently rotating pulleys of constant radius R that are driven by a set of connected pulleys of varied radius Ri. This is illustrated below for Np = 16 at a moment when alternating piston rods are at their extremes of ±d, where d is the distance between the center of the R pulleys and the piston attach point. The frequency of rotation of the independent pulleys is fi=fRiR, where f’ is the rotation frequency of the connected pulleys, determined by the crank. Given fi=f0K+iK, this gives Ri=R0K+iK, where the smallest varied radius is R0=Rf0f.

    • Case 2: The pistons are connected to independently rotating pulleys of varying radius Ri that are driven by a set of connected pulleys of constant radius R’. This is illustrated below for Np = 16 at a moment when alternating piston rods are at their extremes of ±d, where d is the distance between the center of the Ri pulleys and the piston attach point. The frequency of rotation of the independent pulleys is fi=fRRi, where f’ is the rotation frequency of the connected pulleys, determined by the crank. Given fi=f0K+iK, this gives Ri=R0KK+i, where the largest independent radius is R0=fRf0.

Case 2 is the approach explored in this project, in order to maximize the vertical displacement of the pistons. 

Due to the precision required for fi (and therefore RiR) to achieve the undulating patterns, machining the pulleys is an extreme challenge that requires precision measurement methods.

Note: Toothed timing wheels and belts were also considered but achieving the proper radii using available tooth pitches was not feasible and making corresponding wheels and belts was not practical.

 Piston/ Pulley Considerations

Pulley to Piston Connection: Crank/ Slider

A common way to couple a piston to a rotating wheel uses a slider arm. The piston is guided to move only along one direction. A consequence of this method is that the motion of the piston does not strictly follow a cosine form (blue curve below in the plot of vertical position vs. pulley rotation angle), which will distort the undulation pattern. It also requires three bearings per piston unit for optimum performance.




Cam Option

A cam disk can be attached to the larger pulley wheel, which pushes on the piston rod against a spring restoring force. For d (cam rotation axis to cam center) = 1”, the smallest Rcam is 138, and the deviation from a sinusoidal displacement is large. Even to achieve the performance of the crank/slider, Rcam = 5” would be required, greatly enlarging the dimensions. 



Scotch Yoke Option

A slotted bar rides on a pin in the R pulleys, sliding piston rods vertically with y=Acos(2πfit) motion. This was the chosen method for coupling due to its simplicity and lack of distortion of the cosine. 



The Apparatus

Full System Sketch



  • uxcell 5/8-inch Precision Solid Brass Bearing Balls 5pcs/ bag
  • 1/8” yoke pin glued into pulley at d from center, sliding in yoke slot.
  • Piston rods are 0.115” dia x  2.68” + immersion depths (ball and yoke)
  • Top and bottom 3/8” nylon guides on 3/8” brackets.
  • ¼” rod with 0.03” thick ring glued into ½” OD bearing glued into pulley; rod glued in bracket; bracket bolted on R base bar; R base bolted to main base.
  • Idler (Amazon): Stainless V Bearing, Grooved Bearing Precision, Mini Dobble Pulley Wheels, Rollerball Bearings Pulley Bearing, for Rail Track Linear Motion System 4x13x6mm, 10pcs, V624ZZ
  • Idler pulley held by bolt, washer and nut in bracket slot (5/32” wide, 5/8” long) on idler base. Bolt head & washer OD = 0.265” to clear inner race.
  • ¼” threaded rod through all R’ pulleys with nuts on each side. Bearing bracket at ends.

Hardware Parts List:

Includes purchased (P) and shop made (D)

Making The Pulleys

Note: An initial attempt to make pulleys from large rod stock by cutting a series of grooves proved very time consuming to part each wheel in the lathe and post-process the surfaces. The following method was recommended by hobby machinist Keith that was more practical.

Pulley Forming Process



Making pulleys from an aluminum plate

COD = Cord Outer Diameter
BOD = Bearing Outer Diameter

Mandrels:
  • Cut 2.5” long x 1” and ¾” OD 1144 steel rods.
  • For R pulleys: Mount (4 jaw using DTI) 1” OD rod; face off; drill & tap 1/4”-20. Turn tenon 0.24” long and dia = BOD = 0.500” (check fit to 0.499” hole). Check size with sample holes.
  • For R’ pulleys: Mount (4 jaw using DTI) 3/4” OD rod; face off; drill & tap 8-32. Turn tenon 0.24” long and dia = C type + 1 mil (check fit to C hole). Check size with sample holes.

Rough cut plates (1/4” aluminum):
  • Cut squares with miter saw (slow) using limit stop
  • Drill center dimple in each square using the mill
  • Dykem and draw circle radius R (R’) + 0.08” and corner lines tangent to circle
  • Cut corners at 45deg on miter saw using limit stop to form an octagon
 
Disks:
  • Mount rough disk in 4 jaw lathe and adjust to get center drill into divot center. Center drill.
  • Drill C type hole for R’. For R drill ¼” then 31/64, then 0.499” ream (repeat for all pulleys).
  • Align mandrel in 4 jaw.
  • Attach octagon and turn with point tool using DRO referenced to mandrel OD (Dykem). 
  • Keep mandrel in the chuck for groove cutting.

Grooves*:
  • Switch to the radiused tool and touch off to mandrel or on disk measured by micrometer for calibration.
  • Zero x on center of pulley edge. Lock Carriage and compound Gibb.
  • Bolt disk to mandrel
  • Slowly cut in 60 mils (belt radius). See note*
  • Measure groove diameter using micrometer across 1/8” SS rods in groove (groove dia = total dia – 2* rod dia)
  • Mark pulley with number stamp

Tuning:
  • Build IR revolution counter for both R and R’ pairs N’/N = R/R’
  • Measure N’/N for each pair to determine adjustments needed. 
  • Remove calculated difference from R/R’ measurement vs. target in lathe using round file.
* Groove cut procedure: Sharpen tool with diamond stone + oil. 190 rpm, 0.5 mil radial increments, advancing only when cutting at ~0.1mil/sec, clear chips if clogged. If chattering occurs, sharpen the  tool and cut away or round file the chatter features slowly.

Notes:
  • Np oscillators = 16
  • Pulley thickness PT = 0.25”
  • Cord diameter (COD) = 0.12”; groove tool width = 0.123”
  • Bearing OD BOD = 0.5000”

R Pulley components


Pulley Calibration: Measuring R/R’

Method A: Mill Digital Read Out (DRO) + edge finder on pulley + rods in groove in a mill vise.

  • Place a SS rod of diameter Dr on both sides of the pulley, clamp in vise
  • Use edge finder to locate the vise jaws and measure their separation Y on the DRO. 
  • R = radius to center of pulley belt, Dc  = pulley belt diameter: R=Y2Dr+Dc2



Measurement accuracy: ~ 0.0005” due to variation in edge finder accuracy.

Method B: Counting rotations of coupled pulleys 

  • IR sensor counts rotations N and N’ of each pulley
  • RiR=NNi



This method is more direct with accuracy: ~ 0.0002” for ~ 5000 revolutions of R’

IR sensor revolution counter


Pulleys with black tape markers for IR sensors:

Notes
  • A switch type encoder was explored to count pulley revolutions, but electrical bounce issues led to inaccurate counts, despite using various debounce algorithms. Even the IR sensor required software debouncing to ensure accuracy. Also, the IR detectors must be shielded from sunlight or other IR sources to maintain threshold accuracy. Another option would be to use a small magnet on the pulley and a Hall Effect sensor.
  • For a lathe speed of 200 rpm driving the R pulley, N’ = 5000 revolutions was achieved after 13 – 17 minutes (depends on R) to achieve better than 0.1% accuracy in RR.

Arduino code for IR sensor counter:


Click here for IR sensor code

Radius Measurement Procedure:

  • Put a strip of black tape on each pulley.
  • Place R pulley onto mandrel in lathe and secure.
  • Place R’ pulley into jig above R and connect the two pulleys using a pulley belt.
  • Show the serial monitor on the IDE.
  • Manually check that the IR sensors increment the count as the black tape passes the IR source.
  • Start the lathe at ~ 200 rpm and press the reset button on the micro-processor.
  • Wait for a ratio of RR stable to the 3rd decimal place (2500 – 5000 revolutions of r’), then stop the lathe.
  • Cut and paste (special text) the serial monitor screen to Excel and calculate the average RR over last 20 data points.

Results of revolution counter for R, R’ pairs


The pulley belt gives each pulley the same tangential velocity, so Rifi=Rifi and RiNi=RiNi, where N is the total number of revolutions after some measurement time. Since fi=f0i+KK, and ff0=N0N0, this gives the target RiRi=N0N0Ki+K.

The error dR in R can be estimated from the difference between the measured and target RiRi multiplied by the average R’ (0.741” in this case, with K = 33). A plot of dR after the initial groove cutting is shown on the left (below). Pulley pairs with high dR were corrected using a round file in the groove of the R pulleys in the lathe to reduce their groove radius. The final accuracy in the ratio is about +/- 0.0002.


Consequence of pulley radius corrections

Using piston amplitudes Ai=A0cos(2πfit), and fi=fRiRi we can see the effect of the measured RR values vs. the target values for the uncorrected and corrected groove radii at any point in time. The full system period is at time tc=KT0 (K turns of the largest R pulley or R0R0K turns of the corresponding R’ pulley). Just before or after the full cycle, the system is more sensitive to errors in the radii. The results shown below indicate the utility of correcting the radii, and the need for high accuracy in the project.


The Pulley Belts

Belt Material


Belt Welding

This welding method at weld link formed the basis for this welding jig design.


Pulley belt lengths

Ri=R0Ki+K
bi=S2(RiR)2
θi=arcsin(RiRS)
w = weld length 
Total belt length =π(Ri+R)+2θi(RiR)+2bi+w


To achieve good tension, these lengths can be reduced. The idlers may be also be used for tension adjustment.

The Yokes & Brackets

Scotch Yoke milling procedure for smooth slots

  • Miter cut and end mill 1” x ¼” aluminum bar to length L’
  • Position 1/8” 2 flute mill bit at (xc, yc) and end drill through the bar (1000 rpm + WD40).
  • Move to (xc’, yc).
  • Move to y1 = yc + 2mil and climb mill back to (xc, y1).
  • Move to y2 = yc – 2 mil and climb mill to (xc’, y2).
  • Repeat for all yoke.
  • Set up counter sink set to desired z for chamfering starting at (xc, yc). 
  • Chamfer slot to (xc’, yc, z). Repeat on flip side to (xc, yc, z).
  • Repeat for all yoke.
  • Locate and drill piston rod holes with #32 drill to depth q from tip

Brackets and Yokes


Scotch Yoke with 1/8” SS rods and nylon guides


R and R’ pulleys on axels and brackets, bolted to sub-bases





Final Assembly

  • N = 16 pistons
  • Width: 17”
  • Depth: 4.5”
  • Height: 10” 
  • Total Weight: 6.55 kg (15 lbs)
Idlers can be adjusted for belt tension to reduce potential slippage or they can be removed.



Video of operation:


Performance

The first assembly attempt resulted in successful basic function, but some of the pistons were significantly out of sync after completion of the full cycle. All pulley diameters were remeasured using both methods discussed earlier, but the results could not explain the discrepancies. All pulley belts were then reduced in length by 1.5% to increase belt tension (idlers were disengaged). This seemed to solve the issue by preventing slippage of the belts and gave the result seen in the video and in the following. 

In the following images the crank for the lower R’ pulleys was turned clockwise for N’ = 0 to 65 revolutions (indicated in black text) and compared to a simulation of N’ turns that best fit the piston pattern (red text). The system is expected to return to the original positions after the number of revolutions of the largest pulley N0=K, or N=KR0R=33×1.440.741=64.1. The initial condition is for all the R pulleys rotated so the yoke pins are forward, and the yokes are aligned with the R pulley brackets.

Note: Rotating the crank in reverse returns all pistons to their original positions, indicating no significant belt slippage.

    Observation (N' crank turns):                                  Best Fit Simulation (N' crank turns):

Conclusion:

Overall, the agreement between the measured and simulated pattern is reasonable using the measured R0R=1.943. Some pistons showed deviations. The error in the right most y15 for N’ = 65 corresponds to an error in R15 of  +.0005”, which is expected for these machining methods.

Clattering of the Yokes

While the crank is turning, a back-and-forth rotation of the yokes about the piston rod is observed, leading to a slight clattering sound. As the yoke pin moves in the slot, it evidently provides a small torque to the yoke, as shown below. It appears that the top of the slot is in contact with the pin primarily at one edge, leading to an oscillation as the pin moves right then left in the slot. Fixed rings on the pin could be used to constrain this effect, or square piston bars guided in square slots could be used instead of rods.



Acknowledgements

Thanks to:

  • Keith for numerous machinist tips.
  • Barb for many constructive suggestions on the presentation.
  • John for blogging guidance.


Comments