# DIY Controller for 3-Phase Motor



## Siwastaja (Aug 1, 2012)

You'll need a special microcontroller with three synced PWM channels with deadtime generation, so a basic Arduino won't do.

I think both PIC and Atmel AVR series have those PWM models for good price.










Then just generate these waveforms and have your motor spinning. Good luck!

Use an isolated gate driver ICs such as ACNW3130. You need six so this is a large investment of about $40.


----------



## ga2500ev (Apr 20, 2008)

An alternator motor is on my list of things to do. I think you need to decide if it's more important to get the motor running, or like me wanting to understand how to do it. If you just want to get it running, then purchasing a sensorless RC BLDC motor controller is the way to go.

On the other hand if you really want to tackle it, let me way that your plan above is overkill. Motors are always power devices. So it's not just the voltage that determines its operation. Unless you are greatly overstressing your batteries, any voltage dropoff will be gradual and can be compensated for by providing power longer in the cycle. So there's no need for a boost-buck configuration. Simply connect the alternator to the batteries directly through the ESC.

I've found that Microchip's application notes are very helpful in both the theory of operation, and functional circuits for driving BLDC motors. App notes #857, #885, #901, and #957 for example all describe various ways of driving BLDC motors such as your alternator.

Hope this helps,

ga2500ev


----------



## shortbus (Sep 27, 2011)

The big problem in this is the original rotor. When you open the alternator up you'll see that it has triangle shaped "claws". They call the rotor a "claw rotor" The triangle shape is used to generate a sine wave in the stator windings. Good for an alternator, but not for a motor.

Most guy's that do the alternator to motor thing end up making or buying a permanent magnet rotor. Like the ones they sell for making a wind generator. Then running it as a BLDC motor.

Lots of info on the Google.

http://endless-sphere.com/forums/viewtopic.php?f=10&t=15057

https://www.google.com/search?q=car...s=org.mozilla:en-US:official&client=firefox-a


----------



## ga2500ev (Apr 20, 2008)

Siwastaja said:


> You'll need a special microcontroller with three synced PWM channels with deadtime generation, so a basic Arduino won't do.


Are you sure about that? Many BLDC implementations will simply ground one end of the activated pair, and PWM only the high side. So you end up only needing a single PWM channel that is gated to three high side switches. It's a trapezoidal switching form with PWM used to modulate the voltage. An example is described in this EDN article in Figure 4 shown here:


----------



## PStechPaul (May 1, 2012)

About nine years ago I rewound a small single phase motor to three phase and nominal 8 VAC. I made a very simple three phase circuit that used N-channel and P-channel MOSFETs driven directly from a PIC18F2331 with a rectangular waveform rather than PWM. I used a 12V battery and it spun the motor pretty well. Eventually some of the MOSFETs failed but I think it was due to the lack of proper drivers which caused slow turn-on and turn-off. Such an approach might be fine for the alternator motor, since it is inefficient and probably has a lot of inductance and resistance. 

This was basically a "modified sine wave" similar to that produced by common automotive inverters. 

Since the alternator is essentially a synchronous motor, the speed will be determined by the pulse repetition rate, and the voltage will just provide more or less torque at a given speed. You will need to adjust the width (time) of the pulses so that it does not saturate the inductance of the motor, and it may change depending on the load (torque) of the motor.


----------



## Siwastaja (Aug 1, 2012)

Yes, you can kludge the motor to turn in many different ways, you can even use GPIO in any microcontroller to manually switch everything. 

But I'd consider using a part that can do it in reality in an usable manner. Then you can hook up a real motor and you have a real inverter capable of moving a car. And it's easier than kludging something up.


----------



## ga2500ev (Apr 20, 2008)

Siwastaja said:


> Yes, you can kludge the motor to turn in many different ways, you can even use GPIO in any microcontroller to manually switch everything.
> 
> But I'd consider using a part that can do it in reality in an usable manner. Then you can hook up a real motor and you have a real inverter capable of moving a car. And it's easier than kludging something up.


But this is another instance of allowing the perfect to be the enemy of the good.The OP's request was not for a high powered VFD inverter for a high voltage AC motor. He asked if an Arduino can drive a hacked up alternator as a motor.

The answer to the question is yes. Instead of projecting an ideal for a project that may never materialize, it's best to address the issue at hand.

As app note AN857 for Microchip points out, the PWM is for startup current control and speed control. Going full bore only requires commutation, not voltage control.

The true missing element is detecting when to commute the switches. As Tesseract pointed out in his response on the original thread, that unless the OP wants to embed hall sensors into the alternator or have an encoded shaft, that the controller is going to have to have a sensorless implementation in order to know when to change the switches.

ga2500ev


----------



## PStechPaul (May 1, 2012)

There are ways to implement a sensorless start-up and run of a synchronous motor. Here are some articles:

http://uu.diva-portal.org/smash/get/diva2:328109/FULLTEXT01.pdf
http://onlinelibrary.wiley.com/doi/10.1002/eej.21082/abstract
http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=4592146
http://www.wseas.us/e-library/conferences/2005sofia/papers/500-284.pdf
http://www.imas-neodimio.com/news/Starting-the-Motor-with-the-Sensorless-Scheme-120.html

The last link seems to indicate that you can start with a low frequency drive which will eventually start turning the rotor, and then you can switch to a back-EMF method for sensorless position detection and conventional commutation. The motor I used was an induction machine which uses rotating magnetic fields in the stator and induced in the rotor, so no sensors were needed. 

I think a synchronous motor may be driven as an asynchronous machine with enough torque to start rotation under no load or light load conditions. The chief difference is that the wound rotor has DC flowing in it through the brushes. And a PM synchronous machine just replaces the electromagnet poles with permanent magnets.

Perhaps it would be possible to apply AC to the brushes to produce a rotating field? I think this would work only if there were three brushes so a three phase excitation could be applied to the armature, as single phase cannot produce a rotating field. It should be possible to add some sort of phase-shifting mechanism to the rotor, such as shaded poles, but that would be a major undertaking and far beyond the OP's needs and/or abilities.


----------

