You are here:
Print

The motor vibrations after the motion is completed are the caused by the tuning of the position controller which is too aggressive (the proportional part and derivative part are too high).

In order to stop this vibration usually is recommended to re-tune again the drive/motor. If the application requires a fast respond , achieved with the position controller parameters that caused the oscillations then the following options are available:

1) Change the position controller parameters on the fly

This means that in the TML program the the proportional part and/or derivative part are changed (decreased) after the motion completed event so that the motor doesn’t vibrate anymore. When a new motion profile is started the parameters are switched to the initial values.

The position controller parameters (Kp, Ki and Kd)following can be changed with the following TML parameters:

KPP – proportional part coefficient
SFTKPP – the shift for the proportional part
KIP – integral part coef
SFTKIP – the shift for the integral part
KDP – derivative part coef
SFTKDP – the shift of the derivative part.

The Kxx parameters are integer type variables and can have only positive values [0…32767] while the SFTKxx can only have values from [0…13].

In order to detect the proper set of parameters for standing still, the fastest way is to use the command interpreter (“View | Command interpreter”) and first request the actual values of the parameters using the “?” command
(e.g. type in “?SFTKDP;” and the drive will answer with the value of the SFTKDP parameter) and then start to change them (e.g. type in “SFTKDP = 4;”) until you get the desired result.

At the end of this procedure 2 sets of parameters should be obtained in TML format – the one for movement and one for standstill. The ParametersChange application included in the project archive attached to this article shows how to change on the fly the parameters of the position controller.

2. Use the “freeze control” ability of the drives

This means that when the motor position enters a certain position band (related to the position command) the drive can disable the controller and maintain the last motor position. In other words, let’s say that you’ve imposed a motor position of 10 rot, and define a position band of 0.1rot (and a time of 0.1sec). When the motor reaches the imposed 10 rot with a ± 0.1rot precision and remains in that band for at least 0.1sec, then the drive can then disable the controllers and maintain the last position.

Please note, that while you can use both options in the same time, their effects on motor vibration are not cumulative.

A TML project example is attached to this article and it can be downloaded with the link below. The project contains 2 applications which show the implementation of the proposed options.

Remark: In order to use the attached application follow the next steps:
1) Download the  “Standstill_Oscillations_Example.m.zip” archive on the PC;
2) Open the EasyMotion Studio
3) Restore the project with Project | Restore menu command.

“Standstill_Oscillations_Example.m.zip”
Previous How to scale the analog reference to a 32-bit position reference
Next How you can achieve lower speeds