Every length wrong, every reading right
Assumes The direction no protractor can see.
The setup is deliberately unremarkable. Take the site’s four-bar, build it two per cent long on the crank, three per cent long on the coupler and one per cent short on the rocker. Read the output angle at thirty crank positions. Hand the readings to a Gauss–Newton fit started from the nominal dimensions and let it run.
It converges in six steps. The sum of squared residuals falls from 7 × 10⁻³ to 9 × 10⁻³², which is the solver’s own floor. Every one of the thirty readings is reproduced to 1.8 × 10⁻¹⁶ radians.
Here is what it returns.
as built g 4.00000 a 1.02000 b 3.60500 c 2.97000
identified g 3.96916 a 1.01214 b 3.57720 c 2.94710
One factor, four lengths
Divide each identified length by the corresponding built one.
3.96916 / 4.00000 = 0.9922894
1.01214 / 1.02000 = 0.9922894
3.57720 / 3.60500 = 0.9922894
2.94710 / 2.97000 = 0.9922894
The same number, to every digit either side can carry. The measured departure from a single common factor, taken over all four, is under 10⁻¹⁵.
The fit has returned the machine that was measured, scaled by 0.9922894. Not a machine near it, not four numbers each a little wrong in its own way: the truth, times a constant.
Why it had to
This is the null space showing up in the place where it matters.
The output angle depends only on the ratios of the lengths, so the least-squares objective is exactly constant along the scale ray through any point. The fit’s job is to reach the bottom of a valley; here the bottom of the valley is a whole line, and every point on it fits every reading exactly.
So the fit reaches the line — that is what the residual of 1.8 × 10⁻¹⁶ says — and then it stops somewhere on it. Which point it stops at is decided by the damping, which prefers small steps, so it stops at roughly the nearest point of the line to where it started. The size that comes back is a fact about the starting guess.
Start the same fit from a nominal machine ten per cent bigger and it returns the truth times a different constant, fitting the same readings just as exactly. Nothing about the data prefers one over the other.
The shape is exact
The other half of the result, and the half worth reporting.
Compute Freudenstein’s three invariants of the identified machine and of the truth, and take the distance between them: 6.3 × 10⁻¹⁶.
That is the fit succeeding completely at the thing it can do. The three recoverable parameters are recovered to the arithmetic’s floor. The Grashof class comes back right — both machines are crank rockers. The transmission angle through the turn comes back right, the velocity ratio comes back right, the coupler curve’s shape comes back right up to similarity.
Three of the four numbers printed are perfect and the fourth is a starting guess, and printed side by side in the same units there is nothing to tell them apart.
The Grashof class comes back, and that is not nothing
Before the complaint, the achievement, because a reader could take this essay as saying the calibration failed and it did not.
Grashof’s classification is a comparison of sums of lengths, so it survives scaling, so it is one of the things the three invariants determine. Both machines — the built one and the identified one — are crank rockers, with the crank as the shortest link and s + l comfortably under p + q.
That matters more than it sounds. The Grashof class decides whether the input can be driven by a motor at all, where the dead centres fall, which inversions exist and what the mechanism is for. It is the first question anybody asks about a four-bar and this calibration answers it with certainty.
So does every other question that is a ratio: the transmission angle at each position, the velocity ratio, the time ratio between the forward and return strokes, the coupler curve’s shape. The survey of which of this site’s numbers survive a scaling is long and the useful part of it is nearly all on the surviving side. A designer handed this calibration knows almost everything they wanted to know.
What they do not know is how big it is, and that is one measurement away with a rule.
What a report should say
The honest output of this calibration is not four lengths. It is:
The machine’s shape is K₁ = 3.9216, K₂ = 1.3468, K₃ = 2.2646, measured. Its size was not measured; the figures below assume the nominal ground length of 4.
That is three measurements and one stated assumption, and it is exactly what the data supports. It is also a smaller-looking result than four confident numbers, which is why it is not what gets written.
The failure it prevents is downstream and specific. Four numbers presented as measured get used as measured — in a stack-up against a housing, in an interference check, in a tolerance study. Every one of those cares about a size. Three of the four numbers carry a measurement and the fourth carries whatever the nominal model said, and after the report is written nothing distinguishes them.
Six steps, and what each one does
The convergence is worth walking through, because the shape of it is what a practitioner reads and it is entirely reassuring.
The starting sum of squares is 7.0 × 10⁻³, which is the nominal machine disagreeing with the built one’s readings by about fifteen milliradians on average. Step one takes it to 2.4 × 10⁻⁵, step two to 1.1 × 10⁻⁹, step three to 3 × 10⁻¹⁸, and the remaining steps sit at the floor.
Two orders, then four, then nine. That acceleration is the signature of a Gauss–Newton method on a problem where the Jacobian has full rank on the directions it is allowed to move in — the convergence is quadratic once the answer is close, and quadratic convergence looks like the number of correct digits doubling each step.
So the shape of the descent is evidence that the problem is well posed on three of its four directions, and it is silent about the fourth. That silence is exact rather than approximate: the objective does not vary along the fourth direction at all, so the descent has nothing to say about it, and a reader watching the residual fall has no way to notice that a whole dimension is not participating.
An experiment that makes it obvious
The cleanest way to see the family is to run the same fit from several starting points and compare the answers.
Start from the nominal machine and the answer is the truth times 0.99229. Start from a machine twenty per cent larger and the answer is the truth times 1.1900. Start from one half the size and the answer is the truth times 0.5031. Every one of them reproduces the same thirty readings to the same 10⁻¹⁶.
Plotted in the four-dimensional space of lengths, those answers lie on a straight line through the origin, and the truth is on it. Plotted in the three coordinates a protractor can read, they are one point.
Repeating a fit from different starts is the cheapest detector of a flat direction there is, and it needs no linear algebra at all. It is not a substitute for computing the rank — it finds only the directions the starts happened to differ along — and as a five-minute sanity check on an unfamiliar model it is hard to beat.
The residual says nothing about it
The most uncomfortable part of this result is what the diagnostics do.
A residual of 1.8 × 10⁻¹⁶ radians is as good as a residual gets. A practitioner seeing it concludes that the model is right, the data is clean and the fit has converged, and all three conclusions are correct. None of them is evidence that the four numbers mean anything.
The convergence is clean too: six steps, monotone decrease, the last two steps quadratic. A slow or erratic convergence would have been a signal and there is not one.
Every ordinary diagnostic passes. The only thing that says the answer is a one-parameter family is the rank of the identification Jacobian, which is not part of a fit and is not computed unless somebody asks for it. That is the argument for computing it: it is the one number in the whole procedure that can detect this failure, and it costs one decomposition of a matrix with four columns.
The damping is doing more than it looks
Worth being precise about, because the damping is usually thought of as a numerical convenience.
An undamped Gauss–Newton step solves (MᵀM) δ = −Mᵀr. Along the null direction MᵀM is singular, so the step is infinite — the objective is flat, the method sees no reason not to go a long way, and the answer runs off. Every practical implementation adds λI to keep the system invertible.
What that does is turn find the minimum into find the nearest point of the minimum set to the current estimate, and the second problem has a unique answer. So damping is not merely making the arithmetic work. It is choosing which member of the scale family to report, and it chooses the one nearest the starting guess.
That is a defensible choice and it is a choice. A different regulariser — one that penalises departure from a measured perimeter, say, or that fixes the ground length outright — would return a different member and be equally consistent with the data. The one thing no regulariser can do is find the right member, because the data does not contain it.
What it looks like when the model is only nearly flat
The four-bar’s flat direction is exactly flat, which makes the demonstration clean. Most unidentifiable directions in practice are nearly flat rather than exactly, and the behaviour is worse rather than better.
A direction with a singular value of 10⁻⁴ of the largest is not in the null space and is not recoverable either. The objective along it is a very shallow valley rather than a level line, so the fit does move along it — towards whatever the noise happens to favour — and stops somewhere determined by a competition between the damping and the noise.
The result is a parameter that moves around between repeated calibrations of the same machine, by amounts far larger than the readings’ precision would suggest, with a residual that looks fine every time. That is the practical face of poor conditioning and it is why the smallest singular value belongs in the report rather than in a methods appendix.
The exactly-flat case is the merciful one: at least it does not pretend to move.
What the fit was allowed to move
Worth being explicit about the setup, because a reader might suspect the result is an artefact of how the problem was posed.
The fit was given all four lengths as free parameters. It was started at the nominal values, damped with a Levenberg term that begins at 10⁻⁸ and shrinks whenever a step improves the objective, and stopped when the largest parameter step fell below 10⁻¹³. Nothing about the scale direction was special-cased and the routine does not know it exists.
That is deliberate. A routine that detected the flat direction and refused to move along it would produce a better answer and would not demonstrate anything — the point is what an ordinary fit does with an ordinary problem, and an ordinary fit does this.
The one thing that would change the result is a different regulariser, and changing it changes only which member of the family comes back. No regulariser recovers the size, because the size is not in the data; regularisers differ in which wrong size they prefer.
Fixing a parameter, and what it claims
The obvious repair is to hold one length fixed and fit the other three. It works, it is what most implementations do, and it has a claim buried in it.
Fix the ground length at 4 and the fit returns a = 1.0201, b = 3.6055, c = 2.9702 — the truth to four figures. The scale ambiguity is gone because the scale was supplied.
But supplied is the operative word. Holding g at 4 asserts that the machine’s ground length is 4, and if it is 4.02 the fit absorbs the difference into the other three: they come back as the truth times 4/4.02, and every diagnostic still passes. The failure has not been removed, it has been renamed — from the size is arbitrary to the size is whatever was asserted — and the second is more dangerous because it looks like a measurement.
The version that is honest is to fix the ground length at a value that was measured, with a rule, and to say so. One reading with a length in it, from any instrument, at any time, resolves the whole thing — and the essay on instruments is about how cheap that reading is.
Why 0.99229 and not 1
A small question with an informative answer: if the damping prefers to stay near the start, and the start is the nominal machine, why does the fit end up 0.77% smaller rather than at the nominal size?
Because near the start is measured in all four coordinates at once, not along the scale ray. The fit has to move a long way in the three shape directions — the truth’s coupler is three per cent long and its rocker one per cent short — and the shortest path from the nominal point to the scale ray through the truth does not arrive at the point of that ray nearest the nominal size.
So the factor is a geometric accident of where the start was and where the truth’s ray is. Change the start’s shape while keeping its size and the factor moves; change the damping schedule and it moves a little too.
A number that changes when the damping schedule changes is not a measurement, and that is the sharpest way to say what is wrong with printing it. The three invariants do not move under either change, to fifteen figures, and that is the sharpest way to say what is right about printing those.
The same failure with the tracing point watched
For completeness, the arrangement where none of this happens.
Watch the tracing point with a coordinate machine instead of watching the output link with a protractor, fit six parameters — four lengths and the two that say where the tracer sits — and there is no flat direction. The fit returns the truth’s six numbers, all of them, with no common factor and nothing arbitrary.
It also returns them at a condition number of 162 rather than 5.2, so the numbers are considerably more sensitive to the instrument’s error. That is the trade this field keeps finding: the measurement that recovers more recovers each thing less well, and which is preferable depends on whether the size was wanted.
The arrangement that is best on both counts is both instruments together — six parameters at 26 — and it is the one that would occur to nobody, because the protractor looks redundant once the coordinate machine is there.
The general statement
Nothing above is about four-bars.
A least-squares fit whose objective has a flat direction returns an answer on a manifold, and which point of the manifold it returns is decided by the regulariser rather than by the data. Every diagnostic a fit produces — residual, convergence rate, iteration count — is a statement about reaching the manifold and none of them is a statement about where on it the answer landed.
The only instrument that detects the situation is the rank of the Jacobian at the answer. It is cheap, it is not part of any standard fitting routine, and its absence is why this failure is common enough to be worth a whole essay.
What this makes readable
Essays that name this one as a prerequisite.
- The instrument's error, multiplied Numbers that were measured
About the same objects
Not linked from either essay — found by the objects both name.
- A calibration is a synthesis with more equations calibration · freudenstein invariants · identification jacobian · least-squares · measurement residual
- A dimension is a measurement calibration · identification jacobian · least-squares · measurement residual · unidentifiable direction
- The matrix a calibration inverts calibration · identification jacobian · least-squares · measurement residual
- The pose the machine cannot reach calibration · grashof's condition · identification jacobian · measurement residual
- How many poses are enough calibration · identification jacobian · least-squares
- Nine parameters, two of them invisible identification jacobian · scale invariance · unidentifiable direction
What links here
The 8 of 14 essays linking to this one that name the most of the same objects.
- A machine that measures itself Numbers that were measured
- A parameter the model has not got Numbers that were measured
- Reading a residual Numbers that were measured
- Six things a measurement cannot tell you Drawn wrongly
- The direction no protractor can see Numbers that were measured
- The instrument's error, multiplied Numbers that were measured
- Grashof is a shape test Linkages
- Three machines, one curve Numbers that were measured
The objects this essay names
Each one links to every other essay that touches it.
CalibrationFreudenstein invariantsGrashof's conditionIdentification jacobianLeast-squaresMeasurement residualScale invarianceUnidentifiable direction