DIY Electric Car Forums banner

BMW 330ci conversion

198K views 253 replies 49 participants last post by  Marianoooo  
#1 ·
Hi All. Starting a thread for my new EV project!

This one is going to be this 2001 BMW 330ci. I've been wanting to do an BMW coupe conversion for several years now. I've always loved the way they look and feel, they are beefy enough to carry the weight of the batteries, and the coupe body style allows for the rear seat to be re-purposed for battery placement while maintaining good weight distribution.

Image


The transmission is from a 2007 Lexus GS450h. It contains two electric motors and gear reduction. The output shaft is the same configuration as that used on the BMW it's going in and should be easy to adapt. I've calculated the total combined power from both motors to be around 200kW (270hp).

Image


The inverter will be based on the OEM inverter that the transmission was originally coupled with. There will be a fair bit of modification done to allow this to drive both motors at high power levels. This will be the subject of much reverse engineering and custom circuit boards.
Image


Pictured is 32kWh of Chevy Volt batteries (two cars worth). I'll be putting these batteries in series minus a few modules to keep the voltage within the rating of the inverter. I'll end up using about 29kWh worth of these cells for a range of around 110miles. The total pack will have a nominal voltage of around 640vdc.

Image


I used the data provided in the ORNL teardowns of the Camry hybrid and LS600h drivetrains to calculate the expected performance. The combination of these pieces should allow me to build a car that does 0-60mph between 4-5 seconds, gets around 110-120 miles to a charge, seats two, and has unimpeded trunk space.

Everything in this conversion will be used or salvaged parts from other hybrids or EVs, with the exception of the custom electronics needed to make it all work together.

It should be a very nice car to drive.
 
#3 ·
Looks like a nice conversion, good luck!

As I've done a lot of experiments with Toyota (and therefore Lexus) components, maybe there will be a few tips to help you get on the road faster.
First the battery voltage - The Lexus GS450h has 288V pack, so parts of the inverter will be designed to operate on this voltage (400V would be no-no). Basically to get this up and running, you will have to remove the Boost IGBT and the inductor, also the DC/DC circuit that was charging 12V battery in Lexus (it would burn on your pack voltage). The final stage (two IGBT motor bridges) you can keep, they will be happy with these voltages. Not sure what voltage outputs the original boost, it will be around 500V, so fine there.

Lexus inverter was designed at the same time/ by the same people as Prius 3rd Gen inverter, so you can expect to find something like this:

Image


Image


Image
 
#4 ·
Thanks for the info eldis.

I've actually already started tearing in to my inverter (mine is from an 07, the one you attached photos of is from a later model). My inverter is identical to the Camry Hybrid inverter, with the exception of a larger HV capacitor, some of the LV connectors are different, and mine has an extra set of parallel IGBTs and diodes for MG1.

The original boost converter outputs 650vdc. The capacitor is rated to 750vdc. I may lower my voltage a little bit (at the expense of range) to give myself a bit more overhead for voltage overshoot at IGBT turn-off.

The plan is to connect the batteries directly to the IGBT module bus bars rather than going through the converter. I will retain the converter for reasons to be described in later updates.
 
#6 ·
Just the motors inside the transmission. The input shaft will be locked (I need to design some sort of fixture to hold it). This will allow MG1 to act as a motor through a fix reduction. The speed rating of MG1 is the same as MG2 in the Camry hybrid (14k rpm), so this configuration will limit me to 110mph due to MG1 speed. MG2 has two speeds, controlled by clutches and a gearset in the transmission. There's an electric oil pump that allows EV mode in the original transmission. I'm hoping that this pump feeds the same oil circuit as the mechanical pump inside. The mechanical one will never turn as it's coupled to the input shaft. I'll need to make sure that the clutches/solenoids get hydraulic pressure as well as the oil cooling for the stators and lubrication of the bearings. I'm trying to get a second transmission that I can tear down to confirm the operation of the oil pump, but if I have to, I'll tear this one down to make sure. If I need to drive the internal oil pump as well as the electric one, I'll rig up a BLDC motor to drive the pump shaft. But I'm really hoping I can avoid that.
 
