What can move

The price is one self-stress

A Dixon framework built with its joints a little out of place has to be carried past its crossing by play, and the play it needs was measured by bisection, framework by framework. It has a closed form. Pinned and pushed, the framework carries exactly one self-stress on each family, and the least play is the errors' bar misfits weighted by that stress, over the stress's size. The formula matches every measured price to 0.6%, says why two frameworks of ten prefer the far family, and finds that one in twelve does.

Assumes The price of the other family and A constraint that has been said already.

Dixon’s framework is nine bars joining three joints on one line to three on another line square to it. Nine bars that ought to be rigid found it moving anyway, all the way round a loop, with no bar repeating. The essays after that asked what happens when it is built. The clearance that makes the framework generic found that a framework with its joints anywhere inside a clearance ρ has no motion of its own, so its play has to carry it. The price of the other family measured what that costs at the first crossing, where the motion passes from one family of placements to another and a push past it names two placements, one on each.

It measured by bisection. For each of ten frameworks as built, and for each family, it searched for the least allowance on every bar that let the framework be pushed to 0.5 on that family, solving a nonlinear problem at every allowance tried. The prices came out proportional to ρ, blind to the errors’ sign, and different on the two families. Eight of the ten frameworks found the family they started in cheaper and two found the other one cheaper. Nothing said why, and the essay ended by asking for a first-order expansion that would.

The expansion has a closed form, and the closed form is one inner product.

Nine bars, eight coordinates, one stress

Take the exact framework at its placement on a family at a push of 0.5, and ask what a small adjustment of its joints does to its nine bar lengths. Six joints have twelve coordinates. The pins that hold it, B1B_1 fixed and the direction of B1W1B_1W_1 fixed, take three of them, and the push takes a fourth. So eight coordinates are free, and the nine bar lengths they change fill at most an eight-dimensional space of the nine.

That leaves one direction the adjustments can never reach: one combination of bar-length changes that every admissible adjustment leaves at nought. The combination’s weights are a self-stress, a set of bar forces that balance at every joint. A constraint that has been said already met the same object as the dependency among a mechanism’s constraints, the null space that the motion does not live in. Here the stress belongs to the pinned and pushed framework, one per family, and it is the whole of what the play has to pay for.

Each family carries one self-stress, and the price is how hard the errors load itDixon's framework pushed 0.5 along B₂'s line, on the family it starts in. Pinned and pushed it has eight free coordinates against nine bars, so it carries exactly one self-stress: bar forces that balance at every joint. Each bar is drawn with a width in proportion to its share of that stress, tension solid and compression dashed: B₁W₁ -0.126, B₁W₂ 0.210, B₁W₃ -0.140, B₂W₁ 0.270, B₂W₂ -0.395, B₂W₃ 0.350, B₃W₁ -0.333, B₃W₂ 0.587, B₃W₃ -0.337. A framework as built with joint errors d pays, per unit ρ, |ω·e| / Σ|ωᵢ|, where e is the bar-length error its joints make. Framework 4 pays 0.0293 on the near family and 0.0267 on the far one; framework 7 pays 0.0131 and 0.0023.B₁B₂B₃W₁W₂W₃tensioncompressionpush 0.5, near familywidth: share of the self-stress
Fig. 1 The framework pushed 0.5 on the family it starts in, each bar drawn with a width in proportion to its share of the family’s one self-stress, tension solid and compression dashed. The slider switches to the family beyond the crossing.

A framework as built has its joints moved by errors ρd\rho d, and to first order those change the nine bar lengths by a vector ρe\rho e. The play must absorb whatever of ee the adjustments cannot. The adjustments can reach every combination except the stress’s, so what is left is the single number ω⋅e\omega \cdot e, and the least largest allowance on nine bars that absorbs a single weighted sum is to share it out in proportion to the weights:

price=∣ω⋅e∣∑i∣ωi∣ ρ.\text{price} = \frac{|\omega \cdot e|}{\sum_i |\omega_i|}\,\rho.

That formula accounts for all three of the earlier essay’s findings at once. It is proportional to ρ because ee is. It is blind to sign because of the absolute value. And it differs on the two families because their stresses do.

The formula against the bisection

The formula can be checked two ways. The first is against the first-order linear program it came from: least largest bar misfit over the eight free coordinates, solved by the simplex. The two agree to 10−810^{-8} on all twenty prices, which only confirms the algebra. The second is against the bisection’s measurements, which solved the full nonlinear problem and knew nothing of stresses.

