reference is made to fig1 which shows in block diagram a battery charger 1 according to the present invention . the charger 1 comprises a controller 2 , a user control interface and display panel 4 , and a programmable power supply 6 . the programmable power supply 6 generates a charging current i indicated by reference 8 for charging a battery 10 which couples to the charger 1 . the controller 2 is coupled to an analog input on the programmable power supply 6 through a digital - to - analog converter ( d / a ) 12 . the d / a converter 12 provides an analog control signal output to the power supply representing the relative level of the charging current i to be applied to the battery 10 . the analog input accepts a control voltage from the d / a converter 12 in the range 0 to 10 vdc . the control voltage signal represents a range of 0 % to 100 % of the full scale output current capacity of the programmable power supply 6 . the programmable supply 6 also includes a buffered digital input / output interface coupled to respective output and input ports on the controller 2 . the power supply 6 receives digital control signals issued by the controller 2 for setting the charging current i on / off and for clearing a fault condition . preferably , the power supply 6 accepts a digital input signal from the controller 2 which causes the instantaneous shut - down to 0 % output charging current i . the power supply 6 also outputs digital signals to the controller 6 to indicate status and fault conditions , for example , over - temperature , and dc bus voltage too high or too low . one skilled in the art will be familiar with the implementation of the programmable power supply 6 . the controller 2 comprises a microprocessor , or processor board , which has been suitably programmed to execute a battery charging program and method according to the present invention . the charging process is configured by parameters which are entered through the user interface and display panel 4 . the user interface and display panel 4 preferably comprise a display and a keyboard , or keypad , for entering battery charge parameters . the user interface 4 may also include an input device for reading a battery parameter identifier which is associated with certain known types of batteries . the controller 2 uses the display panel 4 to display battery status , charging system status , fault conditions , and diagnostic information to the user . the panel 4 also includes control inputs to start / stop the battery charging process , and display prompts for connecting the battery 10 to the charger 1 and configuring the operation of the charger 1 . the charger 1 operates as a closed loop or feedback charging system . the charger 1 has a sensor block 14 for monitoring various parameters of the battery 10 . the sensors include a charging current sensor 16 , a battery voltage sensor 18 , a battery temperature sensor 20 , and a battery pressure sensor 22 . the sensors comprise analog process measurement circuits and are coupled to respective input ports on the controller 2 through an analog - to - digital converter 24 . the charging current sensor 16 monitors the charging current i and is implemented using a current transducer , such as lem module lt 500 available from lem s . a . of switzerland , connected to a load resistor and an analog conditioning amplifier ( not shown ). one skilled in the art will be familiar with the implementation of the analog circuitry . the battery voltage sensor 18 monitors the output voltage of the battery 10 and preferably comprises a scalable signal conditioning amplifier ( not shown ) having galvanic isolation , for example , provided by an opto - coupler ( not shown ). the battery temperature sensor 20 monitors the internal temperature of the battery 10 and is implemented using a solid state thermal sensor which is in contact with the exterior wall of the battery 10 . a suitable temperature sensor is the lm335a solid state device available from national semiconductor . the sensor 20 may include an analog conditioning amplifier ( not shown ) to condition the output signal from the temperature sensor . the battery pressure sensor 22 monitors the internal pressure of the battery 10 and is implemented using a suitable pressure transducer such as the px302 available from omega engineering inc . the output signals from the various sensors are fed into the a / d converter 24 and digitized for input by the controller 2 . preferably , the a / d converter 24 comprises a high speed 12 - bit converter . the digitized signals inputted to the controller 2 are used by the battery charging program and method in conjunction with battery and charge parameters inputted by the user . in response to the inputs , the battery charger control program calculates and updates the control commands for the programmable power supply 6 . the control program also continues to monitor the status and operation of the programmable power supply 6 . if any faults are detected , the charger control program will terminate the charging cycle , i . e . turn - off the power supply 6 , and indicate the abort status on the user display panel 4 . the processing steps embodied in the battery charging program and method are described in more detail below with reference to fig4 to 8 . it is a feature of the present invention that the charging current i is periodically interrupted or varied . the purpose of the variation is two - fold . first , the variation in the charging current i provides a window to measure voltage and current parameters in order to calculate a resistance free voltage v rf for the battery 10 . secondly , the variation in the current provides a mechanism for reducing and preventing premature capacity loss ( pcl ) and reversible capacity decay ( rcd ). the controller 2 regulates the variations or interruptions in the charging current i through the programmable power supply 6 ( fig1 ). the variation in the current i includes a step change ( e . g . the current is turned off , decreased to a non - zero value , or increased ), a ramped change , a sinusoidal change , an exponential change , a logarithmic change , or any other suitable variation in the current i . fig2 depicts exemplary waveforms 8a and 8b with a step change in the charging current i according to the present invention . the waveforms 8a , 8b comprise a current with magnitude i hi and transition portions denoted by references 9 and 11 respectively , and having a magnitude i low . for the waveform 8a , the transition portions 9 comprise a substantially square pulse with step portions 13a and 13b . the step portion 13a represents a decrease in the magnitude of the charging current i from i hi and a pause , which allows for time constants associated with the electrochemistry of the particular battery being charged . the step portion 13b represents an increase in the magnitude of the charging current i from i low . the step portions 13a , 13b are generated when charging certain types of batteries , for example , large capacity lead - acid batteries . it will be appreciated that the magnitude of charging current i and duration at the step portions 13a , 13b will depend on the electrochemistry of the battery being charged , and for some batteries the step portions 13a , 13b will be not necessary . for the waveform 8b , shown in fig2 ( b ), the transition portion 11 has relaxed falling and rising edges 15a , 15b . preferably , the edges 15a , 15b have fall and rise times which are shorter than the characteristic time constants for the electro - chemical phenomena associated with the resistance free voltage v rf . fall and rise times in the range 0 . 01 c / ms to 10 c / ms are suitable . as shown in fig2 it is a feature of the present invention that the low value i low of the charging current i is positive . a duration for the transition portion 9 or 11 in the range 0 to 500 ms is suitable , but a duration over 500 ms is also applicable . referring to fig2 the frequency for the transitions in the charging current i is preferably in the range 0 . 01 hz to 120 hz . it has been found that a lower frequency is preferable from the standpoint of active material utilization , and therefore in one aspect of the invention , the variation in the charging current i is linked to the state of charge for the battery 10 . in operation , when the battery 10 is discharged and the battery voltage is far below the regulation point , a low frequency for the charging current i is preferable . similarly , the sampling frequency of the battery state parameters is low at that stage of the charging cycle . as the resistance free voltage v rf approaches the set - point voltage sv r , the sampling frequency is increased . when the set - point voltage sv rf is reached with temperature compensation taken into account , the frequency of the charging current i is reduced . at this point , the frequency is reduced so that the average value of the charging current i does not exceed the battery charge acceptance ability . the change in the charging current i comprises a discrete step change or a continuous current adjustment . a discrete step change causes the resistance free voltage v rf to drop below the set - point voltage sv ref , and the current i remains constant until the set - point voltage is reached again . for a continuous current adjustment , the controller 2 continuously adjusts the charging current i to maintain the resistance free voltage v rf exactly at the set point . reference is next made to fig4 which shows in block diagram form the architecture for a battery charging control program 100 according to the present invention . the battery charging control program 100 comprises a charge algorithm 102 , a user interface module 104 , a charger control module 106 , a charger input module 108 , and a process measurement module 110 . the charge algorithm module 102 comprises the method steps for controlling the charging of the battery 10 according to the present invention . the charge algorithm 102 is described in more detail below with reference to fig5 to 8 . the user interface module 104 comprises the functions which control the operation of the user control and display panel 4 ( fig1 ). the user interface module 104 processes inputs entered by the user into charge parameters 112 which are used by the charge algorithm 102 as described in more detail below . the user interface module 104 also displays data from the charge algorithm 102 on the charging process 114 and diagnostic information 116 on the display panel 4 . the charger output module 106 controls the operation of the programmable power supply 6 in response to the charge algorithm 102 . the charger output module 106 provides the digital control to the d / a converter 12 to generate the control voltage signal for the programmable power supply 6 . the charger output module 106 also generates the digital output signals , e . g . charge current on / off and fault reset , to control the programmable power supply 6 . the charger input module 108 receives the status and fault condition signals issued by the programmable power supply 6 . the status and fault condition signals are received on the input port of the controller 2 and transmitted to the charge algorithm 102 for processing . for example , in response to an over - temperature condition , the charge algorithm 102 aborts charging the battery , the power supply 6 is shut down through the charger control module 106 , and an ` abort message ` is displayed on the display panel 4 by user interface module 104 . the process measurement module 110 oversees the input of signals from the charging current , battery voltage , battery temperature and battery pressure sensors 16 , 18 , 20 , 22 ( fig1 ). the analog outputs from the sensors are first digitized by the a / d converter 24 . the digitized information obtained from the sensors is then stored in memory for use by the charge module 102 as will be described in more detail below . reference is next made to fig5 which shows the operation of the battery charger 1 and charging algorithm 102 according to the present invention . starting at a step 118 , the battery type identifier is read in step 120 ( if the charger 1 includes an input device for reading the battery identifier ). if the charger 1 does not include a reader for the battery type , the user is prompted to input the battery type using the interface panel 4 . the battery type , i . e . chemistry , is used to select an appropriate parameter table in step 122 . the parameter table is dependent on the particular type of battery , e . g . nickel - cadmium , nickel - metal hybrid or lead - acid , and preferably includes parameters for first current parameter i 1 and second current parameter i 2 , maximum charging current i max , reference voltage set - points v r1 and v r2 , and a coefficient of temperature compensation θ . the parameter table may also include a sampling rate or resolution for the input / output timers described in more detail below . preferably , the parameter tables for various types of batteries contemplated for the charger 1 are stored in non - volatile memory , e . g . rom , which is accessible by the controller 2 . in step 124 , a local status indicator lca is set to one . the status indicator lca is used by the program and has three states : one , two , and three . the state lca = one indicates that the battery 10 has been connected to the charger 1 and remains to be charged . the state lca = two indicates that the charging current i has reached its maximum allowable value , i . e . i max . the state lca = three indicates that the resistance free voltage v rf for the battery 10 has reached the temperature compensated resistance free voltage set - point sv ref . as shown in fig5 there are two modules 126 , 128 which handle the data acquisition and control command transfer , respectively , with the charger 1 . the data acquisition module 126 oversees the input of data from the sensors 16 to 22 ( fig1 ). the real time process module 128 outputs the digital control signals and the current control signal ( via the d / a converter 12 ) to the programmable power supply 6 . in step 130 of the real time process control module 128 , a time - base for outputting the output control commands is generated . next at step 132 , the output control commands are sent to the appropriate hardware drivers . as shown , there is also a loop - back path 134 between the real time process control module 128 and the real time data acquisition module 126 . the loop - back 134 provides a &# 34 ; trigger &# 34 ; for the real time data acquisition module 126 as described below . referring to fig5 in step 136 the data acquisition module 126 generates a time - base for inputting , i . e . sampling , data . the sampling rate depends on the particular hardware being utilized and the desired resolution for the process control as will be appreciated by those skilled in the art . for example , sampling once every 60 μsec is suitable for the charger 1 . in step 138 , the data acquisition module 126 collects ( at the sampling rate ) current readings i 1 , . . i n from the charging current sensor 16 ( fig1 ), voltage readings v 1 , . . . v n from the battery voltage sensor 18 , temperature readings t 1 , . . . t n from the battery temperature sensor 20 , and pressure readings p 1 , . . . p n from the battery pressure sensor 22 . in step 140 , values for average voltage v av , average charging current i av , coulombic charge q , charge energy e , and elapsed charging time τ are calculated from the input data . the average current i av and average voltage v av values are calculated over a selected period , for example , one second . the coulombic charge q is calculated by integrating the values for the charging current i 1 , . . . , and the charge energy e is calculated from the average current i av and average voltage v av . in step 138 , data , corresponding to the high value for the charging current i hi , the low value for the charging current i low , the high value for the voltage v hi , the low value for the voltage v low , are also read in conjunction with the trigger provided on the loop - back path 134 from the real time process control module 128 . the trigger for the high charging current i hi comprises the output command to the programmable power supply 6 to raise the charging current i to the high value . similarly , the trigger for the low charging current i low comprises the output command to the power supply 6 to lower the charging current i to the low value . the values for the high voltage v hi and the low voltage v low are read in a similar manner . the data generated by the data acquisition module 126 is stored in memory for further processing . in step 142 , two operations are performed . first , the resistance free voltage set - point sv r is compensated for temperature to give sv ref , and second the actual resistance free voltage v rf is calculated . the calculations for sv r and v rf may be implemented as procedure or function calls from step 142 , and the form of the functions will be dependent on the implementation . the logic steps for the functions are shown in more detail in fig6 . reference is next made to fig6 . proceeding from step 200 , the average current i av is compared to the first current parameter i 1 at step 202 which comprises a decision block . if the average current i av is greater than the current parameter i 1 , then it is concluded that the charging process 102 is utilizing a predetermined voltage set - point v r1 and in step 204 the resistance free voltage set - point sv r is assigned the value of v r1 ( from the parameter table ). on the other hand , if a variable resistance free voltage set - point is being used , then the value of the average charging current i av is checked against the first and second current parameters i 1 and i 2 in step 206 . if the average charging current i av is less than the current parameter i 1 and greater than the second current limit i 2 , i . e . in the transition region , then the resistance free set - point voltage sv r is adjusted according to the function in step 208 . when a variable reference set - point voltage sv r is utilized , the function increases the set - point voltage level as the charging current decreases , i . e . the battery becomes charged . on the other hand , if the average value i av for the charging current is not within the transition region , then the resistance free set - point voltage sv r is set to the value of v r2 from the parameter table in step 210 . once the value for the resistance free set - point voltage sv r is determined , the voltage is temperature compensated in step 212 . the temperature compensated resistance free set - point voltage sv ref is compensated as a function of the measured battery temperature t , the reference temperature parameter t ref and the temperature compensation coefficient θ as shown in step 212 . ( the charging current i is the value being supplied by the programmable power supply 6 ( fig1 ), and the battery temperature t is read from the battery temperature sensor 20 through the a / d converter 24 .) the temperature compensated resistance free set - point ( i . e . reference ) voltage sv ref is compared with the calculated resistance free voltage v rf as will be described with reference to step 144 in fig5 . next , in step 214 , a decision is made to interrupt the charging current i . according to one aspect of the invention , the charging current i is periodically interrupted . further according to the invention , the charging current i is interrupted but maintained at a positive value as shown in fig2 . it is a feature of the invention that maintaining the current i at a positive value during the interruption prevents terminating the surface chemical reaction . during the interruption in the current i , the battery internal resistance r is calculated in step 216 , and in step 218 the resistance free voltage v rf is calculated . referring to fig2 prior to turning the charging current i low , readings for voltage v hi and current i hi are taken . following the current i going low , voltage and current readings v low , i low , are taken for determining the resistance free voltage v rf f . preferably , the readings are taken 0 - 100 ms after the charging current i is turned low . the low value i low ( fig2 ) for the charging current i may be preselected constant value during the entire charge cycle or set as a percentage ( i . e . 0 to 100 %) of the high value . referring to fig6 the battery internal resistance r is calculated according to the expression given in step 216 . the calculation for the internal resistance r is made after the voltage and current readings v low , i low are taken . the value for the battery internal resistance r is stored in memory . next , the resistance free voltage v rf is calculated according to the expression in given in step 218 . it is a feature of the present invention that the regulation of the charging current i is based on the resistance free voltage v rf . reference is made to fig3 which shows a method for calculating the resistance free voltage v rf from the battery internal resistance r . according to this aspect of the invention , a change ( i . e . transition 9 or 11 as shown in fig2 ) is introduced into the charging current i in order to measure the actual internal resistance . the step change in the current i is defined by a high current i hi and a high voltage v hi and respective low current i low and low voltage v low . as shown in fig3 the step change in the current i causes a respective change in the battery voltage . the resistance free voltage v rf is calculated according to the following function : ## equ2 ## the values for the voltages v hi and v low are determined by the controller 2 through readings taken from the battery voltage sensor 18 ( fig1 ), while the high and low values for the step change in the current i are known to the controller 2 from the control loop for the power supply 6 . the resistance free voltage is preferably calculated after a preselected period of time after the charging current i is turned low . the frequency for interrupting the current is preferably kept in the range 0 - 10 hz , but may be increased up to a value of 120 hz . as shown in fig6 the resistance free voltage v rf is also calculated in step 220 without interrupting the current . in step 220 , the resistance free voltage v rf is calculated as a function of the battery internal resistance r and the high voltage and current readings v hi and i hi . the battery internal resistance r was calculated earlier and stored in memory . since the internal resistance r of the battery 10 changes over the course of the charging cycle it is preferable to periodically recalculate and update the internal resistance r in step 216 when the charging current i is interrupted . once the resistance free voltage v rf is updated in step 218 or step 220 , control returns to step 144 in fig5 . between interruptions , the calculated resistance free voltage v rf is used to control the charging process of the battery 10 as will be described . step 144 comprises a decision step , where the resistance free voltage v rf is compared to the temperature compensated set - point resistance free voltage sv rf ( obtained in step 212 of fig6 ). if the resistance free voltage v rf is less than the set - point voltage sv rf , then the battery 10 is not fully charged . according to the invention , the charging current i is adjusted in order to efficiently charge the battery 10 . as shown in fig1 , the charging cycle comprises three distinct regions i , ii and iii . region i represents the high current period . region ii represents the regulation phase , and region iii represents the finishing charge . in region i , a high charging current i , typically & gt ; 1 c , is applied to the battery . in region i , the battery charge acceptance ability exceeds the charging current , and therefore , the rate of charge is determined by the average charging current i av . the high charging current i in region i results in high charge ( coulombic ) efficiency and is beneficial to long battery life . furthermore , during region i operation , the current i is limited by the charger 1 to a value which is safe for the battery electrode interconnections and internal wiring . therefore , not reversing the charging current i in accordance with the present invention has the effect of maintaining the average current at the optimal level throughout the high current period . regulation of the charging current in region ii prevents overcharging and potentially damaging the battery . during region ii , the rate of charge is determined by the battery charge acceptance which is dependent on the surface chemical reaction or mass transport through the diffusion boundary layer in the electrolyte . thus in region ii operation , the charging current ( i . e . average value ) is reduced in accordance with the battery charge acceptance curve . because the charging current is not reversed during the transition periods , the regulation of the current in region ii does not have the undesired effect of reducing the net surface chemical reaction rate and the net transport flux through the boundary layer . region iii comprises a finishing charge portion which entails applying a charging current i , typically in the range 0 . 05 c to 0 . 2 c . the purpose of the finishing charge is to equalize the charge in the cells of the battery and thereby prevent reversible capacity decay . due to the effect achieved by varying the current as described above , it is also possible to minimize or forego the finishing charge stage entirely without encountering reversible capacity decay . referring back to step 146 in fig5 the status indicator lca is checked and the charging current increment 8 is not adjusted if the calculated resistance free voltage v rf exceeds the set - point voltage sv ref . in step 148 , the status indicator lca is checked again to determine if the charging current i has reached its maximum value indicated by lca = 2 . if true , the charging current i is set to the maximum current value i max permissible for type of battery 10 being charged , and an &# 34 ; end of charge &# 34 ; condition is checked for the charging cycle in step 162 ( described below ). if the charging current i is not at its maximum value , then the charging current i is ramped up in step 152 . according to the invention , the effects to the resistance free voltage v rf and incremental voltages δv are taken into account when increasing the charging current i according to the ramping function . the function for ramping the charging current i is described with reference to fig8 and 9 . as shown in fig9 a change in the charging current i causes a corresponding change in the incremental voltage δv i which can be measured . there is also a change in voltage δv t which is not current dependent and as shown in fig9 . the incremental voltage δv t is determined by calculating three points , p1 , p2 , and p3 , over a period defined as dwell time d1 and then extrapolating . referring to fig8 the function starts at step 300 by ramping the charging current i ( fig9 ). in step 302 a decision is made based on the incremental voltage δv t . if the incremental voltage δv t is not greater than zero , then it is set to zero in step 304 . otherwise , the change in the voltage caused by the change in the charging current i is compared to the temperature compensated set - point voltage sv ref in step 306 . the voltage comprises the sum of the resistance free voltage v rf and the incremental voltages δv i and δv t . in step 306 , the value for the incremental voltage δv i includes a coefficient &# 34 ; n 1 &# 34 ; which has a value 1 . . . 4 . if the voltage sum in step 306 exceeds the set - point voltage sv ref , there is a potential overcharge condition , and the increment or step change in the charging current i is decreased as represented by incremental current δi 2 . as shown in step 308 , the incremental current δi 2 is a function of incremental current δi 1 and coefficient n 2 . the coefficient n 2 takes values in the range 1 to 10 . if the voltage sum in step 306 does not exceed the temperature compensated set - point voltage sv ref , then it is safe to increase the charging current i . in step 310 , the charging current i is increased in increments represented by δi 2 as a function of the change in current δi 1 multiplied by coefficient n 1 where n 1 takes a value 1 . . . 4 . at step 312 , control returns to step 154 shown in fig5 . referring to fig5 step 154 comprises a decision block where the ramped - up charging current i is compared to the allowable maximum current i max . if the charging current i is still less than the maximum i max , then the charging cycle continues . if the charging current i exceeds the maximum , then the status indicator is set to two in step 156 , and the charging cycle continues . in step 144 , if the resistance voltage v rf is approaching the set - point voltage sv ref , the status indicator lca is set to three in step 158 , and in step 160 , the charging current i is adjusted as a function of the resistance free voltage v rf . the charging current i is incrementally decreased to follow the battery charge acceptance curve , i . e . according to region ii operation in fig1 . according to the invention , the method for controlling the charging current in region ii include : ( 1 ) supplying an uninterrupted charging current i and controlling the magnitude of the current i on the basis of the calculated internal resistance ; ( 2 ) varying the magnitude of the charging current i on ; ( 3 ) varying the on and off times , i . e . the duty cycle , of the charging current i for the duration of region ii at a constant repetition rate ; ( 4 ) varying the on time of the charging current i while maintaining the off time constant ; the function for controlling the charging current i is shown in fig7 . referring to fig7 starting at step 400 , the resistance free voltage v rf is compared to the set - point voltage sv ref . if the resistance free voltage v rf exceeds the set - point sv ref , the current decrement i is set to zero in step 404 , and the function returns . otherwise , the current decrement i is increased by one in step 406 . in step 408 , the current decrement i is tested and if it is greater than 5 , a safety coefficient c is increased in step 410 . in step 412 , the incremental change to the charging current δi is calculated as a function of the current decrement and the safety coefficient c as shown . the parameters &# 34 ; a &# 34 ; and &# 34 ; b &# 34 ; are coefficients obtained from the parameter and are defined empirically according to the battery type . next in step 162 , the end of the charging cycle is checked . the end of charging cycle is determined by looking at one or more selected parameters . the parameters include the elapsed charge time τ , the value for the coulombic charge q , the value for charging current compared to the minimum charging current i min , and the rate of change in the battery voltage dv / dτ . for example , if the charging current being applied to the battery has tapered to the minimum value i min , then it is assumed that the battery has been charged , i . e . it cannot accept further charge . similarly in region iii , if the rate of change of battery voltage , i . e . dv / dτ , is essentially zero , then it is assumed that the battery is charged . on the basis of an end of charge condition in step 162 , a normal end of charge sequence is initiated in step 162 . if a finishing charge , i . e . region iii ( fig1 ), is being applied , then end of charge corresponds to termination of the finishing charge sequence . the end of charge sequence includes an orderly shut down of the programmable power supply 6 ( fig1 ), i . e . the charging current i , and other hardware devices , followed by displaying a notification message on the panel 4 . if the end of the cycle has not been reached , the charging process continues and the safety limits are checked in step 166 . the safety check in step 166 ensures that the charging cycle is still proceeding within the prescribed safety limits . the parameters checked in step 166 include the maximum allowable voltage v max , the minimum voltage v min , the maximum allowable battery temperature t max , the maximum allowable charging time τ max , the maximum allowable coulombic charge q max , the battery internal resistance r , and the battery pressure p . the maximum allowable values for these parameters depend on the electrochemical characteristics of the battery being charged , and may be conveniently stored in the parameter table . if one of the safety limits is exceeded in step 166 , a fault condition is entered in step 170 , and the charging cycle is terminated . the termination of the charging cycle is indicated on the display panel 4 . on the other hand , if the safety limits have not been exceeded , the charging cycle continues and the process control parameters and data are updated in step 168 . the control parameters and data control the magnitude and application ( i . e . variation ) of the charging current to the battery . the control parameters are then passed to the real time control module 128 in order to control the hardware devices , e . g . programmable power supply 6 . although the present invention is described with the charging current i being maintained at a positive and non - zero value , there are instances in which the charging current i may be turned off or reversed , i . e . brought negative . for example , if diagnostics are being performed to locate a bad cell , the current is reversed to bring the cells back to the open cell voltage , as part of the diagnostics operation . thus , while subtantially maintaining the charging current i at a non - zero value is a feature of the present invention , it will be appreciated that the charging current may occasionally be made negative . the present invention may be embodied other specific forms without departing from the spirit or essential characteristics thereof . therefore , the presently discussed embodiments are considered to be illustrative and not restrictive , the scope of the invention being indicated by the appended claims rather than the foregoing description , and all changes which come within the meaning and range of equivalency of the claims are therefore intended to be embraced therein .