Difference between revisions of "AXY:MC Operational Modes"

From SoftMC-Wiki
Jump to: navigation, search
(first edited version)
 
 
(25 intermediate revisions by 3 users not shown)
Line 1: Line 1:
='''''Loop Types'''''=
+
{{Out-of-date}}
  
The AMCS system supports the next main control loop types:
+
=MC Operational Modes=
 +
{{Note| This topic has not yet been implemented. It is presented here as a specification for further discussion.}}
  
* Position Control with standard feedback. This is OPMODE 5.
+
 
 +
==Loop Types==
 +
 
 +
The softMC system supports the next main control loop types:
 +
 
 +
* Position Control with standard feedback. (OPMODE 5)
 
* Position Control with Dual-feedback (OPMODE 5)
 
* Position Control with Dual-feedback (OPMODE 5)
* Position Loop Feedback from external feedback (load sensor) . (OPMODE 5)
+
* Position Loop Feedback from external feedback (load sensor). (OPMODE 5)
* Digital Velocity Control with standard feedback (motor sensor). This is OPMODE 0.
+
* Digital Velocity Control with standard feedback (motor sensor). (OPMODE 0)
* Analog Velocity Control. This is OPMODE 1.
+
* <del>Analog Velocity Control. (OPMODE 1)</del>
* Digital Torque. This is OPMODE 2.
+
* Digital Torque. (OPMODE 2)
* Analog Torque. This is OPMODE 3.
+
* <del>Analog Torque. (OPMODE 3)</del>
  
The AMCS sends position and velocity commands each update cycle. The operation of the  
+
The controller sends position, velocity and torque commands each update cycle. The operation of the controller is hardly affected by the loop selection. The loop selection is made in the controller.
  
AMCS is hardly affected by the loop selection. The loop selection is made in the AMCS .
 
 
 
 
 
== Position Loop ==
 
== Position Loop ==
  
Position loop is the standard operating mode of the SAC system. Position Loop is available in the digital position mode only (OPMODE 5). For position operation, set the position loop gain to any value greater than zero. The digital position mode is default for SAC and has been set automatically.  
+
Position loop is the standard operating mode of the softMC system. Position Loop is available in the digital position mode only (OPMODE 5). The digital position mode is default for softMC and has been set automatically.  
  
 
=== Position ERROR WITH Proportional Position Loop ===
 
=== Position ERROR WITH Proportional Position Loop ===
Line 25: Line 27:
 
The proportional position loop is the simplest position loop. The velocity command is proportional to the following error. Large velocity commands need large following error limits. The constant of proportionality is GP (position loop gain). At first, this may seem confusing. Actually, it just means that for each count of position error, a command of GP RPM is given.The following error for acceleration with a typical proportional loop is shown below.
 
The proportional position loop is the simplest position loop. The velocity command is proportional to the following error. Large velocity commands need large following error limits. The constant of proportionality is GP (position loop gain). At first, this may seem confusing. Actually, it just means that for each count of position error, a command of GP RPM is given.The following error for acceleration with a typical proportional loop is shown below.
  
<center>[[Image:]]</center>
+
<center>[[File:Axystems;MC_Operational_Modes_Following_Error.jpg|border| 400px|Following Error with Proportional Position Loop]]</center>
  
 
<center>''Following Error with Proportional Position Loop''</center>
 
<center>''Following Error with Proportional Position Loop''</center>
Line 36: Line 38:
 
One technique to reduce following error is to add a feed-forward term to the velocity loop. This allows you to generate velocity commands with a combination of the profile velocity command and position error, rather than relying wholly on position error. A position loop with feed-forward is shown in the following figure.
 
One technique to reduce following error is to add a feed-forward term to the velocity loop. This allows you to generate velocity commands with a combination of the profile velocity command and position error, rather than relying wholly on position error. A position loop with feed-forward is shown in the following figure.
  
<center>[[Image:]]</center>
+
<center>[[File:Axystems;MC_Operational_Modes_Proportioanl_Loop_with_Feed_Forward.jpg| 400px|softMC Proportional Loop with Feed-Forward]]</center>
  
<center>''SAC Proportional Loop with Feed-Forward''</center>
+
<center>''softMC Proportional Loop with Feed-Forward''</center>
  
 
In this case, you can reduce following error by raising the gain GVFR.
 
In this case, you can reduce following error by raising the gain GVFR.
Line 44: Line 46:
 
When GVFR is at full scale (GVFR =1), the following error at steady-state is reduced to zero. The only following error is generated during transients. The effect of full feed-forward on following error is shown in the following figure.
 
When GVFR is at full scale (GVFR =1), the following error at steady-state is reduced to zero. The only following error is generated during transients. The effect of full feed-forward on following error is shown in the following figure.
  
