Linkages

Grashof, predicted and then swept

Add the shortest link to the longest. If the total does not exceed the other two, some link can turn a full revolution. It is a sentence about four numbers, it was published in 1883, and it is the kind of claim this site refuses to print without measuring — so every linkage here is also asked for all 360 positions and required to agree.

Of the four bars in a four-bar linkage, can any of them turn all the way round?

The answer is a sentence. Let s be the shortest link and l the longest, and p and q the other two. If

s+lp+qs + l \le p + q

then at least one link can rotate continuously relative to another. If not, none can, and every link merely rocks between limits.

That is Grashof’s condition, and it is remarkable for what it does not need. It never asks which link is driven, which is fixed, or how the mechanism is arranged. Four numbers go in and the answer comes out.

Grashof's classification, predicted and then sweptFour sets of link lengths. For each, Grashof's condition predicts from the lengths alone whether the input can rotate a full turn, and the solver then attempts all 180 positions and reports how many assembled. The prediction and the measurement agree in every case — and if they ever did not, the build would stop rather than print a classification the mechanism does not honour.fraction of the input rotation that assemblescrank rocker180/180predicted: full turndouble crank180/180predicted: full turndouble rocker32/180predicted: rocksnon-Grashof (triple rocker)137/180predicted: rocksprediction from the four lengths · measurement from 180 solvesthey agree, and the build requires it
Fig. 1 Four sets of link lengths. For each, the condition predicts from the lengths alone whether the input can turn fully, and the solver then attempts all 180 positions and reports how many assembled. Prediction and measurement agree in every case, and the build stops if they ever do not.

Predicting is not enough

A classification that is never checked is a label. This site’s habit is that a claim about a mechanism is granted only when the mechanism has been asked, and Grashof’s condition is the oldest classification in the subject and therefore the most tempting to take on trust.

So every linkage here is also swept: the input is set to each of 180 or 360 angles in turn, the solver attempts each, and the number that assemble is counted. A crank that turns fully assembles at every angle. One that rocks assembles at some and refuses the rest.

For the crank-rocker used throughout this site — ground 4, crank 1, coupler 3.5, rocker 3 — the condition predicts full rotation and the sweep finds 360 of 360. For a non-Grashof set — 4, 3.2, 3.4, 3.3 — it predicts rocking and the sweep finds 273 of 360.

The 87 refusals are dead centres. Nothing about the four lengths had to be inspected to locate them: the solver was asked for those positions and declined, because at them the bars would have to change length.

The four classifications

The condition says whether something can rotate fully. Which link it is depends on where the shortest one sits, and that gives four cases.

Crank-rocker. The shortest link is adjacent to the frame. It rotates continuously; the link opposite rocks. This is the workhorse arrangement — continuous rotation in, oscillation out — and it is what a windscreen wiper, a beam engine and an oscillating fan all are.

Double crank, or drag-link. The shortest link is the frame. Both attached links rotate continuously, at speeds that vary through the turn. Used where a shaft must drive another shaft at a deliberately uneven rate.

Double rocker. The shortest link is the coupler. Neither attached link turns fully; both rock. Less obviously useful, and it is what many suspension linkages are.

Triple rocker. The condition fails. Nothing turns fully and every link rocks between limits.

There is a fifth case that is not a case: when s+l=p+qs + l = p + q exactly, the linkage is at a change point, where all four bars can become collinear and the mechanism can switch branch. A parallelogram is the familiar example, and what happens there is worth an essay of its own.

The classification is about the chain, not the machine

Grashof’s condition is a statement about the four lengths, and the machine also depends on which bar is bolted to the bench.

The same chain of four bars gives four different mechanisms depending on the choice of frame — the inversions — and the condition does not change between them, because it never mentioned the frame. What changes is which link is the crank and which is the rocker.

So a set of lengths that satisfies the condition guarantees that some link turns fully relative to some other. Turning that into “my input shaft can rotate continuously” needs one more step: the shortest link must be the input, or the frame.

This is where the condition is most often misapplied. A designer checks s+lp+qs + l \le p + q, gets a yes, fixes the wrong link, and finds the mechanism rocking.

A four-bar at 60°, solvedGround 4, crank 1, coupler 3.5, rocker 3. Every joint position here is the output of a Newton–Raphson solve on the loop-closure equations, converged to 0.0e+0 — not a placement that looked right. Grashof's condition classifies these lengths as a crank rocker, and sweeping the crank through 360° confirms it: 120 of 120 positions assemble. The transmission angle at this instant is 66.9°.ABO₂O₄crank (input)couplerrocker (output)crank rocker · residual 0.0e+0positioned by solving, not by drawing
Fig. 2 A crank-rocker, in the arrangement the condition permits: the shortest link is the crank, so it turns fully while the rocker swings. Fix a different bar and the same four lengths give a different machine.

Why the inequality is what it is

The condition is not arbitrary and the reasoning is worth following, because it explains why shortest plus longest and not some other pairing.

For a link to rotate fully, it must be able to pass through the two positions where it is collinear with the frame link — pointing directly towards and directly away from the other ground pivot. At those positions the remaining two links have to bridge a specific gap.

Work through the two cases and both give the same inequality, with the shortest and longest links appearing together because they are the pair that makes the bridging hardest. The condition is the statement that the triangle inequality can be satisfied at both extreme positions at once.

That is also why the failure is total rather than gradual. A linkage that misses the condition does not turn nearly all the way round: it stops at a definite angle where the geometry runs out, and the arc it cannot reach can be large.

The angles this crank cannot reachA non-Grashof four-bar — non-Grashof (triple rocker) — asked for all 360 input angles. It assembled at 273 of them. The dial on the left marks the reachable arcs in green and the refused ones in red; the refusals are not a numerical failure but the mechanism's dead centres, where the crank and coupler line up and the linkage physically stops. Nothing about the four lengths had to be inspected to find them: the solver was asked, and declined.273of 360input anglenon-Grashof (triple rocker) · s + l exceeds p + q by 0.50green: assembles · red: refused
Fig. 3 The refusals, laid out on a dial. A non-Grashof four-bar reaches 273 of 360 input angles; the red arcs are the 87 it does not. The mechanism stops there because the links would have to lengthen, and the solve declines for exactly that reason.

The margin, and what it is worth

The condition is an inequality, so it has a margin: p+q(s+l)p + q - (s + l).

For the crank-rocker above the margin is 1.5 on links of order 3, which is comfortable. A linkage with a margin of 0.01 satisfies the condition and would fail to turn if any bar were made a hundredth long.

That is a manufacturing statement rather than a kinematic one, and it is where the honest limits of this site’s model start to bite. Nothing here has tolerances, clearances or wear; the margin is computed from nominal lengths, and a real linkage’s margin is the nominal one plus or minus whatever the machine shop achieved. A design close to the boundary is a design that will work for some of the units built.

What the condition leaves out

Three things, and all three matter more in practice than the classification does.

Whether the mechanism is any good. A crank-rocker that satisfies Grashof comfortably can still have a transmission angle that collapses somewhere in its cycle, at which point it is a poor machine that happens to turn.

What the output does. The condition says the rocker rocks; it says nothing about how fast, how far, or how evenly. That ratio varies through the turn and quoting a single number for it is quoting an average.

Where the useful part of the stroke is. The straight-line linkages are four-bars chosen for the shape of a traced curve, and the classification has nothing to say about the curve.

The transmission angle through one turnμ is the angle at B between coupler and rocker, computed from each solved position rather than from a formula. It runs from 54.3° to 100.3° for these lengths. The shaded band is the usual design rule — keep μ between 40° and 140° — and this linkage stays inside it throughout. The rule is about geometry alone: nothing here knows about friction, and a mechanism with a comfortable μ can still be a poor machine.0501001500100200300crank angle (degrees)transmission angle μ (degrees)40° design limitground 4, crank 1, coupler 3.5, rocker 3μ from 54.3° to 100.3°
Fig. 4 What the classification omits. This linkage passes Grashof comfortably and turns fully, and its transmission angle still swings from 54° to 100° through the cycle. Whether that is acceptable is a separate question with a separate answer.

Why check a theorem

Grashof’s condition is proved. Sweeping it 180 times does not make it more true.

What the sweep tests is everything between the theorem and the figure: whether the lengths in the code are the lengths in the caption, whether the solver’s branch handling is right, whether the classification function has the cases in the right order. A wrong sign in the classification would produce a site full of confidently mislabelled mechanisms, and no amount of confidence in Grashof would catch it.

That is what checking a theorem against a measurement is for. The theorem is not on trial; the machinery is, and it is framed as a check on mathematics because that is the form in which it is cheap to write.

One set of lengths, two mechanismsThe same four bars pinned in the same order and the same crank angle, assembled two ways. B sits 4.53 units apart between them. Both satisfy the loop-closure equations exactly, so neither is more correct — and a built mechanism is in one branch permanently, because getting to the other requires taking a pin out. The solver reaches whichever branch its starting guess is nearer, which is why every sweep on this site carries the previous position forward rather than starting fresh.B openB crossedθ = 75°, both residuals below 1e-12two solutions, one mechanism
Fig. 5 What the classification does not distinguish. Both assemblies satisfy Grashof identically, because the condition is about four lengths and says nothing about which solution the mechanism is in.
Slider-crank at 50°Crank 1, connecting rod 3. The slider's travel is 2.0000 — exactly twice the crank throw, which is the one thing about this mechanism that does not depend on the rod length. Everything else does: the rod length decides how far the piston's motion departs from a sine wave, and that departure is the second harmonic every engine balancer has to deal with.Astroke = 2.000 = 2 × crankpositioned by solving, not by drawing
Fig. 6 The mechanism the classification does not apply to. Grashof counts four pin joints; replace one with a slide and the condition has nothing to say, though the mechanism turns fully.

The change point, and the case the inequality treats as a boundary

Grashof’s condition is an inequality, and inequalities have a boundary. When s + l equals p + q the chain is a change-point mechanism, and it behaves unlike anything on either side.

