I've been researching making a driver for a 3 phase induction motor powered by DC source using PWM to approximate sine waves in each phase.

However, the switching speeds of the PWM signal for the rotational speed I want is difficult to obtain with hobby microcontroller boards like the arduino.

Can I just switch the DC directly thru each phase at the correct time only twice per cycle ? Essentially I would be approximating a sine wave with only 2 different voltages thru the coils, ie: +V and -V (using H bridge circuitry here)

Will this create enough of a rotating magnetic field that sufficient current is induced in the rotor cage ?

What will be the losses in power / efficiency for this, or any other drawbacks for this system ?

The bonus is greatly simplified drive electronics.

  • 3
    \$\begingroup\$ By your description, are you not then driving the coils with a square wave of period matching the cycle? How is a +V/-V signal an approximation of a sine wave - other than that every square wave is a sine wave with massive clipping, at a purely hypothetical level. \$\endgroup\$ – Anindo Ghosh Nov 24 '12 at 11:50
  • \$\begingroup\$ Correct. Yes that is a crude approximation of a sine wave, using a square wave. That is what I'm asking - is that enough to operate the motor ? Would it make a difference if I perhaps used 4 values instead of just two, thereby adding another 4 points to the approximation ? \$\endgroup\$ – bobjandal Nov 24 '12 at 11:55
  • \$\begingroup\$ I'm in a similar situation and I'm currently researching PW on AVR too. From what I've seen, it would be difficult to get smooth and reliable rotation of a motor with just on and off. Also the circuit won't be much more complex with PWM, only the programming will be simpler. In any case, 3 transistor pairs would be needed to control each connection properly. Interesting application notes would be AVR443, AVR444, AVR493, AVR494 and AVR495 too. They have some examples on how to control motors. \$\endgroup\$ – AndrejaKo Nov 24 '12 at 11:56
  • \$\begingroup\$ Yes - my problem is with the pwm frequency of the arduino - it's only enough to give me about 8 points of approximation per cycle. I want to know if that will work, and I'm also curious about the theoretical limit - will a square wave work ? \$\endgroup\$ – bobjandal Nov 24 '12 at 11:59
  • 2
    \$\begingroup\$ @bobjandal What PWM frequency would you be looking for? I am able to get 1 MHz PWM quite reliably off my Arduino. \$\endgroup\$ – Anindo Ghosh Nov 24 '12 at 12:10

Yes, using square waves instead of sine waves can be done. As you suspected, it will be less efficient. Think of it in frequency space. The fundamental component of the square wave will do all the work. The remaining harmonics will heat the motor without adding useful torque, will add mechanical stresses, and can cause more audible noise.

You say you can't get a PWM frequency fast enough to produce a reasonable sine wave, but that is hard to believe. Surely the AVR can do 25 kHz or so PWM? I have done this a few times with Microchip PICs, some of which even have a special PWM module intended for this application.

|improve this answer|||||
  • \$\begingroup\$ only those odd harmonics. This is going to be a fancy function. \$\endgroup\$ – Standard Sandun Nov 24 '12 at 20:20
  • 2
    \$\begingroup\$ @sandun: Huh? Your comment makes no sense. Only the odd harmonics what? What is going to be a fancy function? \$\endgroup\$ – Olin Lathrop Nov 24 '12 at 21:34
  • \$\begingroup\$ may be I think I need to ask that as a separate topic. \$\endgroup\$ – Standard Sandun Nov 25 '12 at 13:50

If you're switching the DC through 3 half-bridges, this will work just fine. Torque will be uneven at low speeds and waveforms rather nasty, but it'll work.

Beware that turning current OFF fast to an inductive load (i.e. motor) is a good way to generate very high voltages so pay attention to protective diodes. NOT 1N4001s (FAR too slow) but high speed switching, high current diodes from each motor terminal to both supply rails, and overvoltage protection on the rails...

[edit...] The problem with PWM is not the PWM frequency, but the number of times you have to change it per revolution...

As you are controlling it with software, there is nothing to stop you using PWM at low speed, and switching to direct (square wave) drive at high speed.

|improve this answer|||||

You may be considering a simple 3phase AC inverter design or a powerful high torque variable frequency drive (VFD) electronics. Your choice depends on detailed specs including torque vs speed and budget. In both cases, a square wave would not be desireable as the eddy current losses would be excessive so multi-level low impedance drive is needed to appropximate the sine wave.

enter image description here

|improve this answer|||||
  • \$\begingroup\$ Does vfd that can be driven with dc current exists ? Everyone I found on aliexpress are working on grid power, i.e. 50-60Hz \$\endgroup\$ – JulienFr May 31 '16 at 11:44

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.