T. O. Ting 1 and Ka Lok Man 2, 3 and Eng Gee Lim 1 and Mark Leach 1
Academic Editor:Su Fong Chien
1, Department of Electrical and Electronic Engineering, Xi'an Jiaotong-Liverpool University, No. 111, Ren'ai Road, HET, SIP, Suzhou, Jiangsu 215123, China
2, Department of Computer Science and Software Engineering, Xi'an Jiaotong-Liverpool University, No. 111, Ren'ai Road, HET, SIP, Suzhou, Jiangsu 215123, China
3, Department of Computer Science, Yonsei University, 50 Yonsei-ro, Seodaemun-gu, Seoul 120-749, Republic of Korea
Received 22 April 2014; Revised 3 June 2014; Accepted 4 June 2014; 5 August 2014
This is an open access article distributed under the Creative Commons Attribution License, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.
1. Introduction
Battery Management System (BMS) [1-3] comprises of mechanism that monitors and controls the normal operation of a battery system so as to ensure its safety while maintaining its State-of-Health (SoH). The BMS, in essence, measures the voltage, current, and temperature of each cell in a battery pack. These data are then analyzed by a management system that guarantees safe and reliable operations. A common example of an independent battery pack is portrayed in Figure 1. The battery is an essential component and should be accurately modeled in order to design an efficient management system [4]. Hence, a generic tool to describe the battery performance under a wide variety of conditions and applications is highly desirable [4]. As such, electrical modeling is necessary to provide such a tool that enables visualization of the processes occurring inside rechargeable batteries. These generic models are necessary for the development of battery management algorithms. These algorithms control the operation and maintain the performance of battery packs. In short, the ultimate aim of BMS is to prolong battery life, while ensuring reliable operation alongside many applications, especially in photovoltaic systems [5-7].
Figure 1: Typical Lithium-ion battery packs for electric vehicle.
[figure omitted; refer to PDF]
Battery modeling is performed in many ways depending on the types of battery. In general, the resulting battery model is a mathematical model comprising numerous mathematical descriptions [8]. Ultimately, battery models aim to determine the state-of-charge (SoC) of the battery system. However, the complexity of the nonlinear electrochemical processes has been a great barrier to modeling this dynamic process accurately. The accurate determination of the SoC will enable utilization of the battery for optimal performance and long-life and prevent irreversible physical damage to the battery [9]. The solution to the SoC via neural networks [10] and fuzzy logic [11] has been difficult and costly for online implementation due to the large computation required, causing the battery pack controller to be heavily loaded. This may however be a good alternative in the near future as the computational power of processing chips increase alongside their declining cost.
The state-estimation process usually leads to some state variables in a dynamical system. The SoC is a measure of a battery's available power and thus it is important to calculate this value accurately from BMS by the cell voltage, temperature, and polarization effect caused by the electrolyte concentration gradient during high rate charging/discharging cycle [12]. Recently, the battery state-of-charge (SoC) is one of the significant elements attracting significant attention [13, 14]. By definition, SoC is the ratio of remaining capacity to the nominal capacity of the battery. Here, the remaining capacity is the number of ampere-hours (Ah) that can be extracted at normal operating temperature. The mathematical expression for the SoC is given in [13, 14], which is [figure omitted; refer to PDF] where [figure omitted; refer to PDF] is time, [figure omitted; refer to PDF] is battery SoC, in amphere-hours (Ah), [figure omitted; refer to PDF] is current flowing through the battery (passing through [figure omitted; refer to PDF] ), illustrated in Figure 2, and [figure omitted; refer to PDF] is nominal battery capacity. For charging, [figure omitted; refer to PDF] and for discharging, [figure omitted; refer to PDF] .
Figure 2: Schematic of [figure omitted; refer to PDF] battery model.
[figure omitted; refer to PDF]
From this mathematical expression, it is noted that the SoC cannot be explicitly measured. In the literature, there is a myriad of methods dealing with predicting and estimating of SoC. The most popular of these methods are described in the following paragraphs.
At present, Coulomb-counting [15], also known as charge counting, or current integration is the most commonly used technique; it requires dynamic measurement of battery current. This is an open-loop method; however, it suffers from a reliance on the mathematical integration, and errors (noise, resolution, and rounding) are cumulative, which can lead to large SoC errors at the end of the integration process in (1). On the positive side, if an accurate current sensor is incorporated, the implementation will be much easier.
Another prominent SoC estimator is the well-known Kalman filter (KF), invented by Kalman in 1960. Although his popular work was published almost 54 years ago in [16], it remains as an important citation source in the literature. Readers who are new to this method can refer to an excellent KF tutorial by Faragher in [17]. The KF method is a well-known technique for dynamic state estimation of systems such as target tracking, navigation, and also battery systems [18, 19]. The state-of-the-art method provides recursive solution to linear filtering for state observation and prediction problems. The key advantage of the KF is that it accurately estimates states affected by external disturbances such as noises governed by Gaussian distribution. On the contrary, the disadvantage of KF is that it requires highly complex mathematical calculations. This can be realized by a state-space model, as shown in previous work by the author in [20, 21]. The modeling is a heavy duty task and is also presented in this work to ease the understanding of readers. As such, there exist some possibilities of divergence due to an inaccurate model and complex calculation. In the case of a slow processor, the calculation results may be delayed and exceed the sampling interval, thereby result in an inaccurate tracking.
Various artificial intelligence (AI) methods, mainly the neural networks and fuzzy logic, are being applied in the estimation of battery's SoC [10, 22]. Neural networks are computationally expensive, which can overload the BMS and thus this approach, though theoretically feasible, may not be suitable for online implementation that requires instantaneous feedback and action. Also, neural networks require huge datasets in the time-consuming training process. Other techniques for SoC, include the sliding mode observer, are reported in [12].
In this work, a mathematical derivation leading to a state-space model is presented. The basic schematic model is adopted from [18, 20]. A thorough analysis in the form of state variables with the application of the Kalman filter is presented. The rest of the paper is organized as follows. The mathematical model is derived in Section 2, resulting in a state-space model. Further, in Section 3, the KF is applied to estimate the SoC of a battery system. This is followed by the tuning of KF's parameter by adopting a metaheuristic approach, namely, a genetic algorithm in Section 4. Relevant results are presented in Section 5, and finally the conclusions are derived in Section 6.
2. Battery Modeling
Many model-based state-estimations have been proposed in [18, 20, 21, 23]. In [18, 21], the well-known Kalman filter [16] had been applied successfully for both state observation and prediction of the SoC. Work in [24] utilized manufacturers' data in modeling the dynamic behavior of the battery. Several battery models exist from many works over the past few years. Each of these models varies in terms of its complexity and applications. In this work, a dynamical battery model is adopted, consisting of state variable equations, from [20, 21]. The schematic representation of this model is shown in Figure 2. In this model, there exists a bulk capacitor [figure omitted; refer to PDF] that acts as an energy storage component in the form of the charge, a capacitor that models the surface capacitance and diffusion effects within the cell [figure omitted; refer to PDF] , a terminal resistance [figure omitted; refer to PDF] , a surface resistance [figure omitted; refer to PDF] , and an end resistance [figure omitted; refer to PDF] . The voltages across both capacitors are denoted as [figure omitted; refer to PDF] and [figure omitted; refer to PDF] , respectively.
2.1. Mathematical Derivations of Battery Model
In this derivation, we aim to form a state-space model consisting of the state variables [figure omitted; refer to PDF] , [figure omitted; refer to PDF] , and [figure omitted; refer to PDF] . State variables are mathematical descriptions of the "state" of a dynamic system. In practice, the state of a system is used to determine its future behavior. Models that consist of a paired first-order differential equations are in the state-variable form.
Following the voltages and currents illustrated in Figure 2, the terminal voltage [figure omitted; refer to PDF] can be expressed as [figure omitted; refer to PDF] which is similar to [figure omitted; refer to PDF] By (2) and (3), and following straightforward algebraic manipulation, [figure omitted; refer to PDF] can be written as [figure omitted; refer to PDF] From Kirchoff's current law, [figure omitted; refer to PDF] , [figure omitted; refer to PDF] Thus, substituting (5) into (4) yields [figure omitted; refer to PDF] By assuming a slow varying [figure omitted; refer to PDF] , that is, [figure omitted; refer to PDF] (from basic formula of [figure omitted; refer to PDF] ), and then substituting it into (6), and after rearranging results in [figure omitted; refer to PDF] By applying a similar derivation, the rate of change of the surface capacitor voltage [figure omitted; refer to PDF] , derived also from (2) and (3), gives [figure omitted; refer to PDF] Further, by assuming [figure omitted; refer to PDF] and [figure omitted; refer to PDF] , (7) and (8) can be written as [figure omitted; refer to PDF] respectively. Further, (9) and (10) can be combined to form a state variable relating voltages [figure omitted; refer to PDF] and [figure omitted; refer to PDF] and current flow [figure omitted; refer to PDF] , which is [figure omitted; refer to PDF] Next, the output voltage is derived from (2) and (3). By adding both equations, we obtain [figure omitted; refer to PDF] Then by substituting [figure omitted; refer to PDF] and [figure omitted; refer to PDF] into (11), it is further simplified as [figure omitted; refer to PDF] Taking the time derivative of the output voltage and assuming [figure omitted; refer to PDF] (this simply means that the change rate of terminal current can be ignored when implemented digitally), we obtain [figure omitted; refer to PDF] Substituting the formulae obtained in (9) and (10) into (13) results in [figure omitted; refer to PDF] Then, solving for [figure omitted; refer to PDF] from (12) we obtain [figure omitted; refer to PDF] and after substituting it into (14), it yields [figure omitted; refer to PDF] Finally, the complete state variable network is obtained by substituting (16) into (10), represented in matrix form as [figure omitted; refer to PDF] whereby constants [figure omitted; refer to PDF] , [figure omitted; refer to PDF] , and [figure omitted; refer to PDF] were derived previously but are hereby restated as [figure omitted; refer to PDF] This completes the initial derivation of the battery model.
2.2. Numerical Example
By substituting all capacitor and resistor values from Table 1 into (18), the following values are obtained: [figure omitted; refer to PDF]
Table 1: Parameters for cell model [18, 20].
[figure omitted; refer to PDF] | [figure omitted; refer to PDF] | [figure omitted; refer to PDF] | [figure omitted; refer to PDF] | [figure omitted; refer to PDF] |
[figure omitted; refer to PDF] F | [figure omitted; refer to PDF] F | [figure omitted; refer to PDF] Ω | [figure omitted; refer to PDF] Ω | [figure omitted; refer to PDF] Ω |
By defining matrix [figure omitted; refer to PDF] , [figure omitted; refer to PDF] Again by substituting the values from Table 1 to calculate [figure omitted; refer to PDF] , [figure omitted; refer to PDF] , and [figure omitted; refer to PDF] , we obtain the value of [figure omitted; refer to PDF] as [figure omitted; refer to PDF]
and [figure omitted; refer to PDF] as [figure omitted; refer to PDF]
As such (17) can be rewritten as [figure omitted; refer to PDF] or numerically as [figure omitted; refer to PDF]
2.3. State-Space Modeling
Based on control theories, a lumped linear network can be written in the form [figure omitted; refer to PDF] where in this work, the state variable [figure omitted; refer to PDF] is [figure omitted; refer to PDF] Obviously, [figure omitted; refer to PDF] with [figure omitted; refer to PDF] Therefore, by restating the previous calculation values in (21) and (23), we should note that the values of [figure omitted; refer to PDF] , [figure omitted; refer to PDF] , [figure omitted; refer to PDF] , and [figure omitted; refer to PDF] are as follows: [figure omitted; refer to PDF] respectively. As such, with (32), the output [figure omitted; refer to PDF] is in fact [figure omitted; refer to PDF] This means that the output of the system is the open terminal voltage [figure omitted; refer to PDF] , as expected. Note that this is an important observation from this state-space modeling.
Further, the above state-space variables are transformed to a transfer function, [figure omitted; refer to PDF] . This is done by using [figure omitted; refer to PDF] function in MATLAB, which after factorization yields [figure omitted; refer to PDF] The plot of the unit step response for the gain in (35) is given in Figure 3. Basically, it shows that the open circuit terminal voltage [figure omitted; refer to PDF] in Figure 2 increases linearly during the charging operation in a very slow manner after transient behaviour for few seconds.
Figure 3: Output response of RC model due to constant input.
[figure omitted; refer to PDF]
2.4. Observability of the RC Battery Model
In control theory, observability is the degree to which the internal states of a system can be predicted via its external outputs. As such, for an observable system, the behavior of the entire system can be predicted via the system's outputs. On the other hand, if a system is not observable, the current values of some of its states cannot be estimated through the output signal. This means the controller does not know the states' values. In theory, the observability of a system can be determined by constructing an observability matrix [figure omitted; refer to PDF] . [figure omitted; refer to PDF] and a system is observable if the row rank of [figure omitted; refer to PDF] is equal to [figure omitted; refer to PDF] (this is also known as a full rank matrix). The ultimate rationale of such a test is that if [figure omitted; refer to PDF] rows are linearly independent, then each of the [figure omitted; refer to PDF] states is viewable through linear combinations of the output [figure omitted; refer to PDF] .
Further, substituting [figure omitted; refer to PDF] and [figure omitted; refer to PDF] values from (30) and (32) into (36) yields [figure omitted; refer to PDF] Clearly, in this case [figure omitted; refer to PDF] is a full rank matrix, which concludes that this system is observable.
3. Kalman Filter for SoC Estimation
A continuous time-invariant linear system can be described in the state variable form as [figure omitted; refer to PDF] where [figure omitted; refer to PDF] is the input vector, [figure omitted; refer to PDF] is the state vector, [figure omitted; refer to PDF] is the output vector, [figure omitted; refer to PDF] is the time invariant dynamic matrix, [figure omitted; refer to PDF] is the time invariant input matrix, and [figure omitted; refer to PDF] is the time invariant measurement matrix.
If we assume that the applied input [figure omitted; refer to PDF] is constant during each sampling interval, a discrete-time equivalent model of the system will now be [figure omitted; refer to PDF] where [figure omitted; refer to PDF] whereby [figure omitted; refer to PDF] is the identity matrix and [figure omitted; refer to PDF] is the sampling period. As for this system, two independent process noises are present which are additive Gaussian noise, [figure omitted; refer to PDF] vector representing system disturbances and model inaccuracies and [figure omitted; refer to PDF] vector representing the effects of measurement noise.
Both [figure omitted; refer to PDF] and [figure omitted; refer to PDF] have a mean value of zero and the following covariance matrices: [figure omitted; refer to PDF] where [figure omitted; refer to PDF] denotes the expectation (or mean) operator and superscript [figure omitted; refer to PDF] means the transpose of the respective vectors. In usual case, [figure omitted; refer to PDF] and [figure omitted; refer to PDF] are normally set to a constant before simulation; in our case both are set to one (see Section 5). Further, a genetic algorithm (GA) is applied in order to obtain a better set of [figure omitted; refer to PDF] and [figure omitted; refer to PDF] values resulting in lower RMS error from the KF's output.
By inclusion of these noises, the resulting system can now be described by [figure omitted; refer to PDF] which is illustrated in Figure 4,
Figure 4: Discrete system model with noises [figure omitted; refer to PDF] and [figure omitted; refer to PDF] .
[figure omitted; refer to PDF]
3.1. Property of Kalman Filter
An important property of the KF is that it minimizes the sum-of-squared errors between the actual value [figure omitted; refer to PDF] and estimated states [figure omitted; refer to PDF] , given as [figure omitted; refer to PDF] To understand the operations of the KF, the meaning of the notation [figure omitted; refer to PDF] is crucial. Simply stated, it means that the estimate of [figure omitted; refer to PDF] at event [figure omitted; refer to PDF] takes into account all discrete events up to event [figure omitted; refer to PDF] . As such, (43) can include such information, now expanded as [figure omitted; refer to PDF] In recursive implementation of the KF, the current estimate [figure omitted; refer to PDF] , together with the input [figure omitted; refer to PDF] and measurement signals [figure omitted; refer to PDF] , is used for further estimating [figure omitted; refer to PDF] . This means that in this discrete system, the input for each sample step will be [figure omitted; refer to PDF] , [figure omitted; refer to PDF] , [figure omitted; refer to PDF] with respect to the output of [figure omitted; refer to PDF] , [figure omitted; refer to PDF] , [figure omitted; refer to PDF] . The recursive KF algorithm is obtained with the predictor and corrector stages.
3.2. KF Online Implementation
For the case of a battery, it is well understood that only the terminal quantities can be measured (terminal voltage [figure omitted; refer to PDF] and current [figure omitted; refer to PDF] ). Assuming that battery parameters are time-invariant quantities, the recursive KF algorithm is applied. By applying (40) into (30)-(32), we obtain the following values of updated matrices, with [figure omitted; refer to PDF] : [figure omitted; refer to PDF] Note that [figure omitted; refer to PDF] and [figure omitted; refer to PDF] remain similar to their previous values, as given in (31) and (32). By utilizing MATLAB's control toolbox, the KF is placed in parallel to the state-space model, hereby represented by plant in Figure 5. The complete source code is given in the Appendix.
Figure 5: Parallel connection of plant and Kalman filter.
[figure omitted; refer to PDF]
4. Genetic Algorithm
The genetic algorithm (GA), introduced by John Holland, is an approach based on biological evolution [25]. The algorithm is developed based on Charles Darwin's theory of survival of the fittest. The GA has a very powerful encoding mechanism that enables the representation of a solution vector as either a real coded or binary string. Both encodings serve a different purpose in the context of different problem space. GAs are regarded as the global optimizer that often spot or locate the potential area or even accurately obtain the best solution, known as the global minimum [26-28]. Underneath this popular algorithm are the three operators that contribute to its success in performing optimization task.
(i) Selection . In selection, offsprings with higher fitness have better chance for survival to the following generation in the evolutionary process. This basically is based on the theory of "survival of the fittest."
(ii) Crossover . The crossover increases and maintains the diversity of the entire population over the entire run. This is due to the fact that a population with higher diversity has the ability to explore a wider range of search space.
(iii): Mutation . This enables chromosomes (potential solutions) to jump to a wider range than crossover. Again, mutation also increases the diversity of the entire population.
The pseudocode of the GA is presented in Algorithm 1, and relevant figure depicting the algorithm flow is illustrated in Figure 6. To avoid extended discussions on GA, we include here a complete workable source code in the appendix. All parameter settings for the GA are available in the source code.
Algorithm 1: Pseudocode of GA.
(1) BEGIN
(2) Initialize population P [figure omitted; refer to PDF]
(3) while Terminate = False do
(4) [figure omitted; refer to PDF] : Fitness evaluation,
(5) Selection,
(6) Crossover,
(7) Mutation,
(8) end while
(9) END
Figure 6: GA flowchart.
[figure omitted; refer to PDF]
In the context of Kalman filter, GA is applied to tune the [figure omitted; refer to PDF] and [figure omitted; refer to PDF] parameters, which was explained in detail in Section 3.
5. Results
The program, implemented in MATLAB, is given in the appendix to clarify the results obtained in this work. Take note that the [figure omitted; refer to PDF] and [figure omitted; refer to PDF] mentioned in (41) are both set to a numerical value of one ( [figure omitted; refer to PDF] = [figure omitted; refer to PDF] = 1) in the first simulation. The results obtained are tabulated in Table 2. From these results, RMS of the estimated error, which is the error from KF, is far smaller in comparison to the measured error, with values of [figure omitted; refer to PDF] V and [figure omitted; refer to PDF] V, respectively. This RMS error is further minimized by utilizing [figure omitted; refer to PDF] and [figure omitted; refer to PDF] , found using the GA approach. A graph depicting the convergence characteristic is shown in Figure 7.
Table 2: RMS error recorded during charging operation.
Output | [figure omitted; refer to PDF] , [figure omitted; refer to PDF] | RMS error [V] |
Measurement, [figure omitted; refer to PDF] | 1, 1 | [figure omitted; refer to PDF] |
| ||
Estimated (KF), [figure omitted; refer to PDF] | 1, 1 | [figure omitted; refer to PDF] |
| ||
Estimated (KF), [figure omitted; refer to PDF] | 0.012697316315642, | [figure omitted; refer to PDF] |
(After GA tuning) | 2.303940992875865 |
Figure 7: The convergence characteristic of GA.
[figure omitted; refer to PDF]
The time plot of the estimated error from 0 s to 60000 s is shown in Figure 8, depicting a very small amplitude, in blue color ( [figure omitted; refer to PDF] V) along the timeline. This is observed through the zoomed display of the MATLAB graph. On the contrary, the measurement error, portrayed by green color noise in Figure 8, has an absolute magnitude of [figure omitted; refer to PDF] V.
Figure 8: The voltage error recorded and depicting measured (green color) and estimated (blue color) errors.
[figure omitted; refer to PDF]
5.1. Charging Behaviour
The charging characteristic is illustrated in Figure 9 whereby the initial terminal voltage [figure omitted; refer to PDF] starts from 0 V and rises up to approximately 0.5 V within 60000 seconds (which is 100 minutes). Charging impulses of 1.53 A are applied in this case as shown in Figure 9. As expected, this is a time consuming process as in general case it may take hours for a car battery (lead acid) to be completely charged.
Response of RC battery model in terms of [figure omitted; refer to PDF] due to charging current [figure omitted; refer to PDF] A pulses.
(a) [figure omitted; refer to PDF]
(b) [figure omitted; refer to PDF]
5.2. Discharging
For the discharging process, the initial value of terminal voltage, [figure omitted; refer to PDF] , is set to [figure omitted; refer to PDF] V in the MATLAB program. Again, in this case, impulses of 1.53 A are applied, but now in negative form. The dynamic behavior of the discharging characteristic is shown in Figure 10. From this figure, it is observed that the discharging process is similar to the charging process, but now with a linearly decreasing terminal voltage slope. The open terminal voltage [figure omitted; refer to PDF] drops from 2.2 V to 1.7 V in 60000 seconds (100 minutes); this is similar to the charging process as it takes 100 minutes to reach [figure omitted; refer to PDF] V from zero potential.
Response of RC battery model in terms of [figure omitted; refer to PDF] due to discharge current [figure omitted; refer to PDF] A pulses.
(a) [figure omitted; refer to PDF]
(b) [figure omitted; refer to PDF]
6. Conclusion
In this work, we successfully obtained the state variables of the RC model representing a battery in terms of mathematical derivations. The derivations lead to the conclusion that there exist three state variables relevant to a battery's state-space model. With this state-estimation model, a prominent technique known as the Kalman filter is applied in the aim of estimating state-of-charge for a Battery Management System. From numerical results, the KF is shown to be accurate in predicting the dynamic behavior of the system. This is shown by a very small RMS error of the estimation in comparison to its measurement. The estimated error is further reduced after incorporating the optimized values of [figure omitted; refer to PDF] and [figure omitted; refer to PDF] through the offline GA approach. As such, the efficacy of such an approach is, thus, validated.
Acknowledgments
The authors would like to acknowledge the support from Xi'an Jiaotong-Liverpool University under RDF-13-01-13. The authors would also like to thank their colleague, Sanghyuk Lee, for the sharing of his expertise, contributing to the success of this project.
Conflict of Interests
The authors declare that there is no conflict of interests regarding the publication of this paper.
[1] C. Chen, K. L. Man, T. O. Ting, C. Lei, T. Krilavicius, T. T. Jeong, J. K. Seon, S. Guan, P. W. H. Wong, "Design and realization of a smart battery management system," in Proceedings of the International MultiConference of Engineers and Computer Scientists (IMECS '12), vol. 2, pp. 1173-1176, March 2012.
[2] K. L. Man, K. Wan, T. O. Ting, C. Chen, T. Krilavicius, J. Chang, S. H. Poon, "Towards a hybrid approach to SoC estimation for a smart Battery Management System (BMS) and battery supported Cyber-Physical Systems (CPS)," in Proceedings of the 2nd Baltic Congress on Future Internet Communications (BCFIC '12), pp. 113-116, April 2012.
[3] K. L. Man, C. Chen, T. O. Ting, T. Krilavicius, J. Chang, S. H. Poon Artificial Intelligence Approach to Socestimation for Smart Battery Management System , 2012.
[4] P. H. L. Notten, D. Danilov, "From battery modeling to battery management," in Proceedings of the 33rd International Telecommunications Energy Conference (INTELEC '11), pp. 1-8, October 2011.
[5] D. Benchetrite, F. Mattera, M. Perrin, J. L. Martin, O. Bach, M. L. Gall, P. Malbranche, "Optimization of charge parameters for lead acid batteries used in photovoltaic systems," in Proceddings of the 3rd World Conference on Photovoltaic Energy Conversion, vol. 2, pp. 2408-2410, Osaka, Japan, May 2003.
[6] T. O. Ting, K. L. Man, S. Guan, J. K. Seon, T. T. Jeong, P. W. H. Wong, "Maximum power point tracking (MPPT) via weightless swarm algorithm (WSA) on cloudy days," in Proceedings of the IEEE Asia Pacific Conference on Circuits and Systems (APCCAS '12), pp. 336-339, Kaohsiung, Taiwan, December 2012.
[7] J. Ma, T. O. Ting, K. L. Man, N. Zhang, S. U. Guan, P. W. H. Wong, "Parameter estimation of photovoltaic models via cuckoo search," Journal of Applied Mathematics , vol. 2013, 2013.
[8] H. Gu, "Mathematical modeling in lead-acid battery development," in Proceedings of the 6th Annual Battery Conference on Applications and Advances, pp. 47-56, 1991.
[9] C. S. Moo, K. S. Ng, Y. P. Chen, Y. C. Hsieh, "State-of-charge estimation with open-circuit-voltage for lead-acid batteries," in Proceedings of the 4th Power Conversion Conference (PCC '07), pp. 758-762, Nagoya, Japan, April 2007.
[10] C. C. Chan, E. W. C. Lo, S. Weixiang, "Available capacity computation model based on artificial neural network for lead-acid batteries in electric vehicles," Journal of Power Sources , vol. 87, no. 1, pp. 201-204, 2000.
[11] P. Singh, C. Fennie Jr., D. Reisner, "Fuzzy logic modelling of state-of-charge and available capacity of nickel/metal hydride batteries," Journal of Power Sources , vol. 136, no. 2, pp. 322-333, 2004.
[12] I.-S. Kim, "Nonlinear state of charge estimator for hybrid electric vehicle battery," IEEE Transactions on Power Electronics , vol. 23, no. 4, pp. 2027-2034, 2008.
[13] R. Restaino, W. Zamboni, "Comparing particle filter and extended Kalman Filter for battery state-of-charge estimation," in Proceedings of the 38th Annual Conference on IEEE Industrial Electronics Society (IECON '12), pp. 4018-4023, Montreal, Canada, October 2012.
[14] L. Y. Wang, M. P. Polis, G. G. Yin, W. Chen, Y. Fu, C. C. Mi, "Battery cell identification and soc estimation using string terminal voltage measurements," IEEE Transactions on Vehicular Technology , vol. 61, no. 7, pp. 2925-2935, 2012.
[15] H. Blanke, O. Bohlen, S. Buller, R. W. De Doncker, B. Fricke, A. Hammouche, D. Linzen, M. Thele, D. U. Sauer, "Impedance measurements on lead-acid batteries for state-of-charge, state-of-health and cranking capability prognosis in electric and hybrid electric vehicles," Journal of Power Sources , vol. 144, no. 2, pp. 418-425, 2005.
[16] R. E. Kalman, "A new approach to linear filtering and prediction problems," Journal of Fluids Engineering , vol. 82, no. 1, pp. 35-45, 1960.
[17] R. Faragher, "Understanding the basis of the kalman filter via a simple and intuitive derivation," IEEE Signal Processing Magazine , vol. 29, no. 5, pp. 128-132, 2012.
[18] B. S. Bhangu, P. Bentley, D. A. Stone, C. M. Bingham, "Nonlinear observers for predicting state-of-charge and state-of-health of lead-acid batteries for hybrid-electric vehicles," IEEE Transactions on Vehicular Technology , vol. 54, no. 3, pp. 783-794, 2005.
[19] G. L. Plett, "Extended Kalman filtering for battery management systems of LiPB-based HEV battery packs--part 1. Background," Journal of Power Sources , vol. 134, no. 2, pp. 252-261, 2004.
[20] T. O. Ting, K. L. Man, N. Zhang, C.-U. Lei, C. Lu, "State-space battery modeling for smart battery management system," in Proceedings of The International MultiConference of Engineers and Computer Scientists (IMECS '14), of Lecture Notes in Engineering and Computer Science, pp. 866-869, Kowloon, Hong Kong, March 2014.
[21] T. O. Ting, K. L. Man, C.-U. Lei, C. Lu, "State-of-charge for battery management system via kalman filter," IAENG Engineering Letters , vol. 22, no. 2, 2014.
[22] A. J. Salkind, C. Fennie, P. Singh, T. Atwater, D. E. Reisner, "Determination of state-of-charge and state-of-health of batteries by fuzzy logic methodology," Journal of Power Sources , vol. 80, no. 1, pp. 293-300, 1999.
[23] H. Saberi, F. R. Salmasi, "Genetic optimization of charging current for lead-acid batteries in hybrid electric vehicles," in Proceedings of the International Conference on Electrical Machines and Systems (ICEMS '07), pp. 2028-2032, October 2007.
[24] N. K. Medora, A. Kusko, "Dynamic battery modeling of lead-acid batteries using manufacturers' data," in Proceedings of the 27th International Telecommunication Energy Conference (INTELEC '05), pp. 227-232, Berlin, Germany, September 2005.
[25] D. E. Goldberg Genetic Algorithms in Search, Optimization, and Machine Learning , vol. 412, Addison-Wesley Reading, Menlo Park, Calif, USA, 1989.
[26] T. O. Ting, S. F. Chien, X.-S. Yang, N. Ramli, "Resource allocation schemes in energy eff icient OFDMA system via genetic algorithm," in Proceedings of the 19th Asia-Pacific Conference on Communications (APCC '13), pp. 723-727, 2013.
[27] S. F. Chien, T. O. Ting, X.-S. Yang, A. K. N. Ting, D. W. Holtby, "Optimizing energy efficiency in multi-user ofdma systems with genetic algorithm," in Proceedings of the International Conference on Advances in Computing, Communications and Informatics (ICACCI '13), pp. 1330-1334, Greater Noida, India, September 2013.
[28] T. O. Ting, K. Wan, K. L. Man, S. Lee, "Space exploration of multi-agent robotics via genetic algorithm," Network and Parallel Computing , vol. 7513, of Lecture Notes in Computer Science, pp. 500-507, Springer, 2012.
Appendix
A. MATLAB Source Code, in a Script File
format long;
randn('seed',0) %Same sequence
%Value for resistors and capacitors
Csurface=82.11;
Cbk=88372.83;
Re=0.00375;
Rs=0.00375;
Rt=0.002745;
a=1/(Cbk [figure omitted; refer to PDF] (Re+Rs));
b=1/(Csurface [figure omitted; refer to PDF] (Re+Rs));
d=(Re [figure omitted; refer to PDF] Rs)/(Re+Rs);
%State variable matrices
A= [figure omitted; refer to PDF] -a a 0; b -b 0; (-a+b) 0 (a-b) [figure omitted; refer to PDF] ;
B=[a [figure omitted; refer to PDF] Re; b [figure omitted; refer to PDF] Re;
a [figure omitted; refer to PDF] (0.5 [figure omitted; refer to PDF] Rs-Rt-d)+ b [figure omitted; refer to PDF] (0.5 [figure omitted; refer to PDF] Re+Rt+d) [figure omitted; refer to PDF] ;
C= [figure omitted; refer to PDF] 0 0 1 [figure omitted; refer to PDF] ;
D= [figure omitted; refer to PDF] 0 [figure omitted; refer to PDF] ;
%Transfer function
figure [figure omitted; refer to PDF] 1 [figure omitted; refer to PDF] ; %Figure 1
[figure omitted; refer to PDF] num, den [figure omitted; refer to PDF] =ss2tf(A,B,C,D,1);
G=tf(num,den)
step(G),grid;
% For Kalman filter:
% Identity matrix + diagonal element
A=[1-a a 0; b 1-b 0; (-a+b) 0 1+(a-b) ]
B=[a [figure omitted; refer to PDF] Re; b [figure omitted; refer to PDF] Re;
a [figure omitted; refer to PDF] (0.5 [figure omitted; refer to PDF] Rs-Rt-d)+ b [figure omitted; refer to PDF] (0.5 [figure omitted; refer to PDF] Re+Rt+d) [figure omitted; refer to PDF]
C= [figure omitted; refer to PDF] 0 0 1 [figure omitted; refer to PDF]
Tc=1;
A=A [figure omitted; refer to PDF] Tc;
B=B [figure omitted; refer to PDF] Tc;
C=C;
x= [figure omitted; refer to PDF] 2,2 [figure omitted; refer to PDF]
options = gaoptimset(...
'PopulationType', 'doubleVector',...
'PopInitRange', [figure omitted; refer to PDF] 0;1 [figure omitted; refer to PDF] ,...
'PopulationSize', 5,...
'EliteCount', 1,...
'CrossoverFraction', 0.8,...
'ParetoFraction', 0.35, ...
'MigrationDirection', 'both', ...
'MigrationInterval', 20,...
'MigrationFraction', 0.2,...
'Generations', 50,...
'TimeLimit', Inf,...
'FitnessLimit', -Inf,...
'StallGenLimit', 50,...
'StallTimeLimit', Inf,...
'TolFun', 0,...
'TolCon', 0,...%1e-6,...
'InitialPopulation', x,...
'InitialScores', [figure omitted; refer to PDF] ,...
'InitialPenalty', 10,...
'PenaltyFactor', 100,...
'CreationFcn', @gacreationuniform,...
'FitnessScalingFcn', @fitscalingrank,...
'SelectionFcn', @selectionroulette,...
'CrossoverFcn', @crossoverarithmetic,...
'MutationFcn', @mutationadaptfeasible,...
'DistanceMeasureFcn', @distancecrowding,...
'HybridFcn', [figure omitted; refer to PDF] ,...
'Display', 'final',...
'OutputFcns', [figure omitted; refer to PDF] ,...
'PlotFcns', @gaplotbestf, ...
'PlotInterval', 2, ...
'Vectorized', 'off', ...
'UseParallel', 'always');
Fmin =@(x)fobj(x, A, B, C);
lb= [figure omitted; refer to PDF] 0.001,0.001 [figure omitted; refer to PDF] ; %Set lower bounds
v [figure omitted; refer to PDF] X,fval,exitflag [figure omitted; refer to PDF] =...
ga(Fmin, 2, [figure omitted; refer to PDF] , [figure omitted; refer to PDF] , [figure omitted; refer to PDF] ,...
[figure omitted; refer to PDF] , lb, [figure omitted; refer to PDF] , [figure omitted; refer to PDF] , options );
% After simulation,
% repeat simulation all plot all graphs
if fval<0.0001
Q=X(1); R=X(2);
% Sample time=-1 for discrete model
Plant = ss(A, [figure omitted; refer to PDF] B B [figure omitted; refer to PDF] ,C,0,-1,...
'inputname',{'u' 'w'},...
'outputname', 'y');
[figure omitted; refer to PDF] kalmf,L,P,M [figure omitted; refer to PDF] = kalman(Plant,Q,R);
kalmf = kalmf(1,:);
Kalmf
a = A;
b = [figure omitted; refer to PDF] B B 0 [figure omitted; refer to PDF] B [figure omitted; refer to PDF] ;
c = [figure omitted; refer to PDF] C;C [figure omitted; refer to PDF] ;
d = [figure omitted; refer to PDF] 0 0 0;0 0 1 [figure omitted; refer to PDF] ;
P = ss(a,b,c,d,-1,...
'inputname',{'u' 'w' 'v'},...
'outputname',{'y' 'yv'});
sys = parallel(P,kalmf,1,1, [figure omitted; refer to PDF] , [figure omitted; refer to PDF] )
% Close loop for input #4 and output #2
SimModel = feedback(sys,1,4,2,1)
% Delete yv from I/O list
SimModel = SimModel( [figure omitted; refer to PDF] 1 3 [figure omitted; refer to PDF] , [figure omitted; refer to PDF] 1 2 3 [figure omitted; refer to PDF] )
SimModel.inputname
%This part generates rectangular waveform
A=1.53; %Amplitude of negative pulses
t = 0:1:60000;
T=30000/5.5;
% I here represents current
I = (A/2) [figure omitted; refer to PDF] square(2 [figure omitted; refer to PDF] pi [figure omitted; refer to PDF] (1/T) [figure omitted; refer to PDF] t);
I = I+(A/2);
figure [figure omitted; refer to PDF] 1 [figure omitted; refer to PDF] ; %Figure 2
subplot(211),plot(t,I),
axis( [figure omitted; refer to PDF] 0 60000 -0.5 2.0 [figure omitted; refer to PDF] );
grid on; %charging
xlabel('Time (sec)');
ylabel('Cell terminal current (A)');
u = I';
n = length(t);
%randn('seed',0) %Same sequence
w = sqrt(Q) [figure omitted; refer to PDF] randn(n,1);
v = sqrt(R) [figure omitted; refer to PDF] randn(n,1);
[out,x] = lsim(SimModel,[w,v,u]);
y0=0; %This is initial terminal voltage
y = out(:,1)+y0; % true response
ye = out(:,2)+y0; % filtered response
yv = y + v; % measured response
figure [figure omitted; refer to PDF] 2 [figure omitted; refer to PDF] ;
plot(t,y, 'g--',t,ye, 'b-'), grid on;
figure [figure omitted; refer to PDF] 1 [figure omitted; refer to PDF] ;
subplot(212),plot(ye, 'b-'),
axis( [figure omitted; refer to PDF] 0 60000 0 0.7 [figure omitted; refer to PDF] ); grid on; %charging
xlabel('Time (s)'),
ylabel('Cell terminal voltage (V)')
%Kalman filter response
figure [figure omitted; refer to PDF] 3 [figure omitted; refer to PDF] ; %Figure 3
plot(t,y-yv, 'g-', t, y-ye, 'b-'), grid on;
xlabel('Time (s)'), ylabel('Error')
%Calculate Errors
MeasErr = y-yv; %Measurement error
MeasErrCov=...
sum(MeasErr. [figure omitted; refer to PDF] MeasErr)/length(MeasErr);
EstErr = y-ye; %Estimated error
EstErrCov =...
sum(EstErr. [figure omitted; refer to PDF] EstErr)/length(EstErr);
%Display onto screen
MeasErrCov %Measurement error
EstErrCov %Estimated error
End
B. MATLAB Source Code, in a Function File
function f = fobj(x, A, B, C)
Q=x(1);
R=x(2);
% Sample time=-1 for discrete model
Plant = ss(A, [figure omitted; refer to PDF] B B [figure omitted; refer to PDF] ,C,0,-1,...
'inputname',{'u' 'w'},...
'outputname', 'y');
[figure omitted; refer to PDF] kalmf,L,P,M [figure omitted; refer to PDF] = kalman(Plant,Q,R);
kalmf = kalmf(1,:);
Kalmf
a = A;
b = [figure omitted; refer to PDF] B B 0 [figure omitted; refer to PDF] B [figure omitted; refer to PDF] ;
c = [figure omitted; refer to PDF] C;C [figure omitted; refer to PDF] ;
d = [figure omitted; refer to PDF] 0 0 0;0 0 1 [figure omitted; refer to PDF] ;
P = ss(a,b,c,d,-1,...
'inputname',{'u' 'w' 'v'},...
'outputname',{'y' 'yv'});
sys = parallel(P,kalmf,1,1, [figure omitted; refer to PDF] , [figure omitted; refer to PDF] )
% Close loop around input #4 and output #2
SimModel = feedback(sys,1,4,2,1)
% Delete yv from I/O list
SimModel = SimModel( [figure omitted; refer to PDF] 1 3 [figure omitted; refer to PDF] , [figure omitted; refer to PDF] 1 2 3 [figure omitted; refer to PDF] )
SimModel.inputname
%This part generates rectangular waveform
A=1.53; %Amplitude of negative pulses
t = 0:1:60000;
T=30000/5.5;
% I here represents current
I = (A/2) [figure omitted; refer to PDF] square(2 [figure omitted; refer to PDF] pi [figure omitted; refer to PDF] (1/T) [figure omitted; refer to PDF] t);
I = I+(A/2);
u = I';
n = length(t);
%randn('seed',0) %Same sequence
w = sqrt(Q) [figure omitted; refer to PDF] randn(n,1);
v = sqrt(R) [figure omitted; refer to PDF] randn(n,1);
[figure omitted; refer to PDF] out,x [figure omitted; refer to PDF] = lsim(SimModel, [figure omitted; refer to PDF] w,v,u [figure omitted; refer to PDF] );
y0=0; %This is initial terminal voltage
y = out(:,1)+y0; % true response,
ye = out(:,2)+y0; % filtered response
yv = y + v; % measured response
%Calculate Errors
MeasErr = y-yv; %Measurement error
MeasErrCov= ...
sum(MeasErr. [figure omitted; refer to PDF] MeasErr)/length(MeasErr);
EstErr = y-ye; %Estimated error
EstErrCov = ...
sum(EstErr. [figure omitted; refer to PDF] EstErr)/length(EstErr);
f=EstErrCov;
end
You have requested "on-the-fly" machine translation of selected content from our databases. This functionality is provided solely for your convenience and is in no way intended to replace human translation. Show full disclaimer
Neither ProQuest nor its licensors make any representations or warranties with respect to the translations. The translations are automatically generated "AS IS" and "AS AVAILABLE" and are not retained in our systems. PROQUEST AND ITS LICENSORS SPECIFICALLY DISCLAIM ANY AND ALL EXPRESS OR IMPLIED WARRANTIES, INCLUDING WITHOUT LIMITATION, ANY WARRANTIES FOR AVAILABILITY, ACCURACY, TIMELINESS, COMPLETENESS, NON-INFRINGMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Your use of the translations is subject to all use restrictions contained in your Electronic Products License Agreement and by using the translation functionality you agree to forgo any and all claims against ProQuest or its licensors for your use of the translation functionality and any output derived there from. Hide full disclaimer
Copyright © 2014 T. O. Ting et al. T. O. Ting et al. This is an open access article distributed under the Creative Commons Attribution License, which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.
Abstract
In this work, a state-space battery model is derived mathematically to estimate the state-of-charge (SoC) of a battery system. Subsequently, Kalman filter (KF) is applied to predict the dynamical behavior of the battery model. Results show an accurate prediction as the accumulated error, in terms of root-mean-square (RMS), is a very small value. From this work, it is found that different sets of Q and R values (KF's parameters) can be applied for better performance and hence lower RMS error. This is the motivation for the application of a metaheuristic algorithm. Hence, the result is further improved by applying a genetic algorithm (GA) to tune Q and R parameters of the KF. In an online application, a GA can be applied to obtain the optimal parameters of the KF before its application to a real plant (system). This simply means that the instantaneous response of the KF is not affected by the time consuming GA as this approach is applied only once to obtain the optimal parameters. The relevant workable MATLAB source codes are given in the appendix to ease future work and analysis in this area.
You have requested "on-the-fly" machine translation of selected content from our databases. This functionality is provided solely for your convenience and is in no way intended to replace human translation. Show full disclaimer
Neither ProQuest nor its licensors make any representations or warranties with respect to the translations. The translations are automatically generated "AS IS" and "AS AVAILABLE" and are not retained in our systems. PROQUEST AND ITS LICENSORS SPECIFICALLY DISCLAIM ANY AND ALL EXPRESS OR IMPLIED WARRANTIES, INCLUDING WITHOUT LIMITATION, ANY WARRANTIES FOR AVAILABILITY, ACCURACY, TIMELINESS, COMPLETENESS, NON-INFRINGMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Your use of the translations is subject to all use restrictions contained in your Electronic Products License Agreement and by using the translation functionality you agree to forgo any and all claims against ProQuest or its licensors for your use of the translation functionality and any output derived there from. Hide full disclaimer