Universal motor speed control using commutator frequency as feedback.

Thread Starter

strantor

Joined Oct 3, 2010
6,743
I'm using a 120V die grinder for some non-standard grinding operations and i need to control the speed. I have been using a "router speed controller" for this purpose but it isn't great because the speed difference between loaded and unloaded motor is more drastic than optimal. I've been thinking of rolling my own speed controller using some speed feedback. There isn't a good way to mount an encoder or sense gear teeth so thought "what about measuring the commutation frequency?" That would actually be pretty great because I could use it with any brushed universal motor tool, just plug it into the controller, and the controller automatically has speed feedback to use for regulation of speed under changing load, no modifications needed for any of the tools.

But if it were that simple, this would be something I could just buy. But I don't see anything like it. When I search for it I just find a bunch of open-loop devices like the one I'm already using.

So what's the gotcha? Why doesn't this exist?
 

MaxHeadRoom

Joined Jul 18, 2013
28,050
There was a IC made specifically for this by Motorola, (On Semiconductor) the TDA1085C.
It was developed when it was wished to use a Universal motor Triac control in washing machines.
There was also one make of TM that used it also.
They use a simple 6? count slotted disc with opto on the rear of the motor to feed the pulses to the IC.
 

Thread Starter

strantor

Joined Oct 3, 2010
6,743
There was a IC made specifically for this by Motorola, (On Semiconductor) the TDA1085C.
It was developed when it was wished to use a Universal motor Triac control in washing machines.
There was also one make of TM that used it also.
They use a simple 6? count slotted disc with opto on the rear of the motor to feed the pulses to the IC.
Right, I have found solutions involving slotted disk, encoder, analog tach, etc, but none using the commutation frequency. None of my corded hand tools have any of these speed feedback devices but they do all have commutators and brushes, which in (my) theory should create a pretty reliable measure of speed just by measuring current drawn by the device upstream of where it's plugged in. There should be a dip and a spike in current every time a commutator segment makes/breaks contact with the brushes. I'm imagining a waveform something like this:

Output-current-waveform-using-simulation-at-modulation-index-of-06-with-1-kHz-carrier.jpg

Measuring that higher frequency wave riding on the 60Hz wave, considering pole count, should yield the RPM.

But I haven't measured the current waveform of a universal motor yet. I should probably do that. It would probably answer my question.
 

Thread Starter

strantor

Joined Oct 3, 2010
6,743
I think I may have figured it out.

Consider a 20k RPM 3 pole motor running at 100%.

You should have a 6 pulse per rev speed signal from the 3 poles, built into the waveform of the supply current. You should have 100% of each 60Hz wave period during which to measure this. So in one period you should see 2,000 pulses. This should be a very accurate measure of speed.

