Battery Monitoring System

I finally built up the Battery Monitoring System, or BMS that I had designed more than a month ago.  This is the second rev of the board and I got almost everything right this time. It is a complete departure from the Sendyne unit that I previously designed.  Instead using the Sendyne unit to make measurements two 16-bit ADCs are used to measure the voltages. The voltage readings are sent via an isolated 12C communication to the processor. This system is designed to measure four segments of the pack battery voltage and temperature.  The idea of this BMS design is that by tracking those four segments over time and during peak acceleration it might be possible to see a failing battery. It is a tricky circuit to isolate the high voltage of the battery and the low voltage of the termistor.  For the battery segment voltage, a precision 50K ohm resistor is used at each battery connection point so that most of the battery voltage is dropped across that resistor.  In testing the board I could not use actual battery segments (mine are not built yet) but simulated the voltage.  The board makes use of the same microprocessor as the GEVCU and the same DC hardening for the 12V power input.  I had worked out the isolation on the battery voltage measurement in a previous circuit design so I knew that was going to work.  What I tried on this board was to make a Wheatstone bridge to measure the thermistor resistance (voltage).  A Wheatstone bridge is designed to give a null voltage when the unknown resistance of one of the legs is matched to the bridge.  It is a very precise way to measure resistance of a 10K thermistor. Unfortunately I made a mistake in the design of the bridge so I get a increase in measured voltage with resistance. A proper bridge would measure zero volts at 10K (25C) and positive voltage above 10K (colder) and negative voltage below 10K (hotter).  With the design flaw the board still has over 13-bits of resolution around 10K ohms which should be enough to provide an accurate measurement.
Besides the BMS I was also able to build and test the contractor box for my conversion.  It has three contactors so that the pack voltage can be completely isolated when the contactors are open.  The box also contains the 250ohm, 250W resistor that is used to precharge the DMOC and a set of 12V relays that are used to close the contactors, via signals from the GEVCU. A diagram of the layout for the contactor box and cabling can be found here.
I also recently discovered something I did not know about my Nissan Leaf.  The Leaf had been sitting in my garage for over three weeks after it had been fully charged.  But when I went to move the car it was completely dead.  The reason is that is that the Leaf makes use of a 12V lead-acid and that battery was dead.  The 12V battery is for all of the car functions not driven by the battery pack voltage.  Things like the wireless door locks, interior lights and the wireless connection.  The Leaf is always connected to the cellular network because it is possible to connect to it with a Iphone app to get the status, or turn on or off the charging and or environmental controls.  I have looked into a cellular connection for my ElectricBMW320i  because it would be easy to provide that kind of connection.  Maybe not a Iphone app but certainly text messaging would be possible.   I found there are several cellular shields available for the Ardunio.  One thing they had in common is that they used a tremendous amount of current - not milliamps but several amps!  I suspect what discharged the 12V battery in the Leaf was the cellular connection.  After charging the 12V battery the car is functional.  Using a 12V battery to control everything is not a bad idea for a conversion.  It is a lot easier to charge a discharged 12V battery than a 400V battery pack that gets discharged down to 1V per cell
A video of the bottom balancing system and spline adapter mounting can be found here.

Add a comment

Battery Bottom Balancing and Siemens Spline Adapter

The final process of preparing the batteries before they are put into the car is to perform what is known as bottom balancing.   For this process each battery is first fully charged, then fully discharged, or nearly fully discharged.  The balancing part of this process is to discharge each battery to nearly exactly the same voltage, in this case 2.75V +/- 0.005V.  Bottom balancing is done to protect the battery pack, in case there is a catastrophic full discharge event.  See my blog "Battery Conditioning"  below on the initial phase of the bottom balancing process. Bottom balancing is a arduous task and time consuming  because when charge is removed from a battery, the battery needs to relax and establish an equilibrium before the open circuit voltage (OCV) is stable.   The relaxation period can be from several tens of minutes to many hours, depending on how fast charge is removed from the battery.  There are manual and semi-automatic ways of bottom balancing.  I decided I needed to balance as many cells as possible in the shortest time. To accomplish that I designed an automatic bottom balancing system.  Using a Arduino Due to control four power MOSFETS with pulse width modulation (PWM), I built a system that can balance four batteries at a time.  The MOSFETS control the amount of battery current that is dumped into a power resistor. I used a Due because it has a 12-bit ADC which I needed since I am trying to control millivolts.  I had originally planned to use MicroChip Pics for each discharge station because I was worried about connecting all the grounds together.  I found with the Due not to be an issue for that.  Rather I discovered with the Due that the ADC voltage would drop when the PWM would start.  The drop is consistent but varies for each ADC channel.  I have a 1Mohm resistor across the battery terminals to protect the inputs of the ADC.  I developed a program on the Due that logs the battery voltage and controls the PWM based on battery voltage.  I found that the 3.3V output of the Due PWM is not enough voltage to turn on the MOSFET fully.  In fact it only turns the MOSFET on about 2%.  But that is perfect because it gives a wider control over the current.  With a 50% DT the MOSFET only turns on 0.5Amps. The DT is reduced as the battery voltage approaches 2.7V.  Once the battery voltage drops below 2.7V the MOSFET is turned off and the battery is allowed to rest 30 min.  The PWM is turned on again and based on the voltage the battery rises to will run until the voltage drops to 2.7V again.  Some batteries do not need any more discharge. Usually I leave a set overnight to stabilize.  About a third of the batteries still require some touch up, either more charge removed or added to get the OCV to 2.75V.  In the last week I have been able to bottom balance 2/3 of my battery pack.

