Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

battery charger current control

Status
Not open for further replies.

mess123

Member level 5
Member level 5
Joined
Nov 30, 2008
Messages
89
Helped
3
Reputation
6
Reaction score
1
Trophy points
1,288
Activity points
1,810
I read that from different article that batteries can be charged with different amount of current like 0.1C, 0.5C, 1C....? How to control the current for charging the battery using the same source?
 

Hi,
It all depends on your circuitry and the type of battery. You can use PWM, phase control, pulse-skipping, etc.
Tahmid.
 

Hi dear it is right.
But it is done by circuit which too difficult. The timing of the current controlled by timer ic.
Also this type of work done by programming easily....
 

Hi,
Yea, using discrete ICs for this is a great hassle. I did mine with PIC and now hoping to use AVR instead.
Tahmid.
 

Thanks... but I am still in the beginning phase. First I want to measure State of Charge (SOC) of the battery and then calculate what should be the charge rate.
My applications are Li-ion, Ni-Cd and Ni-MH, Can I use just OCV to determine SOC? What about the effect of the temperature?
 

and how your system will know which kind of battery have you plugged in ? Each one has a different charging profile. Also, trickle charge is very welcomed in Ni-Cd but unacceptable for Li-Ion. How high is your power budget ? Certainly there's gonna be heating issues and probably changes in the charging algorithm because of the amount of power you can obtain from your source.
 

please tell me how to simulate the upfc connected to transmission line for controlling real and reactive power.
 

I am thinking to make dedicated slots for Li-ion, Ni-Cd/Ni-MH. So, I will use decoder ckt to know the type of the battery connected in that slot (obviously there will be labeling like "Li-ion only").

My question is still - can I estimate SOC from the voltage only? How much of effect can the temp have in this regard?
 

Well, that's an important question. At this very moment I'm trying to simulate a battery model to define if different algorithms would change the SOC for a given voltage. Theoretically, if you charge at high currents, you will have a higher voltage drop on the internal ESR of the battery and this will lead to a one SOC reading. If, in the other hand you use low currents during the whole period, the voltage drop in the ESR will be lower than before and another SOC will be represented in the same voltage reading.

For example:

For constant current charge @ 1C you will have 70% SOC at when you get 4.2V. But if you do slow charge, let's say @ 0.1C, you will have close to 98% SOC at the same 4.2. So, in the end, the important thing is to know how much power you have at the input and if it is enough to charge your battery at the rated current or not. Do you know adaptative battery chargers ? The batteries you wanna charge are multirated ?

Take a look at these papers:

-Accurate Electrical Battery Model Capable of Predicting Runtime and I–V Performance.
-Dynamic Lithium-Ion Battery Model for System Simulation.
-A dynamic lithium-ion battery model considering the effects of temperature and capacity fading.

I'm trying to create a verilog-a model of the battery given above but I'm having problems with the ddt function multiplied by the probe on the charging part. If you know how to do this please reply the post.

Hope this helps,

Regards.
 

Thank you arghpok. This is really helpful to me.
I am sorry I have no idea on your query.
 

Li-Ion battery model in verilog-A

Hey ppl.

Im posting here the behavioral model that I made using verilog-A on a cadence environment. Whoever is working with battery management circuits and charge/recharge simulations might find it useful.

Test it and trim it if you can, because sometimes it creates unstabilties in the circuits because of odd operating points calculations. I didnt do the voltage limiting on the model but I think one of you can do it... if not I will do it... but later.

The default model is a 850 mAh Li-Ion battery model. The state of charge is easily settable with the soc parameter (0 = 0%, 1=100% of charge). The capacity is defined by the Ccharge parameter, which is 3060F for a 850 mAh battery. Dont mess with the other parameters unless you know what youre doing.

Enjoy =)

//Verilog-AMS HDL for <library_name>, <modelname> <cellview>

`include "constants.vams"
`include "disciplines.vams"

module <modelname>(gnd, nsoc, vbat);

inout gnd, nsoc, vbat; // i/o pins
electrical gnd, nsoc, vbat; // main nodes
electrical n0, n1, n2; // internal nodes

