How hard is it to drive a 3-ph brushless motor?

Hi All,

I have been doing hardware/software (asm & C) development for 30 years so not totally useless but have never done this, or stepper motor control.

I have a project which needs basically 0-13rpm coming out on a 1/4" shaft. There is a whole pile of axial-style motors and planetary gearboxes e.g. this

formatting link

Few do a 1/4" shaft (6mm is the nearest) but that is another problem :)

The total length has to be 80mm (excl. the shaft).

There are many brush motor solutions, but none are OK because the brushes wear out and this has to run for a very long time - years, in a very high reliability application. No real torque is involved though.

Brushless motors are the way to go and there are ones with built-in controllers which take a 0-10V control voltage, plus a logic level to set the direction.

The 2232BX4SC

formatting link
is one a number; other such as this one
formatting link
are too big in diameter to fit into the space I have.

But nobody does a suitable assembly which is short enough. To get the max length I have to go to a bare brushless motor (no controller) and mount the controller separately.

The problem is lack of anywhere to put any off the shelf brushless controller... so I have to build my own PCB.

What I know is that the controller uses PWM to synthesise the 3 phase waveform. Obviously the frequency will be the desired RPM and I assume that the "rms" voltage will also be varied - the higher the rpm the more volts. I guess they feed the raw PWM to the motor directly, in the conventional way (I have designed loads of DC brush-servomotor PWM controllers). Is there any standard approach to this, or preferably some proved designs/chips?

The other way is to buy a controller for a model aeroplane. The most expensive ones are $100 which is OK but they don't take a control voltage; they take a 1-2ms pulse whose width is the desired speed and whose repetition rate is fixed at about 50/sec. So I would need to build a voltage to pulse width converter.

But many of these model controllers are crap. My son blows them up all the time...

And I would quite like some kind of closed loop motor speed control. Even though the torque is small, the application needs the speed to be within about 10%. This can be done with back-EMF; should not need a tacho.

A different option is to use a stepper directly, 0-13rpm, no gearbox. This might do but a failure of the electronics could make it go round very fast, whereas a motor+gearbox cannot go beyond a certain point which is perhaps 2x max rpm. Brush motors are inherently speed limited but I can't use one... This application cannot deal with a runaway motor.

Can anyone suggest an easy way to do this? I don't fancy programming up a microcontroller to do the 3-phase synthesis - a wheel which must have been invented by so many people......

I found this

formatting link
formatting link
but this is too much work.

Doesn't anybody make a single chip solution?

x----------x

Reply to
Peter
Loading thread data ...

2232BX4SC
formatting link

one

formatting link

check faulhaber.com or maxonmotor.com They have little motors and little controllers too. But they are not cheap.

Bye Jack

Reply to
Jack

Yes there are single chip solutions, but I was not happy with the one that I was involved with -- it came on the recommendation of a vendor, would have worked very well for the application for which it was designed, worked like _crap_ for us, and we ended up rolling our own controller almost a year behind schedule.

Outsourcing -- it's such a boon to US businesses.

If you get a motor with commutation -- which most brushless servo motors have -- then this is an easy problem to address. You need three half bridges, one to each coil terminal on the motor. The relationship between which bridges are turned on in which direction is unambiguously given by the state of the three commutation lines from the motor. All you have to do is provide the right duty cycle at the right pins.

'course, get a motor that _doesn't_ have a commutation output, and you're back to one of those RC controllers, or rolling your own back-emf sensing 'sensorless' controllers, which you _don't_ want to do.

--
www.wescottdesign.com
Reply to
Tim Wescott

Well, an hour or two's of googling later :) I found what looks just the thing

formatting link

This seems to do the lot - except that the control voltage seems to control the % pulse width 0-100%. There is no feedback control of motor speed. x----------x

Reply to
Peter

The FB would have to be a uC or something. If you are concerned about motor run-away you could monitor one of the bridge outputs with a timer circuitry and let it go off if it exceeds a certain frequency. Then use that to cut power.

