System, method, and article of manufacture for determining an estimated battery cell module state

Information

  • Patent Grant
  • 7994755
  • Patent Number
    7,994,755
  • Date Filed
    Wednesday, January 30, 2008
    16 years ago
  • Date Issued
    Tuesday, August 9, 2011
    13 years ago
Abstract
A system, a method, and an article of manufacture for determining an estimated battery cell module state indicative of a state of a battery cell module of a battery pack are provided. The method includes measuring at least one of a battery cell module voltage, a battery cell module current, and a battery cell module temperature. The method further includes determining the estimated battery cell module state of the battery cell module at a predetermined time based on an estimated battery pack state and at least one of the battery cell module voltage, the battery cell module current, and the battery cell module temperature. The method further includes storing a vector corresponding to the estimated battery cell module state in a memory.
Description
BACKGROUND OF THE INVENTION

Batteries are used in a wide variety of electronic and electrical devices. It is desirable to be able to estimate the internal state of a battery, including a state-of-charge (SOC), a resistance, or a total capacity.


To estimate the states of battery cells in a battery pack, a rather complex algorithm has been executed for each battery cell in the battery pack to determine the individual state of each battery cell, without taking into account an estimated battery pack state. As a result, a relatively large amount of computational tasks must be performed to determine the states of the individual battery cells in the battery pack.


Accordingly, the inventor herein has recognized a need for an improved method for more efficiently determining an estimated battery cell module state.


BRIEF DESCRIPTION OF THE INVENTION

A method for determining an estimated battery cell module state indicative of a state of a battery cell module of a battery pack in accordance with an exemplary embodiment is provided. The method includes measuring at least one of a battery cell module voltage, a battery cell module current, and a battery cell module temperature. The method further includes determining the estimated battery cell module state of the battery cell module at a predetermined time based on an estimated battery pack state and at least one of the battery cell module voltage, the battery cell module current, and the battery cell module temperature. The method further includes storing a vector corresponding to the estimated battery cell module state in a memory.


A system for determining an estimated battery cell module state indicative of a state of a battery cell module of a battery pack in accordance with another exemplary embodiment is provided. The system includes a voltage sensor electrically coupled to the battery cell module. The voltage sensor is configured to generate a first signal indicative of a battery cell module voltage. The system further includes a current sensor electrically coupled to the battery cell module. The current sensor is configured to generate a second signal indicative of a battery cell module current. The system further includes a temperature sensor disposed proximate the battery cell module. The temperature sensor is configured to generate a third signal indicative of battery cell module temperature. The system further includes a computer configured to receive the first, second, and third signals. The computer is further configured to determine the estimated battery cell module state at the predetermined time based on an estimated battery pack state and at least one of the first, second, and third signals. The computer is further configured to store a vector corresponding to the estimated battery cell module state in a memory.


A computer readable medium having computer-executable instructions for performing a method for determining an estimated battery cell module state indicative of a state of a battery cell module of a battery pack in accordance with another exemplary embodiment is provided. The method includes determining the estimated battery cell module state of the battery cell module at a predetermined time based on an estimated battery pack state and at least one of a battery cell module voltage, a battery cell module current, and a battery cell module temperature. The method further includes storing a vector corresponding to the estimated battery cell module state in a memory.





BRIEF DESCRIPTION OF THE DRAWINGS


FIG. 1 is a schematic of a system for determining an estimated battery cell module state in accordance with an exemplary embodiment;



FIG. 2 is a block diagram of a battery pack computational algorithm utilized by the system of FIG. 1; and



FIG. 3 is a block diagram of a battery cell module computational algorithm utilized by the system of FIG. 1.





DETAILED DESCRIPTION OF THE INVENTION

The state of an electrochemical cell, referred to herein as a battery cell, used in a battery pack is defined as a set of values that may be used along with a mathematical description (called a “battery cell model”) of battery cell electrochemical properties to predict its input-output characteristics at some point of time. For example, given a battery state and a battery cell current, one could predict a battery cell voltage. Alternately, given a battery state and a battery cell voltage, one could predict a battery cell current.


Battery cell modules are built by electrically connecting together one or more battery cells. A wide variety of configurations are possible, but those that are most commonly used connect battery cells either in parallel, in series, or both. For simplicity of discussion, it will be assumed that battery cells are connected together in series, although those skilled in the art will recognize that the methodologies described herein are applicable for any battery cell module configuration. For a predetermined battery cell module configuration, a mathematical model of battery cell module input-output characteristics may be generated using a predetermined battery cell model.


Battery packs are built by electrically connecting together one or more battery cell modules. A wide variety of configurations are possible, but those that are most commonly used connect battery cell modules either in parallel, in series, or both. For simplicity of discussion, it will be assumed that battery cell modules are connected together in series, although those skilled in the art will recognize that the methodologies described herein are applicable for any battery pack configuration. For a predetermined battery pack configuration, a mathematical model of battery pack input-output characteristics may be generated using the predetermined cell model or battery cell module model.