The parallelogram linkage is the familiar case: two equal cranks joined by a coupler equal to the ground. Both cranks rotate fully, which is the Grashof-satisfied behaviour, and at two configurations per revolution the whole thing goes flat and the mechanism can continue as a parallelogram or flip into an antiparallelogram — the crossed configuration, in which the cranks counter-rotate.

Both continuations satisfy the constraints exactly. Nothing in the geometry chooses between them, which is why a real parallelogram linkage needs something outside the geometry to choose: a third bar, an out-of-phase duplicate, or inertia and a bit of luck.

The change point is where the constraint Jacobian loses rank, which is the same event described in the language this site uses everywhere. Sweeping the mechanism through it, the solver either refuses to converge or converges to whichever branch the previous configuration was nearest — and that dependence on where it started is the signature of a genuine bifurcation rather than a numerical difficulty.

It is also why the three-bar parallelogram sweeps 59 of 60 angles and fails exactly one, at every sampling density. The failure is not a tolerance being missed; it is a configuration where the mechanism’s future is genuinely undetermined.

What the classification is used for

Given four lengths, the classification says which link can rotate fully, and design runs the other way: given the motion wanted, choose lengths.

The three common targets map onto the classification directly.

Continuous rotation in, oscillation out — a crank-rocker. Shortest link adjacent to ground, Grashof satisfied. This is the workhorse: windscreen wipers, oscillating fans, beam pumps.

Oscillation in, oscillation out with a different range — a double-rocker, which means either a Grashof chain with the shortest link as the coupler or a non-Grashof chain. Used where the input is a lever rather than a motor.

Continuous rotation in and out at a varying rate — a drag-link, shortest link grounded. Both cranks turn fully but not uniformly, which makes this the basis of quick-return mechanisms.

The choice of which link to ground is therefore a design decision made after the proportions, and it changes the machine without changing the chain. Four different machines come out of one set of four numbers, which is the observation the inversions of the slider-crank make in a narrower setting.

What the classification does not give is any of the quality of the motion. Two crank-rockers with the same classification can differ by a factor of three in worst transmission angle, and one of them will be unusable. Grashof first, then the transmission angle; the first is a yes or no and the second is the design.

What a sweep costs and what it settles

Checking a theorem by sweeping is not free, and it is worth stating the cost honestly alongside what it buys.

Sixty configurations per mechanism, each a Newton–Raphson solve with an analytic Jacobian, is a few milliseconds. The expense is not computational; it is that the sweep has to be set up correctly, and a badly set up sweep produces a confident wrong answer more easily than no sweep at all.

Three ways it goes wrong, all of which happened here.

Starting from a fixed guess. Solving each configuration from the same initial guess lets the mechanism jump between assembly branches mid-sweep, which produces a plot with a discontinuity that no mechanism has. Continuation from the previous solved configuration is what a real mechanism does.

Inheriting a failed state. A helper that leaves the mechanism in a non-converged configuration poisons the next sweep, which then assembles nowhere and appears to disprove a correct classification.

Sampling too coarsely. A sweep at 10 points can miss a narrow range where the mechanism cannot assemble, and report full rotation for a chain that does not have it. The defence is to check that the answer is stable under refinement, which is also how the three-bar parallelogram’s single refusal was shown to be real rather than a sampling artefact.

What the sweep settles, once it is right, is the gap between a classification and a behaviour. Grashof’s condition is a theorem about four numbers and it is correct; the sweep is a statement about a mechanism, and the two agreeing is what makes it reasonable to apply the theorem to the next mechanism without sweeping it. Verification is not distrust of the theorem — it is what makes trusting the theorem defensible.

The condition in its natural form

The inequality is usually stated as s + l ≤ p + q, with the four lengths sorted. There is a way of putting it that makes the content clearer.

For the shortest link to rotate fully, it must be able to pass through every angle, including the two extreme configurations where it lies along the line to its neighbour. At those configurations the remaining three links must be able to close the loop, and closing requires that the longest of them not exceed the sum of the other two — the triangle inequality, applied to the three-bar chain left over when the shortest link is folded out or in.

Working that through gives exactly Grashof’s condition. So the criterion is the triangle inequality evaluated at the two hardest configurations, and it inherits the triangle inequality’s character: it is a statement about whether a closure is possible, not about whether it is comfortable.

That explains the condition’s most-noticed feature, which is how little it promises. A chain satisfying it by a thousandth of a unit rotates fully and does so through configurations where the three remaining links are almost collinear — which is where the transmission angle is worst and where the linkage is closest to being a mechanism with an extra freedom. The rotation is real and it is useless.

It also explains why the boundary case is a change point rather than a smooth transition. At s + l = p + q the triangle inequality is met with equality, the three-bar chain is exactly collinear, and a collinear chain can fold either way — which is the bifurcation, arrived at from geometry rather than from the Jacobian.

Two derivations of the same event, agreeing, is the pattern this site prefers. It is also why the sweep is worth running on a theorem nobody doubts: the agreement is what makes the theorem usable without sweeping the next one.