Editing Servo tuning basics

Jump to: navigation, search

Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.

This page supports semantic in-text annotations (e.g. "[[Is specified as::World Heritage Site]]") to build structured and queryable content provided by Semantic MediaWiki. For a comprehensive description on how to use annotations or the #ask parser function, please have a look at the getting started, in-text annotation, or inline queries help page.

Latest revision Your text
Line 1: Line 1:
{{parent|Servo motor tuning guide}}Driving a servo motor is much like driving a car. Driving a car has many similarities including the key concepts of torque, velocity and position control. Most of this happens in the driver's head the same way than a servo drive does with a motor.
+
Driving a servo motor is much like driving a car. Driving a car has many similarities including the key concepts of torque, velocity and position control. Most of this happens in the driver's head the same way than a servo drive does with a motor.
 
+
==Driving (a.k.a servoing) a car==
For those who are already familiar with the basics, see the principles of real world servo motor drive from article [[Signal path of motor drive]].
+
==Driving (a.k.a servoing) a car==  
+
Driving a car to a destination is much like driving a servo motor to it's destination position. The analogies in between are:
+
{| class="wikitable"
+
|-
+
! Car !! Servo axis
+
|-
+
| Pedal (motor gasoline feed) || Torque setpoint (motor current feed)
+
|-
+
| Speed limit || Velocity setpoint
+
|-
+
| Target location || Position setpoint
+
|-
+
| Speed meter ||  Velocity feedback
+
|-
+
| Trip meter|| Position feedback
+
|-
+
| Car driver || Servo drive
+
|}
+
 
+
 
[[File:Carexample base.png|800px]]
 
[[File:Carexample base.png|800px]]
  
The ultimate goal of driver is to get to the target. To achieve this, he follows the road (trajectory) at certain velocity and decelerates once target is being reached. Without knowing, the driver acts as servo controller where he:
+
==Driver as a controller==
*Controls car's velocity based on the speed meter value and speed limit
+
===What is a feedback gain and PI controller===
*Controls car's position based on trip meter's reading or by observing location trough the windshield
+
Feedback gain means '''sensitivity to change output''' due to ''tracking error'' (the difference between setpoint and feedback).
*All actions the driver makes, is based on comparing the setpoints and the actual state
+
  
==Servo controller basics==
+
The simplest form of feedback controller is a '''proportional''' gain controller (P controller) where output follows the formula ''output = Pgain*(setpoint-feedback)''. The problem of proportional gain controller is that it may never reach the setpoint because output starts approaching zero when the following error is reaching zero.
===Controller gains and a PI controller===
+
Controller gain means '''sensitivity to change output''' due to ''tracking error'' (the difference between setpoint and feedback).
+
 
+
The simplest form of feedback based controller is a '''proportional''' gain controller (P controller) where output follows the formula ''output = Pgain*(setpoint-feedback)''. The problem of proportional gain controller is that it may never reach the setpoint because output starts approaching zero when the following error is reaching zero.
+
  
 
Because of this, it's better to add in '''integrating''' component to the controller (forming PI controller). Integrator accumulates the tracking error to a integrator variable. Integrator variable is like a bucket of water, when you add water, the water level rises and when you take out water, the level lowers. In controller the equation becomes: ''output = Pgain*(setpoint-feedback) + Igain*IntegralOf(setpoint-feedback)''.
 
Because of this, it's better to add in '''integrating''' component to the controller (forming PI controller). Integrator accumulates the tracking error to a integrator variable. Integrator variable is like a bucket of water, when you add water, the water level rises and when you take out water, the level lowers. In controller the equation becomes: ''output = Pgain*(setpoint-feedback) + Igain*IntegralOf(setpoint-feedback)''.
Line 40: Line 15:
 
*I-gain - reacts slowly over time, adjusts output until tracking error is zero
 
*I-gain - reacts slowly over time, adjusts output until tracking error is zero
  
When driving a car, human brain closely resembles the operation of a PI controller. For in-depth info about PI controllers and its variants, see the Wikipedia article [http://en.wikipedia.org/wiki/PID_controller PID controller].
+
When driving a car, human brain closely resembles the operation of a PI controller.
  
===Tuning the gains===
+
===Low feedback gains - sluggish response===
Controller tuning means finding of the optimum gain values for the given system.
+
 
+
The proper gain values always depend on many aspects, especially the target system dynamic properties (such as motor properties, axis transmission ratios, inertias and masses). Change of properties introduces the requirement of tuning the gain values as gain values that work fine in one system may not behave satisfactory on a different system.
+
 
+
In servo drive case, this means that each motor type and mechanical axis need to be tuned separately. However, if axis and motors are identical, then the same gains should work equally.
+
 
+
==Gain tuning (car) example==
+
The following series of images illustrate an imaginary car driving scenario where the driver acts as velocity controller of the car. The magnitude of PI gain values equal the driver's aggressivity of controlling the pedal to reach the desired speed.
+
===Low gains - sluggish response===
+
 
[[File:Carexample sluggish.png|800px]]
 
[[File:Carexample sluggish.png|800px]]
 
+
===Too high feedback gains - oscillation & instability===
If the gains are set too low, the system response tends to be sluggish and sometimes leave a static tracking error (not reaching setpoint in any time). In this imaginary case we could think PI gains to be P=20 I=10.
+
===Too high gains - oscillation & instability===
+
 
[[File:Carexample unstablepng.png|800px]]
 
[[File:Carexample unstablepng.png|800px]]
 
+
===Optimum feedback gains - only little overshoot===
If the gains are set too high, the system becomes [[overshooting]], oscillating and less stable. Here the comparable PI gains could be P=200 I=100
+
===Optimum gains - only little overshoot===
+
 
[[File:Carexample stable.png|800px]]
 
[[File:Carexample stable.png|800px]]
 
When the gains are tuned correctly, the response shows rapid response with low overshoot and no ringing or oscillations. The comparable gains here P=50 I=25.
 
 
===Optimum gains with realistic setpoint - optimum response===
 
===Optimum gains with realistic setpoint - optimum response===
 
[[File:Carexample response accellimit.png|800px]]
 
[[File:Carexample response accellimit.png|800px]]
 
The response can be improved further by introducing a limit to the slew rate of setpoint signal. The controller behaves optimally when the system is able to follow the setpoint continuously with little tracking error. In this case the gains could be same as before, P=50 I=25.
 
 
==Real servo motor controller==
 
See the principles of real world servo motor drive from article [[Signal path of motor drive]].
 
{{next|[[Tuning torque controller]]}}
 
 
[[Category:Tuning_guide]]
 

Please note that all contributions to Granite Devices Knowledge Wiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see Granite Devices Knowledge Wiki:Copyrights for details). Do not submit copyrighted work without permission!

Select categories:

To edit this page, please answer the question that appears below (more info):

Cancel | Editing help (opens in new window)