Close

A little background

A project log for Brushed DC Servo Drive

Low cost PID servo drive for small CNC machinery

ottoragamottoragam 02/06/2016 at 03:330 Comments

This project came to be when I became tired of searching for a commercial option for closed loop position control for a CNC machine I'm developing.

The majority of the retrofit CNC drives I found were stepper motor drives, and altough many brushed or brushless drives exist, they're more expensive than the stepper drives ($100 USD and upwards).

Going into hobbyist controller territory, another issue arises: a lot of the commercially available designs are IC based, and frankly, motor driver ICs are shit. They have too much internal resistance, and they're more expensive than a MOSFET/gate driver combo for switching the same load.

I did manage to find some discrete transistor designs that were the right price, but some of them weren't usable at the current or voltage I require for my motors, or were not designed to receive feedback from a quadrature encoder.

I decided then to develop my own brushed motor servo drive. Why brushed and not brushless? Well, because brushed motors for this kind of application are easier and cheaper to find. You can buy some very very good surplus motors, take them out of machines or buy some cheap gearmotors and use them with or without the garbox, in contrast with the BLDC motors, RC ones are the only cheap option, and those spin too fast and may need cooling when used in a non moving machine (as in not an airplane).

Then, I decided that 250 W of output power (per controller) was more than enough for a desktop CNC machine. Lets take a look at an example case:

I got some 24 V 20 W rated (output) motors. They develop 700 gcm of torque at 3000 rpm. For this, they consume 1 amp, so the input power is:

where P is power, I is current and V is voltage. The output power and efficiency are

where E is efficiency, Tau is torque and Omega is angular speed. The efficiency is really nice (it may be the manufacturer inflating numbers a little). I chose to use 5 mm lead ballscrews in my machine. So the thrust my motor is going to generate is:

where F is force, Tau is torque and L is screw lead (assuming 100% efficiency of the system). And the axis could theoretically move at 15,000 mm/min.

So if with 20 W of motor powerwe can achieve that, why are 250 W needed (in this case 168 W, I'm powering the motors with 24 V, remember). Well, the axis may need more torque when pushing the material against the tool, and when the motor develops more torque, it slows down, and uses more current, until it stops spinning completely, and when this happens, its output power becomes zero but its output torque (along with the input current and thrust) reaches its maximum. In my motor's case I have 6,000 gcm of torque at 7.5 A. So the power being used by the motors is 180 W, a bit higher than 168W, but the thing should be able to handle it. In fact, the screw terminals are the thing that limits my current, the ones I'm using are rated for 8A. That's why I need the full power output from my servo drive, to reach maximum thrust (about 740 N).

Finally, I decided that a small footprint would be preferable. I was able to lay out my board in a 40x40 mm area, using 2 layers. Perhaps in the future I'll change the design to use 4 layers to improve MOSFET cooling and reduce EM emissions.

Discussions