How to build a controller for a DC motor?

I picked up a controller off Amazon the run my little CNC mill with a similar motor. It doesn't take up much room.

uniquegoods AC 110V 120V 220V 230V 10000W High Power SCR Motor Speed Controller​

I was looking for a controller with reverse built in.
 
I've built a couple of controllers using the ideas from 'The Aussie Shed' on youtube. One for a variable speed motor for a drill press, the other to control the DC motor in my 7x lathe when I blew the stock controller. They work OK, and aren't too difficult to put together.
I elected not to run a simple SCR circuit like the above. This circuit generates a lot of electrical noise and I have sensitive electronics in my TouchDRO and my ELS and I didn't want interference. The second reason is this circuit has poor low end torque or speed regulation vs. applied load. It would be fine for a belt sander or the like but for a lathe, I prefer not to be fiiddling with the control when I should be concentrating on the machining process.
 
I was looking for a controller with reverse built in.
For most brushed DC motors, just reversing the polarity of the power inputs will reverse the motor. So a DPDT switch between the controller and the motor is often used for reversing.
 
I replaced the 1 hp a.c. motor on my Grizzly G0602 with a 2.5 hp brushed d.c. motor. I built my own controller from scratch. Specifically, aside from variable speed, I was looking for enhanced low speed operation. My first try was a Variac feeding a full wave bridge which provided variable speed but very poor low speed torque. I tried a couple of off the shelf solutions that didn't pan out so I just designed my own controller. The idea was to use simple readily available components.

I incorporated a full wave bridge with a 4,000 mfd filter which provides a no load voltage of 176 volts and 120 volts at full load My design is based on PWM using a MOSFET transistor as the controlling element. Low end response was still less than I was expecting. I realized that the poor low end performance could be improved by adding feedback to the circuit. A home built encoder provides speed feedback and when the motor starts to slow down due to increased load, the circuitry increases the pulse width to increase the torque to maintain the selected speed.

The no load maximum speed is about 5,700 rpm but I limited my maximum speed to 4,500 rpm as the motor is rated for 4,300 rpm @130 volts d.c. . I have usable torque to below 40 rpm for a 110:1 useful speed range. I retained the original pulley setup so my overall spindle speed is from around 3 rpm to over 5,000 rpm. For virtually all my lathe work I use the medium low pulley setting which gives me a speed range of 6 rpm to 800 rpm. When threading, I can dial down to zero rpm as I approach the end of my thread which allows me to stop at the same position on each pass. This makes threading to a shoulder worry free, even for metric threads.
Did you have to address any stability issues with your feedback loop?
 
For most brushed DC motors, just reversing the polarity of the power inputs will reverse the motor. So a DPDT switch between the controller and the motor is often used for reversing.
yep, that's what I use. Though with PWM controllers that can alarm out the controller. Works fine on SCR based controllers like the MC40 and MC60, but on the MC1100+arduino I have on my lathe I need to turn off the PWM signal first, switch motor inputs with a DPDT switch and then turn the PWM signal back on. Works fine, but a little clunkier than with my MC60 powered machines
 
The KB controllers are usually an economical choice, although lately the Ebay pickings have been sparse and the prices astronomical
 
Did you have to address any stability issues with your feedback loop?
I have some overshoot on initial startup as the encoder is sensing a lower than set rpm so it sends essentially full width pulses to the MOSFET. This settles within a second. I could dial back the feedback at the expense of a greater drop in rpm with increasing load. Currently, I have about a 5% drop from no load to where my belts start slipping. There is a small amount of searching that occurs, as indicated by the ELS tach. Usually, only a few RPM.

I haven't cracked the case since I installed the control. I have since set up a Prony brake to measure output torque and had determined that I was fairly well limited by the belt slippage rather than motor torque. I could go back and attempt to optimize the feedback but in fairness, the lathe is performing satisfactorily so if it ain't broke, why fix it?

If I were doing it over, I would make/use an encoder with higher resolution. I would then be able to achieve better extreme low end performance.

My encoder consists of 40 magnets embedded in the intermediate pulley, which is coupled to the motor with a gearbelt with a 4:1 reduction resulting in resolution of 10 pulses/rev. at the motor. I have 1000/pulses/rev encoder for the ELS but it is measuring spindle RPM and would would change depending upon pulley setting.
 
Back
Top