Now consider the same motor being run at 10% (phase angle) by triac and assume it is running 10% speed: 2,000 RPM (it probably wouldn't be, but just assume).

At 6 pulses per rev, 2k rpm, there should be 200 pulses per 60Hz period. But since you aren't supplying current for 90% of this period you don't see those pulses. You only see the pulses during the 10% ON time, 20 pulses; 10 positive, followed by a gap, then 10 negative.

Now, 10 pulses in a row, all evenly spaced, should still tell you what you need to know. BUT since these pulses occur during or near the zero crossing point, they be either nonexistent or very diminished. Maybe hard to pick out. Maybe only half of them are usable? Maybe none of them are?

If that is the reason then shouldn't it be possible to inject a small DC voltage into the line during the OFF time of the SCR to regain those missing pulses?

This may seem like a lot of effort to accomplish something that is more easily done with a separate physical measurement like a tach or slotted disk, but the idea is to use it with corded tools and not requiring them be individually modified with encoders hot-glued into the case and such. Just a "box" you plug the tool into and then accurately can control speed of the tool with much better accuracy than existing "boxes" sold for such purpose.
 

MrAl

Joined Jun 17, 2014
10,909
Hello there,

One way around those problems is to use a phase locked loop. This will provide the missing pulses. It may get complicated though.

What has been done for years now, as far back as I can remember small tape recorders used to control the capstan speed. This 'magic' method uses the back EMF of the motor to control the speed.
The problem is, you still have a dead time where there is no signal, so you would have to measure only during the 'on' time of the controlling switch.
This is a DC type control though, so you'd have to figure out how to rectify the power getting to the motor first.

These problems are probably why they use a shaft encoder of some type, so you get a continuous signal regardless of what the speed is.
You might be able to rig up an optical or magnetic sensor to sense the rotation of the armature. Since the armature has metalic poles and copper between, you may be able to use an optical sensor to sense the position or a magnetic sensor to sense the changing magnetic field. There are sensors that are very sensitive and if you place one inside the motor housing, you should be able to sense something useful. The poles should provide a stronger signal than the copper wires using a magnetic sensor. An optical sensor could sense areas of lighter color and areas of darker color as the armature spins. You may have to paint the armature two different colors, like black and white.
 

cmartinez

Joined Jan 17, 2007
8,123
A while ago, @Danko helped me design a circuit that did just what you want it to do. Except said circuit is for a small DC motor and its main purpose is detecting if said motor stopped spinning. But I'm sure it could be adapted to measure RPM's. And I actually built it, and work it did, and exceptionally well.
 

Thread Starter

strantor

Joined Oct 3, 2010
6,743
You might be able to rig up an optical or magnetic sensor to sense the rotation of the armature. Since the armature has metalic poles and copper between, you may be able to use an optical sensor to sense the position or a magnetic sensor to sense the changing magnetic field. There are sensors that are very sensitive and if you place one inside the motor housing, you should be able to sense something useful. The poles should provide a stronger signal than the copper wires using a magnetic sensor. An optical sensor could sense areas of lighter color and areas of darker color as the armature spins. You may have to paint the armature two different colors, like black and white.
I started the thread talking about my grinder and that was misleading; my apologies. I was just giving the backstory about how I came to be considering this. If this thread were about my grinder then I would be open to modifying the grinder but it isn't about my grinder. It's about a general purpose speed controller for corded tools with universal motors.

I will say that, if any modification to the tool is required, then the improved level of control doesn't justify the effort of modifying each device that gets plugged into it. It should be plug-&-play (maybe with a couple of settings to input like poles and current rating) or else it doesn't get built. If that can't be done then it can't be done, and that is an acceptable outcome.
 
Last edited:

Thread Starter

strantor

Joined Oct 3, 2010
6,743
Hello there,

One way around those problems is to use a phase locked loop. This will provide the missing pulses. It may get complicated though.

What has been done for years now, as far back as I can remember small tape recorders used to control the capstan speed. This 'magic' method uses the back EMF of the motor to control the speed.
The problem is, you still have a dead time where there is no signal, so you would have to measure only during the 'on' time of the controlling switch.
This is a DC type control though, so you'd have to figure out how to rectify the power getting to the motor first.
Universal motors will run happily on DC so rectifying, then using PWM would be fine. And measuring back EMF should work fine. Most industrial DC drives use back EMF to sense motor speed when no encoder is used, and it works fairly well. I should probably just try one and see if it's good enough. If it is, then there is no point going forward, even though I suspect counting commutation pulses would be more accurate.
 

Thread Starter

strantor

Joined Oct 3, 2010
6,743
A while ago, @Danko helped me design a circuit that did just what you want it to do. Except said circuit is for a small DC motor and its main purpose is detecting if said motor stopped spinning. But I'm sure it could be adapted to measure RPM's. And I actually built it, and work it did, and exceptionally well.
Thanks! I read through that thread and it seems like a starting point. Do you still have the LTSpice file that was being used near the end? Or is the one in post #34 of that thread the already the latest?
 
Last edited:

Thread Starter

strantor

Joined Oct 3, 2010
6,743
I found using the TDA1085 method very accurate and steady down to low RPM's, one application was my band saw.
What do you mean by "the TDA1085 method?" Unless i missed something, the TDA1085 doesn't measure motor speed. It requires analog motor speed input from an outside source, which is not available in my case. What motor speed sensor are you using on your bandsaw?
 

LowQCab

Joined Nov 6, 2012
3,584
The reason that there's no "universal-knob-on-a box" solution available is
because the Circuitry has to be customized for each individual Motor design.

Start-out with well filtered DC to power the Motor,
then, on the Load-side, some very effective RFI-Filtering to prevent smoking everything on a regular basis.
These 2 things alone put the device out of the realm of commercially-viable "consumer-grade" products.

A high-power Buck-Regulator would allow adequate Filtering to be implemented
to separate the PWM-Switching-Noise from the Commutation-Noise "Signal".

Then there's the problem of the character of the Commutation-Noise "Signal"
drastically changing with varying Loads and RPM-ranges.
.
.
.
 

MaxHeadRoom

Joined Jul 18, 2013
28,050
What do you mean by "the TDA1085 method?" Unless i missed something, the TDA1085 doesn't measure motor speed. It requires analog motor speed input from an outside source, which is not available in my case. What motor speed sensor are you using on your bandsaw?
As in post #2, the feedback is a small slotted disc on the rear of the motor to TDA1085 tach input.
The speed measure is to the tach input from a ~6 slot wheel using an opto.
The stepped control rate was modified from the Motorola print in order to use a pot speed control .
This was many moons ago now, but I still have my notes on file.
 

Thread Starter

strantor

Joined Oct 3, 2010
6,743
As in post #2, the feedback is a small slotted disc on the rear of the motor to TDA1085 tach input.
The speed measure is to the tach input from a ~6 slot wheel using an opto.
The stepped control rate was modified from the Motorola print in order to use a pot speed control .
This was many moons ago now, but I still have my notes on file.
I want this to work with any off-the-shelf corded tool (routers, table saws, drills, grinders, vacuums, etc) using universal motors, without modification (including adding slotted disk). Just plug the tool into it and it senses RPM of the tool automatically by counting the brushed motor's commutation pulses present in the current drawn by the tool.
 

MrAl

Joined Jun 17, 2014
10,909
I started the thread talking about my grinder and that was misleading; my apologies. I was just giving the backstory about how I came to be considering this. If this thread were about my grinder then I would be open to modifying the grinder but it isn't about my grinder. It's about a general purpose speed controller for corded tools with universal motors.

I will say that, if any modification to the tool is required, then the improved level of control doesn't justify the effort of modifying each device that gets plugged into it. It should be plug-&-play (maybe with a couple of settings to input like poles and current rating) or else it doesn't get built. If that can't be done then it can't be done, and that is an acceptable outcome.
Oh so it's a general purpose speed control you are after. That means even a shaft encoder is probably out.
Your next reply helps too though about the back EMF method.

Yes, I had a universal motor in mind when I mentioned the back EMF method.
If it is ok to rectify and maybe filter the AC into DC then you should be able to use that method. It's been used on tape recorders to it can't be too bad, because if the capstan RPM's vary you get a pretty strange frequency modulation of the sound which could sound like a warble. They even used three transistor circuits to do it and it worked pretty well back then.

One thing to remember is that you don't want perfect control for a tool like an angle grinder, you want something that is just a little less control than perfect so that the operator still gets a sense of how much the tool is working. Without a regulator, the system depends on the natural response of the motor, and that is to slow down somewhat significantly when the tool engages with the work, and the more force it is applying the slower the speed. With a speed regulator, you still want the operator to feel that so they can still gauge how much work the tool is doing and ease off a little when needed, otherwise the tool would suddenly stall out.
The other thing to remember is that the speed control cannot improve the maximum performance of the tool. It has a limit and there's no way around that without overdriving the tool, which for short periods, may work ok, but it's probably something you don't want to do.

The first attachment shows a little theory behind this. The simple idea is to measure the current of the armature, then use that to power a resistor of the same value as the armature (with the proper scaling), then that is subtracted from the applied voltage, and that is used to compare to a reference voltage and that is what is used to drive the motor.
The second attachment with the LM358 shows a simple implementation. The resistor Rx is adjusted for good speed control while also keeping it just under the ideal value so the feedback is less than it would be for perfect regulation.
In the first attachment you can see an expression for Va in the lower part of that diagram, where when Rx=Ra (Ra is the armature resistance) the friction 'f' cancels out, and that is the main goal. As I mentioned though, you don't want the friction to cancel out completely because there is a limit to what any motor can do physically, and once that limit is reached, the tool stalls. If it happens suddenly without warning the user has no idea when it might happen. Going too far can also cause positive feedback which would cause the tool to just run full speed or possibly just come to a stop.
 

Attachments

Last edited:
Top