<center>[[Image:]]</center>
+
<center>[[File:Axystems;MC_Operational_Modes_Velocity_Command.jpg|border| 400px|Following Error with Proportional Loop and Feed-Forward]]</center>
  
 
<center>''Following Error with Proportional Loop and Feed-Forward''</center>
 
<center>''Following Error with Proportional Loop and Feed-Forward''</center>
Line 50: Line 52:
 
The benefit of full feed-forward is that it eliminates steady-state following error. The drawback is that the system overshoots when subjected to acceleration or deceleration. In some cases, this is not an issue because the system may always transition smoothly, or some overshoot may be acceptable. However, in many cases of full feed-forward is not acceptable. In these cases, you can reduce the feed-forward term to reduce overshoot. The larger the feed-forward gain, the greater reduction you will see in steady-state following error. Most systems can tolerate the overshoot generated by feed-forward gains of 50%.
 
The benefit of full feed-forward is that it eliminates steady-state following error. The drawback is that the system overshoots when subjected to acceleration or deceleration. In some cases, this is not an issue because the system may always transition smoothly, or some overshoot may be acceptable. However, in many cases of full feed-forward is not acceptable. In these cases, you can reduce the feed-forward term to reduce overshoot. The larger the feed-forward gain, the greater reduction you will see in steady-state following error. Most systems can tolerate the overshoot generated by feed-forward gains of 50%.
  
----
+
= See Also =  
 
+
* [[MC-Basic:axis.OPMODE|OPMODE]]
= OPMODE =
+
* [[MC-Basic:TORQUE|DIGITALTORQUE]]
{{MC-Basic
+
* [[MC-Basic:axis.TORQUECHANGERATIO|TIMETOTORQUE ]]
|SHORT FORM= None
+
* [[AXY:Operational_Modes | Operational Modes]]
|SYNTAX= OpMode <nowiki><value></nowiki> <br> ''?OpMode'''
 
|AVAILABILITY=
 
|DESCRIPTION= This command allows you to change the drive operation mode.
 
|TYPE=
 
|RANGE= 0 , 1 , 2 , 3 and 5
 
'''0''' : Digital velocity opmode
 
'''1''' : Analog velocity
 
'''2''' : Digital torque
 
'''3''' : Analog torque
 
'''5''' : External position used as the digital position, the regular position mode
 
 
 
|UNITS= NA
 
|DEFAULT= 5
 
|SCOPE= Configuration, Task, Terminal
 
|LIMITATIONS= Read/Write: R/W in CP4, Axis must be disabled.
 
|EXAMPLE= OpModeOpMode 2
 
|SEE ALSO=
 
}}
 
 
 
 
 
----
 
 
 
= DIGITALTORQUE =
 
 
 
{{MC-Basic
 
|SHORT FORM= DTorque
 
|SYNTAX=
 
<nowiki>DigitalTorque <</nowiki>''Torque Value''> <nowiki>{TimeToTorque=<time>} {<TimeTorque>=<time>}</nowiki>'' <nowiki>{<StartType=<starttype value>}</nowiki>
 
|AVAILABILITY=
 
|DESCRIPTION=
 
Executes Digital Torque command ,similar to Jog command with automatic scaling of the profiler-velocity to torque. Automatically causes the SAC to enter digital torque mode. '''''<nowiki><Torque Value></nowiki>''''' Value of the target torque in mA, if greater then MICONT*100 then the later value will be used , sending a note to the user.
 
'''''TimeToTorque''''' – time needed to reach the target torque value from the initial torque value .
 
'''''TimeTorque''''' – duration of the torque command, if set to –1 (default) endless torque command. (Same as TimeJog)
 
'''Type'''<nowiki><</nowiki>''Torque Value''> : Double
 
''<nowiki><TimeToTorque>: Long</nowiki>''
 
''<nowiki><TimeTorque>: - Long</nowiki>''
 
 
 
|TYPE=
 
|RANGE=:±DIPEAK
 
|UNITS=
 
<nowiki><</nowiki>''Torque Value''> : MilliAmperes
 
 
 
''<nowiki><TimeToTorque>: MSec</nowiki>''
 
 
 
''<nowiki><TimeTorque>: MSec</nowiki>''
 
|DEFAULT=
 
|SCOPE=
 
|LIMITATIONS=DigitalTorque OpMode.The axis must be attached to that task either implicitly (if no other task is accessing the axis) or explicitly using the “ATTACH” command.''' '''
 
|EXAMPLE= DigitalTorque trq ''StartType=Immediate''
 
|SEE ALSO=
 
}}
 
----
 
 
 
 
 
= TIMETOTORQUE =
 
 
 
{{MC-Basic
 
|SHORT FORM=
 
|SYNTAX= <nowiki>TimeToTorque=<</nowiki>''time''>''' ''DTorque <nowiki><</nowiki>''Torque Value''<nowiki>> {TimeToTorque=<</nowiki>''time''>}'''
 
|AVAILABILITY=
 
|DESCRIPTION= Defines the time needed to change the torque from an initial value to the value given in the DigitalTorque command.
 
|TYPE= Long
 
|RANGE= 1 to MaxLong
 
|UNITS= Milliseconds
 
|DEFAULT=
 
|SCOPE= Task, Terminal
 
|LIMITATIONS=Modal/Nodal .To set the value within a task, the axis must be attached to that task either implicitly (if no other task is accessing the axis) or explicitly using the “ATTACH” command.''' '''
 
|EXAMPLE= ?TimeToTorque
 
 
 
DigitalTorque 100 TimeToTorque = 1000
 
|SEE ALSO=
 
}}
 
----
 
  
  
=TIMETORQUE=
+
[[Category:OperationalModes]]
{{MC-Basic
 
|SHORT FORM=
 
|SYNTAX= DTorque <nowiki><</nowiki>''Torque Value''<nowiki>> {TimeTorque=<</nowiki>''time''>}'''
 
|AVAILABILITY=
 
|DESCRIPTION= Duration of the torque command .Time when the deceleration (torque decrease towards zero) is started, counting from the end of the torque increase. If set to –1 (default) endless torque command .
 
|TYPE= Long
 
|RANGE= -1 , 0 to MaxLong
 
|UNITS= Milliseconds
 
|DEFAULT= 1
 
|SCOPE= Task, Terminal
 
|LIMITATIONS= Nodal only.To set the value within a task, the axis must be attached to that task either implicitly (if no other task is accessing the axis) or explicitly using the “ATTACH” command.''' '''
 
|EXAMPLE= DigitalTorque 100 TimeTorque = 1000
 
|SEE ALSO=
 
}}
 
