A rechargeable multiple cell battery pack has an application associated
therewith that draws power from the battery pack. While the battery pack
is in operation, voltage, current, state-of-charge (SOC), and impedance
data are collected on a per-cell basis and an algorithm is performed to
determine a state-of-charge for each individual cell of the battery pack
consistent with predetermined criteria. The individual cells are charged
to the respective, determined state-of-charge (SOC) levels.