Galil DMC-3425 Home Security System User Manual


 
DMC-3425 Chapter 6 Programming Motion 99
The continuous dual loop combines the two feedback signals to achieve stability. This method
requires careful system tuning, and depends on the magnitude of the backlash. However, once
successful, this method compensates for the backlash continuously.
The second method, the sampled dual loop, reads the load encoder only at the end point and performs a
correction. This method is independent of the size of the backlash. However, it is effective only in
point-to-point motion systems that require position accuracy only at the endpoint.
Example
Continuous Dual Loop
Connect the load encoder to the main encoder port and connect the motor encoder to the dual encoder
port. The dual loop method splits the filter function between the two encoders. It applies the KP
(proportional) and KI (integral) terms to the position error, based on the load encoder, and applies the
KD (derivative) term to the motor encoder. This method results in a stable system.
The dual loop method is activated with the instruction DV (Dual Velocity), where
DV1
activates the dual loop and
DV0
disables the dual loop.
Note that the dual loop compensation depends on the backlash magnitude, and in extreme cases will
not stabilize the loop. The proposed compensation procedure is to start with KP=0, KI=0 and to
maximize the value of KD under the condition DV1. Once KD is found, increase KP gradually to a
maximum value, and finally, increase KI, if necessary.
Sampled Dual Loop
In this example, we consider a linear slide that is run by a rotary motor via a lead screw. Since the lead
screw has a backlash, it is necessary to use a linear encoder to monitor the position of the slide. For
stability reasons, it is best to use a rotary encoder on the motor.
Connect the rotary encoder to the A-axis and connect the linear encoder to the auxiliary encoder of A.
Assume that the required motion distance is one inch, and that this corresponds to 40,000 counts of the
rotary encoder and 10,000 counts of the linear encoder.
The design approach is to drive the motor a distance, which corresponds to 40,000 rotary counts. Once
the motion is complete, the controller monitors the position of the linear encoder and performs position
corrections.
This is done by the following program.
Instruction Interpretation
#DUALOOP Label
CE 0 Configure encoder
DE0 Set initial value
PR 40000 Main move
BGA Start motion
#CORRECT Correction loop
AMA Wait for motion completion
v1=10000-_DEA Find linear encoder error
v2=-_TEA/4+v1 Compensate for motor error
JP#END,@ABS[v
2
]<2 Exit if error is small