----
 

Latest revision as of 09:20, 22 May 2014

IMPORTANT.svgIMPORTANT
This entry is outdated and requires revision.


MC Operational Modes

NOTE-Info.svgNOTE
This topic has not yet been implemented. It is presented here as a specification for further discussion.


Loop Types

The softMC system supports the next main control loop types:

  • Position Control with standard feedback. (OPMODE 5)
  • Position Control with Dual-feedback (OPMODE 5)
  • Position Loop Feedback from external feedback (load sensor). (OPMODE 5)
  • Digital Velocity Control with standard feedback (motor sensor). (OPMODE 0)
  • Analog Velocity Control. (OPMODE 1)
  • Digital Torque. (OPMODE 2)
  • Analog Torque. (OPMODE 3)

The controller sends position, velocity and torque commands each update cycle. The operation of the controller is hardly affected by the loop selection. The loop selection is made in the controller.

Position Loop

Position loop is the standard operating mode of the softMC system. Position Loop is available in the digital position mode only (OPMODE 5). The digital position mode is default for softMC and has been set automatically.

Position ERROR WITH Proportional Position Loop

The proportional position loop is the simplest position loop. The velocity command is proportional to the following error. Large velocity commands need large following error limits. The constant of proportionality is GP (position loop gain). At first, this may seem confusing. Actually, it just means that for each count of position error, a command of GP RPM is given.The following error for acceleration with a typical proportional loop is shown below.

Following Error with Proportional Position Loop
Following Error with Proportional Position Loop


Reducing Position Error

Position error generated during a move is often called “following error” because it measures how well the motor follows the command. Reducing the following error is equivalent to following the command more closely, which normally is desirable. Commonly, you will set GP to be large, which reduces following error because the higher gain means it takes less position error to generate the same velocity command. There is a limit though, because if GP gets too large, the position loop becomes unstable. After GP is as large as possible, what else can you do to reduce position error?

One technique to reduce following error is to add a feed-forward term to the velocity loop. This allows you to generate velocity commands with a combination of the profile velocity command and position error, rather than relying wholly on position error. A position loop with feed-forward is shown in the following figure.

softMC Proportional Loop with Feed-Forward
softMC Proportional Loop with Feed-Forward

In this case, you can reduce following error by raising the gain GVFR.

When GVFR is at full scale (GVFR =1), the following error at steady-state is reduced to zero. The only following error is generated during transients. The effect of full feed-forward on following error is shown in the following figure.

Following Error with Proportional Loop and Feed-Forward
Following Error with Proportional Loop and Feed-Forward

The benefit of full feed-forward is that it eliminates steady-state following error. The drawback is that the system overshoots when subjected to acceleration or deceleration. In some cases, this is not an issue because the system may always transition smoothly, or some overshoot may be acceptable. However, in many cases of full feed-forward is not acceptable. In these cases, you can reduce the feed-forward term to reduce overshoot. The larger the feed-forward gain, the greater reduction you will see in steady-state following error. Most systems can tolerate the overshoot generated by feed-forward gains of 50%.

See Also