Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

SPICE model for lead acid cell

1,010 views
Skip to first unread message

Daku

unread,
Nov 7, 2011, 9:34:50 AM11/7/11
to
Could some electronics guru please direct me to a SPICE model for a
lead acid cell. I understand that PSpice comes with a model, but I do
not use PSpice, and I hear that the
library is encrypted.

Robert Macy

unread,
Nov 7, 2011, 9:59:35 AM11/7/11
to
LTspice group had a very active session on this.

the following is from

"sgtwookieusmc" <the...@aol.com>
Date: Mon, November 8, 2010 8:10 am


* V2.0 Helmut Sennewald 02/22/04
*
* Modified from NiMH.lib to simulate sealed lead-acid batteries;
SgtWookie 11/3/2010
*
* Lead-Acid Battery
*------------------------
*
* Possible Parameters
* -------------------
*1 CELLS Number of cells in the battery; 2 = 4.2v, 3=6.35v, 6=12.8v,
etc.
* VCELL nominal cell voltage in volts, e.g. 2.133
* CAPAH cell capacity in Ah(ampere*hours), e.g. 7.2
* R_SER series resistance in Ohms, e.g 0.2
* SOC state of charge (0..1, .9=discharged, .95=50%, 1=full)
* CHEFF charging effeciency, e.g 0.7 means you need 1/0.7 times
the
* ampere*hours to charge fully
* SELFDC self discharge per hour, e.g. 0.000042 if 3%/per month
* TEMPC Battery internal temperature in °C; e.g. 25 = 25°C
*
* I started with an old article from S.C.Hageman about a SPICE model
for
* NIMH batteries. It's the model "NIMH" - PSpice Nickel-Metal-Hydride
* battery discharge simulator. Optimized for 4/5A and AA Standard
Cells
* and discharge rates from 0C to 5C. It's for discharge only.

* First I did some little changes on this discharge model.
* Later, I started with further development to include a charging
model
* for he battery too. The result is the new model NIMH_AA.
* Ext+ Ext-
* ^ ^
* | |
* | |
* | |
* +-------+----------- +/- Cell connections (Floating)
*
*
*
.SUBCKT Batt_SLA Ext+ Ext-
* Soc Rate_d Cells
*
.PARAM CELLS=6
.PARAM VCELL=2.133
.PARAM CAPAH=7.2
.PARAM R_SER=20m
.PARAM SOC=1
.PARAM CHEFF=0.75
.PARAM SELFDC=0.000042
.PARAM TEMPC=25

.IC V(Charge)={SOC}
.NODESET V(Charge)={SOC*CELLS*VCELL}
.PARAM R_DIS={VCELL*CELLS/(SELFDC*CAPAH)}

R_Cell Ext+ Cell+ {R_SER}
V_Sense Ext- Cell- 0
R_dis Cell+ Cell- {R_DIS}

* Charge to voltage translation with E-TABLE
* The last table entry (1.1 -10) together with the clamped reverse
voltage(D2)
* defines the battery voltage in reverse mode. If this entry is
omitted,
* then the battery will clamp to zero volts.
*
* Following table is a rough approximation of a lead-acid battery
E_Cell Cell+ Cell- TABLE { V(SODC) } =
+ (0.0000 {{1.0000*CELLS*VCELL}-{{TEMP-25}*0.003*CELLS}})
+ (0.0750 {{0.9899*CELLS*VCELL}-{{TEMP-25}*0.003*CELLS}})
+ (0.1500 {{0.9797*CELLS*VCELL}-{{TEMP-25}*0.003*CELLS}})
+ (0.2250 {{0.9695*CELLS*VCELL}-{{TEMP-25}*0.003*CELLS}})
+ (0.3000 {{0.9594*CELLS*VCELL}-{{TEMP-25}*0.003*CELLS}})
+ (0.3750 {{0.9492*CELLS*VCELL}-{{TEMP-25}*0.003*CELLS}})
+ (0.4500 {{0.9391*CELLS*VCELL}-{{TEMP-25}*0.003*CELLS}})
+ (0.5250 {{0.9289*CELLS*VCELL}-{{TEMP-25}*0.003*CELLS}})
+ (0.6000 {{0.9188*CELLS*VCELL}-{{TEMP-25}*0.003*CELLS}})
+ (0.6750 {{0.9086*CELLS*VCELL}-{{TEMP-25}*0.003*CELLS}})
+ (0.7500 {{0.8985*CELLS*VCELL}-{{TEMP-25}*0.003*CELLS}})
+ (0.8250 {{0.8203*CELLS*VCELL}-{{TEMP-25}*0.003*CELLS}})
+ (0.8310 {{0.8000*CELLS*VCELL}-{{TEMP-25}*0.003*CELLS}})
+ (0.8510 {{0.7417*CELLS*VCELL}-{{TEMP-25}*0.003*CELLS}})
+ (0.9080 {{0.6133*CELLS*VCELL}-{{TEMP-25}*0.003*CELLS}})
+ (0.9480 {{0.5047*CELLS*VCELL}-{{TEMP-25}*0.003*CELLS}})
+ (0.9800 {{0.3180*CELLS*VCELL}-{{TEMP-25}*0.003*CELLS}})
+ (0.9900 {{0.1109*CELLS*VCELL}-{{TEMP-25}*0.003*CELLS}})
+ (0.9950 {{0.0000*CELLS*VCELL}-{{TEMP-25}*0.003*CELLS}})
+ (0.9960 {{0.0000*CELLS*VCELL}-{{TEMP-25}*0.003*CELLS}})
+ (0.9970 {{0.0000*CELLS*VCELL}-{{TEMP-25}*0.003*CELLS}})
+ (0.9980 {{0.0000*CELLS*VCELL}-{{TEMP-25}*0.003*CELLS}})
+ (0.9990 {{0.0000*CELLS*VCELL}-{{TEMP-25}*0.003*CELLS}})
+ (1.0000 {{0.0000*CELLS*VCELL}-{{TEMP-25}*0.003*CELLS}})
+ (1.1000 {{-10.0000*CELLS*VCELL}-{{TEMP-25}*0.003*CELLS}})