The most exciting news is that I finally received the spline adapter for the Siemens motor from my friends at EV West.  They tested the fit of the adapter and said it only needed heating by a heat gun.  I setup a cheap 1500W heat gun to heat the spline adapter.  After about 20 min the adapter was at 250F so I decided to put it on the Siemens.  I almost screwed up and put it on backward.  Fortunately there is a stop on the flywheel side that prevents the spline from engaging.  Once I had the adapter oriented correctly it slid right on the Siemens spline with just a couple whacks with my hand.   I had to get the RebirthAuto adapter machined since I will not be using the thrust bearings with this adapter because the spline adapter had to go on first. The RebirthAuto adapter will now be just a very expensive motor to bell housing adapter.

A video of the bottom balancing system and spline adapter mounting can be found here.

Add a comment

PTC Heater installation

The last system I had to engineer for the car was a heating system.  I had originally planned to use a HotStart water heater and use the original piping and controls in the car.  The HotStart is a 5kW unit and probably would provide great heating capacity.  Unfortunately there is just no room for the unit in the engine compartment. As part of completing the conversion I started placing all the components in the engine compartment to figure out where they would go and how the components would be mounted.  I found there is no room for the HotStart  because I need two cooling loops, one for the DMOC and one for the Siemens.  A cooling loop consists of a water reservoir and a pump that goes to the heat exchanger. The HotStart would also need a water reservoir and a pump to circulate the water through the heater core.  My only other option for heating is to use electrical resistance heating with a PTC heater.  PTC stands for positive temperature coefficient, which for a heater means that the resistance increases as the heat increases so the PTC heater is self limiting.  From doing some research I found that I probably would need at least 3kW of heating.  PTC heaters are great because the heat up fast, but have the downside of not have a great heat capacity.  Searching on EBay I found there are all shapes and sizes of PTC heaters.  The ones I chose are a 1kW unit rated for 120VAC.  Fortunately three of the units side by side is nearly exactly the same size as the old heater core. By using three wired in series I can get 3kW of heating and use the pack voltage to drive the current.  Testing the units I found they started drawing 9 Amps at 120VAC and as they heated up the current dropped to 5 Amps.  The units have a thermostat mounted on the side with a 160C cutoff temperature.  I found the using a thermocouple attached to the heating element the thermostats open around 170C.  Taking apart the old heater core was a bit of a challenge.  The whole unit, heater core, fans and air distribution box come out of the car as a single unit that is held together is clip rings.  Taking apart the unit I found all of the foam insulation and gasket material completely degraded and falling apart.  The inside of the air box was also very dirty.  Back in 1983 they did not use any air filters on the incoming air like they do now. The X1 BMW I have actually has a HEPA air filter for the cabin air.  I will probably look at adding some type of air filtration when I reassembly the unit.  Because it was so dirty I took all the electrical wiring and connections out and washed the whole unit.  During the disassembly I discovered how the fan speed was set.  They used a set of big wire wound series resistors to control the current to the fan.  Two resistors would give four speeds for the fan and that is how many selections there are on the dashboard switch.  I will replace those resistors with a MOSFET circuit to control the fan speed.  I reassembled the air box with the PTC heater inside and mounted a few thermocouples inside to measure the heat.  The PTCs were wired in parallel because I do not have the battery pack available to provide 360V.  Wired in parallel they units drew 25 Amps starting out - fortunately I have a 20Amp circuit in the shop that did not trip during the test.  I also had a limited power supply to power the fans, about 5 Amp at 6VDC.  I figure that probably corresponds to half speed for the fans.  Even at that setting a lot of air was being pumped through the distribution box.  The PTC heated up very quickly just like on the bench and after a minute 65C air was blowing out of the distribution box.  So that corresponds to a 45C heating of the air which should be enough to heat the cabin or defrost the windshield.  All I have left to do is attach the PTC assembly to the distribution box so it does not rattle around when driving the car. I will have to replace all the foam gasket material before the final assembly.  I also need to wire up a contactor and a high voltage fuse to connect the battery pack to the heater.  A video of this PTC testing can be found here.

Add a comment

Battery Box Work III

