Editing Dual-loop feedback position control

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 4: Line 4:
 
A typical closed loop controller resembles the diagram below.
 
A typical closed loop controller resembles the diagram below.
  
{{picturebox|Controller general.png|350px}}
+
[[File:Controller general.png|350px]]
  
 
The closed loop system is formed by an '''actuator''', '''feedback''' and '''substraction''' (sigma):  
 
The closed loop system is formed by an '''actuator''', '''feedback''' and '''substraction''' (sigma):  
Line 13: Line 13:
 
In a practical case, this type of closed loop may be used for servo motor position control just by choosing appropriate components:
 
In a practical case, this type of closed loop may be used for servo motor position control just by choosing appropriate components:
  
{{picturebox|Controller position.png|350px}}
+
[[File:Controller position.png|350px]]
  
 
This kind of controller could be used to produce linear motion with appropriate mechatronics assembly such as:
 
This kind of controller could be used to produce linear motion with appropriate mechatronics assembly such as:
  
{{picturebox|Servolinearaxis.png|600px}}
+
[[File:Servolinearaxis.png|600px]]
  
 
==Dual-loop system: linear encoder feedback==
 
==Dual-loop system: linear encoder feedback==
 
The drawback of above position control system is the position error caused by lead screw backlash, pitch error and flex. The problem is that the error is unknown because it is not being measured or controller:
 
The drawback of above position control system is the position error caused by lead screw backlash, pitch error and flex. The problem is that the error is unknown because it is not being measured or controller:
  
{{picturebox|Controller position with error.png|500px}}
+
[[File:Controller position with error.png|500px]]
  
 
===Dual-loop system===
 
===Dual-loop system===
 
To elimiate the error of mechanics, one can add a linear encoder to read out the actual position of the axis instead of using derived value from rotary encoder behind the lead screw:
 
To elimiate the error of mechanics, one can add a linear encoder to read out the actual position of the axis instead of using derived value from rotary encoder behind the lead screw:
  
{{picturebox|Servolinearaxis dualloop.png|600px}}
+
[[File:Servolinearaxis dualloop.png|600px]]
  
 
However the problem there is that we have two separate position feedback signals: rotary and linear. One may think to replace rotary feedback with linear feedback in the original system. However, that will cause stability problems to the control loop due to backlash and flex of the mechanics. If motor is being controlled based on feedback signal with time delay (due to flex and backlash), it will easily render control loop unstable or leave user with very [[Servo stiffness|low stiffness]].  
 
However the problem there is that we have two separate position feedback signals: rotary and linear. One may think to replace rotary feedback with linear feedback in the original system. However, that will cause stability problems to the control loop due to backlash and flex of the mechanics. If motor is being controlled based on feedback signal with time delay (due to flex and backlash), it will easily render control loop unstable or leave user with very [[Servo stiffness|low stiffness]].  
Line 33: Line 33:
 
In order to achieve stiff position control it is necessary to control motor by it's local rotary encoder AND control axis position based on linear encoder. Such system can be achieved by a dual-loop feedback system:
 
In order to achieve stiff position control it is necessary to control motor by it's local rotary encoder AND control axis position based on linear encoder. Such system can be achieved by a dual-loop feedback system:
  
{{picturebox|Controller dualloop.png|750px}}
+
[[File:Controller dualloop.png|750px]]
  
 
In the system above, we have two contorl loops: inner loop (rotary encoder based) and outer loop (linear encoder based). In this system outer loop generates the setpoint for the inner loop to correct the small error produced by mechanical inaccuracies.
 
In the system above, we have two contorl loops: inner loop (rotary encoder based) and outer loop (linear encoder based). In this system outer loop generates the setpoint for the inner loop to correct the small error produced by mechanical inaccuracies.
Line 44: Line 44:
  
 
From off-the-shelf solutions at least [[LinuxCNC]] supports dual-loop operation as the software implements a position controller with feedback input.
 
From off-the-shelf solutions at least [[LinuxCNC]] supports dual-loop operation as the software implements a position controller with feedback input.
 
 
[[category:glossary]]
 
[[category:technology]]
 

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)

Template used on this page: