Tuesday, May 12, 2009

Three Phases of Fun

2.007 is over. For once in my life, I actually don't have any strong opinions on the matter. Everything went as well as could be expected, with roughly the same ratio of working robots to...functionally challenged...robots as usual. I've been doing this class in some form or another since 2006. Although I've all but forgotten what it's like to be a student in this famous course (for a simultaneously hilarious and tragic account from someone with nothing to prove, read this), I am feeling like I need a break from it.

Good thing there are so many other distractions available at the end of the semester. Like finals (lol) and term projects. I'm taking my first ever legitimate electrical engineering course (and actually enjoying it) this year, Introduction to Electric Power Systems, 6.690. It's more focused on grid and transmission topics, but there is a short burst of electric machines (read: MOTERS!) analysis toward the end. So I figured nobody would mind if I squeeze in a term project on motor control, since that's what I seem to do well these days. So, the 3phAC controller is born:

Wait a minute...that looks familiar.

For those of you who are saying, "Gee, Shane, that looks an awful lot like every other motor controller you've built recently, it's got the same parts and the same hack way of mounting transistor to heat sinks that double as bus bars, and the same controller even," I say, "Of course." (Okay, nobody probably even knows what I'm talking about.) But the point is, there isn't much difference, from a hardware standpoint, between a three-phase inverter and a half-bridge like this one. It's just...three. And since I already have a good, working, modular, scalable hardware solution for this, why not use it?

In any case, the interesting part of AC motor control is the...well, the control. You need to generate three PWMs instead of the usual one. And the values of each need to be updated at the switching frequency (16,000 times a second) to push through a sine table. (Forget doing actual trig on a microcontroller.) So that means a lot of crazy interrupt work. It really does push the Wootstick 1.1, a "special" 16-bit MSP430-based development board, to its limit in terms of event timing.

In any case, it works, and in typical Shane-style I put in a nice Visual Basic interface to show the sensor values for voltage and current, as well as the derived phase angle, which I find interesting but nobody else probably cares about. And most astonishingly, it worked on the first try. It was a scarily easy project, well-planned and done on time. That's right, no MOSFETs were harmed in the making of this project. Video:

Forget all the Course 6 stuff I learned...it just sounds really cool. It's very clean. Just like its bigger cousin (third clip). It can already handle about 1kW, but if you know me, you know it's probably only a matter of time before it gets scaled-up.....

For the full project write-up, click here.