For example, battery packs have electrical characteristics that are directly related to the battery cell characteristics. In series-connected battery packs, the overall battery-pack voltage is the sum of the individual battery cell voltages, and the battery pack current is equal to the individual battery cell currents. Therefore, it is reasonable to define a battery-pack state in a similar way to a battery cell state, and example values indicative of the state of a battery pack also include (but are not limited to): state-of-charge, polarization voltages, hysteresis voltages, battery pack resistance, battery pack total capacity, polarization time constants, hysteresis levels, and an efficiency factor. If these values are properly normalized, a battery pack state can be thought of as the average of all the corresponding cell states.


The system, method, and article of manufacture disclosed herein may be used to determine estimates of values indicative of states of a plurality of battery cell modules in a battery pack in an efficient manner. A single battery pack computational algorithm (BPCA) is employed to determine the state of the overall battery pack. Further, for each of a plurality of battery cell modules in the battery pack, a single battery cell module computational algorithm (BCMCA) is utilized to determine a state of each battery cell module. The BCMCAs can be made computationally much simpler than the BPCA, and do not need to operate as frequently, resulting in reduced overall computational tasks. If a battery pack comprises N battery cell modules, computation slightly higher than 1/N times the computational tasks required by other methods is possible.


Referring to FIG. 1, a system 10 for determining an estimated battery cell module state indicative of a state of a battery cell module 14 in accordance with an exemplary embodiment is illustrated. The battery pack 12 includes at least one battery cell module 14. The battery cell module 14 can include one or more battery cells. The system 10 includes a voltage sensor 20, a temperature sensor 21, a voltage sensor 22, a temperature sensor 23, a current sensor 24, a load circuit 26, and a computer 28.


The voltage sensor 20 is provided to generate a first output signal indicative of the voltage produced by the battery pack 12. The voltage sensor 20 is electrically coupled between the I/O interface 46 of the computer 28 and the battery pack 12. The voltage sensor 20 sends the first output signal to the computer 28.


The temperature sensor 22 is provided to generate a second output signal indicative of a temperature of the battery pack 12. The temperature sensor 22 is disposed proximate the battery pack 12 and is electrically coupled to the I/O interface 46 of the computer 28. The temperature sensor 22 sends the second output signal to the computer 28.


The voltage sensor 22 is provided to generate a third output signal indicative of a voltage produced by the battery cell module 14. The voltage sensor 22 is electrically coupled between the I/O interface 46 of the computer 28 and the battery cell module 14. The voltage sensor 22 sends the third output signal to the computer 28.


The temperature sensor 23 is provided to generate a fourth output signal indicative of a temperature of the battery cell module 14. The temperature sensor 23 is disposed proximate the battery cell module 14 and is electrically coupled to the I/O interface 46 of the computer 28. The temperature sensor 23 sends the fourth output signal to the computer 28.


The current sensor 24 is provided to generate a fifth output signal indicative of a current sourced or sunk by the battery cell module 14 and of the battery pack 12. The current sensor 24 is electrically coupled between the battery pack 12 and the load circuit 26. The current sensor 24 is further electrically coupled to the I/O interface 46 of the computer 28. The current sensor 24 sends the third output signal to the computer 28.


The load circuit 26 is electrically coupled to the current sensor 24 and sinks or sources a current from the battery pack 12. The load circuit 26 comprises any electrical device that can be electrically coupled to the battery pack 12.


The computer 28 is provided for determining an estimated battery cell module state indicative of a state of the battery cell module 14 of the battery pack 12, as will be explained in greater detail below. The computer 28 includes a central processing unit (CPU) 40, a read-only memory (ROM) 44, a volatile memory such as a random access memory (RAM) 45 and an input/output (I/O) interface 46. The CPU 40 operably communicates with the ROM 44, the RAM 45, and the I/O interface 46. The CPU 40 includes a clock 42. The computer readable media including ROM 44 and RAM 46 may be implemented using any of a number of memory devices such as PROMs, EPROMs, EEPROMS, flash memory or any other electric, magnetic, optical or combination memory device capable of storing data, some of which represent executable instructions used by the CPU 40.


Referring to FIG. 2, a general overview of a BPCA 60 will be provided. In particular, the BPCA 60 is utilized by the computer 28 for determining the estimated battery cell module state of the battery cell module 14. The BPCA 60 outputs an estimated battery pack state, using a measured battery pack voltage, a battery pack current, and a battery pack temperature.


The system 10 utilizes one BPCA 60 to estimate as accurately as desired the overall battery pack state, comprising for example battery pack state-of-charge, polarization voltages, hysteresis voltages, battery pack resistance, battery pack total capacity, polarization time constants, hysteresis levels, and an efficiency factor. It further incorporates a plurality of BCMCAs: one BCMCA per battery cell module for which a battery cell module state estimate is desired. The input to each BCMCA is the estimated battery pack state produced by the BPCA 60, as well as at least one of a battery cell module voltage, a battery cell module current, and a battery cell module temperature. The output from each BCMCA is an estimate of a desired value indicative of battery cell module state.


In an exemplary embodiment, the BPCA 60 estimates the following quantities indicative of the state of the battery pack 12: (i) an average battery pack state-of-charge, (ii) an average battery pack cell resistance, and (iii) an average battery pack cell inverse total capacity. In an alternative embodiment, the BPCA 60 can additionally estimate the following quantities indicative of the state of the battery pack 12: (i) two average battery pack polarization voltages, (ii) an average battery pack polarization-voltage time constant, and (iii) an average battery pack polarization voltage mixing constant, (iv) an average battery pack hysteresis voltage, and (v) a current sensor bias value.


