Implementing Load Observer
What is an Observer?
AState observer is a system that models a real system in order to provide an estimate of its internal state, given measurements of the input and output of the real system. It is typically a computer-implemented mathematical model.
In a motion application the Observer combines input and output measurements of the real system as input variables:
- Acceleration Command - Motion control system input
- Velocity Feedback – Motion control system output
The Observer then takes these two inputs, along with an internal model of the system, and tries to enhance the feedback signal while at the same time attempting to compensate for disturbances entering the system. Load Observer is able to provide two (estimated) output variables:
- Velocity Estimate - Velocity Estimate sums the command signal (through an High Pass Filter) and the feedback signal (through a Low Pass Filter) to enhance the signal that closes the Velocity loop. The Observer provides a feedback signal that is superior to the one obtainable by the sensor alone.
- Acceleration Estimate–Disturbance compensation.Torque/Force Scaling will eventually transformthis Acceleration into a Torque Command. Having TFScorrectly set gives physical meaning to Velocity Loop Gains.
What the Observer Does
- Compensate for disturbances, unknown or time-varying inertias, unexpected plant variation in time
- Provide robustness, enhanced stability, and enhanced reliability to the system
- Simplify tuning process for most applications. Only need to regulate 2 parameters (System Bandwidth & System Damping)
- If high performance is needed, the Observer helps by pushing system gains to the limit (expert tuning knowledge required)
Load Observer is able to “clean up” the velocity response (Axis.ActualVelocity) in systems where there may be a high inertia mismatch & varying inertias. In these systems, the velocity loop response is being disturbed by external torques / varying inertias.
Example of velocity loop response before (left) and after (right) Load Observer being implemented.
What the Observer Doesn’t Do
- Solve all mechanical issues / resonance issues of your servo application -> Mechanical design should do this
- Reduce Position Error or in general Improve Dynamics of your application by its own- > Loop Gains do this
Out of the Box Settings (Inertia Ratio = 0)
- Autotune tab - Application Type (Basic), Loop Response (Medium), and Load Coupling (Rigid). This is the fastest way to implement the observer and works well for “easy” loads.
- Observer tab –Load Observer with Velocity Estimate. Bandwidth will be populated automatically.
Tuned Load Settings(Manual Tune tab) Once the Load Inertia has been estimated, the procedure to tune the loops (if needed) is:
- System Bandwidth By directly entering the Position Loop Bandwidth (Gains) the system automatically scales all other relevant gains (including Observer bandwidth) to be scaled with Position Loop gains. By moving the slider left to right, we can adjust the whole gain configuration of the drive.
- System Damping By directly entering the System damping the system automatically spaces gains between them, from the Torque loop to the Position loop.
Load Observer Manual Tune
We cannot access the Observer Loop directly to tune its response, so we need to tune it indirectly based on its effect on the command signal and feedback response of the system
- Autotune tab – Application Type (Custom), Loop Response (Low), Load Coupling (Compliant), & check only Accel FF
- Set Position & Velocity Loop Gains = 0 HZ (or as small as possible to provide the needed position control).
- Set Vff = 0% and Aff = 100%.
- By zeroing the Velocity Loop Bandwidth the Acceleration Feed Forward becomes an Open Loop Command. The Observer is thus the only actor in charge of compensating the acceleration to follow the velocity command. By trending the Command velocity vs the Actual Velocity we can try to tune the Observer Proportional & Integral Gain
- Start with Load Observer Gains zeroed. Then, while initiating a MAM command…
- Trend Actual Velocity (Not Velocity Feedback because Velocity Feedback will be manipulated by the Observer)
- Gently rise Observer Gains until velocity profile gets the desired shape.
- Increase profile aggressiveness to worsen Observer task
- If the Observer Action shows signs of instability, stop rising gains and reduce Observer Bandwidth by 2/3
- If the Velocity Feedback shows signs of high frequency noise you can try to tune it out by lowering the Low Pass Filter. This will not help in case of Low Frequency Resonance (Mechanical Compliance)
- Add Integral gains to improve stiffness. (Again be aware of Mechanical Compliance)