--
Regards, Joerg

http://www.analogconsultants.com/
 Click to see the full signature
Reply to
Joerg

I think one could implement feedback easily enough. This chip has what looks like a variable pulse rate "tachometer" output which is derived from the Hall sensors directly. Converting this F-to-V would yield a voltage proportional to actual RPM, and an op-amp comparator with -ve feedback would adjust the input voltage to the controller chip appropriately.

What I don't see is how one can reverse the motor with this chip. I need -10V to +10V to give me direction/speed control. Presumably it could be implemented by reversing two of the phases (and swapping over the appropriate Hall sensors too) but that is a bizzare solution...

x----------x

Reply to
Peter

This one is better

formatting link

Bidirectional, on-chip closed loop control, but needs external power semis (no big deal). x----------x

Reply to
Peter

Depends on the load and timing requirements whether you need more fancy loop characteristics like PI or PID.

Yeah, that's odd, it only has a direction indicator output. That doesn't make a whole lot of sense.

--
Regards, Joerg

http://www.analogconsultants.com/
 Click to see the full signature
Reply to
Joerg

And it has the desired F/R input pin for direction reversal. Cool.

--
Regards, Joerg

http://www.analogconsultants.com/
 Click to see the full signature
Reply to
Joerg

HA HA HA HA HOO HOO HOO HOO HEE HEE HEE HEE HAW HAW HAW HAW

But seriously -- if you're so dang experienced with working in software, why don't you want to do this with a microprocessor?

Any pure-analog solution is going to be bigger, less flexible, and harder to get working than something built around a little bitty microcontroller that's made for driving 3-phase brushless motors once you add a bit of software.

--
www.wescottdesign.com
Reply to
Tim Wescott

If you're bound and determined to do this in analog:

formatting link

May not be as good as something else you've found, but could be coerced to work if you didn't mind surrounding it with five times as much circuitry as would be taken up by a little microcontroller.

--
www.wescottdesign.com
Reply to
Tim Wescott

Tim Wescott wrote

That one

formatting link

is not bad but seems to need a lot more stuff on its output, to drive the power switches.

I don't *need* a microcontroller for this application because the input is analog anyway, -10V to +10V. So a micro would need an ADC, and all the pulse timing, current limit sensing/latching etc, would take a week or two to put together.

Looks like I will need a comparator sensing the control voltage passing through 0V, and switching the direction signal to these chips.

Reply to
Peter

In what failure mode can this possibly happen? Shorted drivers will lock up the motor, open drivers will let the motor free-whee, kinda - steppers don't coast very well. If the micro locks up, no steps, no motion. I've worked with stepper motors before, and they have an inherent top speed - if you drive it too fast, it will just skip steps.

I could spec an appropriate motor and possibly gearbox, and write a uP program to drive it at a speed proportional to your input control voltage.

I could design this for you, for an appropriate conslting fee - if you're interested, make an email by taking richgrise at example period net (see headers), and replace the example period net with yahoo period com.

Cheers! Rich

Reply to
Rich Grise

Sure there is. Drive it with a variable constant current source or sink, and find what current runs it at 13 RPM. Then take the amount of current, make a fixed current source/sink, and the speed will be exactly proportional to the duty cycle. I've also done this before. :-)

Good Luck! Rich

Reply to
Rich Grise

....

....

Quite common to get 3 phase pattern by PWM or Timing Pattern generator and gate this with PWM clock/DC to change the RMS level (part of torque) and adjust 3 phase pattern frequency for RPM. Watching your torque and RPM relationships for load and current speed to avoid stall. The 3 phase pattern is easy to do even for reversing in software or hardware.

I am seeing a customer tomorrow who have an ASIC solution for doing this used for missiles so long life time product. Let me know if you want a datasheet or other details.

+/- 1.3 rpm at 13 rpm or higher rpm at the actual motor?

13rpm is not even 0.22 revs per SECOND, your issue will be measuring movement and speed accurately. Cannot remember how good the back-emf method is at that slow a speed, from memory not the best method, as it gets very difficult to detect changes as the back emf is VERY low.

Even with hall effect/opto detection, knowing you are moving is an issue.

At those sorts of speeds I tend to have driven things with no feedback, or if high precsion required, a very fine 'toothed' opto/hall detector, to get lots more pulses per second.

Measuring motor speed does not guarantee measuring final drive speed or distance.

Even if you use a micro other cutouts for limits of travel, max speed and NO movement should be considered.

Check its comments on sensorless motor control (page 9)

"- The motor must be moving at a minimum rate to generate sufficient back EMF to be sensed - Abrupt changes to the motor load can cause the BEMF drive loop to go out of lock - The BEMF voltage can be measured only when the motor speed is within a limited range of the ideal commutation rate for the applied voltage - Commutation at rates faster than the ideal rate will result in a discontinuous motor response"

I would not consider back emf measurements below 100-200rpm (depending on motor and number of magnetic poles).

Remember you have a commutation cycle, which is NOT RPM but RPM is determined by pairs of magnetic poles. So how many commutation cycles are you likely to be going through for 1 RPM AT THE MOTOR?

...

You need something to loop through commutation cycles depending on pairs of poles and analog setting to determine RPM of motor. You need some form of RMS level/PWM control, to get torque right. All of which is highly logic orientated (even if 555's).

For back emf at lower rpm you will probably have to sample with a/d or sample and hold all three phases of 3 phase windings in energised and open state. Then determine which to use.

You need some form of level translator to drive your half bridges last time I used IR2131, for a small sensorless BLDC.

Watch your back-emf and currents t higher speeds.

Or switch direction or starting point in table reading of pattern. Oh for small PAL to do that.

As I said there are chips around, depends on sensored or unsensored motor, I can get details of some other devices if you wish.

--
Paul Carpenter          | paul@pcserviceselectronics.co.uk
    PC Services
 Click to see the full signature
Reply to
Paul Carpenter

Paul Carpenter wrote

Unfortunately I did not make it clear enough that this is at the output shaft of the gearbox. I am currently looking at a 600:1 gearbox so the motor would run at ~ 8000rpm.

Now that I have "converged" on building my own controller, using one of the integrated chips that exist, the biggest problem is getting the mostly American companies to talk to me. Micromo pushes me back to their UK agent who does not reply. Last time I had a go at this project (1/2008) the same thing happened.

Reply to
Peter

Missiles? They have a very short lifetime, indeed! (albeit, they might be on the shelf for awhile.) Now, _satellite_ should imply a very, very long life.

Speaking of that, how long do geostationary comm satellites last? When one of them goes down, do they just scuttle it and launch a replacement? I've never heard of anyone going up to repair one!

Thanks, Rich

Reply to
Rich Grise

Rich Grise wrote

How does this work? The current drawn will be proportional to the torque, so at a constant current you should get a constant torque.

I must be missing something big :)

Luckily in this application the load variation on the motor should be very small; nearly negligible. The gearbox I am looking at is 600:1 and the load will be pretty light even at the end of the gearbox.

Reply to
Peter

Rich Grise wrote

The sort of thing I was thinking of was where you use e.g. a 10000rpm motor with a 100:1 gearbox, so your max rpm is 100. If one achieved the 13rpm max by limiting the control voltage, then a fault at that point would cause the motor to go to max rpm.

I agree that one could put a pulse rate detector which inhibits the motor...

I did look at steppers but most seem too big in diameter - I have a limit of 35mm diameter.

Reply to
Peter

On a sunny day (Wed, 09 Dec 2009 13:56:31 -0800) it happened Rich Grise wrote in :

15 years spec or so.

They let it burn up before the fuel to control its position is used up. They Launch a new one every one in a while, for broadcast they may divert to a different transponder on a different sat. You need not re-align your dish, as those sats are in groups. For example Eutelsat hotbird has several close to 13 east IIRC.

formatting link

Neither have I.

Reply to
Jan Panteltje

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.