A Universal Motor Controller

By R.G. Sparber

I have owned a table feed for my mill/drill for 10 years [Figure 1]. It is shown here removed from my machine and with the internal motor controller bypassed (note the orange wires feeding into the hole previously occupied by the speed control knob). "Why would I rewire it?" you may ask. Read on.

Figure 1

This table feed is a mixed blessing. Mechanically, it is solid. Electrically, it has its problems. On long, slow cuts, the motor controller often overheats. Twice it has burned up. As the load (torque) on the motor varies, so does its speed. This means I must constantly adjust the feed rate as I cut through varying thickness of metal. When the motor controller burned up for the second time, it was time to consider a major change. My goal was to preserve the mechanical parts of the table feed plus the motor while installing a new motor controller.

Starting at the lowest cost end of the spectrum, we have fan motor controllers. These are available at most hardware stores, cost less than $15, and will do a good job of holding the motor speed constant if the motorís load is also constant Figure 2 is an equivalent model of a fan motor controller.

Figure 2

By adjusting the fan motor controllerís knob, the source voltage, Vsource, is changed. This voltage is applied to the motor via source resistance, Rsource. As the mechanical load on the motor increases, the motorís RPM falls. More current, Isource, is drawn from Vsource resulting in a larger voltage drop across Rsource. This causes the voltage across the motor, Vmotor, to fall. By turning the knob clockwise, Vsource rises which raises Vmotor. That can return the motor to its original RPM. So if I keep a close eye on the motorís RPM and a hand on the knob, it is possible to hold the motorís speed fairly constant as the load varies. It should be noted that the motor also contains some resistance so even if Rsource was zero, we would still have this speed regulation problem.

This option would give me the same performance that I had with my original motor controller but might be less likely to burn up. My hope is based on the fact that these controllers are in wide use and supposedly the design errors have been worked out of them. One notch up from fan motor controllers is the family of router motor controllers. These can often be bought for less than $25 yet can handle more current. They too only hold the motor speed constant if the motorís load is constant.

At the other end of the spectrum we have motor controllers that directly sense the rotational speed of the motor and adjust the applied voltage. See Figure 3 for its equivalent model.

Figure 3

This may look complex but is exactly the same as the fan motor controller except that instead of a person adjusting the knob, we let the circuit do the work. The knob now fixes the voltage Vset. A speed sensor is attached to the motorís shaft and generates a voltage, Vrpm, that is proportional to the motorís speed. Say that the motor is slowed down by an increase in load. We will see its speed start to fall. The sensor detects this fall and generates a smaller Vrpm. Vrpm is multiplied by our gain, G, and subtracted from Vset to become our source voltage, Vsource. Vsource is then applied to the motor via Rsource. So the initial reduction in motor speed is countered by increasing the applied voltage to the motor. Conversely, if the motor starts to speed up because its load is reduced, Vrpm will rise and that will call Vsource to fall. This reduction in voltage applied to the motor will cause its speed to be reduced. The above scheme is called a feedback system. The value of G must be carefully chosen so that the corrections to the motorís speed are not an under or overreaction. If G is too small, then we end up with a motor controller similar to the one shown in Figure 2. If G is too large, then we go into constant correction mode causing the motor to first surge to a speed far above the target value and then to plummet to a speed below the target value. When G is chosen correctly, the result is a motor that can hold a given speed over a wide range of mechanical loads. These motor controllers tend to be commercial grade and expensive.

I have designed this type of controller in the past but they do not really solve my immediate problem. There is no easy way to connect the speed sensor into my table feed. Putting the sensor on the X-axis lead screw does not work well because it runs very slow. Putting it directly on the motor shaft would mean reworking the gear train. This would be at best messy and at worst I might destroy the unit.

So I set out to find some middle ground between fan controllers and speed sensing systems. The goal was to have a motor controller that could regulate the motorís speed without using a speed sensor. Searches in catalogs and on the web turned up no such product. Could it be that such a controller could not be built? A few hours of research told me that a universal motor is amazingly complex. There is a clear relationship between RPM and drawn current if the applied voltage is constant, RPM and applied voltage if the drawn current is held constant, and torque versus drawn current. The problem is how to fit these three characterizations together. Digging into the mathematical models gave me hope. If I assumed that certain non-linear functions were approximately linear over a narrow range, then it can be shown that a universal motor will hold an almost constant RPM if I hold the ratio of applied voltage divided by drawn current constant. In other words, if we use the drawn current times a constant to set the applied voltage, the RPM can be held almost constant. A model of this statement is shown in Figure 4.