* Original NiMH table below
*+(0.0 1.3346) (0.0293 1.3042)(0.0426 1.2942) (0.0689 1.2841)
*+(0.13 1.2733) (0.436 1.2633) (0.512 1.2532) (0.580 1.2432)
*+(0.646 1.2331) (0.702 1.2231) (0.7583 1.2130)(8.0324E-01 1.2030)
*+(0.831 1.1929) (0.851 1.1828) (0.908 1.1425) (0.948 1.0919)
*+(0.980 0.987) (0.99 0.9352) (0.995 0.8272) (0.996 0.741)
*+(0.997 0.647)(0.998 0.514) (0.999 0.33) (1.0000 0.0) (1.1 -10)

* Actual rate of discharge by external load.
* E.g. 0.2 means a full battery would last 5hours(=1/0.2).
E_Rate N001 0 VALUE = { IF( (I(V_sense)>0 & V(Cell+,Cell-)>0),
+ I(V_Sense)/CAPAH, CHEFF*I(V_Sense)/CAPAH ) }
R2 N001 Rate_d 1
C1 Rate_d 0 1

* State of charge is actually just a 1 to 1 transform of "Charge"
E_Rate1 Soc 0 TABLE { V(Charge) } = (-1,-1) (1,1)

* Higher capacity for discharge current below 0.2*C
E_LowRate LowRate 0 TABLE { V(Rate_d) } = (0,0) (0.001,0.15) (0.1,0.1)
(0.2,0)
R3 LowRate 0 1G
G_LowRate 0 Charge VALUE = { IF( (I(V_sense)>0 & V(Cell+,Cell-))>0,
+ V(LowRate)*I(V_Sense), 0) }

* Lower capacity for discharge current above 0.2*C
E_LostRate LostRate 0 TABLE { V(Rate_d) } = (0.2,0.0) (1.0,0.1)
(5,0.2)
R5 LostRate 0 1G
G_HighRate Charge 0 VALUE = { IF( I(V_sense)>0 & V(Cell+,Cell-)>0,
+ V(LostRate)*I(V_Sense), 0) }

* The charge model
* Overcharge and discharge clamped with diodes
C_CellCapacity Charge 0 { 3600 * CAPAH * {TABLE (TEMP,
+-99, 0.2,
+-20, 0.46,
+-15, 0.56,
+-10, 0.66,
+-5 , 0.71,
+0 , 0.76,
+5 , 0.83,
+10 , 0.90,
+15 , 0.95,
+20 , 0.98,
+25 , 1.00,
+30 , 1.03,
+35 , 1.05,
+40 , 1.07,
+45 , 1.09,
+99 , 1.10)}}

R1 Charge 0 1MEG
V2 N003 0 0.993
D1 Charge N003 DFULL
D2 0 Charge DREV
G_DisCharge Charge 0 VALUE = { IF( I(V_Sense)>0 ^ (V(Cell+,Cell-)<0),
+ I(V_Sense), I(V_Sense)*CHEFF) }

* State of Discharge = 1-SOC
E_Invert SODC 0 TABLE { V(Soc) } = (-1,2) (0,1) (1,0)
R4 SODC 0 1G

.model DFULL D(Is=1e-6 N={0.02*CELLS} Vj={.15*CELLS})
.model DREV D(Is=1e-8 N={0.02*CELLS} Vj={.15*CELLS})
.ends

0 new messages