#7 ·
Hi bigmouse
Fascinating conversion and I follow with great interest and hope for your success. Do you have any schematic for the transmission? Can you explain why you want the motors to run at different speeds and even use 2 speeds. My personal preference would be discard the input and lock MG1 to MG2 so that you effectively have only 1 motor. You could still drive them independently similar to a dual ac35 setup for safety and redundancy but would have a simpler and in my opinion stronger setup.
I'm fascinated as this would make a brilliant transmission tunnel drive arrangement without being direct drive in the sense of attaching straight to the differential, and allows significant battery space in the engine bay.

I look forward to your reply and progress. Forgive me if I'm hijacking your thread somewhat.
Regards
Tyler
 
#8 ·
Here's a schematic of the transmission:
Image

The "ICE" shaft will be locked. The two clutches will be retained and used to control the speed of MG2. The LS600h has the transfer case. The GS450 (mine) goes directly to the output flange.

If I'm going to be driving the two motors independently anyway, I might as well take advantage of that ability. It's not really any harder to control them independently at different speeds than it would be if they were locked together. Still need two inverters, still needs two resolvers. I think Toyota's setup will be the strongest setup. As soon as I start welding on gearing, I'm making it weaker.

The biggest complication to my method will be the two-speed system for MG2. Having the motors separate means that MG1 can continue to provide torque while MG2's gearing is changed.

The biggest reason I'm going with my method is performance. Locking the two motors together and with one gear ratio would cripple the performance of this transmission. MG1 doesn't develop a lot of torque, maybe 150Nm. So it relies on the gearing for that to use its full potential. Similarly with MG2. In the low-speed gear, MG2 will be on a higher ratio than in the high-speed gear. If I lock it in the high-speed one, I lose the acceleration advantage of that gearing. If I lock it in the low-speed one, I'd be speed limited to 45mph. It's a beast of a machine, and I want to take full advantage of that.
 
#10 ·
#12 ·
As far as I can tell from the transfer case to the back of the bellhousing the two transmissions are identical. I haven't confirmed it though. The transfer case is because the LS600h is AWD. The difference in power between the two models probably comes from the different engines, power electronics, and battery.
 
#14 ·
I put the converter IGBT module on a semiconductor analyzer the other day to determine its properties, mainly the breakdown voltage. The results are below. The VF and VCE values range from 1 to 100 amps.

*T 1; BVCES = 594.1 V
T 2; VF = 470.0MV
T 3; VF = 501.0MV
T 4; VF = 554.0MV
T 5; VF = 606.0MV
T 6; VF = 673.0MV
T 7; VF = 811.0MV
T 8; VF = 980.0MV
T 9; VF = 1.121 V
T10; VF = 1.253 V
T11; VF = 1.493 V
T12; VF = 1.716 V
*T13; VF = 2.141 V
*T14; VF = 2.547 V
*T15; VF = 3.110 V
T16; VCEON = 441.0MV
T17; VCEON = 474.0MV
T18; VCEON = 531.0MV
T19; VCEON = 590.0MV
T20; VCEON = 664.0MV
T21; VCEON = 808.0MV
T22; VCEON = 970.0MV
T23; VCEON = 1.104 V
T24; VCEON = 1.221 V
T25; VCEON = 1.441 V
T26; VCEON = 1.643 V
*T27; VCEON = 2.038 V
*T28; VCEON = 2.416 V
*T29; VCEON = 2.790 V
T30; VGETH = 6.257 V
T31; VGETH = 6.342 V

So it's a 600v rated part, which was the most important thing I wanted to find from the test. I'll have to measure the range of the voltage sense circuit to see where it saturates in order to find the maximum useful voltage I can run on that bus.
 
#15 · (Edited)

