Posts: 20

Threads: 7

Joined: Mar 2018

06-21-2018, 12:49 AM
(This post was last modified: 07-12-2018, 01:17 AM by hannsx.
*Edit Reason: RESOLVED*
)
Hi,

I tried to find a direct answer on how the commutation is fine tuned for values between the 2048 resolution.

Are these values of the table entries just interpolated linearly to give a precise approximation beforehand or is it left to the current loop algorithm to do the fine tuning based on the position error correction afterwards,

best regards,

hannsx

Posts: 70

Threads: 5

Joined: Aug 2009

(06-21-2018, 12:49 AM)hannsx Wrote: Hi,

I tried to find a direct answer on how the commutation is fine tuned for values between the 2048 resolution.

Are these values of the table entries just interpolated linearly to give a precise approximation beforehand or is it left to the current loop algorithm to do the fine tuning based on the position error correction afterwards,

best regards,

hannsx

If you are asking about trig functions, then yes they are based on a 2048 point interpolated look-up table. Not sure if the lookup is linear or 3rd order spline but I believe it is spline. I recall seeing a detailed paper on this subject many years back when PPMAC was first released, comparing it against the 256 point table in PMAC. Not sure if that literature is still available.

I do not know the internal code for the current loops but the algorithm may call the trig functions therefore making use of the interpolation of the lookup table. It is also possible that interpolation is not used at all and the 'raw' 2*pi/2048 resolution is considered acceptable while offering faster results for current loop closure. If you are wanting to write your own algorithm, this is a trade off to be considered.

ex: Sin(2*pi/2048) = .003068 Does a commutation calculation need to be better than that?

Perhaps 2048 was chosen for this reason (???)

Commutation is not based on position error, rather it is a function of absolute position (electrical position).

While the magnitude of current command is driven (in part) by position error, the current loops themselves are not a function of position error. Simple command minus measured feedback from amplifier output phase sensors.

Posts: 562

Threads: 0

Joined: Jun 2008

Actually, we don't do any interpolation between the 2048 table points, just rounding to the nearest point. Here's why:

The torque per unit current is proportional to the cosine of the commutation angle error. With the commutation cycle size of 2048 points, the lack of interpolation can result in an angle error of (360/4096) degrees. The cosine of (360/4096) = 0.9999988. So this simplification results in a potential torque error of about 1 part in a million, which of course is completely trivial in a real-world system.

As mbalentine points out, this issue is different from the servo resolution. It is nice to have very high servo resolution, which then permits finer control of the current magnitude into the phase commutation algorithm.

Posts: 20

Threads: 7

Joined: Mar 2018

06-26-2018, 11:42 PM
(This post was last modified: 07-12-2018, 01:15 AM by hannsx.)
Hi, thanks for the answers. I think I confused the function of the commutation and the function of the servo algorithm - but now it seems clear to me.

Posts: 20

Threads: 7

Joined: Mar 2018

I read this white paper which touched upon the issue of commutation resolution

http://www.deltatau.com/Common/support/w...hining.pdf
Maybe this is what you refered to

Posts: 70

Threads: 5

Joined: Aug 2009

There is a wealth of info like this from ODT that will truly give you an education in motion control from the best technical people around.

Having some of the very best expertise in motion, the manuals and literature are generally thorough yet readable, not an easy thing to do.

Posts: 20

Threads: 7

Joined: Mar 2018

06-27-2018, 11:55 PM
(This post was last modified: 06-28-2018, 12:20 AM by hannsx.)
that sounds good, do you refer to the resources available on youtube and the file depot?