Tuning position controller

From Granite Devices Knowledge Wiki
Revision as of 09:51, 29 June 2015 by Tero K (Talk | contribs)


Jump to: navigation, search

Position controller tuning means finding the correct drive settings and feedback gain values to achieve a proper Servo stiffness and response to a position setpoint change.

Position control tuning method

This article describes a practical approach for finding proper drive parameters to achieve a stable and stiff position control.

Preparations

An example of Testing tab settings for position controller tuning. Different settings should be experimented during the process to observe the stability and behavior of the settings.

Steps to do to begin position tuning:

  • Ensure that motor is parameterized correctly and working and torque control tuning has been properly done.
  • Attach motor to the target machine in a position where it can rotate in both directions
  • Make following parameter changes to Granity and click apply afterwards:
    • Set drive in position control mode CM
    • Choose Serial only setpoint input CM
    • Make other necessary adjustments to have drive powered and enabled
    • Untick Setpoint smoothing CIS
    • Set Goals tab DIV and MUL to 50
    • Set acceleration CAL & velocity CVL limits reasonably to the levels that motor is expected to handle
  • Set-up the test stimulus and capture settings from Testing tab (an example, may be varied):
    • Set target setpoint 1 TSP1 to 100
    • Set delay 1 TSD1 to 0.25 seconds
    • Set target setpoint 2 TSP2 to -100
    • Set delay1 STD2 to 0.25 s
    • Choose sample rate TSR of 500 to 2500 Hz
    • Choose Capture setpoint change in positive direction from the dropdown
    • Tick Continuously repeating capture
    • Tick Position setpoint and Position achieved from signals
    • Tick Start capture to begin continous capture.
    • Tick Enable test stimulus TSE to begin a continuous position back and forth motion generation

Once the steps above are done, motor should be generating short distance back and forth motion motion and position response graphs should appear on the right side of Granity about once in 3-5 seconds.

Finding velocity & position control gain values


The task here is to adjust the MR and ML parameters to achieve near optimum step response for the torque controller. Observe the images below for guidance.

Posgains1.png

The image above represents the initial position step response with low feedback gains. As seen, motor reaction is sluggish, lagging and has overshooting.

Posgains2.png

The next step is to increase KVP gain as much as possible. The graph may start looking acceptable but it motor still has low stiffness thus it will get lag once mechanical load increases.

To try different gains, go to Tuning tab, change value and click the Apply settings button.

Posgains3.png

When KVP has been increased too much, the system becomes unstable and may start oscillating. In such case, you may hit Esc button to disable drive, reduce the gain and enable drive again.

Tip: torque bandwidth has significant effect on the behavior of KVP value and the point where it goes unstable. One may experiment different TBW settings to find the optimum.

Posgains4.png

Once a maximum perfectly stable KVP value has been found, start increasing KVI gain by a similar fashion. The higher KVI value is, the better servo stiffness.

Posgains5.png

If KVP is increased too much, the result is instability and oscillation. The cure is similar to the too high KVP gain as described earlier.

Posgains6.png

Once both KVP and KVI has been optimized, the next step is to increase KPP gain the same way. Increasing KPP gives better servo stiffness but may also increase overshooting. Overshoot less than 10 feedback device counts is generally considered good.

Posgains7.png

Finally after playing little bit with all of KVP, KVI and KPP gains experimentally, we find a less overshooting response without losing much stiffness.

Curing tracking error and overshoot

If servo overshoots too much, or can't follow the trajectory precisely, several cures may be tried.

Posgains8.png

Reducing acceleration CAL and/or velocity CVL limits makes the trajectory easier to follow and reduces tracking error and overshooting.

Posgains9.png

The same may be also achieved by utilizing Feed-forward gains VFF and AFF which essentially compensate system friction and mass limiting the dynamic performance.

The recommended way to tune FF gains, is to start increasing velocity feed-forward VFF until the optimum level has been found. After that, increase acceleration feed-forward AFF until the optimum point has been reached.

Poscurrentsaturation.png

If following the tuning procedure does not result in satisfactory tracking performance, the problem may be asking too much from the motor. In the example above the acceleration limit is set too high to be accelerated with the given motor torque limits (or current limits).

To verify if the problem happens due to torque limit, tick also Torque achieved and Torque setpoint signals from the Testing tab settings. In such way also motor currents will be displayed simultaneously with the position response curves. If the torque curve is limited to the set peak current limit MMC, then the problem is insufficient torque. In the image above we can see that the torque curves are saturated at 4A and -4A levels which matches the configured MMC value of 4A in this demonstration.

To help this, try:

  • Increasing current limits MMC and MCC if possible
  • Reducing acceleration CAL and/or velocity CVL limits

Steps to do after tuning finished

  • Stop test stimulus by unticking TSE
  • Stop scope catpure by unticking Continuously repeating capture
  • Undo all temporary changes made to settings
  • Save settings to drive memory by clicking Save settings on drive non-volatile memory button
  • Set preferred setpoint source CRI, also consider the use of CIS
  • If setpoint signal scaling is needed, adjust MUL and DIV values. See Signal path of motor drive for explanation of velocity setpoint scale.

In no event the Product Information or parts hereof shall be regarded as guarantee of conditions or characteristics. The Product Information or any part thereof may also not be regarded as a warranty of any kind. No liability of any kind shall be assumed by Author with respect to Product Information or any use made by you thereof, nor shall Author indemnify you against or be liable for any third party claims with respect to such information or any use thereof.

As content of this Wiki may be edited by user community, Granite Devices Oy or it's affiliates do not take any responsibility of the contents of this Wiki. Use information at your own risk. However, Granite Devices staff attempts to review all changes made to this Wiki and keep information trustworthy.

Without written consent, Granite Devices' Products or Intellectual Property shall not be used in situations or installations where living beings, material property, or immaterial property could be harmed by the operation, features or failures of Product. Products may only be used in a way where hazards like moving parts, electric shock, laser radiation, or fire can't be realized even if the content of this Wiki would suggest otherwise.