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

Attachment: 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

Reply via email to