Figure 4

As the motor is loaded down, it will draw more current from Vsource. This current, Isource, is monitored and multiplied by R.The resulting voltage is added to Vset to become our new value for Vsource. As the motor draws more current, we apply more voltage to it. The higher applied voltage causes the current to stop rising so we stabilize at a new Vsource. Just as with the feedback system described in Figure 3, care must be taken with the selection of Rís value. If R is too small, then we have a behavior like our fan controller. If R is too big, then a small rise in Isource will cause a large rise in Vsource. That in turn will cause a further rise in Isource. Before long we are at maximum Vsource and maximum motor speed.

In all of my searching, I did find an obscure reference to just monitoring the drawn current and using it to control the applied voltage. It was a passing comment before the author went on to extol the virtues of monitoring RPMs (so bye bye US patent!). It was time to go into my shop for some real world experience. After all, theory will take you just so far. My plan was to manually simulate the scheme shown in Figure 4. See Figure 5.

Figure 5

I took an electric drill which uses a universal motor, coupled it to a second motor/generator that acted as a RPM sensor. Using a DC power supply, I ran the drill up to a comfortable speed and recorded the motor/generator output voltage. Anytime this voltage appeared at the output of my motor/generator, I would know that I had returned to my original speed. No need to really know the RPM. I was then ready to run the motor while varying its torque and monitoring its current drain, applied voltage, and RPM. Torque control was simply a flat rubber strap resting on the motorís shaft and pulled down by a series of removable weights, a crude pony brake. I applied a DC voltage to the motor, put on one weight, and recorded the resulting current drain and output voltage. This was my reference level. A second weight was added to the pony brake and the applied voltage increased until the output voltage returned to my reference level. A third weight was added and the process repeated. After adding 5 weights, the trend became obvious. I could keep the RPM within 10 percent of its original value over a 1 to 5 range of torques by just monitoring the motorís current, multiplying it by a constant, and using it to set the applied voltage. That was much better than a fan controller so work proceeded. In engineering we call the above crude experiment a "proof of concept". It is quick, easy, and gives us hope that we are on the right track.

Note that monitoring the motorís current and using it to set the applied voltage is far from perfect. It will only work over a limited range and has inherent error. However, I have found it good enough for my application.

We are about to take a huge leap from proof of concept to finished design [Figure 6]. I will not attempt to describe my journey between these two points except to say that it took about 3 months of part time playing. The process is very much like the old joke about making sausages (you really do not want to know how it is done).

Figure 6

The circuit presented here may look rather complex. You can blame it on my original design goal: use low cost parts that are readily available. All components except the Silicon Controlled Rectifier (SCR) are available from Radio Shackä at the time of this writing. They sell packages of transistors, diodes, and resistors for a few dollars each. This means that the number of parts is not as important as which parts are used. The SCR should be rated at a minimum of 400 Peak Inverse Volts (PIV) so spikes from the motor and/or powerline do not fry it. It must also have a Critical dV/dt of at least 50V/uS to prevent spikes from the motor causing the SCR to falsely trigger. The circuit is design to drive a low sensitivity gate so a maximum needed gate current of less than 30 mA should be fine. Transistors Q1, Q4, and Q7 may look odd with 2 base terminals. This is just a drawing convention Ė the 2 terminals are just 1 connection. When lines cross, there is no connection. Lines that T do connect.

The circuit might have been simpler if I used integrated circuits but would have cost more. The approach would also make the design dependent on parts that might become hard to buy at a later date.

If you have some background in electronics, a study of this circuit may convince you that Iím not playing with a full deck. I do use a lot of tricks here that may not be obvious. Such is the result of months of trying to reduce parts count without sacrificing performance. Most readers probably just want a better motor controller and do not care how it works. I will therefore not supply a detailed circuit description here.

