System -> Component -> PreCharge Module

methods

1 GW
Joined
Aug 8, 2008
Messages
5,555
Location
Santa Cruz CA
Proposed: Precharge bet taken away from the controller or BMS master and acts as a stand alone component.

Precharge only needs to happen when the contactor is open. When the contactor is closed the BMS slave stack knows the stack voltage, there for Precharge need only report while contactor open

Precharge has the purpose of diffusing a potential, therefore it can *inefficiently* draw from that potential. While precharging it can report on voltage differential - which is all that is really needed.

Precharge typically involves a big resistor which is heat sunk to the chassis.
Precharge is typically located next to the contactor - where first there is potential between the posts and then there is potential across the coil

Precharge can measure a voltage range of 3 orders of magnitude by using a voltage divider which is hard-clamped with a Zener.
Say we need to range down to 5V... where anything over that will create magic smoke.
We clamp hard at 4.2V
Any reading over our target reading (which is driven by the divider stack) reads as OL
We keep bleeding until the timer runs out or the voltage drops to the point where it is not clamped
This allows us to read anything from 12V to 1200V through a single channel ... since we dont need to know the absolute value but only the threshold of minimum value.
It could even be a simple comparitor... or stack of comparitors...

The only place a BMS master needs to touch Battery ground is:
* Measuring precharge voltage (tho not controlling it if using a relay which we will)
* Measuring (+) leakage to chassis and (-) leakage to chassis, and that happens only every now and again

Thats about it. Everything else is galvanically isolated. This means a BMS master can rest on the 12V AUX ground and isolate only at the times/places where Batt +, Batt -. and Load + need to be viewed.

Its arguable whether we need to measure V on the batt side of the contactor.
If you dont trust your slaves you should... but we will trust our slaves... as we will program an expectation into the master of # slaves + range + worst case delta + history comparison etc.

Assuming we dont need to then we definitely dont need to read Load + (other side of contactor... we care only about contactor delta)

We may be able to read the *current* running through the precharge resistor....
AH HA

Got it... WE DONT MEASURE THE VOLTAGE... WE MEASURE THE PRECHARGE CURRENT.
Mmmm... nope... wont work...
Cant predict the load... so cant use current to determine when sufficient precharge has occurred.

Good idea tho.

So generally speaking we want to wait to close the contactor until the voltage is like... uh... 10V say.
Thats pretty reasonable.
Whether its a 12V system or a 1200V system... 100%, 10%, or 1% (it should not be a ratio of voltage... it should be an absolute value... IMHO... but I am not an expert)
Lets say we target an absolute value

We set up a comparitor
It takes TINY power... microwatts
It uses a linear regulator or a power scavenger to milk its tiny bit of juice out from between the terminals.
It clamps hard with at least 2 diodes the voltage coming it... so we can basically just run through a couple of very large inline resistors (10M... 100M...) strap at our trigger voltage... and blip when safe.

So really... there is no need for an analog value to be reported that represents the precharge voltage. It is a binary state that needs to be reported.
This is much easier, much cheaper, much more straight forward.

Comparitors... I have seen a lot of those used in highly isolated systems due to the fact that they draw next to nothing and can easily work with an opto.

Now to power it...

We want Linear Technology to produce a scavenging device that accepts 10V to 1000V and turns it into a very low but stable voltage. Lets go see... I know they micro scavengers...
http://www.linear.com/parametric/energy_harvesting#!cols_1031,2200,1112,1646,2167,1367,1033,1032!s_1033,1!gtd_

Nope... thats not the path.
How about a simple buck converter?

Ah... our dream buck again
http://www.linear.com/product/LTC3639

4V to 150V