electrical n1n2, n2vbat; // dummy nodes for calculations

parameter real Rdischarge=1M, Ccharge=3060; // parameters for the charge model part
parameter real Ra=0.07446, Rb=0.04669, Rc=0.04984; // Parameters for the internal dynamic resistances
parameter real Cb=703.6, Cc=4475; // Parameters for the internal dynamic capacitances
parameter real soc=1;

analog begin

// ***DEFINITION OF THE BATTERY LIFETIME CIRCUIT*** //

@(initial_step)
V(nsoc,gnd) <+ soc;

// internal current controlled current source

I(nsoc,gnd) <+ I(gnd,n0);
I(nsoc,gnd) <+ V(nsoc,gnd)/Rdischarge;
I(nsoc,gnd) <+ Ccharge*ddt(V(nsoc,gnd));

//**************************************************//

// ***DEFINITION OF THE TRANSIENT RESPONSE OF THE BATTERY*** //

// Voltage controlled voltage source

V(n0,gnd) <+ 3.685-1.031*exp(-35*(V(nsoc,gnd)))+0.2156*(V(nsoc,gnd))-0.1178*pow(V(nsoc,gnd),2)+0.3201*pow(V(nsoc,gnd),3);

// Series resistance

V(n0,n1) <+ I(n0,n1)*(Ra+0.1562*exp(-24.37*(V(nsoc,gnd))));

// Fast transient RC network

I(n1n2) <+ ddt(V(n1,n2));
V(n1n2,gnd) <+ I(n1n2)*0.1*Rdischarge;
I(n1,n2) <+ V(n1,n2)/(Rb+0.3208*exp(-29.14*(V(nsoc,gnd))));
I(n1,n2) <+ (Cb-752.9*exp(-13.51*(V(nsoc,gnd))))*I(n1n2);


// Slow transient RC network

I(n2vbat) <+ ddt(V(n2,vbat));
V(n2vbat,gnd) <+ I(n2vbat)*0.1*Rdischarge;
I(n2,vbat) <+ V(n2,vbat)/(Rc+6.603*exp(-155.2*(V(nsoc,gnd))));
I(n2,vbat) <+ (Cc-6056*exp(-27.12*(V(nsoc,gnd))))*I(n2vbat);

end

endmodule
 

Based on Voltage and Temperature information can I use the same charging algorithm for all kinds of battery (Li-ion,Ni-MH, NiCD)? I think it works ok with Ni-MH and Ni-CD battery but will it for Li-ion?
My algorith will be based on fuzzy rules like :
If Temp is low and Voltage is low, charging current is high
If Temp is high and Voltage is low, charging current is low
If Temp is very high and Voltage is low, Charging current is zero
..............
..............
Will the Li-ion battery work (and of course work as fast as like constant current/const voltage) method ?
 

Hi
--
--- Hi,
--- It all depends on your circuitry and the type of battery. You can use PWM,
--- phase control, pulse-skipping, etc.

----Tahmid.

Can I please have a bit more detail on how to control the charging current of a SCR main charger for a lead acid battery ?

Thanks
Manish
 

Based on Voltage and Temperature information can I use the same charging algorithm for all kinds of battery (Li-ion,Ni-MH, NiCD)? I think it works ok with Ni-MH and Ni-CD battery but will it for Li-ion?
My algorith will be based on fuzzy rules like :
If Temp is low and Voltage is low, charging current is high
If Temp is high and Voltage is low, charging current is low
If Temp is very high and Voltage is low, Charging current is zero
..............
..............
Will the Li-ion battery work (and of course work as fast as like constant current/const voltage) method ?

Li Ion batteries work a bit different, they have 3 possible scenarios (not even considering the temperature)

When voltage is below 3V, charge current must be low ( < 0.1C)
When 3 < Vbat < 4.2, charge current can be 1C (or even more, but it won't give you any gain)
When Vbat == 4.2, charging must be finished whenever the battery is charging with less than 0.05C.

So you gotta fix you algorithm for the case of low voltage (really low)... you don't want large currents.
 

Status
Not open for further replies.

Similar threads

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top