Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
How to eliminate noise and vibrations?

I am dealing with "fine tuning" of motors. There are two motors in gantry (position following) mode. When motors are in position, I see that velocity and following error values of the motors are still being changed ( see attached link:

Motors defined as:


Here are parameters:
// Motor 1 (X1a)
// Driver: MDDKT3420

Motor[1].ServoCtrl = 1;
Motor[1].DacShift = 0

Motor[1].Servo.Kp = 37
Motor[1].Servo.Kvfb = 3500
Motor[1].Servo.Kvff = 3700
Motor[1].Servo.Kaff = 40000
Motor[1].Servo.Ki = 0.02

// Motor 2 (X1b)
// Driver: MDDKT3420

Motor[2].CmdMotor = 1 //leader id
Motor[2].ServoCtrl = 8 //follower
Motor[2].GantrySlewRate = 1
Motor[2].DacShift = Motor[1].DacShift

Motor[2].Servo.Kp = Motor[1].Servo.Kp
Motor[2].Servo.Kvfb = Motor[1].Servo.Kvfb
Motor[2].Servo.Kvff = Motor[1].Servo.Kvff
Motor[2].Servo.Kaff = Motor[1].Servo.Kaff
Motor[2].Servo.Ki = Motor[1].Servo.Ki

Please, advise. Thank you in advance.
How did you initially tune these motors?
I tuned motors using Position loop Interactive Tuning window.
Initially, the motors were tuned with Panasonic software by our control engineer.
I have attached final plot of parabolic move.

Attached Files Image(s)
Why does this motor need tuning outside of PMAC?

You probably should describe your system setup in more detail.
This is just a guess since you have said very little about your system, but if the Panasonic drive is closing the servo loop AND PMAC is trying to close the servo loop also, you will have problems.

Try running the Panasonic in torque mode (if that is available? What kind of drive is it exactly?) and doing all the servo control from PMAC.
It is not clear from your post - is there a problem while moving, or only when in position? Is there an audible noise during the parabolic move? Since the speed is so slow, and the following error is so small, I would tend to say your parabolic plot does not look all that bad. The granularity in the plot is a result of the scale.
Gantries can be tricky, especially if very rigid. The Ki gains for the two motors can fight each other, resulting in positional instability when it should be at rest. I would try setting your follower motor's Ki=0. I would also try setting the leader motor's .SwZvInt=1, which disables the integral gain when desired velocity!=0.
Also - if motor #2 is your gantry follower, you should give it a null definition in your coordinate system (#2->0).
The problem happens when motors are in position. The noise is very audible all the way.
I will change parameters and let you know.

the stupid question - how do we know that motor is in position? I know, there is a flag Motor[X].InPos, but what laying behind this?
When I do a simple move, I see it signaled (TRUE) in Status window. But what happens if I run rotary buffer with 10 motors?
Does the controller wait for same flag of each motor or there is an additional flag?
Typically (and by default) PMAC does not do anything other than set the bit for use in PLC monitoring based on the following:
The motor must be in closed-loop control;
The motor desired velocity must be zero;
The motor must not be executing any move or dwell of definite time (move timer is not active);
The magnitude of the following error must be less than or equal to Motor[x].InPosBand

Check the definition of Coord[x].InPosTimeout for details on the automatic use of in-position in the CS.

Forum Jump:

Users browsing this thread: 1 Guest(s)