I've often wondered why iterations are required. If SNR is sufficient you should be able to compute exact location and best approximations in standard size weights immediately. If SNR is not sufficient, why would the result improve on second iteration. Only explanation that makes any sense to me is nonlinearity in the sensors, which should be possible to eliminate, possibly with software only if the data can be captured before any mixing occurs. Maybe the non-linearity is saturation due to inadequate dynamic range. Back in the day of expensive A/D converters that might have made sense, but now that high resolution A/D is both fast and cheap that should not be an issue.
Good questions.
So in general, you want to have the highest possible shaft RPM, because this will generate the strongest vibration forces. However, if the shaft spins too fast, then the springy shaft and wheel assembly's resonant vibration mode can be excited. Therefore, to avoid carnage, we want to stay somewhat below the shaft and wheel assembly's first resonant peak.
On the Mk1 balancer, the first whipping resonance is probably a little above 1000 RPM. So I think our 500 RPM DC gearmotor was a good choice. The pros want low RPM, to reduce the acceleration/deceleration times. But the cycle time was a non-consideration for this design.
Then, I thought that at maximum RPM, the load cells should be sized so that the typical smallest imbalance we would want to measure would generate a near full-scale output, for the best possible SNR. So we bought 3.4 lbf load cells.
Now, to avoid overloading the sensitive 3.4 lbf load cells with heavily imbalanced wheels, then the RPM would have to be reduced.
The idea was to slowly turn up the RPM until you reached full-scale on the load cells, then balance what you can. On the second iteration, with the partially balanced wheel, you should need to set the RPM higher than last time to hit full-scale vibration on the load cells. Eventually, you would balance the wheel well enough to reach maximum RPM without a load cell overload.
In practice, the sensitive 3.4 lbf load cells that were supposed to have a stellar SNR due to their sensitivity were a complete failure. The bottleneck in the system is not the load cells, not in the instrumentation amplifiers; neither is the 10-bit microcontroller ADC the limiting factor here.
The primary issue is the mechanical friction hysteresis in the link system. With about 50 lbs of wheel weight hanging from the end of the shaft, it can take a fraction of a pound to move the shaft supports (in grey) before the load cells will see any of the vibration force.
As a side note, because the load cells measure compression only, the load cells need to be DC-biased to 1.7 lbf with adjustable preload springs, because the vibration is an AC signal. This 1.7 lbf DC-biasing thing is finicky and largely swamped by the friction hysteresis, which is really a major PITA.
I can't do much about the mechanical friction hysteresis, but I can give the Mk2 balancer 10 lbf load cells. So the idea is that for a given amount of imbalance, the RPM would have to be higher to generate full-scale vibrations on the load cells. So now that the vibration forces will be 3x stronger (except for the very last iterations), the vibrations should dominate over the friction hysteresis, thus improving the overall system SNR... Faster convergence with fewer iterations is the hope here! And less pain with the DC biasing...
The Mk1 also has a mechanical resonance issue. Essentially, it has two shaft supports, each support supported by 5 links. The 6th DOF is restrained by the load cell. Each shaft support contains a double-row self-aligning bearing, which must act as a perfect frictionless ball-and-socket joint if the vibration force equilibrium equations are to be solved.
What happens during operation above 350 RPM is that the shaft moves around within the play that is present in the bearings. So, we get a resonance at that speed, and we can't even run the machine to its 500 RPM maximum design speed. The cure for looseness in bearings is to preload them. But, in this case, if we preload the double-row self-aligning bearings, they cease to be remotely similar to frictionless ball-and-socket joints, so that's a non-starter.
In addition to the 10 lbf load cells, the Mk2 will use a 4-link system which holds an all-moving spring-preloaded assembly. Now, bog-standard 6207-ZZ bearings with a tight spring preload (to take up the slack in the bearings) can be used. With this topology, any binding that happens in the bearings is internal to the all-moving assembly, so the load cells won't care.