Has no one ever tried this?
Hi guys, can anyone tell me how hard/easy it is to tune a pair of identical spec motors with a pair of G320's with each motor driving a screw on either side of a wide axis? I would like to be able to common the step/direction inputs of the G320's so that the whole arrangement looks just like a single-servo axis to the software.
Am I likely to run into nasty tuning, racking, homing and power-on positioning issues?
Has no one ever tried this?
The only way that I can visualize any possibility of it working well enough to be acceptable is as follows:
I will use the X Axis as an example:
The X axis step signal from the computer port would be sent to two different output pins on the breakout board. (One output - two locations - right drive and left drive) Direction signal - also wire as per step signal.
Use ONLY one encoder. Amplify the encoder signal and then send the amplified signal to both drives.
This would give the two drives the same input step signal and encoder signal.
The remaining variable is servo tuning. With an oscilliscope, one MIGHT be able to tune everything close enough for some kind of operation.
Will it Fly? Maybe
Thanks for the reply!
So what do you think would happen if I had two servos, each with a drive and encoder but with common step/direction inputs, and then tuned them individually before connecting them together mechanically?
If they are correctly tuned, can't I assume they'll behave like steppers?
I can see that if the two servos aren't 100% in sync, they'll be fighting eachother, but as they both have the same commanded position, and feedback of their actual position, won't it behave just like one servo trying to move against a variable force?
NO. Steppers do not use a feedback element to determine it's position.
If you have an axis with 2 servos with 2 encoders, each drive will have the same commanded position. However, the physical position is determined by each of the encoders feedback to it's respective drive. Any positional change that could cause a single pulse from either encoder could start an oscillation between the two sets of drives, servos, and encoders. It would NOT be feasable to use 2 seperate encoders on the same axis for this reason. Each servo could act independently, depending upon the positional information sent back to the drive from the encoder in an effort to hold the SAME commanded position.
Thanks for the reply - I really hope I'm not going to annoy you by asking another stupid question, but I'd really like to get my head around how it all works!
OK, as far as I understand it, servos are error-driven - you tell the drive where you want the motor to move to, it powers up the motor in the appropriate direction and then watches the encoder to see if it's got there yet. The motor may under or overshoot the commanded position, but the drive should be able to perform the appropriate correction and arrive at the commanded postion. Once the commanded position is reached, there is no position error, and so I guess the motor is either switched off, or it just bounces between two adjacent encoder positions?
If this servo is driving say the X-axis of my mill table, and the end mill suddenly bites into a piece of stock, there will presumably be a farily large force trying to move the table either away from or into the stock, which if it causes the table to move, will back-drive the servo and cause a position error over the commanded position. Won't this then cause the drive to fire up the motor and correct the position (i.e. resist the cutting force)?
As this force is dynamic and unrelated to the commands sent to the servo-drive, doesn't the drive have to resist it using only the info it can glean from its position encoder? In which case, does it matter whether one servo is resisting the cutting forces, or the driving force of anothe servo on the other end of the table with a very slightly (a few encoder positions) different idea of the same position?
Your information is correct.
The Gecko 320/340 drives are designed so that the drive outputs an error condition only after there exists a 128 encoder line error count condition between the commanded position and the actual position. This 128 count difference is needed during acceleration and de-acceleration of the servo. All servo systems have some differential designed in.
What I see as being a problem with using 2 encoders is the interaction between them. For example: While cutting a piece of wood which has a knot on one end, one encoder (A) might see the resistance of the cutter against the knot (which reduces the feedrate -- or encoder pulses are longer which means servo is not up to speed) and the one drive attempts to compensate for the difference by speeding up. (More Voltage and Current to the Servo to compensate for the resistance, and not being at the commanded Position.) On the other hand, the encoder on the opposite end (B) of the knot will not see the resistance posed by the knot. What occurs at this time is racking where one servo (A) is moving in the X direction faster than the other servo (B), although they have the same commanded position. At some point, the racking effect will be sensed by encoder (B) which will attempt to correct same. This in turn is sensed by encoder (A) and will continue as oscillation until the oscillation stops, or the commanded position is reached, or an error condition exists. This is why I stated that only one encoder be used.
By using only one encoder, one can zero the axis. Also, only a single feedback to both drives gives stability to the system without oscillation. In addition, one should not experience any racking condition. In essence, one drive with the encoder is the Master, the other drive is the slave, and the slave will follow the master.
Hope this helps.
I don't see how this is so very different from burning machines that use two analog servos, 2 DC tachs, 2 resolvers and 1 encoder (except for the knot ) The control system drives both servo amps in parallel and uses the one encoder for feedback. But there is an additional bit of circuitry that monitors the two resolvers and sends a correction signal to the slave when it leads or lags the master. Using only 1 encoder with the Geckos would leave the slave side free to rack the gantry at will. I'm not saying I know how well the 2 Gecko, 2 encoder system would work, but I've worked on a few of the resolver tracking burning machines and they work well enough considering the abuse they take. And it's pretty amazing just how massive the gantries are and how small the motors and drives.
What I don't get from this example is that if motor A is seeing more resistance, doesn't it need to try harder than motor B to get to the same commanded position at the same time? If both motors apply the same force but experience different resistance, won't that actually make the racking worse? I can't see how you can apply different forces with each motor unless they have independent position error feedback.
I am probably missing something simple, but I can't see why the motor with less resistance will run off, making racking worse? If it is happy that it has met it's commanded position, won't it travel at the 'correct' speed, and if the other motor can't keep up, doesn't that just mean that it is overloaded, like a stepper missing steps?
I think you should design and build your system per your own specifications, desires, and calculations.
In theory this discussion could go on forever without being resolved. The only way to determine what works and what doesn't is to build a system and see how it reacts under actual operating conditions.
There are so many variables involved that theory cannot possibly cover every aspect of system operation.
I am sure the members of this site would be interested in how everything works out running two servos with encoders in parallel.
Oops, I guess I asked one question too many
Thanks for all your help anyway, I guess I'll just have to suck it and see!
Did you ever try the dual servos. How did it workout? I'm thinking of doing the same.