One inner product gives every price the bisection measured. For the ten frameworks as built, the allowance each bar needs to push the framework to 0.5 on each family: measured by bisection on the nonlinear problem at ρ = 10⁻³, against the self-stress formula. They agree to 0.6% at worst, over prices from 0.0019 to 0.204; the formula also equals the first-order linear program to 10⁻⁸. Framework 1: near 0.0019 against 0.0019, far 0.0071 against 0.0071; Framework 2: near 0.0723 against 0.0722, far 0.2039 against 0.2042; Framework 3: near 0.0354 against 0.0355, far 0.0961 against 0.0959; Framework 4: near 0.0293 against 0.0293, far 0.0267 against 0.0267; Framework 5: near 0.0387 against 0.0387, far 0.1210 against 0.1211; Framework 6: near 0.0112 against 0.0112, far 0.0438 against 0.0438; Framework 7: near 0.0131 against 0.0131, far 0.0023 against 0.0023; Framework 8: near 0.0595 against 0.0595, far 0.1499 against 0.1502; Framework 9: near 0.0395 against 0.0395, far 0.1433 against 0.1433; Framework 10: near 0.0872 against 0.0874, far 0.1935 against 0.1930.
Fig. 2 For the ten frameworks, the price measured by bisection at ρ = 10⁻³ on each family against the self-stress formula, per unit ρ. The dashed line is equality.

They agree to 0.6% at worst, over prices from 0.0019ρ to 0.20ρ, a hundredfold range. The smallest, framework 1 on the family it starts in, needs 0.0019ρ by both; the largest, framework 2 on the far family, needs 0.2039ρ by bisection and 0.2042ρ by the formula. The remaining differences are second-order. For framework 1 the bisection sits 0.063% above the formula at ρ = 10⁻⁴, 0.63% at 10⁻³ and 6.2% at 10⁻², tenfold for every tenfold step in the error, and the other frameworks behave the same way at smaller percentages. The bisection was measuring the formula all along, with a correction proportional to the error that the formula leaves out.

One stress serves every framework

The stress is a property of the exact framework’s placement, and not of any framework as built. It is found once per family and push, as the left null vector of the nine bar rows restricted to the eight admissible adjustments. At a push of 0.5 on the family the framework starts in, that restricted matrix has singular values from 2.02 down to 0.233 and then one at the arithmetic’s floor. So there is exactly one stress, and nothing near a second.

Every framework as built is then priced by one vector of nine numbers, its bar errors ee, and two inner products. The errors enter linearly: ee is the first-order change in the nine bar lengths when the six joints move by dd, a fixed nine-by-twelve map applied to the joint errors, plus the small shift the pins and the push make when they are read from the framework as built rather than as drawn. Nothing about the search the bisection did is needed. Where the bisection solved a nonlinear problem forty-six times per price, the formula needs one matrix-vector product and one dot product, which is what made the four thousand frameworks below cheap.

Why two frameworks prefer the far family

The preference is now a comparison of two inner products of the same error vector with two stresses. Framework 7 pays 0.0131ρ on the family it starts in and 0.0023ρ on the far one, and framework 4 pays 0.0293ρ and 0.0267ρ. For every other framework the far family is dearer, by up to nearly four times. The formula says the same for all ten, so the question of why is now a question about the stresses.

Past the crossing the stress moves off the bars to W₃ and onto the bars to W₁. The self-stress of each family at a push of 0.5, bar by bar, normalised to unit length and signed so that its largest component is positive. The family the framework starts in: B₁W₁ -0.126, B₁W₂ 0.210, B₁W₃ -0.140, B₂W₁ 0.270, B₂W₂ -0.395, B₂W₃ 0.350, B₃W₁ -0.333, B₃W₂ 0.587, B₃W₃ -0.337. The family beyond: B₁W₁ -0.182, B₁W₂ 0.207, B₁W₃ -0.064, B₂W₁ 0.390, B₂W₂ -0.390, B₂W₃ 0.160, B₃W₁ -0.482, B₃W₂ 0.579, B₃W₃ -0.154. The stress on the three bars to W₃ falls by half or more past the crossing and the stress on the three bars to W₁ rises by a third or more; a framework whose errors load the bars to W₃ prefers the far family.
Fig. 3 The two families’ self-stresses at a push of 0.5, bar by bar, each normalised to unit length and signed so that its largest component is positive.

The two stresses share their largest component, the bar B3W2B_3W_2 at 0.59 on both, and differ in where the rest sits. Past the crossing the stress on the three bars to W3W_3 falls by half or more, and the stress on the three bars to W1W_1 rises by more than a third. The crossing is where W2W_2 passes the line of the BB joints, and the two families differ only in W2W_2’s place, reflected through the crossing point, so it is the bars at the two ends of the white line whose share changes.

A framework prefers the far family when its errors load the bars to W3W_3 and spare the bars to W1W_1: then the far family’s stress, which has moved off the first, weighs its errors less. Framework 7’s errors do that nearly exactly. Its inner product with the far stress is a fifth of its inner product with the near one. Framework 4’s errors do it only slightly, and its two prices differ by a tenth.