Managed to get the pinouts for the internal connectors figured out. I'm able to drive the inverter with my own signals! I threw together some very simple open-loop code on an Arduino, put 12v on the DC bus, and connected one of the motors on the transmission. The result is seen in the video. It spins!
It spins slowly, but it spins. That's 12v with no real control. 650v with closed loop control will be a very different story.
Very exciting.
I also figured out how to drive the gates on the converter section, but that's not as interesting to show in video.
Moving forward!

Doesn't look like the youtube embed is working. Any advice?
 
#17 ·
bigmouse

Nice project.
I am also working on using Toyota components in my conversion with custom ECU circuits. You can search for some of my postings if you are interested. I also have some youtube videos at jddcircuit channel.

I am still a bit a way from being on the road but I have made some progress getting things to spin. High rpm levels are going to be challenge for me I expect. I think I will have to switch from my Field Oriented Control producing sinusoidal voltages to a more BLDC type commutation at high rpms. My plan is at high rpms the six step communtation will be frequency modulated instead of pulse width modulated. Hopefully the torque ripple will be minimal at these speeds. IIRC there is simply not enough resolution in my digital control loop and my 16kHz PWM (actually 8kHz center aligned) at high rpms.

You may already know this but I didn't at first, BLDC commutation does not work at lower speeds with these motors. Too much torque ripple. These motors are Interior Permanent Magnet motors which have a reluctance torque vector on top of the permanent magnetic torque vector.

I have also developed a way to use the two motors and two inverters as my battery charger. My charger idea is patent pending but I am using it in my DIY project and hopefully other DIYers will also. You can download my feasibility paper for my charger at www.vehilectric.com if you are interested.

BTW, I live in Florida but I may be in San Jose on business this month. Let me know if you want to get together and talk shop.

Good Luck
Jeff
 
#18 ·
Hi Jeff,

I have been following your progress! I was tempted to do a conversion very similar to yours (MR2 with either Prius or Camry transmission), but decided to go this route instead due to the performance available from the Lexus transmission.

I'm using vector control for mine (manually for now at least). I haven't connected the current sensors yet so I'm just adjusting the angle of the voltage vector relative to the rotor manually. It's good enough for low speeds and the 12v that I'm testing with.

Regarding switching to BLDC-type commutation, the changeover from FOC to 6-step might not need to be an actual change. If you let your current-control loops saturate at high speed (attempting to achieve current that is not possible due to field weakening), they will go in to overmodulation. This causes the sine waves to transition to square waves. Resolution also shouldn't be much of a problem since at high speeds, distortion in the voltage waveform is filtered by the stator inductance in to a sine wave (or something close enough) anyway. I don't think I'll need to go that route myself, since my pack voltage will be so high. Time will tell though.

I have my own idea for charging, which is different from yours.

Send me a PM before you get here and we'll arrange something!

-Vincent
 
#19 ·
Very good

When I first spun the motor with no load everything seemed fine. When I put it under a load things were very different. In this first attempt I was reading the resolver and commutating relative to the rotor position. I didn't have the current sensor working at this time.

Now, I am using the AD7609 chip to capture the current sensors coming out of the inverter and doing a simple FOC based on the rotor position and the Id and Iq values. It seems to work pretty well.

I am not sure what the max torque per amp is exactly for this motor. Pretty soon I should be back on the motor control portion and will try to run the two motors against each other to see if I can optimize the efficiency of the control. Having two motors is like having a built in dyno.

Jeff
 
#20 ·
Yeah, the voltage vector and the current vector are not in alignment at high speeds or under load. That's why FOC uses current controllers to set the current vector angle.

The torque per amp and torque variation with angle should be in the DOE documents.

I plan on using the motors against each other as a dyno (as you mentioned) to determine the optimal Id/Iq values for speeds. Can't measure torque directly, but I have some ideas on how to make it useful.
 
#21 ·
Hi Bigmouse. What an impressive idea with the Lexus hybrid gearbox! I spend last two days reading everything I found about your gearbox, they are motivationally inexpensive and available to buy. I can see that controlling motors independently will be quite a pickle. When they made the gearbox, they did not know that one day somebody removes ICE and fix input shaft :)