So then the question could be... how do you get 12V to 1200V to look like 4V to 150V?
We could divide by 4 to get 3V to 300V... nah
We could... bring it down with an inline resistor and a zener diode (yep... so long as you dont take much current.

AH HA... a use for Linear Regulators!!

Linear regulators dominate where current draw is super low.
Here is a batch that starts at 300nA (0.3uA.... yea...)
http://www.linear.com/products/Micropower_Comparators

So... assuming we have to drop a round thousand volts off at the pool...
1000V * 1uA = 1mW
Uh... can you find a linear regulator that can shrug off a mW?

Yes

So we can easily harvest power from between the posts of a contactor up until the time it converges
The circuit would have to default to true... for the case where delta is close to equal
The hitch would be powering the opto coupler or isolator... those are not 1uA!

now wait... times have changed... ANalog Devices claims they can provide digital isolation for as little as 1uW
http://www.analog.com/en/about-adi/news-room/press-releases/2013/11_13_13_adi_introduces_the_industrys_lowest_power.html

Thats food for thought.
Now off to my nap.
I am an old man with a separated right shoulder, sprained right thumb, and my right elbow is all ballooned out and swollen like an egg.
I need my beauty rest so I wont eat people.

-methods


-methods
 
Oh yea... and since we thought ourselves to the point of using a Comparitor we might as well just forget making a PreCharge module and move that functionality back into the Master.

* Master drives Precharge Relay, 12V
* Master has an epic voltage divider, capable of taking 12V to 1200V, that utilizes a Zener clamp and a voltage regulator, to create a few uW of power, which we draw down from pre-Contactor in order to measure post contactor with reference to Battery Ground...

* THe ground we will need to have on board to measure Chassis leakage
* The PreContactor voltage we will need to measure Chassis leakage

Yea...

* A comparitor is powered from the linear regulator (ultra ultra low power)
* An isolated digital output of the lowest power form is utlized

All that is going to cost us a bundle... so we might as well look for a multi-input... and maybe at least get some range back...
Nah... all we need is one reading. Is it, or is it not, too much potential to close the contactor.

Thats it.
Thats all we want to know.

And that is assuming we want to precharge with a resistor and a relay
There are other ways and methods

If I I wanted... I could just hang a giant solid state switch across the contactor and slowly (relatively slowly) close it... and just build it to sink a few 10KW for a very short period of time.
Forced closure... risky tho... or rather sketchy
Fuse will protect us tho.

One must know how fast you can charge up the caps.
Plenty of calculators out there.

Precharge resistor is simple and works.
Just go that route.

-methods
 
I'm not an expert in all the concerns in a precharge circuit, but I have seen them die impressively if the vehicle is able to ever draw power through the precharge circuit, even just a few amps of discharge through a precharge trying to bring up cap voltage results in magic smoke release in unprotected precharge circuits.

The other precharge circuit trick is overheating of someone (like kids or whatever) just sits there turning the key on and off for minutes at a time until it's shed so much heat precharging the caps over and over something fails.

Another trick for a precharge circuit is if the contactor opens for whatever reason while it's under discharge or charge loads, in some precharge circuits this makes them a part of the current path for a moment and magic smoke may occur.

All those types of failure modes are possible to design protection to keep the alive.

Good luck and thank you for making this! I will run it on my ebikes!
 
I see you are thinking about the same things I am...

I have spent all morning reviewing failure modes.
I missed the one where the kid turns it on and off... thanks.
I was thinking mostly about the situation where there is an unanticipated load ... and the relay has to open under said load.

$40 is where we are currently at for a 1200V contactor that can open at 40A DC current.

$2 is where we are at for something that can open 300V at mA range

DC_Switching_Voltage_Derated_Series.png

It is tedious work sifting through all the data to find the real important part... which is the DC BREAK VOLTAGE AND CURRENT
Yep - they can run 16A
Yep - they can run 300V
Nope - they can not break at the same time.

A popular online resource has claimed that standard automotive relays can be used for PreCharge... I am converging on claiming that is incorrect... but I am thinking that he must have found a way to **** TEST *** draw on the circuit before closing.

I mean... once you close the relay... thats it... committed. There is no un-closing a high voltage DC relay that is flowing high current.

And... From the Systems Perspective...
This is why I am teetering on moving the Precharge off of the Master board and out as a stand alone component..

As requirements vary to the Extreme for 100V vs 1000V
$4 vs $40

And just FYI... whatever comes out of this effort will be out of the league of Ebikes. That would be the trivial solution and I would do it using solid state components in a monolithic design.

-methods
 
A 2-Stage PreCharge is probably the Answer

Close 1000 ohms
Wait
Close 10 ohms

....

Open 10 ohms
wait
Open 1000 ohms

Of course that would need to be tuned to the voltage... and that goes away from where I am trying to go..
So.

What I keep coming back around to here is that the General Solution costs the same as the worst case solution.
So... Precharge costs $40 for the Contactor alone
Anything less... will require staged equipment... which I have always hated.

-methods
 
If we ignore gross short circuit as a failure mode (and assume that if this occurs that the customer needs to buy a new Pre-Charge and maybe a fire extinguisher...)

It is possible that the main contactor could save the Precharge relay in the situation where SOME but not FULL precharge happens.

Precharge closes 10ohms
Say... significant current is flowing... due to ... say a DC-DC kicking on that should not be on...
Contactor slams closed
Precharge opens
Contactor opens

All that gets real hairy
I think it just must be addressed at the System Architecture level...
Then we just make the statement:

"The system is as such. The comonents within will work as so. If the system becomes mangled... the components within will be damaged... so dont mangle them... or detect when mangled... or dont attempt to turn on once mangled"

For MillSpec the system needs to run no matta what... but... only one more time.
For Consumer... I think it is actually legit to make some assumptions about the state of the system.
If someone does something stupid... like something DIY... like hanging a big load off the contactor that kicks in at some voltage below full charge... or kicks in at all really...
Well - that system fails.
They buy new parts
Fires may start.

-methods
 
1000V mosfets that are a couple of bucks...
http://www.mouser.com/Semiconductors/Discrete-Semiconductors/Transistors/MOSFET/_/N-ax1sf?P=1z0y3zrZ1yvnv61

Nice ... 6ohm On Resistance

Finger math tells me that should be able to handle 3 orders of magnitude less than a 4110...
4110 can handle about 20A at most most (how I run them)
20mA is what I would rate one of those to for continuous duty with shit heat sinking

Strangely ... it works out to about the same cost as a Gigavac 1200V 40A miniTactor if you parallel enough of them.

-methods
 
Lots of 1500V relays rated for 3A...
But Carry Only... not break

http://www.gigavac.com/sites/default/files/catalog/spec_sheet/gr3bja335.pdf


-methods
 
A non-intutive relationship between charging caps and the joules of thermal energy the resistor has to dissipate.

You can make the resistor precharge over a 0.1second window or a 10second window, but the exact same joules of heating has to be shed from the resistance in the circuit to get the caps charged.

https://www.researchgate.net/post/Why_did_half_of_the_capacitor_charging_energy_go_in_parasitic_resistance_irrespective_of_resistance_value/amp
 
I have a setup I can share if you care. I use it on my CRX. Its 2 voltage dividers measuring each side of the precharge contactor ( you can use a resistor or a driver) The voltage divider on each side feed their power into a isolated analog IC that spits it out to an op amp then from there it goes to an arduino which watches precharge % and total voltage if its to low it will not turn the second contator on (or the power to the control systems) if its to high it still wont turn on and if its precharged to 96% and all conditions are ok it enables the second contactor.

Its a reliable system I have run it for 1 year and over 10,000 km on my car.
 
My PM150DZ manages precharge (and discharge) very well. I'm happy they have incorporated that feature into the inverter as its one less thing for me to do on a project.
 
Jonescg:
Jesus...!

Thats a $10k controller that runs 300V to 750V and 225A continuous and 300A peak!
You pay about $5k for that?

Ok... thats 2 votes for pushing the duty off to the Controller.
Sevcon gen 4 does that for the lower voltage stuff... tho its componentry is *very simple*

From a non-systems component perspective it really seems like the Battery MUST have means to protect itself.
From a systems perspective I see that the requirement is met so long as boundaries are respected.

All of the (formerly) mill-spec designs I have seen, which are guaranteed to fly through consumer regulations... and work toward the "lego future" I see, consisted of a housing which held the Batteries, slave modules, Master, precharge, and all contactors as a self contained separate component... which when supplied with a data sheet and mechanical envelope (model)... could be utilized in 3rd party designs.

I am totally on board with the idea that if I were an OEM or Racer looking to build a singularity I would push off responsibility for Precharge to the Controller.
Since I am attempting (purely masturbatory) to converge on the impossible "General Solution" I will keep beating my head against it until it exists... or until I get hired to do something else.

Arlo: Thanks for info on your means of measuring precharge. What I am currently seeking is a magic voltage divider that can range orders of magnitude as well as a very low cost switching solution. If you know of relays capable of 400V+ at amps that are below $10 I am super interested. If you know how to measure 12V, 120V, and say... 400V... with the same circuit... that could be interesting as well. Obviously... most people know their voltage swing and populate accordingly. I know how to do it exhaustively but my total BOM cost is ... around $100... so exhaustive solutions I am required to avoid.

-methods
 
methods said:
Arlo: Thanks for info on your means of measuring precharge. What I am currently seeking is a magic voltage divider that can range orders of magnitude as well as a very low cost switching solution. If you know of relays capable of 400V+ at amps that are below $10 I am super interested. If you know how to measure 12V, 120V, and say... 400V... with the same circuit... that could be interesting as well. Obviously... most people know their voltage swing and populate accordingly. I know how to do it exhaustively but my total BOM cost is ... around $100... so exhaustive solutions I am required to avoid.

-methods


I used multiple resistors to bring the 470v down by 100:1 0-4.7v on the isolated side of the chip is 0-470v for the traction pack making it convenient ;) So you could easily pull from the middle of the resistors if you like.
In fact on my dyno I made 2 measurement points for the battery voltage that way and labeled the alligator clips 1 is 0-100v (middle of the 2 high side resistors) and the other alligator on the dyno is 0-200v.