There are a few essential details to discuss. This circuit runs directly from the AC line. In operation there should be no exposed points that the user can touch. Motor speed is set via potentiometers, which are double insulated. During development, I used an isolation circuit made from two identical transformers [Figure 7] and [Figure 8].


Figure 7



Figure 8

If you choose to build this circuit, be mindful that the current that flows in the low voltage sides is much larger than in the AC main and isolated AC sides. The transformers must be able to take this larger current.

By using an isolation scheme, it is possible to safely ground the node marked "datum" in the schematic of the motor controller [Figure 6]. This permitted me to connect test equipment without the risk of accidentally applying raw AC to the test equipmentís ground.

Parts placement is important when you build the controller. Much of the circuit processes very small signals yet the current flowing through the SCR is large. It is essential that electrical noise generated by the SCR not get back into the rest of the circuit. Figure 9 shows my prototype. It will be kept in a safe place until a "production" copy is built and tested.

Figure 9

Resistor R21 and C6 should be connected directly to the SCR with the shortest leads possible. The circuit path marked "datum" was made from 0.5" strips of copper foil. Components connecting to this path were soldered directly to the copper. On the backside is another copper strip for "Vcc+". Actual circuit layout of the components follows the placement of parts in the schematic. For example, keep C5 close to the top of R20 and the cathode of the SCR. Similarly, keep Q5 far away from the SCR.

This circuit has 3 adjustments. Potentiometer R18 controls the motors RPMs and should be readily accessible with a big knob on it. Potentiometers R5 and R25 are set only when the motor is changed so should probably be protected against accidental adjustments.

There will be a minimum and maximum desired RPM for the drive motor. The minimum RPM relates to how slowly you want the mill table to advance. I find that a range of from 1 to 10 inches per minute is fine. Additionally, you can close the "fast traverse" switch show in the lower right corner of the schematic in order to run at full speed.

I will not go into more detail on the theory, construction, or testing of the circuit. If you are experienced with electronics, then no further help will be needed from me. If you need any help, I invite you to contact me through Village Press.

Letís assume you now have the circuit built and tested. It is time for "system integration". This entails preparing the mill/drill, connecting the motor, and "tuning" the circuit.

We first must verify that the mill/drill operates correctly. Be sure that you have the table gib set correctly so there is no binding or excessive table play. A hidden source of binding is the nut that accepts the X-axis lead screw [Figure 10] and [Figure 11].

Figure 10 Ė saddle, top view showing X-axis lead screw nut

Figure 11 Ė saddle, bottom view showing cap head bolts that secure nut

If this nut is not securely bolted to the mill/drillís saddle, it will tilt and cause binding. At least on my RF-30 mill/drill, the socket heads are visible from underneath after you remove the Y-axis lead screw. This may sound complicated but only requires removal of 2 bolts on the Y-axis lead screw bearing support before turning the Y-axis lead screw out.

On my table feed, it was possible to reuse the switches that control table direction. These switches are integrated with the gearbox and control handle so I certainly wanted to reuse them to avoid re-work. The existing electronics package was left in place but electrically isolated. As seen in Figure 1, two wires were routed out of the table feed enclosure. They temporarily complete the circuit and permit me to use the 110V plug to supply power to the motor. The table feed motor plus direction switches are represented on the schematic as a dashed box with the motor and a switch inside.

Once the motor is connected to the controller, we are ready to start the tuning process. Set potentiometer R18 full counter clockwise which should be minimum RPM. Set potentiometer R5 counter clockwise which should be minimum gain. R5 sets the value of R shown in Figure 4. Potentiometer R25 is set full counter clockwise, which sets minimum "intercept" [see Figure 6]. Apply power to the circuit and move the table control lever so the motor engages. At this point the motor should not be rotating although you may hear a slight hum. Now slowly turn potentiometer R25 clockwise until the motor starts to turn. Continue turning R25 until the table is moving at an acceptable minimum speed. I do not recommend trying to run the motor too slow, as it will not have enough torque. This can also cause the controller with its motor to buck. If allowed to persist long enough, the bucking can cause the brushes inside the motor to chip. Chipped brushes can cause the motor to go from stalled to full speed over a very narrow applied voltage range. If this occurs, remove power, and then remove the brushes. Gently file the end surfaces smooth with a file that has the same curvature as the motorís armature. Using a cotton swab dipped in alcohol, reach through the brush holder and clean the commutator. Wipe the brushes clean and reinstall. Reset the minimum speed to a higher level via R25.

