Hi all, I have to admit that I've not read the rest of the discussion, so please excuse if that has already been said.
On 03.04.2016 19:09, Mark wrote: > On 04/03/2016 12:41 PM, Jon Elson wrote: >> On 04/03/2016 09:46 AM, Mark wrote: >>> That's why in this theoretical discussion I asked to >>> disregard the actual machine accuracy and presume you had >>> the so-called perfect machine. What I was looking for was >>> how precise/accurate/resolute the controller would be. >> But, there is no "perfect machine". All machines have some >> system for measuring position, whether stepper motors or >> encoders. These MUST have some fixed resolution that can be >> either moved to (stepper) or measured (encoders). While >> there are physical positions that exist BETWEEN these >> resolved points, they cannot be moved to by the motion >> control hardware. So, all machines have a lower limit to >> positional resolution. In practically ALL cases, this is >> much coarser than the numerical resolution used in LinuxCNC. Floating-point numbers have a huge range due to the floating-point nature, but the dynamic range is limited. The mantissa of an IEEE 754 double-precision float (8 bytes) has a width of 52 bits (not counting the sign). This gives 52/log2(10)=15.7 decimal digits of accuracy. For linear systems, this will almost never be a problem. Even if a machine has a travel range of 1km, the position can still be resolved down to approx. 222fm, which is something like 1/1000th of the diameter of an average atom. BUT: Problems may arise if the travel range is not effectively limited, as is the case with rotative systems. So if using a double to measure the angle of some high-speed drive shaft without wrapping (I.e. the first revolution gives 360deg, the second 720deg, etc.), then it may be possible to actually hit the accuracy limit of the double. Running this shaft at 50000rpm in the same direction with an angular resolution of 16 bit (approx. 0.005deg) will cause a degradation of accuracy after 954 days or about 2.5 years of continuous runtime. This is most likely still far more than any such system will be able to continously run, but it's not some insanely large figure which will never ever be reached. And: Should the value ever be converted to single-precision floating-point (like on a microcontroller instead of an x86 PC), the mantissa is only 23 bits, reducing this dynamic range by 29 bits or a factor of about 500M. So the system above will suffer of degraded accuracy after only 154 milliseconds. That being said, I personally very seldomly care about the precision of a double when it comes to representing physical quantities. They are usually just good enough. Cheers, Philipp
signature.asc
Description: OpenPGP digital signature
------------------------------------------------------------------------------ Transform Data into Opportunity. Accelerate data analysis in your applications with Intel Data Analytics Acceleration Library. Click to learn more. http://pubads.g.doubleclick.net/gampad/clk?id=278785471&iu=/4140
_______________________________________________ Emc-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/emc-users