As for the relays.... You can use IGBTs (small ones.) I have a circuit I used for that as well before it caught fire and I went back to the precharge resistor which is HUGE. The IGBT I was precharging with worked AWESOME But one day I had the second contactor not turn on and all of the power was flowing though the precharge IGBT which is a TO247 sized package with no heat sink.... SO when a couple hunded amps of power went though it followed by 80a regen it poped and caught fire... So for simplicity for now I went back to the big 200w resistor. I have since sorted out many gremlins and might go back to the precharge IGBT as it was cool. Just remember if you turn one contactor on and have a semi conductor accross the second one the voltage ripple is large. I scoped over 850v across the second contractor which is where the precharge is done so I used a 1350v IGBT and it worked well.

If I had to guess my total precharge BOM is about $100 or less.
:Edit $100 or less wihtout contactors and without the precharge resistor.
 
thanks for the field report.

My $100 BOM is for the entire Master including uController, CAN communication, Main contactor drive, Precharge drive, throttle cut drive, IP66 packaging, ...

Good News:
I got some relief from the lofty 1200V upper target.
We now only have to span 12V to 600V and we can break that up into 100V chunks

12V to 150V
150V to 300V
300V to 450V
450V to 600V

Or whatever makes sense.

High voltage relays can be stacked in series to handle greater working voltage** assuming the standoff voltage is sufficient for the full stack.

