Jump to content
OMRON Forums

RESOLVED - General question about commutation


hannsx

Recommended Posts

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

Link to comment
Share on other sites

  • Replies 6
  • Created
  • Last Reply

Top Posters In This Topic

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.

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.

×
×
  • Create New...