← Keeping Time

Keeping Time · Part 2 of 7

Half a Tooth a Beat

The train in the last article says the escape wheel advances half a tooth every beat. That is a statement about distance, and it hides the interesting part. A real train does not turn smoothly. It stands perfectly still almost all the time, and for about a hundredth of a second, five times a second, it lurches forward. The seconds hand on a mechanical watch steps rather than sweeping for exactly this reason, and Tick Again models that lurch directly.

The balance is a pendulum

The balance wheel and its hairspring are a harmonic oscillator: the spring pulls the wheel back towards its rest point with a force that grows with the angle, so left to itself the wheel swings back and forth on a sine. The escapement’s job is to give it a small push on each swing and to count the swings. Because the push is brief, the swing is nearly free, and a sine at the balance’s own frequency is a very good model of it. In C1 the frequency is 2.5 hertz and the swing, the amplitude, is 270 degrees each way.

That 270 is a healthy figure for a vintage watch lying dial up, and it is one of the numbers in the source marked for review: it is an estimate, not yet a watchmaker’s, until one has read the code. Much of what follows depends on it, so the figure below lets you change it.

Twenty-six degrees either side

The balance only meets the lever for a short arc either side of its rest point. On the balance sits a roller with a jewel pin; on the lever, a fork. As the balance swings through the middle, the jewel enters the fork, pushes it across, unlocking the escape wheel, takes its impulse from the escape tooth sliding over the pallet, and leaves. The angle of balance swing over which all of this happens is the lift angle. For C1 it is 52 degrees, the figure timegraphers use by default for Swiss lever movements, so the lever is in contact while the balance is within 26 degrees of rest.

How long that takes depends on how fast the balance is moving through the middle, which is to say on the amplitude. That is the one calculation in this article:

Swift
public var liftHalfWindow: Double {
    let e = caliber.escapement
    let half = min(e.liftAngle / 2, amplitude * 0.999)
    return asin(half / amplitude) / (2 * .pi * e.frequency)
}

The balance is at angle A·sin(2πft); it is within half the lift angle of rest for asin((λ/2)/A) / (2πf) seconds either side. At 270 degrees and 2.5 hertz that is 6.14 milliseconds each side, 12.3 milliseconds in all. Five beats a second at 12.3 milliseconds each: the lever touches the balance for about six percent of the time. For the other ninety-four, the balance swings free and the train stands still.

±26°270°balanceescape wheel0.0 s0.2 s0.4 s
270°
Lever in contact: 12.3 msShare of the time: 6.1%
The balance swinging on its sine over half a second, with the band within 26° of rest shaded. Only inside it, drawn red, is the lever in contact. Below, the escape wheel: it advances 12° a beat, all of it inside those windows, and stands still between them. Shorten the swing and watch the windows.
Before you read on

A watch with a tired mainspring swings 180 degrees instead of 270. Is the lever in contact for longer or for less time each beat?

For longer. A shorter swing at the same frequency means the balance is moving more slowly as it passes through the middle, so it takes longer to cross the same 52 degrees. At 180 degrees the window opens from 12.3 to 18.5 milliseconds. A test holds the model to exactly that direction of change, and the fourth article shows how a timegrapher uses this relation backwards to read amplitude from a watch’s sound.

Stepping the train

Everything else about the movement’s motion follows from that window. Given a time, the model works out which beat is under way and how far through its lift window the balance is, eases the beat in and out across the window, and turns every arbor by the train’s ratios from there:

Swift
public func pose(at time: Double) -> Pose {
    let e = caliber.escapement
    let bps = e.beatsPerSecond
    let x = time * bps
    let k = (x + 0.5).rounded(.down)
    let local = (x - k) / bps
    let w = liftHalfWindow
    let ramp = Movement.smooth((local + w) / (2 * w))
    let beats = k + ramp
    // Half a tooth per beat. Seen from the back, a clockwise dial rate turns the other way.
    let escapeRate = kinematics.rate(e.escapeArbor)
    let escapeTurns = beats / Double(2 * e.escapeTeeth) * (escapeRate < 0 ? -1 : 1)

The ease is a smoothstep, which is flat at both ends. Outside the window the ramp is exactly 0 or exactly 1, so the train is not merely slow between beats but motionless, and the seconds hand ticks the way a real one does: a fifth of a second still, a small jump, still again. The fork is handled the same way. It sits against one banking pin, swings across to the other during the lift, and stays there until the next beat brings the jewel back from the other side: plus five degrees, minus five, plus five.

Why a sine and not a simulation?

Integrating the balance as a spring and inertia with impulses at each beat would be more general, and the game does not need it. A free balance is isochronous to a very good approximation: its period hardly depends on its amplitude, which is the whole reason a balance makes a clock. So the swing can be written in closed form at any time, which means the model can jump to any moment, pose every part exactly, and never drift. Changes of amplitude, from winding or running down or a fault, are applied to the sine’s height as the watch runs, as the fifth article shows.

What the tests hold

  • The movement makes exactly five beats in a second.
  • Between 0.08 and 0.12 seconds, well clear of any beat, the train does not move by so much as a trillionth of a radian.
  • The escape wheel advances 12 degrees each beat, and the seconds hand makes one full turn in sixty seconds.
  • The balance is at rest at time zero, at 270 degrees a tenth of a second later, and at rest again at 0.4 seconds.
  • The fork changes sides on every beat, five degrees each way.
  • The lever’s window at 270 degrees is 12.3 milliseconds, give or take half a millisecond, and wider at 180.

The window is also where a watch makes its sound. Every beat is three small impacts inside those 12 milliseconds, and the next article is about getting them into your ears at the right moment.