As for solid state precharge switching...
I think we are still at the point where we need to depend on electromichanical devices unless we want to pay for the IGBT, PCB, Heat Sink, and all the noise suppressing external components that surround it. Obviously we can make one bullet-proof... but the cost is likely greater than just running a high end relay.

My vote is still for:

Gigavac $40 1200V 50A (which everybody should have 20 of sitting at the shop because they are great for all sorts of things0
Whatever huge resistor you can find which can handle 10 seconds of peak current.

Of course the software will only allow precharge to happen for a fixed period of time before giving up and opening the contactor.
Software timers can also address the situation Luke presented where a kid turns the throttle on and off over and over.

Thats the option I am going to put in the BOM (or rather... the pull-down menu) for external components which are suggested but not required... as most people doing DIY can find something great used on Ebay... or have parts laying around from previous projects.

Main Contactor $50
Precharge Contactor $40
Now I need to spec the latching contactor for throttle over-ride $5 target telecom relay I used on an earlier project. Remote mounted and encapsulated to avoid long throttle antenna runs.

Most people will use the signal as an inhibit... but we will call it a "throttle cut before Contactor opening" just to illustrate the point.

We want to avoid having the battery blindly opening the contactor during full discharge... of course.
This is one feature that is nice about the Sevcon and other controllers that control the contactor... they can ramp down power curves instead of blowing out.

Best argument for having the controller in charge of (at least a) contactor duty...
Tho in a system there would be some component in charge of dictating maximum allowable power draw from the system at any given time.

Cant remember if Sevcon takes in external info or temp probes directly... so as that you could ramp down power profiles to accommodate battery needs
Yep... of course it does... via CAN in the PDO maps.
We can change these settings on the fly and limit output

Which brings us back to ...
The Master of the BMS needs only to do SOME things forcefully and other things it can simply communicate over CAN.
Blowing open the main contactor (and IMHO) handling precharge... are two of the mechanical requirements
Ok... maybe not Precharge... but ACK.

Addressing Precharge in the Master addresses many failure modes... like User applies a dead-short on the output of the battery.

Systems approach vs System approach
General solution vs specific solution
Guiding principle vs implementation.

And... now... I have 2 jobs looming which are looking like specific implementations.
Of course... All this lofty BS talk will go out the window when price targets must be met.

-methods
 
Oh... big win...

While researching existing COTS precharge modules second hit on Google turned out to be a win.
Heat is an issue...especially in the fail-cases Luke mentioned.
Light bulbs come to mind... but better yet... a passive component that reacts predictably

I was leaning toward a type of chip resistor I used on BMS V4.0... that can tolerate temperatures up into the 200C range (sketcherz!) but here is something MUCH BETTER (nods head at you...)

Of course... resistors that behave desirably :eek:

These resistors start at 10Ohms at 25C
When the initial inrush passes they heat up quickly
Resistance then DROPS logrithmetically into the milliohms so that it can handle large current without dumping heat

Example:
1000J max
10 ohms out of the gate at 25C
18A once it reaches temperature
https://www.ametherm.com/datasheetspdf/MS3510018.pdf

Of course... you MUST calculate your instantaneous worst case Energy or the rate of change will be in excess of the physical characteristics of the device and it will explode before it can adjust...

From this page on Digikey
https://www.digikey.com/en/ptm/a/ametherm/battery-precharge-overview

Watch this explanation if mine makes no sense
https://www.digikey.com/en/ptm/a/ametherm/inrush-current-limiters-overview/tutorial

Of course the controller needs to add software cool-down time... which could be as long as a MINUTE... which bums me out immediately - but onward.

So... A Sevcon Gen 4 size 6 (powerful controller) has about 4200uF of capacitance to charge (yes I know it has its own precharge... just a non-insane value)
(pulled from this post)

E = 1/2 * C * V^2

C = 4200uF
V = 120V
E = 30J

Er... did I do that math right? Seems an order of magnitude less energy than would destroy the part.
Hrm - check it later...

Anywho - check these things out if you want to win.
They really would shine better in an application which was low cost with No Precharge... as they are intended to stay inline... and just bake while conducting full current...

But - anything out of the box to address huge Precharge heat issues is up for review.

Now...
What could we do with all that PreCharge energy that is available for less than a second which eliminates the need for a giant resistor, resets instantly, is cheap, and reliable?
Thats what you want to be thinking about...

Moving that energy quickly... not dumping it in the form of heat :idea:

Like... what if... you had a super rad isolated DC-DC Buck that would fart the energy back into the 12V battery.
Just a thought. Just a thought.

How about a light bulb
How about a small motor
How about an inductor
How about a very large LED
How about of course a PWM circuit

The goal is to just slow the rate of change (charge) of the big cap bank in the very beginning so there is no shock.
The goal is to do it quick and cheap
The goal is... big resistance at first... with a very fast decay... with a very fast recovery (so looking like PWM makes a lot more sense - but does not scale great)

What slows down current?
Resistance, inductance, chopping, alternate lower potential paths,

What are the side affects?
Heat, voltage spike, complexity, complexity

So rewind it - why cant we have a nominal precharge resistor sitting there all the time?
Leakage currents, safety, code compliance

What if the build in BMS precharge circuit was really... not to precharge... but only to TEST to see if its ok to close the contactor?
What if we leave Precharge to someone else - like the controller... or an external smart Precharge module?

In that case, we use a larger resistor, and like a nice girl on prom night... we politely just say no, no, no, no, no, no... eh no, no, no.
Ok
Wait no


-methods
 
Found the relay we were looking for.

$8.50 Relay @ 1000pcs before negotiation
https://octopart.com/search?q=FTR-J2AK006W

Has TWO sets of contacts inside. This is VERY important.

450V rated if you run them in series 10A rated continuous and 150A peak
200V rated if you run them parallel or singular... 20A carry for parallel

4000V standoff to the coil and 1000V across the contacts

Here is some data sheet for an example part
http://www.mouser.com/ds/2/164/ftr-j2-967.pdf

I happen to know these parts are under-rated and suitable for high reliability.
I found them by zooming in on this screen shot:



Which was kindly provided by this company
http://in-rdvs.com/wp-content/uploads/2013/06/130605-Precharge-Module-Datasheet.pdf

Get you some of that son.
Telling you.... its the shizzle

Here is a tip... when you see very specific things called out in a data sheet...
Things that you dont usually see...
You know you are on to a subsidized part. A part which is usually only seen in things that go to outer-space.
Usually its temp ratings ... in this case its the fact that they call out the 150A.. and they pack two relays in one.

The relay is flux proof in manufacturing... which means you are good to go on moisture etc.

Listen to your pappa... this is two rad relays in one for $8... maybe $5...
Run them in series and dont worry about precharge again.

420V/150A = 2.8Ohms

So... even if you were running a wicked 420V and you had only 3 ohms of inline resistance and you were dumping into a short (empty caps) you are golden.
Stick a 10ohm resistor in there and call it good enough

Dont worry about the steady state - you only need that for setting up your software timeouts.

Your welcome bastards. I have been looking for that relay for a LONG TIME.
(found it a couple years back but lost my notes)

Thats the one.
Sure of it.

-methods
 
Now for the resistor... I need to go back to Google and look inside the 360V battery pack that we pulled from the Azure Transit.

Inside is a flat thin resistor that mounts to case that is suitable and possibly subsidized.
COTS

Telling you...

So anyway... That relay can probably just be dangled off the contactor with a good super expensive resistor with little to no PCB and precharge is handled.

I will use it to to do three things:

Isolate HV from my master board
Read HV ramp when it is closed
Perform the precharge

Read that again
Focus on isolate

$40 bom cost down to $18 in ones and twos
Some lost reliability
Some space gained

Smart people mix HV with uC as little as possible!
Even 50V on your logic board is future-fail
Don't build monolithic

Separate your high reliability parts from your parts that touch HV 24/7

-Patrick
 
A controller is not a high reliability part

Unless... It is your only way to open the contactor

High reliability part is the one that WILL open your contactor
And... That's why you switch the coil high and low... Tho you don't need to... If you 100X the margin on your low side switch.

IMHO

-methods
 
Had another talk with consultants, customers, retailers.
These ideas came out (which I should make money off of but here you go)

* Master needs to have physical control over the Contactor to ensure Mission Critical Safety operations. It is unacceptable for mission critical commands to be executed over CAN unless it is a totally closed and private CAN buss which is tightly controlled and profiled.

* Other duties such as PreCharge are encouraged to be moved off board... to become individual components... which are CAN enabled. This creates Lego's others can build with :idea:

* Voltage requirement relaxed again down to 420V(ish) for V1.. and I am certain we can remove ourselves from this voltage scaling issue by putting the task out to PreCharge module such that Master see's no physical voltage.

* Monetizing can come in the form of selling Lego's that work both with our system... AND with other's systems.

* Slave lego works on isoSPI bus and talks with master (consider that a lego subset... tho you can implement Master if you like)
* Current Sensor is just a lego that can talk SPI, CAN, Analog
* Precharge is just a Lego that speaks CAN, reads HV, drives a relay with a resistor, has a little smarts
* Contactor is just a simple lego
* Throttle Cut is just a latching state control which brutally communicates an intent to blow open contactor soon - coil controlled lego
* User Interface is a simple CAN controlled lego

Dissecting a system into isolated components causes BOM to go up a little... but pays for itself in Scale-ability. Buy once, use forever.

I can show you tens of millions of dollars wasted working around early design decisions which were poor. In trying to save $100 a unit... $1000 dollars a unit is spent in work arounds, rework, non-cots parts, lost opportunity, and every kind of fail you can think of.

You are running a distributed BMS or you are pinged holed and not Scaling.
You are running a distributed BMS or you have little to no shot at capturing other markets.

Who wants to buy that?
A polished turd with 65 layers of polish.
Great for what it is... but quickly falling into the background... as we accelerate through the Electric Revolution.

If you are reading this... I may be talking to you... so just bite the bullet and architect properly.
Penny wise, pound foolish.

-methods
 
Back
Top