- Posts: 242
- Thank you received: 0
Dual PID loops with motor encoder + scale encoder per axis
2 years 6 months ago #298176
by scotth
Replied by scotth on topic Dual PID loops with motor encoder + scale encoder per axis
I assume you have a tach to close the velocity loop on the drive. The dovetail config on the Bridgeport should give you plenty of friction. Dual loop with scales should be very stable. Make sure the thrust bearings and ball screws are in good shape. The best cure for backlash problems is to fix the mechanical problems first, every thing else is to hide the real problem.
Good luck,
Scott
Good luck,
Scott
Please Log in to join the conversation.
- TangentAudio
- Topic Author
- Offline
- Premium Member
-
Less
More
- Posts: 97
- Thank you received: 0
2 years 6 months ago #298181
by TangentAudio
Replied by TangentAudio on topic Dual PID loops with motor encoder + scale encoder per axis
Hi Scott,
The motors do have 2000CPR encoders on them, but they do not tie in with the "dumb" servo amps.
The ballscrews/nuts (or maybe thrust bearings) have some wear and there is more backlash in both X and Y than I'd like to see. When/if I start spending any money to improve things on this machine, that's where it should go first. Maybe I'll luck out and the nuts can be refitted with the next size larger balls and it won't break the bank. I didn't pay that much for the machine, and it's primarily for hobby use, so I don't want it to become a money pit.
Until that time, it doesn't cost anything except my time to play around and see if I can get dual loop working. It's a good learning exercise if nothing else.
The motors do have 2000CPR encoders on them, but they do not tie in with the "dumb" servo amps.
The ballscrews/nuts (or maybe thrust bearings) have some wear and there is more backlash in both X and Y than I'd like to see. When/if I start spending any money to improve things on this machine, that's where it should go first. Maybe I'll luck out and the nuts can be refitted with the next size larger balls and it won't break the bank. I didn't pay that much for the machine, and it's primarily for hobby use, so I don't want it to become a money pit.
Until that time, it doesn't cost anything except my time to play around and see if I can get dual loop working. It's a good learning exercise if nothing else.
Please Log in to join the conversation.
2 years 6 months ago #298182
by Tinine
Replied by Tinine on topic Dual PID loops with motor encoder + scale encoder per axis
Drive needs to be in torque mode, not velocity.
My experience is that it's better to have PI from the load-mounted encoder.
Dual-loop has always been my standard. Motor shaft angle is unimportant, we care about where the load is. Within reason, backlash becomes a non-issue.
My experience is that it's better to have PI from the load-mounted encoder.
Dual-loop has always been my standard. Motor shaft angle is unimportant, we care about where the load is. Within reason, backlash becomes a non-issue.
Please Log in to join the conversation.
- TangentAudio
- Topic Author
- Offline
- Premium Member
-
Less
More
- Posts: 97
- Thank you received: 0
2 years 6 months ago #298183
by TangentAudio
Replied by TangentAudio on topic Dual PID loops with motor encoder + scale encoder per axis
Tinine,
These are 35 year old dumb servo amps, there's no option to set torque mode on them unfortunately. They take offset PWM in and output +/- DC voltage. The motors have 2000CPR encoders, but they do not connect to the servo amps.
These are 35 year old dumb servo amps, there's no option to set torque mode on them unfortunately. They take offset PWM in and output +/- DC voltage. The motors have 2000CPR encoders, but they do not connect to the servo amps.
Please Log in to join the conversation.
- TangentAudio
- Topic Author
- Offline
- Premium Member
-
Less
More
- Posts: 97
- Thank you received: 0
2 years 6 months ago #298184
by TangentAudio
Replied by TangentAudio on topic Dual PID loops with motor encoder + scale encoder per axis
These are the parts of the old ProtoTrak Plus system from 1989 that I am still using for the moment, because they came with the machine and still work.
I have not pulled the amp boards from the cage to get photos, but they are pretty primitive. Not much more than a DC power supply really.
The servo motors are big, brushed DC with a 16T:44T belt drive to couple to 5mm pitch ball screws. The 2000CPR encoder hangs off the back.
And these are the "infamous" Trak gage wheel table position encoders (on X, Y and the non-motorized quill). They work, kinda, until they get chips in them or they get misaligned.
I have not pulled the amp boards from the cage to get photos, but they are pretty primitive. Not much more than a DC power supply really.
Attachment not found
Attachment not found
The servo motors are big, brushed DC with a 16T:44T belt drive to couple to 5mm pitch ball screws. The 2000CPR encoder hangs off the back.
Attachment not found
And these are the "infamous" Trak gage wheel table position encoders (on X, Y and the non-motorized quill). They work, kinda, until they get chips in them or they get misaligned.
Attachment not found
Please Log in to join the conversation.
2 years 6 months ago #298189
by Tinine
First thing I do with a modern drive is switch it to dumb torque-mode.
Do you have schematics for the drive? Sometimes the conversion is a matter of a solder-jumper.
Replied by Tinine on topic Dual PID loops with motor encoder + scale encoder per axis
Dumb=good. All you need the amp for is transconductance from a low-level command to a current. Encoder should feed to your controller, not the amp.Tinine,
These are 35 year old dumb servo amps, there's no option to set torque mode on them unfortunately. They take offset PWM in and output +/- DC voltage. The motors have 2000CPR encoders, but they do not connect to the servo amps.
First thing I do with a modern drive is switch it to dumb torque-mode.
Do you have schematics for the drive? Sometimes the conversion is a matter of a solder-jumper.
Please Log in to join the conversation.
- TangentAudio
- Topic Author
- Offline
- Premium Member
-
Less
More
- Posts: 97
- Thank you received: 0
2 years 6 months ago #298190
by TangentAudio
Replied by TangentAudio on topic Dual PID loops with motor encoder + scale encoder per axis
I have not stumbled across any schematics yet. The cage with both X and Y amps is Trak part number 15047, but all I can find are listings for a full replacement. I'm not opposed to pulling it apart and doing some reverse engineering, but I haven't gone there just yet.Dumb=good. All you need the amp for is transconductance from a low-level command to a current. Encoder should feed to your controller, not the amp.
First thing I do with a modern drive is switch it to dumb torque-mode.
Do you have schematics for the drive? Sometimes the conversion is a matter of a solder-jumper.
Please Log in to join the conversation.
- TangentAudio
- Topic Author
- Offline
- Premium Member
-
Less
More
- Posts: 97
- Thank you received: 0
2 years 6 months ago #298226
by TangentAudio
Replied by TangentAudio on topic Dual PID loops with motor encoder + scale encoder per axis
After doing more reading, now I'm questioning what mode these amps actually use. This thread in particular:
www.cnczone.com/forums/servo-motors-driv...d-velocity-mode.html
Without documentation or reverse engineering the board, is there a sort of "black box" bench test I could perform to determine if these amps are actually running in velocity or torque mode? I've got a scope, current probe, DMMs, a programmable DC load, optical tachometer...
Without documentation or reverse engineering the board, is there a sort of "black box" bench test I could perform to determine if these amps are actually running in velocity or torque mode? I've got a scope, current probe, DMMs, a programmable DC load, optical tachometer...
Please Log in to join the conversation.
- tommylight
-
- Away
- Administrator
-
Less
More
- Posts: 22010
- Thank you received: 3
2 years 6 months ago #298234
by tommylight
Replied by tommylight on topic Dual PID loops with motor encoder + scale encoder per axis
Simple explanation would be:
Torque mode = no tacho generator on the motor
Velocity mode = tacho on motor and wired to drive, not wired to control
Position mode = all of those with encoder wired to control
-
Quite a while back i read here somewhere that LinuxCNC can output tacho signal from encoder feedback using some type of DAC converter for drives in velocity mode and using motors without tacho. Not important for this situation.
From the pictures it looks there is no tacho on the motor, so torque mode, and since LinuxCNC can use them with just encoder feedback and a single PID loop, should be easy to make it work, but tuning might be a challenge.
Since you also have linear scales (i hope i am on the right topic), having two loops should be much better, so use motor encoder to close velocity loop in LinuxCNC with the first PID, and use the scales to close the position loop in LinuxCNC with the second PID.
Should be doable, but i have yet to try as i have no linear scales on anything.
Torque mode = no tacho generator on the motor
Velocity mode = tacho on motor and wired to drive, not wired to control
Position mode = all of those with encoder wired to control
-
Quite a while back i read here somewhere that LinuxCNC can output tacho signal from encoder feedback using some type of DAC converter for drives in velocity mode and using motors without tacho. Not important for this situation.
From the pictures it looks there is no tacho on the motor, so torque mode, and since LinuxCNC can use them with just encoder feedback and a single PID loop, should be easy to make it work, but tuning might be a challenge.
Since you also have linear scales (i hope i am on the right topic), having two loops should be much better, so use motor encoder to close velocity loop in LinuxCNC with the first PID, and use the scales to close the position loop in LinuxCNC with the second PID.
Should be doable, but i have yet to try as i have no linear scales on anything.
Please Log in to join the conversation.
- TangentAudio
- Topic Author
- Offline
- Premium Member
-
Less
More
- Posts: 97
- Thank you received: 0
2 years 6 months ago #298241
by TangentAudio
Replied by TangentAudio on topic Dual PID loops with motor encoder + scale encoder per axis
Thanks Tommy,
By your logic, these are probably torque mode drives after all? There is a quadrature encoder on the motors, but no tachometer/generator that would produce an analog output relative to velocity. I was conflating tachometers and encoders, since you could use an encoder to infer velocity and it would act as a tacho in theory. That's my lack of servo experience showing.
I might set up a DMM to read voltage across the motor and record voltages as I step through a series of open loop PWM control values across the full scale range. I could do another run and measure current as well. Might be even better to do it with a large load resistor (or a DC load) since that would eliminate the back EMF from the motor influencing the reading?
At least then it should be apparent whether voltage or current is changed proportionally to the control input and I could convince myself what sort of drives I have !
.
By your logic, these are probably torque mode drives after all? There is a quadrature encoder on the motors, but no tachometer/generator that would produce an analog output relative to velocity. I was conflating tachometers and encoders, since you could use an encoder to infer velocity and it would act as a tacho in theory. That's my lack of servo experience showing.
I might set up a DMM to read voltage across the motor and record voltages as I step through a series of open loop PWM control values across the full scale range. I could do another run and measure current as well. Might be even better to do it with a large load resistor (or a DC load) since that would eliminate the back EMF from the motor influencing the reading?
At least then it should be apparent whether voltage or current is changed proportionally to the control input and I could convince myself what sort of drives I have !
.
Please Log in to join the conversation.
Time to create page: 0.065 seconds
