Jump to content
OMRON Forums

input shaping


colinleer
 Share

Recommended Posts

Does Power PMAC have any built-in input shaping capability?

e.g. I have a significant mechanical resonance in my system that I'd like to compensate for. 

or, is there a mechanism for computing my own trajectory and using that in the servo command loop, versus the in-built move mode trajectory interpolation 

 

Link to comment
Share on other sites

We have a tool to remove vibration called a Trajectory Pre-Filter, sometimes referred to as vibration suppression. We used to have a demo where a linear motor had a block and spring on top. When vibration suppression was enabled, the block did not vibrate.

Typically either a Low-pass or notch filter would be used. I would recommend to start with a Low-pass.

The concept is discussed in the Power PMAC Users Manual and the tool to implement the filter in interactive position loop tuning.

image.png.6789aff4f1802e2e6575b7b81273198a.png
image.png.3df402ef67b4d7cb66e4d61bfab82c9b.png

 

There is also a way to use MATLAB to generate a trajectory, but it's much more complicated and I don't know if it would have input shaping functionality.

Link to comment
Share on other sites

Hi Eric, 

Thank you for the feedback, I will definitely look into the pre-filter tool. 

To follow up on the trajectory calculation, suppose I had computed my own trajectory offline and had an array of position targets per servo cycle...is it possible to send this to PMAC to execute?

Link to comment
Share on other sites

  • 2 weeks later...

This is possible. You could servo the motor to a position of zero and then write a position to Motor[1].MasterPos every servo cycle. There will be a delay of one servo cycle.

I am including training slides on position following. Not everything applies when just writing to MasterPos directly. Offset/normal following mode applies, as well as the speed and acceleration limit features on the last slide.

It would be best to do this from a custom servo routine attached to Motor 0 (written in C, pshm->Motor[x].MasterPos=Value;). 

  • Like 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...