# How Lighthouses Work 5, Exercise 3: weight-driven clockwork G = 9.81 def weight_kg(power_w, hours, drop_m): return power_w * hours * 3600 / (G * drop_m) def hours_run(mass_kg, drop_m, power_w): return mass_kg * G * drop_m / (power_w * 3600) POWER_W = 5.0 # assumed, mercury-floated lens DRY = 4.0 # assumed factor for a dry bearing # Part 1: 8 m drop, winding every 2 h and every 4 h for hours in (2, 4): print(hours, "h:", round(weight_kg(POWER_W, hours, 8)), "kg floated,", round(weight_kg(POWER_W * DRY, hours, 8)), "kg dry") # Part 2: how long a 300 kg weight with a 10 m drop runs print("floated:", round(hours_run(300, 10, POWER_W), 2), "h; dry:", round(hours_run(300, 10, POWER_W * DRY), 2), "h") # Part 3: windings per 12 h night and the energy the keeper lifts each time for hours in (2, 4): print("windings in 12 h at", hours, "h:", 12 / hours, "; energy:", POWER_W * hours * 3600, "J") # Output: # 2 h: 459 kg floated, 1835 kg dry # 4 h: 917 kg floated, 3670 kg dry # floated: 1.64 h; dry: 0.41 h # windings in 12 h at 2 h: 6.0 ; energy: 36000.0 J # windings in 12 h at 4 h: 3.0 ; energy: 72000.0 J # # With the assumed 5 W to turn a mercury-floated lens, a 2 hour winding at an 8 m drop needs a weight of about # 459 kg and a 4 hour winding about 917 kg. A dry bearing that needs four times the power needs four times the # weight (1,835 and 3,670 kg), which shows why floating the lens in mercury matters: the lighthouse article # says the lens assembly sometimes floated in liquid mercury to reduce friction. A 300 kg weight falling 10 m runs # 1.64 hours floated and 0.41 hours dry. A 12 hour night needs six windings at a 2 hour interval and three at a 4 # hour interval. The 5 W and the factor of 4 are assumptions for the exercise, not measurements; only the 2 hour # winding interval comes from the source.