Luenberger Observer

The AKD and AKD2G drives are equipped with a Luenberger observer. An observer implemented this way can be described as a dynamic filter to handle unknowns, or irregularities in the system that should not be there.

Applications where an observer should be considered:

  • Systems with low resolution or other quantization effects present

  • High frequency resonances

  • Systems with multiple resonances

  • Systems where high frequency resonances move as a function of position or load


    • Observers are very powerful but must be tuned with care so that they ensure stability. If improperly used, they will cause instability.

    • If autotuning is to be used, tune the observer after autotuning, otherwise the values will be cleared.

Referenced Parameters
Parameter Description Drive Keyword

IL.KACCFF

Current Loop Acceleration Feed Forward

AXIS#.IL.KACCFF

VL.OBSMODE

Observer Mode

AXIS#.OBS.ENABLE

VL.OBS.KO

Observer Gain

AXIS#.OBS.KO

VL.OBS.BW

Observer Bandwidth

AXIS#.OBS.BW

Observer Basics and Configuration

Two parameters must be configured to successfully use the observer: Gain and Bandwidth.

Gain
 

This value must be tuned to be relatively accurate. The gain of the observer must be set based on the gain of the plant (the inertia of the motor + load).

Since the Observer gain is based on the plant gain, we can leverage other tuning parameters which have also been determined.

IL.KACCFF (Acc FF) is in units of mArms / (rad/s²)

Observer Gain is in units of (rad/s²) / Arms

So we can convert IL.KACCFF to Observer Gain using the following:

VL.KO = 1 / (IL.KACCFF / 1000)

Bandwidth

The bandwidth should be set to something significantly above the achieved velocity loop bandwidth. For example with an Open Loop crossover of 100Hz set the Observer bandwidth to 300Hz.


  • Setting the Observer Bandwidth too low will cause stability issues!

Effects of an Observer

Effects of an Observer on the Closed Loop

Following are the effects of adding a 100Hz observer to a closed loop system

After tuning, IL.KACCFF was tuned to be 0.488 mArms / (rad/s²)

Converting that to Observer gain:

VL.KO = 1 / (0.488 / 1000)
VL.KO = 2049 (rad/s²)/Arms

This system was tuned with an open loop bandwidth of 20 Hz, and an observer bandwidth of 5x was selected

VL.OBSBW = 100

Enable the Observer by setting:

VL.OBSMODE = 1

If another Closed Loop measurement is taken, the effects of the observer will be visible on the plant, as non-linearities are compensated for automatically

The internal observer loop modifies the resulting plant helping to remove non-linearities and results in the following:

Key changes when the observer is active at 100 Hz on this system:

  • Mechanical resonance is attenuated by 30 dB

  • Phase is improved before and after observer BW freq

Effects of an Observer on the Open Loop

Key changes when the observer is active at 100Hz on the Open Loop:

  • Mechanical resonance is attenuated by 30dB

  • Phase is improved before and after observer bw freq