Once you have potentiometer R25 set to your liking, run potentiometer R18 from full counter clockwise to full clockwise. The motor should go from the minimum table feed rate that you just set up to a maximum. I found this maximum was a little faster than I needed but acceptable. The circuit could have been designed to give you independent control of the minimum and maximum feed rates but the added circuitry was excessive.

The final step in tuning the circuit is to set the gain via potentiometer R5. If the gain is set too low, the circuit will act no better than a fan controller. Increased torque from the motor will cause the RPM to fall. However, if the gain is set to high, increased torque from the motor will cause the RPM to surge and go unstable. This can be disastrous behavior if you are in the middle of a milling operation. As a starting point, I set the RPM to minimum and started the motor. Then I grabbed the hand wheel gently to provide drag, which increases the torque demands on the motor. The gain potentiometer R5 is then advanced until the motor starts to surge. Back off a little on R5, grip the hand wheel a little tighter and raise the gain again. You should be able to barely hold onto the hand wheel yet when you let go the motor does not speed up by more than 10 to 20 percent. Sudden changes in torque will push the system closest to instability so be sure to do a few quick grabs of the hand wheel. The best I was able to achieve was an 8 percent speed up from no load to full load. Next go to the maximum speed you will run the table during cutting and verify that the motor does not surge given the gain you set at minimum RPMs. If it does, reduce the gain a little more.

As a final check of the gain, make some test cuts on the mill/drill. Take a cutoff of your toughest metal plus a large diameter cutter. I used my shell mill which is almost indestructible. Start with a light cut at various table speeds to verify that the system has adequate gain yet remains stable (no bucking). The large diameter cutter is less likely to break off if bucking starts. Take increasingly deep cuts at various table feed speeds until you are satisfied that no bucking will occur. If you start to see bucking, turn potentiometer R5 counter clockwise a few degrees and repeat the milling test. Once you are satisfied with R5ís setting, protect it from further adjustments. This concludes the tuning process.

Although this circuit was designed for the small motor inside my table feed, I see no reason why it could not run larger universal motors. Given properly sized bridge diodes, D5, and SCR, it should be possible to run a circular saw. Just be sure you are driving a universal motor and not an induction motor.


Parts List

All resistors are 5%, 0.25W except as noted and all are available at Radio Shack™.

R01 12K 0.75W

R02 33K

R04 330 ohm

R05 100K pot

R06 39K

R07 82K

R08 2.2K

R09 2.2K

R10 100K

R11 47K

R12 15K

R13 15K

R14 2.7K

R15 27K

R16 8.2K

R17 3.3K

R18 25K pot

R20 680 ohm

R21 100 ohm

R22 0.47 ohm 5W

R25 100K pot

R30 1 Meg

C1 100 uf 50V electrolytic Ī 20%

C2 0.5 uf Ī 20%

C3 1270 pf Ī 5%

C4 0.02 uf Ī 5%

C5 0.1 uf Ī 20%

C6 6490 pf Ī 20% 200 volt

C7 6490 pf Ī 20% 200 volt

L1 ferrite toroid with as many turns of 18 gage wire through it that can fit

All diodes are 1N4004 (400V breakdown) (Radio Shack Catalog #: 276-1653) except for D5 which must be 3A 400V (Radio Shack Catalog #: 276-1144)

Diode bridge is 8A 400V(Radio Shack Catalog #: 276-1181)

Transistors should all be able to sustain 40V (NPNs you can use are Radio Shack Catalog #: 276-1617, which gives you 15 devices for $2.49. Similarly they sell PNPs in a package of 15 for the same price (Catalog #: 276-1604)

SCR is low sensitivity gate, 400V at 8A minimum (Radio Shack does not have this one). Be sure that the Critical dV/dt of the SCR is at least 50 V/uS.

The fuse is a 5 amp slow blow fuse. The LED is optional but makes a nice power-on indicator.