By locking ICE input shaft of the transmission you will fix the generator (MG1) with ravigneaux gear system output through primary output shaft. So If I understand correctly, RPM of MG1 will be proportional to vehicle speed in some ratio of locked power split planetery gearbox.
On the other hand motor MG2 is connected with rear wheels indirectly using two "gears" of ravigneaux system. I found that these gears can be MG2_RPM/1.9 or MG2_MAX/3.9. Does the MG1 ratio of locked Power split planetary cover both those gears of MG2 fully? Isn't there a "gap" at the beginning caused by locked input shaft from ICE?

I also wondered how gears of ravigneaux gear system are really shifted? You say that hydraulically by external electric oil pump. But how do you activate them? Simply by rising hydraulic pressure, or is there some CANBus line running between transmission and transmission ECU which operates some valves? Also it makes me wonder how Neutral and Reverse gears are shifted.

From what I understand up to this point, you can make clutches to move actuators by some manual input from driver. In the best case you will have to shift "MG2 LOW" gear only for burnouts, if MG1 will cover normal acceleration power-needs up to the point when MG2_RPM/3.9 are not too low to make the difference. Or you could make MG2 to shift HIGH and LOW gear automatically I guess based on realtime MG1 current, RPM and throttle inputs calculations. In both ways the gear changing issue is crucial for your MG2 motor controller programming. What is your approach here? At least is seems that recuperation braking for MG2 is not necessary to be considered :)
 
#22 ·
Hi Mira,

You are correct that locking the input shaft gives MG1 a fixed ratio (2.6:1) to the output shaft. There is no shifting of MG1. According to the LS600h ORNL report, MG1's rotor stampings are identical to MG2 in the Camry hybrid. The top speed of MG2 in the Camry is 14,000rpm, so I am assuming MG1 in the Lexus has the same top speed. It covers the entire speed range of the car and is, in fact, the limiting factor for the top speed of the car.

MG2 gears are switched by controlling solenoids in the transmission with 12v/PWM directly to the solenoids. No CAN in that part. I'll have to control those with my controller myself.

Neutral is achieved by turning off PWM (or applying 0v/50% duty cycle) to both motors. Reverse is achieved by spinning the motors backwards. I'll probably use MG1 alone for reverse.

MG2 gear change will be based on RPM. I have modeled the optimum shift point for maximum performance and will shift MG2 at that point when accelerating. On the way down, it'll shift depending on load.
 
#23 ·
Thank you for reply! There is so many possibilities how to drive two motors most efficiently added by MG2 gears. Splitting the braking power depending on load makes sense. I imagine this will feel nice in the car, sensing the braking force being distributed between the motors.

MG2 gear change will be based on RPM. I have modeled the optimum shift point for maximum performance and will shift MG2 at that point when accelerating.
I understand that MG2 will be commanded to supply power when you need big acceleration. And HI/LOW of MG2 will be shifted automatically by your controller based on MG1 RPM. This RPM point might be smart to not make it fixed, to prevent unnecessary big load to shifting mechanism in case you would pressed the throttle pedal right at the shifting point. I know it is made to handle it, but neither the shifting itself is necessary to be experienced, right?

Sorry for hijacking your thread with my ideas, you made me very excited about those hybrid transmissions and how much possibilities they provide.
 
#27 ·
using the hybrid transmission from a lexus that has the motor built in? that's legitimately brilliant.....and has a more interesting possibility; parallel hybrid conversions

i'm a complete newbie to this scene but, transmission swaps are not particularly difficult, all things considered.

i have (or, will have) a bmw 540i touring, and this may be a way to make a relatively simple build parallel non-plug-in hybrid setup. you can code a 540i to pretend it has a manual transmission and it'll basically ignore whatever the transmission does in terms of the original transmission control modules....

...if this thing could basically just act as electric assist on acceleration you'd get pretty substantial improvements in city mileage