One framework in twelve

Ten frameworks are a small sample for a preference that only two of them show. The formula costs one inner product per framework and family, so it can be run on many more.

One framework in twelve finds the far family cheaper. 4000 frameworks as built, each joint placed at random inside a disc of radius ρ as the ten were, priced on both families at a push of 0.5 by the self-stress formula. Below the diagonal the far family is cheaper: 8.0% of them. The ten frameworks measured before are ringed; two of them, 4 and 7, are below it, which a chance of one in twelve gives in about one sample of ten in five.
Fig. 4 Four thousand frameworks as built, each joint placed at random inside a disc of radius ρ as the ten were, priced on both families at a push of 0.5 by the self-stress formula. Below the diagonal the far family is cheaper. The ten measured frameworks are ringed.

Of four thousand, 8.0% find the far family cheaper: about one framework in twelve.

The share is small because the two stresses are close. Normalised to unit length they are 19.6° apart, with a cosine of 0.942, and their sizes differ by 5%: ∑∣ωi∣\sum|\omega_i| is 2.747 on the near family and 2.606 on the far one. A framework is cheaper on the far family when its error vector is nearer to square with the far stress than with the near one, allowing for that 5%, and with two stresses this close together the errors that manage it lie in a thin wedge about the plane square to the far stress. The fan below the diagonal is that wedge seen through the formula. Two of ten is what a one-in-twelve chance gives in roughly one sample of ten in five, so the earlier sample was somewhat lucky and not misleading. The cloud also shows how the prices are spread. Most frameworks sit in a band from 0.01ρ to 0.2ρ on both families, strongly correlated, because most errors load both stresses. The frameworks that find the far family much cheaper are the ones whose errors happen to be nearly orthogonal to the far stress. Their far price falls towards nought while their near price stays put, and they form the fan below the diagonal.

The price along the passage

The earlier essay measured the price along the whole passage, up to the crossing and back down the far family. That took a bisection at every push for every framework. The formula needs one stress per placement.

The price follows the stress along the whole passage. The self-stress formula along the passage for the ten frameworks: on the family they start in at pushes 0.1, 0.2, 0.3, 0.4, 0.5, 0.55, 0.58, then on the family beyond the crossing at pushes 0.58, 0.55, 0.5, 0.45, 0.4, drawn continuing to the right of the crossing at 0.591. The formula needs one stress per placement and one inner product per framework, where the bisection needed a nonlinear solve per allowance tried. The curves meet the crossing from both sides at different heights, because the two families' stresses there are not the same stress.
Fig. 5 The self-stress formula along the passage for the ten frameworks: on the family they start in up to the crossing at 0.591, solid, and on the family beyond it back down, dashed.

The curves rise towards the crossing on the near side, as the measurements did, and continue on the far side from different heights at 0.58, the last push either is drawn at. Followed the rest of the way in, they meet. A push turns back at the crossing measured the first-order price along the motion itself and found it continuous through the crossing, 0.0013ρ for framework 1 from either side. The second stress that appears at the crossing belongs to the push rather than to the framework: there the push is at a fold, stops fixing where the framework is along its motion, and leaves one more combination of bar lengths free. The play needed to go on to the far family is set by the far stress at pushes beyond the crossing, which the passage figure reads straight off.

Almost all of the error is absorbed

The formula also says how much the framework’s own freedom does for it. Its joints’ errors change the nine bar lengths by ρe\rho e, and a framework built with no adjustment at all would need play equal to the largest of those. The admissible adjustments remove every combination but one.

The adjustment the motion allows removes almost all of the error, and what it leaves is the price. The ten frameworks, per unit ρ: the largest bar-length error their joints make with no adjustment at all, the price on each family from its self-stress, and which family is cheaper. 1: 1.513, near 0.0019, far 0.0071, near; 2: 1.187, near 0.0722, far 0.2042, near; 3: 0.585, near 0.0355, far 0.0959, near; 4: 0.881, near 0.0293, far 0.0267, far; 5: 1.663, near 0.0387, far 0.1211, near; 6: 0.751, near 0.0112, far 0.0438, near; 7: 0.829, near 0.0131, far 0.0023, far; 8: 0.831, near 0.0595, far 0.1502, near; 9: 1.226, near 0.0395, far 0.1433, near; 10: 1.527, near 0.0874, far 0.1930, near. The unadjusted error is fourteen to eight hundred times the price: the joints' first-order freedom absorbs everything but the one combination the family's stress refuses.
Fig. 6 The ten frameworks, per unit ρ: the largest bar-length error their joints make with no adjustment, the price on each family from its self-stress, and the family that is cheaper.

