- Configuring LinuxCNC
- Advanced Configuration
- How to configure for spindle motor - DC brushed servo w/encoder step/dir
How to configure for spindle motor - DC brushed servo w/encoder step/dir
- Richard J Kinch
- Offline
- Senior Member
Less
More
- Posts: 61
- Thank you received: 4
26 Mar 2019 16:50 - 26 Mar 2019 16:59 #129707
by Richard J Kinch
Yes, that's reasonable. Whatever you can signal in stepgen position-mode should be feasible to signal in velocity-mode.
If the motor is 600ppr, that implies 600ppr * 1200rpm / (60sec/min) = 12 kHz, which is typically a feasible base thread. Base thread rates are not the problem.
The China servo controller you're using appears to be configurable for quadrature step signals, which would double the top speed to 2400rpm (assuming you were using step/dir signals when you proved 1200rpm).
This should be solvable with a correct HAL configuration of stepgen.
Another feasibility constraint that should be preached about the servo-based spindle motor concept: Position-mode PID servos are theoretically limited to low inertia (some small multiple of the rotor inertia), low spring, and low backlash in the driven mechanism. If you encroach those limits the position will not be stable, and instead the resonance or hysteresis spoils the stability (the spindle won't hold still, or hold a steady rpm, it oscillates at a low resonant frequency). This is an inherent problem to PID and can't be tuned out. In your small milling machine the spindle inertia is not a worry. But if you try to do this on a lathe, position-mode PID servo control typically can't work because the spindle inertia is huge (massive chuck and pulleys with large diameters, and springy timing belts, are mandatory elements), well out of the servo stability envelope. This lathe spindle problem is inherent to lathes, where the concept is to spin the heavy work and workholder, and not the lightweight/compact tool, the inverse concept of a mill.
Replied by Richard J Kinch on topic How to configure for spindle motor - DC brushed servo w/encoder step/dir
It seems to me that if I was able to accomplish 1200rpm in position mode yesterday then the dang system should indeed be capable of generating similar pulse speed in velocity mode.
Yes, that's reasonable. Whatever you can signal in stepgen position-mode should be feasible to signal in velocity-mode.
If the motor is 600ppr, that implies 600ppr * 1200rpm / (60sec/min) = 12 kHz, which is typically a feasible base thread. Base thread rates are not the problem.
The China servo controller you're using appears to be configurable for quadrature step signals, which would double the top speed to 2400rpm (assuming you were using step/dir signals when you proved 1200rpm).
This should be solvable with a correct HAL configuration of stepgen.
Another feasibility constraint that should be preached about the servo-based spindle motor concept: Position-mode PID servos are theoretically limited to low inertia (some small multiple of the rotor inertia), low spring, and low backlash in the driven mechanism. If you encroach those limits the position will not be stable, and instead the resonance or hysteresis spoils the stability (the spindle won't hold still, or hold a steady rpm, it oscillates at a low resonant frequency). This is an inherent problem to PID and can't be tuned out. In your small milling machine the spindle inertia is not a worry. But if you try to do this on a lathe, position-mode PID servo control typically can't work because the spindle inertia is huge (massive chuck and pulleys with large diameters, and springy timing belts, are mandatory elements), well out of the servo stability envelope. This lathe spindle problem is inherent to lathes, where the concept is to spin the heavy work and workholder, and not the lightweight/compact tool, the inverse concept of a mill.
Last edit: 26 Mar 2019 16:59 by Richard J Kinch.
Please Log in or Create an account to join the conversation.
26 Mar 2019 23:26 - 26 Mar 2019 23:29 #129730
by Vinito
Replied by Vinito on topic How to configure for spindle motor - DC brushed servo w/encoder step/dir
Thanks for the tip. It makes sense that the inertia in a lathe would magnify the issue into problem territory. Good to know especially since I've been thinking on a lathe for the next project maybe.
I was thinking if I might could find a Hardinge HC that it would be a very nice candidate for a high-quality but small lathe CNC conversion. It's even equipped stock with an 8-position mechanical tool turret already which might be relatively simple to automate. But all that is down the road a ways.
I've fiddled around a bit more and not gained anything. I've decided to let the recent wounds from hitting my head against a brick wall heal for a while and just go simple. Namely, I've got a relay module so I can switch the old single phase AC motor on & off with a single lpt pin, so that's good enough.
I have some ball screws on the shelf I'm going to install, which will require that I make some mounting blocks and probably mill some clearance and mounting points into the underside of the screw areas (the ball nut is more bulky than the lead screw stuff). I can probably have that done by the weekend, but in the meantime maybe I can just simplify the controller goals and get the thing to a minimum acceptable configuration.
This machine has unexpectedly gone over-budget on the setup time already.
If it weren't for half-assed, nothing would ever get done.
Thanks again for all the help. I've learned a bit.
I was thinking if I might could find a Hardinge HC that it would be a very nice candidate for a high-quality but small lathe CNC conversion. It's even equipped stock with an 8-position mechanical tool turret already which might be relatively simple to automate. But all that is down the road a ways.
I've fiddled around a bit more and not gained anything. I've decided to let the recent wounds from hitting my head against a brick wall heal for a while and just go simple. Namely, I've got a relay module so I can switch the old single phase AC motor on & off with a single lpt pin, so that's good enough.
I have some ball screws on the shelf I'm going to install, which will require that I make some mounting blocks and probably mill some clearance and mounting points into the underside of the screw areas (the ball nut is more bulky than the lead screw stuff). I can probably have that done by the weekend, but in the meantime maybe I can just simplify the controller goals and get the thing to a minimum acceptable configuration.
This machine has unexpectedly gone over-budget on the setup time already.
If it weren't for half-assed, nothing would ever get done.
Thanks again for all the help. I've learned a bit.
Last edit: 26 Mar 2019 23:29 by Vinito.
Please Log in or Create an account to join the conversation.
- Richard J Kinch
- Offline
- Senior Member
Less
More
- Posts: 61
- Thank you received: 4
27 Mar 2019 05:08 - 29 Mar 2019 22:40 #129752
by Richard J Kinch
I'm in the 15th month of my two-week lathe project.
Replied by Richard J Kinch on topic How to configure for spindle motor - DC brushed servo w/encoder step/dir
This machine has unexpectedly gone over-budget on the setup time already
I'm in the 15th month of my two-week lathe project.
Attachments:
Last edit: 29 Mar 2019 22:40 by Richard J Kinch.
Please Log in or Create an account to join the conversation.
27 Mar 2019 08:56 #129756
by Vinito
Replied by Vinito on topic How to configure for spindle motor - DC brushed servo w/encoder step/dir
I'm two weeks into my 15 month toy mill project.
At least your project is probably worth the effort.
At least your project is probably worth the effort.
Please Log in or Create an account to join the conversation.
27 Mar 2019 11:35 #129764
by pl7i92
Replied by pl7i92 on topic How to configure for spindle motor - DC brushed servo w/encoder step/dir
Good things may need TIME
2week means kit if not even lowest effort
2week means kit if not even lowest effort
Please Log in or Create an account to join the conversation.
- Configuring LinuxCNC
- Advanced Configuration
- How to configure for spindle motor - DC brushed servo w/encoder step/dir
Time to create page: 0.120 seconds