In the exemplary embodiment, the BPCA 60 utilizes a linear Kalman filter or a nonlinear Kalman filter to estimate these quantities. An example of an extended Kalman filter that can be utilized herein, is described in U.S. Pat. No. 6,534,954, which is incorporated by reference herein in its entirety. In order to design a Kalman filter to estimate these quantities, a mathematical model of their dynamics is utilized, which is written in a “state space” form. One vector equation (i.e., state equation) is utilized to describe how the state is affected by the input, and a second equation (i.e., output equation) is utilized to describe how the output is computed from the state. In the exemplary embodiment, the inputs include a battery pack current and a battery pack temperature, for example. Outputs include a battery pack voltage, for example.


The vector state equation for the BPCA 60 is determined by combining equations for each of the individual states. The battery pack average SOC is derived as follows. First the SOC dynamics for a given cell (i) is described utilizing the following equation (1):











z
k

(
i
)


=



z

k
-
1


(
i
)


-


(


i
k

-

i
k
b


)


Δ





t


1

C
k

(
i
)





=


z

k
-
1


(
i
)


-


(


i
k

-

i
k
b


)


Δ





t






C

inv
,
k


(
i
)






,




(
1
)








where zk(i) denotes the SOC of cell i at time index k, ik denotes the measurement of battery-pack current at time index k, ikb denotes the bias in the battery-pack current sensor, Δt denotes the sampling period, and Cinv,k(i) denotes the inverse of cell total capacity for cell i: Cinv,k(i)=1/Ck(i).


To determine the battery pack average SOC dynamics, the N copies of equation (1) are added together—one for each cell—and then divided by N to obtain the following equation (2):











1
N






i
=
1

N



z
k

(
i
)




=



1
N






i
=
1

N



z

k
-
1


(
i
)




-


(


i
k

-

i
k
b


)


Δ





t


1
N






i
=
1

N




C

inv
,
k


(
i
)


.








(
2
)








The equation (2) can be expressed as equation (3):

zk= zk−1−(ik−ikbt Cinv,k,  (3)

where zk is the battery pack average SOC at time index k, and Cinv,k denotes the battery pack average cell inverse capacity.


Similarly, the battery pack average polarization voltage dynamics is defined utilizing the following equation:

fk=Affk−1+Bf(ik−ikb),

where fk are the average polarization voltages at time index k, Af is a constant matrix containing polarization time constants αk, and Bf is a constant predetermined input matrix.


The battery pack average hysteresis dynamics is defined utilizing the following equation:

hk=exp(−|(ik−ikb)γΔt Cinv,k|)hk−1+(1−exp(−|(ik−ikb)γΔt Cinv,k|))sgn(ik−ikb),

where hk is the relative hysteresis level at time index k, and γ is a hysteresis rate constant.


The remaining values indicative of the state of the battery pack 40 are relatively slowly changing, and are modeled as constants which can be modified by a noise process:

αkk−1+nkα
Rk= Rk−1+nkR
Cinv,k= Cinv,k−1+nkCinv
Gk=Gk−1+nkG
ikb=ik−1b+nkib

where αk is a polarization time constant, Cinv,k is the battery pack average cell inverse capacity, Rk is the battery pack average cell resistance, and Gk is a polarization-voltage blending constant, and the variables denoted as nk with some superscript denote the modeled noises.


The foregoing state equations may be combined to make a single vector state equation (4) for the BPCA 60:

zk= zk−1−(ik−ikbt Cinv,k
fk=Affk−1+Bf(ik−ikb),
hk=exp(−|(ik−ikb)γΔt Cinv,k|)hk−1+(1−exp(−|(ik−ikb)γΔt Cinv,k|))sgn(ik−ikb),
αkk−1+nkα
Rk= Rk−1+nkR
Cinv,k= Cinv,k−1+nkCinv
Gk=Gk−1+nkG
ikb=ik−1b+nkib  (4)

or, xk=f(xk−1,uk−1,wk−1) where xk=[ zk, fkT, hkkT, RkT, Cinv,k,GkT,ikb]T, uk−1=ik−1,wk−1 is a random vector defining the noise processes, and f( ) is a vector function comprising all of the individual elements in equation (4).


The output equation for the BPCA 60 is defined utilizing the following equation (5):

yk=OCV(zk)+GkfkRk(ik−ikb)+M hk+vk,  (5)

where yk is the battery pack voltage, OCV( ) is the cell's open-circuit-voltage as a function of SOC, M is the maximum hysteresis level, and vk represents voltage-sensor measurement noise. The equation (5) can be represented in the more general form yk=h(xk,uk,vk) where, in this representation yk= yk is the output of the cell, xk is the state of the cell (as defined above), uk=ik, and vk is a random vector defining the noise.


Those skilled in the art of Kalman filter design can utilize equation (4) and equation (5) to develop the BPCA 60 that continuously outputs a battery state estimate for use by the BCMCA 70. The exemplary embodiment for the BPCA 60 is a sigma-point Kalman filter, listed in Table 1, with parameters y=√{square root over (3)}, α0(m)0(c)=1−L/3 and αk(m)k(c)=⅙, where L is the length of xkα. Further, in alternative embodiments, these equations can be modified to account for other input variables, such as battery pack temperature. Further, in an alternative embodiment, another form of BPCA could be utilized instead of a Kalman filter.


An overview of the method for estimating a battery cell module state will now be described. Initially, the system 10 measures a battery cell module voltage, a battery cell module current, and a battery cell module temperature. The computer 28 determines the estimated battery cell module state of the battery cell module at a predetermined time based on an estimated battery pack state and at least one of the battery cell module voltage, the battery cell module current, and the battery cell module temperature. Further, the computer 28 stores a vector corresponding to the estimated battery cell module state in the memory 45.


Referring to FIG. 3, a general overview of the battery cell module computational algorithm (BCMCA) 70 will be provided. The method described herein utilizes one BPCA 60 and a plurality of BCMCA 70 to produce desired estimates of battery cell module states. The inventor herein has recognized that it is not necessary to estimate all of the possible values indicative of a state of a battery cell module for all battery cell modules in the battery pack 12. For example, it may be desirable to only estimate the state-of-charge of some of the battery cell modules, or the resistance value of some of the battery cell modules, or the capacity value of some of the battery cell modules. Further, the BCMCA 70 is defined in a way that the quantities that it estimates directly change relatively slowly and so the BCMCA 70 does not need to be executed as frequently as the BPCA 60 in order to maintain accurate estimates.


In an exemplary embodiment, the BCMCA 70 receives as an input an estimated battery pack state, a battery cell module voltage, a battery cell module current, and a battery cell module temperature. The BCMCA 70 produces as an output an estimate of battery cell module SOC, battery cell module resistance, and battery cell module capacity.


The BCMCA 70 uses a two-step process to compute an estimated battery cell module state. It first estimates a difference between the battery pack state and the cell module state. Secondly, it adds the estimated battery pack state to this difference to compute an estimated battery cell module state. The quantities estimated in the first step (the difference between the battery pack state and the cell module state) change relatively slowly in a battery pack. Therefore, the BCMCA 70 does not need to be executed as frequently as a BPCA 60 and therefore requires fewer computations.


In an exemplary embodiment, the first step performed by the BCMCA 70 estimates a difference between a SOC of a battery cell module and the average battery pack SOC, the difference between the inverse total capacity of the battery cell module and the battery pack inverse total capacity, and the difference between the resistance of the battery cell module and the average battery pack resistance. Then, the BCMCA 70 computes the estimated battery cell module state by adding these difference values to the estimated battery pack state. That is, it computes the estimated battery cell module SOC by adding the battery pack average SOC to the estimate of the difference between the battery pack average SOC and the battery cell module SOC. It computes the estimated battery cell module resistance by adding the battery pack average resistance to the estimate of the difference between the battery pack average resistance and the battery cell module resistance. It computes the estimated battery cell module capacity inverse by adding the battery pack average capacity inverse to the estimate of the difference between the battery pack capacity inverse and the battery cell module capacity inverse: it then computes the estimated battery cell module capacity as one divided by the estimated battery cell module capacity inverse.


In an exemplary embodiment, each BCMCA 70 utilizes a linear Kalman filter or a nonlinear Kalman filter for each quantity that will be estimated. Therefore, a state equation and an output equation for each quantity that will be estimated is initially determined. The state equation and the output equation for the BCMCA 70 will be described in subsections, below. It should be noted that the term “Delta” is used to indicate the difference between a battery cell module state value and a corresponding average battery pack state value. For example, “Delta-SOC” indicates a difference between a battery cell module SOC state and a battery-pack SOC state. In the notation that follows, the Greek letter Delta (Δ) is used to indicate a Delta quantity. Further, the notation uses a bar (−) over a quantity to indicate that it corresponds to an average battery pack quantity. For example, z indicates average battery pack SOC.)


In an exemplary embodiment, each BCMCA 70 will estimate battery cell module SOC, battery cell module resistance, and battery cell-module capacity. Therefore, state equations and output equations are utilized for these three quantities in order to design a Kalman filter to estimate the quantities. Exemplary equations for these three quantities are described in the following paragraphs.


In order to estimate battery cell module SOC, we first define a difference between the SOC of battery cell module 40 and the average battery pack SOC as equation (6):

Δzk(i)=zk(i)zk,  (6)

where Δzk(i) is the difference between the SOC for battery cell module i and the average battery pack SOC. Then, equation (3) may be subtracted from equation (1), using the definition of equation (4) to determine the equation (7) describing the dynamics of Δzk(i):













Δ






z
k

(
i
)



=


z

k
-
1


(
i
)


-


i
k


Δ





t






C

inv
,
k


(
i
)



-


z
_


k
-
1


+


i
k


Δ





t



C
_


inv
,
k










=


Δ






z

k
-
1


(
i
)



-


i
k


Δ





t





Δ






C

inv
,
k


(
i
)











(
7
)








where ΔCinv,k(i)=Cinv,k(i)−Ĉinv,k. Because ΔCinv,k(i) tends to be small, the state Δzk(i) does not change very quickly, and can be updated at a slower rate than the battery pack average SOC, saving computation.


An output equation (8) that can be used with the Delta-SOC computation is:

yk(i)=OCV(zk+Δzk(i))+Gkfk−(Rk+ΔRk(i))(ik−ikb)+M hk+ek.  (8)

To estimate Δzk(i), a linear or nonlinear Kalman filter may be used with equation (7) as the state equation, and equation (8) as the output equation. Since BCMCA 70 utilizes a single-state Kalman filter, it performs the foregoing computations relatively quickly. The exemplary embodiment for the BCMCA 70 is a sigma-point Kalman filter, listed in Table 1, where the state of the filter is xk=Δzk(i) and the output of the filter is yk=yk(i), γ=√{square root over (3)}, α0(m)0(c)=⅔ and αk(m)k(c)=⅙, where L is the length of xk.


In order to estimate a battery cell module resistance, we first define a difference between the resistance of cell module 40 and the average battery pack resistance as ΔRk(i)=Rk(i)Rk. We then define a model of cell resistance utilizing the following two coupled equations:

ΔRk+1(i)=ΔRk(i)+rk
yk=OCV(zk+Δzk(i))−(Rk+ΔRk(i))ik+ek

where ΔRk(i) is the difference between battery pack average resistance and battery cell module resistance and is modeled as a constant value with a noise process rk allowing adaptation, yk is a crude estimate of the battery cell module's voltage, ik is the battery cell module current, and ek models estimation error. In a Delta-R KF, the model's prediction of yk and the measured value of yk are utilized by the KF to adapt ΔRk(i). It should be noted that in an alternative embodiment, different values of resistance and for charge and discharge may be easily incorporated, and more precise output equations such as equation (8) can be used. The exemplary embodiment for this aspect of the BCMCA is an extended Kalman filter, listed in Table 2, where the state of the filter is xk=ΔRk(i) and the output of the filter is yk as given above.


In order to estimate a battery cell module capacity, we first define a difference between the capacity inverse of cell module 40 and the average battery pack capacity inverse as ΔCinv,k(i)=Cinv,k(i)Cinv,k We then define a model of cell capacity inverse utilizing the following two coupled equations:

ΔCinv,k+1(i)=ΔCinv,k(i)+rk
dk=zk(i)−zk−1(i)iik−1Δt(Cinv,k+1+ΔCinv,k−1(i))+ek

The second of these two equations is a reformulation of the SOC state equation such that the expected value of dk is equal to zero by construction. Again, a Kalman Filter is constructed using the model defined by these two equations to produce a capacity estimate. As the Kalman Filter operates, the computation for dk in the second equation is utilized by the KF to update the capacity inverse estimate. The exemplary embodiment for this aspect of the BCMCA is an extended Kalman filter, listed in Table 2, where the state of the filter is xk=ΔCinv,k(i) and the output of the filter is yk=dk as given above.


The output of a BCMCA is computed by combining the average battery pack state with the battery cell module Delta states produced by the individual Kalman filters operating within the BCMCA:

zk(i)= zk+Δzk(i)
Rk(i)= Rk+ΔRk(i)







C
k

(
i
)


=

1



C
_


inv
,
k


+

Δ






C

inv
,
k


(
i
)










It should be noted that one desirable feature of the BCMCA has been defined by the foregoing equations. Although the battery pack state may change rapidly, the difference between any battery cell module state and the battery pack average state changes very slowly. With this understanding, it is apparent that the BPCA needs to be executed frequently, but the BCMCA internal filters need be executed much less frequently. To illustrate, if a pack comprises N battery cell modules in series, other techniques to estimate battery pack state require ongoing computation proportional to N every time step. The system 10 disclosed herein, however, only utilizes a single BPCA and NBCMCAs which are both computationally much simpler than the BPCA and also need to execute less frequently than the BPCA. Therefore, the computational tasks implemented by the system 10 can approach 1/N times the computational tasks utilized by other methods and still produce accurate estimates of the desired battery cell module states.


The system, the method, and the article of manufacture for determining an estimated battery cell module state provide a substantial advantage over other systems and methods. In particular, the system, method, and article of manufacture provide a technical effect of accurately determining an estimated battery cell module state.


The above-described methods can be embodied in the form of computer program code containing instructions embodied in tangible media, such as floppy diskettes, CD ROMs, hard drives, or any other computer-readable storage medium, wherein, when the computer program code is loaded into and executed by a computer, the computer becomes an apparatus for practicing the invention. The above-described methods can also be embodied in the form of computer program code, for example, whether stored in a storage medium, loaded into and/or executed by a computer, or transmitted over some transmission medium, loaded into and/or executed by a computer, or transmitted over some transmission medium, such as over electrical wiring or cabling, through fiber optics, or via electromagnetic radiation, wherein, when the computer program code is loaded into an executed by a computer, the computer becomes an apparatus for practicing the methods. When implemented on a general-purpose microprocessor, the computer program code segments configure the microprocessor to create specific logic circuits.


While the invention is described with reference to the exemplary embodiments, it will be understood by those skilled in the art that various changes may be made and equivalent elements may be substituted for elements thereof without departing from the scope of the invention. In addition, many modifications may be made to the teachings of the invention to adapt to a particular situation without departing from the scope thereof. Therefore, it is intended that the invention not be limited the embodiments disclosed herein, but that the invention includes all embodiments falling with the scope of the appended claims. Moreover, the use of the terms first, second, etc. does not denote any order of importance, but rather the terms first, second, etc. are used to distinguish one element from another.









TABLE I





NONLINEAR SIGMA-POINT KALMAN FILTER.















State-space model:


xk = f(xk−1, uk−1, wk−1)


yk = h(xk, uk, vk),


where xk is a state equation and yk is an output equation, wk and vk are independent,


zero-mean, Gaussian noise processes of covariance matrices Σw and Σv, respectively.


Definitions:


xka = [xkT, wkT, vkT]T, Xka = [(Xkx)T, (Xkw)T, (Xkv)T]T, p = 2 × dim(xka).


Initialization. For k = 0, set





















x
^

0
+

=



E


[

x
0

]












x
~

,
0

+



=



E


[


(


x
0

-


x
^

0
+


)




(


x
0

-


x
^

0
+


)

T


]






















x
^

0

a
,
+


=



E


[

x
0
a

]












x
~

,
0


a
,
+








=



E


[


(


x
0
a

-


x
^

0

a
,
+



)




(


x
0
a

-


x
^

0

a
,
+



)

T


]









=



diag







(






x
~

,
0


+







,



w







,


v









)

.
















Computation: For k = 1, 2, . . . , compute:






State estimate time update:





X

k
-
1


a
,
+


=


{



x
^


k
-
1


a
,
+


,



x
^


k
-
1


a
,
+


+

γ







x
~

,

k
-
1



a
,
+










,



x
^


k
-
1


a
,
+


-

γ







x
~

,

k
-
1



a
,
+











}

.











Xk,ix,− = f(Xk−1,ix,+, uk−1, Xk−1,iw,+).












x
^

k
-

=




i
=
0

p








α
i

(
m
)





X

k
,
i


x
,
-


.












Error covariance time update:








x
~

,
k

-



=




i
=
0

p









α
i

(
c
)




(


X

k
,
i


x
,
-


-


x
^

k
-


)






(


X

k
,
i


x
,
-


-


x
^

k
-


)

T

.













Output estimate:
Yk,i = h(Xk,ix,−, uk, Xk−1,iv,+).












y
^

k

=




i
=
0

p








α
i

(
m
)





Y

k
,
i


.












Estimator gain matrix








y
~

,
k




=




i
=
0

p









α
i

(
c
)




(


Y

k
,
i


-


y
^

k


)






(


Y

k
,
i


-


y
^

k


)

T

.























x
~



y
~


,
k

-



=




i
=
0

p









α
i

(
c
)




(


X

k
,
i


x
,
-


-


x
^

k
-


)






(


Y

k
,
i


-


y
^

k


)

T

.



















L
k

=






x
~



y
~


,
k

-







y
~

,
k


-
1






.











State estimate measurement update:
{circumflex over (x)}k+ = {circumflex over (x)}k + Lk[yk − ŷk].





Error covariance meas. update:








x
~

,
k

+



=





x
~

,
k

-




-

L
k








y
~

,
k









L
k
T

.



















In Table I, the following variables, symbols, and notation are used (in addition to those defined elsewhere):
    • Superscript “+”: Indicative of an estimated quantity at time index k, using all measured data available at or before time index k.
    • Superscript “−”: Indicative of a predicted quantity at time index k, using all measured data available at or before time index k−1.
    • Superscript “a”: Indicative of an augmented state of the dynamic system at time index k, where the augmented state comprises system state xk, state noise wk, and sensor noise vk.
    • Subscript “i” on a sigma-point set: Indicative of the ith member of that set.
    • Xka: Set of sigma points of augmented state at time index k, capturing mean and covariance of augmented state.
    • Xkx: Set of sigma points of state at time index k, capturing mean and covariance of state.
    • Xkw: Set of sigma points of process noise at time index k, capturing mean and covariance of process noise.
    • Xkv: Set of sigma points of sensor noise at time index k, capturing mean and covariance of sensor noise.
    • Yk: Set of sigma points of predicted output value at time index k, capturing mean and covariance of predicted output, used internally by algorithm.
    • E[ ]: Function returning statistical expected value of its argument.
    • √{square root over ( )}: Matrix square root, computed using a Cholesky decomposition.
    • {circumflex over (x)}k+: State estimate at time index k: an output of the algorithm (e.g., vector of estimated battery cell module state).
    • {circumflex over (x)}ka,+: Estimate of augmented state at time index k.










x
~

,
k

+











    •  : Error covariance of state estimate at time index k.












x
~

,
k


a
,
+







    •  : Error covariance of augmented state estimate at time index k.

    • {circumflex over (x)}k: A-priori predicted value of state at time index k.












x
~

,
k

-






    •  : Error covariance of state prediction time index k.

    • ŷk: Predicted value of output at time index k.

    • yk: Measured value of output at time index k.












y
~

,
k







    •  : Error covariance of output prediction at time index k.













x
~



y
~


,
k

-






    •  : Error cross-covariance between state and output prediction at time index k.

    • Lk: Estimator gain matrix at time index k.

    • γ: Algorithm parameter (set to √{square root over (3)} in exemplary embodiment).

    • αi(m): Set of weighting factors used when computing mean state and mean output estimates and predictions.

    • αi(c): Set of weighting factors used when computing the error covariance of state and output estimates and predictions.












TABLE II





NONLINEAR EXTENDED KALMAN FILTER.















State-space model:


xk = f(xk−1, uk−1, wk−1)


yk = h(xk, uk, vk),


where xk is a state equation and yk is an output equation, wk and vk are independent


Gaussian noise processes with means wk and vk, respectively, and covariance


matrices Σw and Σv, respectively.


Definitions:














A
^

k

=





f


(


x
k

,

u
k

,

w
k

,
k

)






x
k








x
k

=


x
^

k
+










B
^

k

=





f


(


x
k

,

u
k

,

w
k

,
k

)






w
k








w
k

=


w
_

k

























C
^

k

=





h


(


x
k

,

u
k

,

v
k

,
k

)






x
k








x
k

=


x
^

k
-










D
^

k

=





h


(


x
k

,

u
k

,

v
k

,
k

)






v
k








v
k

=


v
_

k
















Initialization: For k = 0, set


{circumflex over (x)}0+ = E[x0]













x
~

,
0

+



=




E


[


(


x
0

-


x
^

0
+


)




(


x
0

-


x
^

0
+


)

T


]


.

















Computation: For k = 1, 2, . . . , compute:






State estimate time update:
{circumflex over (x)}k = f({circumflex over (x)}k−1+, uk−1, wk−1).





Error covariance time update:








x
~

,
k

-







=




A
^


k
-
1








x
~

,

k
-
1


+








A
^


k
-
1

T



+



B
^


k
-
1






w









B
^


k
-
1

T

.














Output estimate:
ŷk = h({circumflex over (x)}k, uk, vk).





Estimator gain matrix





L
k

=






x
~

,
k


-











C
^

k
T



[




C
^

k








x
~

,
k


-








C
^

k
T



+



D
^

k





v








D
^

k
T




]



-
1


.











State estimate measurement update:
{circumflex over (x)}k+ = {circumflex over (x)}k + Lk[yk − ŷk].





Error covariance measurement update:








x
~

,
k

+







=


(

I
-


L
k




C
^

k



)







x
~

,
k

-





.
















In Table II, the following variables, symbols, and notation are used (in addition to those defined elsewhere):

    • Superscript “+”: Indicative of an estimated quantity at time index k, using all measured data available at or before time index k.
    • Superscript “−”: Indicative of a predicted quantity at time index k, using all measured data available at or before time index k−1.
    • Âk,{circumflex over (B)}kk,{circumflex over (D)}k: Matrices indicative of a linearization of the functions f( ) and h( ) at time index k.
    • E[ ]: Function returning statistical expected value of its argument.
    • {circumflex over (x)}k+: State estimate at time index k: an output of the algorithm (e.g., vector of estimated battery cell module state).









x
~

,
k

+






    •  : Error covariance of state estimate at time index k: an output of the algorithm.

    • {circumflex over (x)}k: A-priori predicted value of state at time index k.












x
~

,
k

-






    •  : Error covariance of state predication at time index k.

    • ŷk: Predicted value of output at time index k.

    • Lk: Estimator gain matrix at time index k.




Claims
  • 1. A method for determining an estimated battery cell module state of a first battery cell module of a battery pack, comprising: measuring at least one of a battery cell module voltage utilizing a voltage sensor, a battery cell module current utilizing a current sensor, and a battery cell module temperature utilizing a temperature sensor, the battery cell module voltage and the battery cell module current and the battery cell module temperature being associated with the first battery cell module of a plurality of battery cell modules in the battery pack;determining the estimated battery cell module state of the first battery cell module at a predetermined time based on an estimated battery pack state associated with the battery pack having the plurality of battery cell modules, and at least one of the battery cell module voltage, the battery cell module current, and the battery cell module temperature, utilizing a computer; andstoring a vector corresponding to the estimated battery cell module state in a memory of the computer;wherein determining the estimated battery cell module state includes determining difference value representing a difference between the estimated battery cell module state and the estimated battery pack state based on at least one of the battery cell module voltage, the battery cell module current, and the battery cell module temperature, utilizing the computer, and determining the estimated battery cell module state by adding the estimated battery pack state to the difference value utilizing the computer;wherein determining the difference value representing the difference between the estimated battery cell module state and the estimated battery pack state is performed using one of a linear Kalman filter and a nonlinear Kalman filter;wherein determining the difference value representing the difference between the battery cell module state and the estimated battery pack state is performed less frequently than determining the estimated pack state;wherein the first battery cell module comprises a plurality of electrochemical cells.
  • 2. The method of claim 1, wherein the estimated battery pack state is determined using one of a linear Kalman filter and a nonlinear Kalman filter.
  • 3. A method for determining an estimated battery cell module state of a first battery cell module of a battery pack, comprising: measuring at least one of a battery cell module voltage utilizing a voltage sensor, a battery cell module current utilizing a current sensor, and a battery cell module temperature utilizing a temperature sensor, the battery cell module voltage and the battery cell module current and the battery cell module temperature being associated with the first battery cell module of a plurality of battery cell modules in the battery pack;determining a difference value representing a difference between the estimated battery cell module state and the estimated battery pack state based on at least one of the battery cell module voltage, the battery cell module current, and the battery cell module temperature, utilizing a computer, wherein determining the difference value is performed less frequently than determining the estimated battery pack state;determining the estimated battery cell module state by adding the estimated battery pack state to the difference value, utilizing the computer; andstoring a vector corresponding to the estimated battery cell module state in a memory of the computer.
  • 4. The method of claim 3, where determining the difference value representing the difference between the estimated battery cell module state and the estimated battery pack state is performed using one of a linear Kalman filter and a nonlinear Kalman filter.
  • 5. The method of claim 3, wherein the estimated battery pack state is determined using one of a linear Kalman filter and a nonlinear Kalman filter.
  • 6. A method for determining an estimated battery cell module state of charge of a first battery cell module of a battery pack, comprising: measuring at least one of a battery cell module voltage utilizing a voltage sensor, a battery cell module current utilizing a current sensor, and a battery cell module temperature utilizing a temperature sensor, the battery cell module voltage and the battery cell module current and the battery cell module temperature being associated with the first battery cell module of a plurality of battery cell modules in the battery pack;determining the estimated battery cell module state of charge of the first battery cell module at a predetermined time based on an estimated battery pack average state of charge associated with the battery pack, and at least one of the battery cell module voltage, the battery cell module current, and the battery cell module temperature, utilizing a computer; andstoring a vector corresponding to the estimated battery cell module state of charge in a memory of the computer.
US Referenced Citations (70)
Number Name Date Kind
4390841 Martin et al. Jun 1983 A
5606242 Hull et al. Feb 1997 A
5652502 van Phuoc et al. Jul 1997 A
5658682 Usuda et al. Aug 1997 A
5773955 Hall Jun 1998 A
5796239 van Phuoc et al. Aug 1998 A
5825155 Ito et al. Oct 1998 A
5982403 Inagaki Nov 1999 A
6016047 Notten et al. Jan 2000 A
6353815 Vilim et al. Mar 2002 B1
6441586 Tate et al. Aug 2002 B1
6515454 Schoch Feb 2003 B2
6534954 Plett Mar 2003 B1
6563318 Kawakami et al. May 2003 B2
6724172 Koo Apr 2004 B2
6803766 Kobayashi et al. Oct 2004 B2
6829562 Sarfert Dec 2004 B2
6832171 Barsoukov et al. Dec 2004 B2
6876175 Schoch Apr 2005 B2
6892148 Barsoukov et al. May 2005 B2
6903534 Minamiura Jun 2005 B2
6927554 Tate, Jr. et al. Aug 2005 B2
6943528 Schoch Sep 2005 B2
6967466 Koch Nov 2005 B2
7012434 Koch Mar 2006 B2
7039534 Ryno et al. May 2006 B1
7061246 Dougherty et al. Jun 2006 B2
7072871 Tinnemeyer Jul 2006 B1
7098665 Laig-Hoerstebrock Aug 2006 B2
7106026 Moore Sep 2006 B2
7109685 Tate, Jr. et al. Sep 2006 B2
7126312 Moore Oct 2006 B2
7197487 Hansen et al. Mar 2007 B2
7199557 Anbuky et al. Apr 2007 B2
7253587 Meissner Aug 2007 B2
7315789 Plett Jan 2008 B2
7321220 Plett Jan 2008 B2
7327147 Koch Feb 2008 B2
7456612 Murakami Nov 2008 B2
7728599 Tae et al. Jun 2010 B2
20010035739 Laig-Horstebrock et al. Nov 2001 A1
20020130637 Schoch Sep 2002 A1
20020169581 Sarfert Nov 2002 A1
20020171429 Ochiai et al. Nov 2002 A1
20030052690 Schoch Mar 2003 A1
20030184307 Kozlowski et al. Oct 2003 A1
20040000892 Jae-Seung Jan 2004 A1
20040032264 Schoch Feb 2004 A1
20040189248 Boskovitch et al. Sep 2004 A1
20040189257 Dougherty et al. Sep 2004 A1
20050001627 Anbuky et al. Jan 2005 A1
20050035742 Koo et al. Feb 2005 A1
20050046388 Tate, Jr. et al. Mar 2005 A1
20050057255 Tate et al. Mar 2005 A1
20050083014 Baumgartner Apr 2005 A1
20050100786 Ryu et al. May 2005 A1
20050127874 Lim et al. Jun 2005 A1
20050194936 Cho Sep 2005 A1
20060097698 Plett May 2006 A1
20060100833 Plett May 2006 A1
20060111854 Plett May 2006 A1
20060111870 Plett May 2006 A1
20070035307 Schoch Feb 2007 A1
20070046292 Plett Mar 2007 A1
20070103120 Plett May 2007 A1
20070120533 Plett May 2007 A1
20070170889 Ishikawa et al. Jul 2007 A1
20070188143 Plett Aug 2007 A1
20070236182 Plett Oct 2007 A1
20080094035 Plett Apr 2008 A1
Related Publications (1)
Number Date Country
20090189613 A1 Jul 2009 US