Proper control loop implementation on a parallel drive gantry axis

  • Thread starter Dale Schinstock
  • Start date

Thread Starter

Dale Schinstock

I want a gantry axis with two linear motors, one on either side of the gantry beem. A very high bandwidth (high-gain) system is prescribed for tracking performance. Should I use two separate position controllers or some sort of master slave configuration? Both motors have linear encoders for commutation. What I am really looking for here is some insight into the practical considerations from anyone who has done this. I can handle theoretical analysis of the performance of the system.

There are two possible scenerios considered.
1) Two seperate position control loops, each using linear encoder feedback from its respective motor.
2) One controller, using encoder feedback from one motor but providing the same current/force command to each of the two motor drives.
A third scenerio is to use two controllers with one feedback feeding both; but this is not very different from the second.

In terms of control loop performance and stability, my analysis says to use two seperate loops (scenerio 1)) -- here's why. If you consider that gantry beam is a spring then one of the motors is operating from a noncollocated sensor when you use one feedback for position control. If the resonance is below or near the desired position bandwidth (BW) then the noncollocated motor oscillates (maybe even unstable). This has been confirmed in simulation. With two seperate controllers the beam does not have to be stiff for stability, even at high BWs (it can be light also). This also has been confirmed in simulation and modelling -- AND IT IS HAS BEEN CONFIRMED ON A SMALL TEST SYSTEM.

My first concern is this: When I put such a machine into service, do I run the risk of running with "hot" motors because the motors may drive against one another due to DC offsets, small encoder mismatches, etc? Remember the controllers are high gain and have integral action. Therefore, small offsets can mean large currents. HAS ANYONE EXPERIENCE WITH THIS?


We have done this application before with 1/2 micron laser interferometer feedback for a *very* stiff system. This was managed with two PID loops and digital commutation of the amplifiers.
(PowerBloks by MTS Automation and PMAC2 Motion controller + Anorad Linear motors). One axis is disabled while the other axis is homed in a two step process. Once both axes are homed, both
loops are closed simultaneously and commanded to go to the same position. Currents are monitored to ensure that the two axes are not fighting each other. If both axes are happy (indicated by
opposing currents of less than 5% of capacity with zero following error) then we proceed with power-up and operation. Both motors are assigned to the same axis in the coordinate system and are
basically treated by the trajectory generator as a single axis.

We have also done this with large rotary servo motors with gantries.
How stiff were they? 170,000 lb gantry spanning 35 feet with 4 servo motors. Apply a 3 percent current command to just one motor and this was sufficient to back drive the other 3 motors plus
move the gantry at about 1/2 inch / second. Reading both lasers showed that delta position change of about .002" upon a 3% torque reversal of just one motor with all other gantry motors disabled. You can look at the machine at http:\\

Ken Brown
Applied Motion Systems, Inc.
I agree with your analysis. Two separate control loops will provide a better system as you described.

The question on heat is one of mechanical misalignment and stiffness. If the beam is stiff and the motors are out of position relative to each other, they will fight each other. That is why the beam does not require the mechanical stiffness to begin with. They will effectively load each other mechanically through the beam.

The closed loops in the system will force DC offsets drop out of consideration. I don't understand question on encoder mismatch.

There are two methods for moving these axes in position loops.

1) Axis A master to Axis B slave.
Suggest tuning axis A master slightly less aggressive than axis B for this reason. Any possible oscillation in axis A master will be
commanded to Axis B Slave. The oscillation will look more aggressive in the Axis B slave than in Axis A master. There may also be filtering available to compensate for this situation.

I would plan to use feed forward on the slave to keep it as close as possible to the master axis position.

2) Axis A and Axis B are both slaves running off the same position iterator. Both axes tuned the same

David Kane
[email protected]
Your option 2 is better because, as you point out, one must use velocity and acceleration feed forward on a follower axis if it is to accurately
reproduce the leader's dynamic position. Since this can be a bit difficult, don't you think it is just better to tune both axes the same and command them in parallel? There will be servo position errors in each axis, but they should match as will the dynamic position at all times.
Thomas B. Bullock, President
Bull's Eye Marketing, Inc.
Industrial Controls Consulting Div.
E-mail: [email protected]
Phone 920: 929-6544
Several things you want to consider:

1. Master-slave is probably the worst way of doing this. For some reason, a lot of people want to slave one side to the other (I think this goes back to the days when you had inflexible CNC controllers that could do basic XYZ-control, but if you wanted a second X-axis, the best you could do is to use a separate controller picking off the 1st X-encoder as a master). The master side gets a nice smooth mathematically generated trajectory, but the slave side gets a much rougher trajectory from an imperfect encoder with finite resolution, resulting in a lot of measurement and quantization noise. This means that you cannot tune the slave side as tightly and you cannot use tracking feedforward aggressively (because the differentiation of the feedforward amplifies the quantization noise). Since the performance of both sides must match, you have to degrade the performance of the other side. Furthermore, if there is a little mechanical resonance (small enough to be tolerated on the master side), the resonant frequency becomes part of the command for the slave side, which can then oscillate wildly, because it is likely to have the same mechanical resonance.

2. As other respondents have observed, most people get the best results out of a "coordinated" approach, where both sides get the same command trajectory, but each closes its own servo loop off its own encoder feedback. In most applications, provided a little care is taken (see below), the motors won't "fight" each other badly.

3. A high-end technique that some sub-micron folks use is to close loops on the sum (a.k.a. average) and difference of the feedbacks. This was originally done by IBM in the late 1970s. There is a single trajectory for the sum/average; the difference is just commanded to zero.

4. A key is how to get both sides referenced (homed) properly. If you cannot count on the two sides powering up in proper alignment, you will need to home both sides. Usually the other side is dragged along or slaved here (high performance is not necessary during this part). Figuring out how to align the references on the two sides can be more art than science, but usually it involves monitoring the effort (force) each side expends during motion -- the leading side will bear the brunt.

Curt Wilson
Delta Tau Data Systems

Gannel Leonid

The new Galil controller DMC-2xxx has needed for you special Gantry mode. You might contact Jacob Tal directly: [email protected] Rgs, Gannel Leonid, Senior Servo Engineer, NUR Macroprinters