The fun continues with the battery boxes.  I completed the rubber insulation and installing the custom silicon heating pads in all the boxes.  I found because the size of the batteries were bigger than what I had planned for that the thickness of the rubber insulation had to be adjusted on all the boxes.  Unfortunately I could not adjust the size of the front box so only 17 batteries will be going in that box.  It was planned for 18.  That is not a huge loss in overall battery capacity and actually could not have been avoided, even if I had planned on batteries that were thicker.  That front battery box fits between the two front fenders so the width is fixed.  Now that all the boxes are finished they can be installed in the car and as batteries are bottom balanced they can be installed in the boxes.  I still don't have a solution for mounting the trunk box.  I was thinking I would like it to have it on some type of roller so it could be rolled out for maintenance.

I also did some testing of the silicon heating pads to see how much heat they would produce, inside the battery box, with batteries sitting on the pad.  I used a 120V 250W pad that I had purchased just for this testing.  The result of the testing is that the pad will generate at least 30 degrees C heating.  That should be enough to thaw out cold batteries, if that is ever needed.  I don't plan on leaving the car out in the cold and then try to charge it.  Usually what I do now with my Leaf is drive it into the garage and immediately attach the charging cable.

Still no spline adapter from EV West but I did get some other parts from them.  I got another  large contactor box, some fuses and fuse holders and a maintenance switch.  I got the Gigavac switch that is hermetically sealed.  That will be used in the engine compartment.  I plan to have another disconnect switch inside the passenger compartment.  That will go between the rear seat battery boxes.

A video of the battery box prepartion can be seen here.  There is a short section in this video that was repeated from my last video, because that vidoe was not shown on EVTV.

Add a comment

More Battery Box Work

I finished painting all the battery boxes with the bed liner material.  I had to touch up some of the sides of the rear seat boxes.   Once all the painting was done I could start on the next phase of battery box preparation - the lining of the insides of the box with rubber sheeting.  This is done to provide both a thermal as well as a electrical insulator layer.  The material I chose was a Buna-n rubber, medium strength, 1/4" thick.  The rubber comes in different hardness, I chose the 60A which is medium hard.  That seemed like the best compromise for stiffness and elasticity.   It is available in 12" wide sheets in many lengths, which is perfect because all my battery boxes are 12" tall.  The material can be found from many sources, I bought some from both McMaster Carr and Ebay.   The price on Ebay was 20 to 30% less than McMaster Carr, but there is a limited selection that had an adhesive back.  I am not sure how important that is, except for assembly purposes (it is possible to apply your own adhesive).  The battery boxes were designed to use this 1/4" rubber sheeting.  I first installed the rubber sheets in one of the rear seat boxes.  The material can be cut with a box cutter, but it is not easy - pretty tough material. After I got the material on both of the long sides I decided to test the fit of the batteries.  Until now I could not do that measurement. I could slide two batteries side-by-side very tightly in the middle of the box but, unfortunately, I found I could not slide two batteries at either end.  It looked like there was only as small offset that was preventing them from being inserted (less than a 1/16"!).  Probably the box has a very small dimension variation at the corners because of the fabrication technique.  This is one of the problems with battery boxes.  The batteries have a fixed size, so if the box is too small the batteries cannot be inserted. Also the thickness on the rubber sheet can vary +/- 0.031".  Fortunately with the rubber sheeting there is an easy solution.  The material is available in 3/16" thickness.  I ordered one sheet to test it out and it worked!  Batteries can be inserted at both ends of the box.  The still are very tight, but that is what is desired.  Another part of the battery box preparation is to install a silicon heating pad in the bottom of all the boxes.  The heating pad is designed to heat the batteries when their temperature drops below 0C because they will not take a charge at that temperature.  The pad does not get very hot and is just designed to warm the batteries.  I found a Chinese Ebay vendor that offers custom size heating pads.  They not only can customize the pad size, but also the wattage and voltage of the pad.  I chose 400W and 400V because I plan to power the pads with the battery pack voltage.  This seemed the most simple electrical solution, with the wattage of the pads they will only draw an amp of current.  I plan to use 22AGW wire so the wire will act as a fuse if there is a short.  I also plan to have a high voltage 5A fuse in circuit as a failsafe.  Each of the pads will have a thermistor - I don't plan to control the temperature but rather just have a upper limit for control.  All the pads will be wired in parallel so they see the same voltage.  The pads will sit on some of the rubber sheet material on the bottom of the box.  This is done to prevent the heat from the pad being conducted away by the battery box.  With all the sides of my boxes being insulated there is no reason to heat the box.  The heating will be directly into the battery cases.
Other work on the interior of the car has progressed.  I was able to remove all the underlayment material and install new underlayment.  The next step is to install the new carpeting.  That should happen soon, but first I need to finish running all the wiring to the engine compartment.  Now I have heaters in all the boxes there are another 4 cables to run.  I also want to get the rear seat boxes fully installed before the carpeting goes in.
No news on the Siemens spline adapter from EV West.  Should arrive any day.
video of all this fun can be found here.

Add a comment