Sunday, November 25, 2012

Motor Controller Part 3: Building and Testing

I've been really busy lately working on the motor controller.  Here's what I've been up to.  I need a way to mount the IGBT drivers so I cut out some holes in a sheet of aluminum.  It's very important that nothing on these driver boards touch anything metal or you run the possibility of having the battery pack connecting to the chassis of the car.  My solution was these complex holes.

Joe drew up these PCB designs and had half a dozen of them made.  Here you can see one fitted onto its mount.  I put some rubber grommets in the holes as an extra measure of precaution even though the holes shouldn't conduct.

Here you can see the driver mount attached in the controller along with the control board.

And another side view of how everything is going to line up.

Next I had to make the bus bars.  The bus bars are 3/4 x 3/8 bars of solid copper with a couple holes drilled in them.  Two of these bars need to be connected to the capacitors, so there are thin sheets of copper that are soldered to the sides of them, then bolted to the caps.  You can see all that assembled in this next picture.  You can also see I've soldered in the parts for one of the IGBT drivers, and I've drilled and tapped a pair of pipe thread holes to pump water through the cooling plate.

Today was an exciting day for me.  I got the controller together enough to actually get to test it!  Joe came over to help out and we started the afternoon by hooking the laptop up to the control board to program the microcontroller.  Here's a look at the mess I made of the dining room table.

To do that you have to give it power, so I cross my fingers and plug in the 12 volt supply.  And to my delight, the green power LED turns on and no smoke comes out.  The programmer identifies the microcontroller, so that's a good indication I didn't damage it while soldering it in place.  There is one more yellow "status" LED that turns on after the controller is programmed.  This one blinks to tell you something is wrong or stays steady if everything is ready.  I got a cheap potentiometer to mimic the throttle pot and hooked that up and I get the steady "system ready" signal!  Joe has an oscilloscope that he brought over and we hooked it up to the output signal.  We should expect a signal between 0 and 5 volts and it should look like a square wave form if the potentiometer is in the right spot.  Amazingly that works too!  Here's a shot of the 15.6 kHz square wave as the controller tries to drive the commanded current.

There's also a serial port connection on the controller that you can hook up to a computer.  There's a program you can run to monitor certain parameters of the controller and all seems to be working.  I can turn the potentiometer and see the throttle position go up and down and the current command cycle back and forth from 0 to 511, and the thermistor reads a constant 73 °F.  I'm a bit amazed that out of hundreds of solder connections I haven't screwed anything up (yet).

My next task is to hook up the IGBT drivers and see if I can get a 0-15v PWM signal out of there.  If that goes well I can hook that output to a single IGBT and see if I can drive a load into a resistor or small motor. We've run out of time for the day, but it's been a satisfying holiday weekend.