Thursday, September 20, 2012

Motor Controller Part 1: Design

In order to get power from the batteries to the motor without using a big on-off switch, you need a motor controller.  Since I'm using a higher than "average" battery pack voltage, I need a high voltage controller.  I could just buy one, but what's the fun in that?  Plus I get the chance to save a few bucks since the HV controllers start around $2500.  The concept of building your own controller comes from my friend Joe who's already built his car and controller.  Actually, it goes back earlier than that.  There's a couple called Paul and Sabrina who sell a kit that they've developed over a number of years, and that'll be be backbone for my controller.  "Unfortunately," I've taken the high voltage path, so the kit won't work for me as is.  It needs to be modified with high voltage parts and while I'm at it, might as well throw in some higher current capability, right?  I'm not sure who to give the credit to, but Joe started on this path a while back and already figured out a combination of IGBTs and capacitors that should do the trick.  I'm going to use these high power parts with the control board that Paul and Sabrina have developed to make a higher power version.  (If you want to skip the boring lecture of the day, this is a good spot to skip down to the pretty pictures...)

So what is an IGBT you ask?  It's a high power switch, kind of like a transistor if you know what that is.  To control the power going to the motor, the IGBTs are turned on and off really fast so the motor only sees some fraction of the voltage available from the batteries.  The pulses are sent at a specific frequency, and the time on and time off are varied to change the apparent voltage to the motor.  For example, if it takes 1 millisecond to turn on and off and it spends 70% of the time on, the motor will see an apparent DC voltage of about 70% of the battery pack voltage.

These IGBTs are rated for 400 amps a piece and I'm using three of them.  The IGBTs don't share the load perfectly, so I wouldn't be able to drive 1200 amps without blowing something up.  The reason for this is that the resistance of each IGBT isn't exactly the same and they're run in parallel.  So if you ask for 1200 amps, you might get 350 amps through one, 400 amps through the second, and the third blows up with 450 amps.  There are a few other factors that affect how well they share the load that I won't get into, and my design is going to be far from perfect, so I'm tentatively planning to limit the max current to 833 amps.  There's another reason for that odd number.  The controller is designed to do 500 amps max, and it has a current sensor that it uses to narrow in on the current you are commanding.  By changing the sensor with another part number, the controller will think it's driving 500 amps when it's really driving 833.  That way I don't have to reprogram the microcontroller.

Okay, enough of the boring stuff.  Here are some pictures!  This is basically what it'll look like when it's done.  The big green things are huge capacitors.  The yellow things are the IGBTs.  The orange bars are copper bus bars that the big cables will connect to from the motor and battery pack.  The dark blue thing is a the current sensor.  The light blue block is the main controller board.  The red things are the IGBT drivers.
The capacitors connect to the bus bars using some sheets of copper.  The sheets need to be parallel to each other like that to reduce "stray inductance" (bad).  Having the posts of the capacitors up and down, and having an array of capacitors (instead of one big one) further reduces stray inductance.  The reason you don't want high inductance is that this causes voltage spikes.  Voltage spikes (if too large) will fry the electronics.  These capacitors and IGBTs are rated for 600 volts, so I'm hoping ~200 volts plus spikes are okay.

The IGBT drivers (red) have to be really close to the IGBTs.  If they have mismatched lengths, the IGBTs could turn on and off out of sync, which is really bad.  If one of them stays on longer than the others, it will sink the entire commanded current!  That's bad.

The plate on the bottom that the IGBTs are mounted to is a custom water plate.  The IGBTs aren't 100% efficient, so they create heat while they work.  I'm going to plumb liquid coolant through this block of aluminum to take that heat away.  A friend from work has a CNC mill who is going to help me machine it.  He's already got it coded, so I just need to get some time to go over there.  You can see a funny slot in the middle.  There's a temperature sensor that will fit in there and feed a signal back to the control board.  If, for some reason, it gets too hot, the microcontroller will back off on the power until it cools down.

The guy helping me mill out this water plate keeps telling me I'm going way overkill on the liquid cooling.  He happens to have built an electric car himself about 15 years ago out of an old Ford Fiesta.  His was significantly lower power/voltage than mine, so his controller was passively cooled (no fans).  All of the controllers on the market with this kind of power rating are liquid cooled, so that's what I'm going with.

I've got a lot of the pieces, so I'm hopefully going to start on the fabrication of all that structure you see in the pictures really soon.  I still need to order a control board kit and learn to solder, but that's for a post another day.

No comments:

Post a Comment