The largest unadjusted bar error runs from 0.59ρ to 1.66ρ across the ten, and the price on the family they start in from 0.0019ρ to 0.087ρ: fourteen to eight hundred times less. The right angle as a tolerance and a length error is undone by its own size found an overconstrained linkage’s play doing far less work than its errors suggested. The stress says exactly how much less: everything except the component along one vector of nine numbers.

The joints worth placing well

Because the price is linear in the joint errors before the absolute value is taken, each joint has a weight: what a unit error at that joint costs, per unit ρ, in the worst direction. On the family the framework starts in the weights are 0.022 at B1B_1, 0.065 at B2B_2, 0.043 at B3B_3, 0.018 at W1W_1, 0.033 at W2W_2 and 0.015 at W3W_3. The pushed joint, B2B_2, is the one whose misplacement costs most, four times what W3W_3’s does.

On the far family the weights of the three joints on the black line nearly treble — 0.058, 0.173 and 0.115 — while W1W_1 and W2W_2 stay about where they were and W3W_3 halves to 0.007. That is the stress moving off the bars to W3W_3, seen from the joints. It is also why the far family is usually dearer. A random framework’s errors are as large at the black joints as at the white ones, and the far family weighs the black joints nearly three times as heavily.

So a builder who can place some joints more carefully than others should spend the care on B2B_2 and then B3B_3. Over a thousand random frameworks, holding those two to a tenth of the others’ error halves the average price on the family the framework starts in, from 0.037ρ to 0.019ρ, and cuts the far family’s by two thirds, from 0.090ρ to 0.031ρ. The same care spent on W3W_3 moves neither average by as much as 2%. The joints are not equal, and the stress says in advance which ones are not.

What a designer can do with it

The formula shares the play among nine bars in proportion to the stress, because that is what minimises the largest allowance when every bar has the same clearance. A designer need not give every bar the same clearance. The same condition, carried by one bar alone, needs ∣ω⋅e∣/∣ωk∣|\omega \cdot e| / |\omega_k| on that bar and nothing on the rest. For framework 4 on the family it starts in, that is 0.137ρ if the play is put in B3W2B_3W_2, the bar with the largest share of the stress. Put in B1W1B_1W_1, the smallest, it is 0.64ρ. So one adjustable bar can carry the framework through its crossing at under five times the play nine bars would each need, if it is the right bar, and why a hinge works is the same trade made with three knuckles instead of one.

The same structure appeared on a different mechanism in the slide five poses almost have. There, five poses and four slide parameters left one condition, and the best compromise shared a single obstruction among five residuals in proportion to its weights. Here nine bars and eight coordinates leave one condition, and the play shares it among nine bars. In both, a count that comes out one short turns a search into an inner product.

What the stress does not settle

First order. The formula is the price to first order in ρ. The bisection’s measurements at ρ = 10⁻³ agree to 0.6%, and at larger errors the second-order terms will grow. A clearance of a hundredth of the framework’s size is at the edge of where the formula has been checked.

Near the crossing. At the crossing itself there are two stresses, not one, and the formula for a single family breaks down within a small neighbourhood of it. The passage figure stops at 0.58 on both sides for that reason, and the price exactly at the crossing is a different calculation.

One distribution of errors. The one framework in twelve is for joint errors spread uniformly over a disc at every joint. A process that misplaces joints in a preferred direction, or misplaces some joints more than others, loads the two stresses differently, and the share could be larger or smaller. The joint weights above say which way it would move.

The other three crossings. The loop has four crossings, each a joint of one line passing through the other. Each will have its own pair of stresses and its own preference, and this essay computes only the first.

How the framework chooses. The formula prices each family and says nothing about which one a framework actually goes to. That depends on how it is driven through the crossing, and is the open question below.

Still open: which stress the push loads

With play enough for both families, the kinematics leaves the choice to whatever drives the framework, and the natural driver is a push on B2B_2 with friction in the joints. The formula now says what that driver is choosing between. On each family, the play is used up along that family’s stress, so a push through the crossing is loading one stress or the other.

The distinct argument there would be whether the push loads the stress of the family it arrives in or the one it leaves. A push along B2B_2’s line does work on the bars through their stress, and friction in each joint resists motion within its clearance. The measurement would drive the ten frameworks through the crossing in small steps with a minimum-effort rule for using the play. It would record the family each ends in and compare that with the family the formula says is cheaper. If the two agree, a framework as built goes wherever its play is cheapest. If they do not, the driver is choosing something other than cost, and the stress says what.

What this makes readable

Essays that name this one as a prerequisite.

About the same objects

Not linked from either essay — found by the objects both name.

What links here

Essays that link to this one from their own argument.

The objects this essay names

Each one links to every other essay that touches it.

ClearanceOverconstraintRankSelf-stressSingular valueTolerance