but does the lexus transmission have its own internal programming for its behavior? would you need some kind of frankenstein transmission control setup where the lexus transmission ECU operates in its own little world oblivious to the rest of the drivetrain?

i'm just super exited about this because it solves a lot of packaging problems with a parallel hybrid build and its essentially off-the-shelf.
 
#28 ·
The transmission doesn't have any "programming" in the sense that other automatic transmissions can operate without any ECU input. This one needs to be told what to do by an ECU. That's part of the board that I'm designing for my inverter.

I'd thought about keeping the 3.0L engine that's in my BMW now, as it's a very nice engine. It wouldn't be terribly difficult to mount this transmission to it. But I want a pure EV so I'm not going that route.
 
#32 ·

Okay, something more exciting to show. I got the charger out of a Chevy Volt working so I quickly hooked it up to my inverter as a power supply to try it out. I set it to its lowest setting (200v). The inverter is still running on the breadboard and Arduino with no current sensing but it does have motor position sensing. If you saw my video from back on the 2nd of this running on 12v, 200v will look a bit more impressive. Again, the final voltage will be 650v.

The LEDs that light up are connected to the oil pressure sensors in the transmission. The input shaft isn't locked yet so it spins with the motor and turns the internal pump. Once the input shaft is locked, I'll have to use the electric oil pump. Interesting fact, the transmission defaults to the high speed gear unless I drive the solenoids to get it do downshift to the low speed gear. This is so that if a solenoid or pump fails at high speed, the transmission won't downshift and overspeed the motor.
 
#33 ·
Okay, something more exciting to show. I got the charger out of a Chevy Volt working so I quickly hooked it up to my inverter as a power supply to try it out. I set it to its lowest setting (200v). The inverter is still running on the breadboard and Arduino with no current sensing but it does have motor position sensing. If you saw my video from back on the 2nd of this running on 12v, 200v will look a bit more impressive. Again, the final voltage will be 650v.
Congratulations. I'm also using the Chevy Volt charger for some HV tests - beware that the charger is not a battery, therefore once you start playing with field weakening and regen in general, your motor EMF voltage will exceed your bus voltage (it will try to push current in your charger). As the charger cannot absorb it, one of two things will happen. Either you burn your charger, or the Vbus will go way up high and might damage your inverter.

Good luck!
 
#34 ·
Nice progress, thanks for sharing! You say final voltage will be 650V. I wondered how this work? Motor voltage = battery voltage, so you are going for 650V battery pack? Or there is some step-up from original 288V voltage battery pack to 650V in all cases?

Also I suppose that if you would now hold output shaft by hand, torque would found the way out through gearbox input shaft. Now the torque splits between input and output shaft, so fixing the input shaft is a must. Your output shaft is really rotating at the video only because it has less resistance then the input shaft. Is this correct?
 
#35 ·
Hi there. Yes, I'll be using a ~650v battery pack. I have 3 Chevy Volt batteries. I'll be using two of them in series (minus a couple of the small modules to bring the voltage down a bit). The third pack plus the removed modules may end up in a range extending trailer or as stationary storage (or I might sell them).

You are partially correct about the gearing. Only MG1's torque is split between the input and output shafts. In the video, only MG2 is running. If I held the output shaft, the input shaft would not turn because MG2 would not turn. If I was driving MG1 only, then it would work as you describe. In my case, the input shaft IS turning due to friction in the geartrain between the output shaft and MG1. I can hold the input shaft still (like it will be in the car) and MG1 will spin a 2.6x the output shaft speed.
 
#37 ·
#40 ·
Finished populating the new board today. It's sitting on my bench right now with a blinking LED, so that's a good sign! Still got a lot of testing and verification to do, but it's looking good so far. I need to do some programming to really test out the board, so that's where I'm at now.


Pictured below is the new board next to the original Toyota/Lexus board
Image


Here's the new board installed in the inverter. Everything plugs in just like it's supposed to!
Image

Image