You are on page 1of 104

Impact of Current Waveforms on Battery Behaviour

by

Thuwaragan Sritharan

A thesis submitted in conformity with the requirements


for the degree of Master of Applied Science
Graduate Department of Electrical and Computer Engineering
University of Toronto

c 2012 by Thuwaragan Sritharan


Copyright

Abstract
Impact of Current Waveforms on Battery Behaviour
Thuwaragan Sritharan
Master of Applied Science
Graduate Department of Electrical and Computer Engineering
University of Toronto
2012

With increasing emphasis on renewable energy sources and efficient energy use,
energy storage devices, and in particular electrochemical storage devices, are becoming
more prevalent. In order to interface batteries to systems, converters are used to maintain
the desired voltage, current or power. In this thesis, we explore the response of the battery to commonly seen current waveforms to understand the impact of the converter on
the battery. An electrochemical model of the electrode-electrolyte is studied to first understand its operating principles and then to pinpoint the causes of the observed battery
response. A circuit was built to test the response of the battery to current waveforms.
Experiments consisting of constant current, triangular and sinusoidal currents of varying
frequency and ripple currents, and pulsed currents were conducted. Using electrochemical principles, an explanation of the results is presented along with the impact of the
experimental results on converter design specifications.

ii

Acknowledgements
Foremost, I would like to thank my supervisors Professor Francis Dawson and
Professor Keryn Lian, for their support, guidance, and patience over the course of this
thesis. Their insight into areas outside of the field of ECE proved to be extremely valuable
and was an integral part in this thesis.
I am also grateful to Adrian Amanci, Jin Chang, Amgad EL-Deib, Valentin Bolborici, Hamid Timorabadi and Qifeng Tian for their time and assistance in various aspects
of my thesis.
I would like to also acknowledge the Flexible Energy and Electronics Laboratory
(FEE Lab) for letting me use their equipment for my tests.
Thanks and acknowledgement must be given to Haoyang Chen and Pawel Chomicki
who worked on the waveform generating circuit and the MATLAB GUI used to analyze
the data.
Last, and most importantly, I need to thank my family. For without their love,
support and patience, I could not have completed this thesis.

iii

Contents
Abstract

ii

Acknowledgements

iii

Table of Contents

iv

List of Tables

vi

List of Figures

vii

1 Introduction

1.1

Objectives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1.2

Outline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2 Introduction to Batteries

2.1

Electrochemical Cell Overview . . . . . . . . . . . . . . . . . . . . . . . .

2.2

Electrode-Electrolyte Interface . . . . . . . . . . . . . . . . . . . . . . . .

10

2.3

Electrochemical Impedance Spectroscopy . . . . . . . . . . . . . . . . . .

15

2.4

Battery Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

17

2.5

Lead Acid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

18

2.6

Nickel Based Batteries . . . . . . . . . . . . . . . . . . . . . . . . . . . .

19

2.7

Lithium Based Batteries . . . . . . . . . . . . . . . . . . . . . . . . . . .

21

2.8

Summary of Battery Chemistries . . . . . . . . . . . . . . . . . . . . . .

25

3 Experimental Results and Discussion


iv

26

3.1

Experimental Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

27

3.2

Constant Current Charging and Discharging . . . . . . . . . . . . . . . .

29

3.3

Triangular and Rectified Sinusoidal Currents . . . . . . . . . . . . . . . .

36

3.4

Pulsed Currents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

43

4 Conclusion

49

4.1

Contributions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

51

4.2

Future Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

52

A Battery Tester Circuit Design

54

A.1 Circuit Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

54

A.2 Circuit Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

55

A.3 Circuit Details . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

57

A.4 Simulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

62

A.5 Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

69

B Battery Tester Code

71

B.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

71

B.2 Matlab Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

78

References

92

List of Tables
2.1

Comparison of Secondary Batteries [27, 28] . . . . . . . . . . . . . . . . .

25

3.1

Constant Current Charge . . . . . . . . . . . . . . . . . . . . . . . . . . .

32

3.2

Constant Current Discharge . . . . . . . . . . . . . . . . . . . . . . . . .

34

3.3

1C Average Charging Current with 10%C Triangular Current Ripple . .

37

3.4

2C Average Charging Current with 10%C Triangular Current Ripple . .

39

3.5

2C Average Charging Current with 20%C Triangular Current Ripple . .

39

3.6

2C Average Charging Current with 30%C Triangular Current Ripple . .

40

3.7

2C Average Charging Current with 50%C Triangular Current Ripple . .

40

3.8

2C Average Charging Current with 1kHz Sinusoidal Current Ripple . . .

41

B.1 GUI Layout Handles . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

75

B.2 Data Structure Handles

76

. . . . . . . . . . . . . . . . . . . . . . . . . . .

vi

List of Figures
1.1

Two possible methods of interconnecting battery storage to a grid. . . . .

1.2

Characterization of switch-mode converters by current waveforms. . . . .

2.1

A typical battery model [6]. . . . . . . . . . . . . . . . . . . . . . . . . .

2.2

Schematic illustrations on the crystal structures of (a) LiCoO2 (layered


structure), (b) LiMn2O4 (spinel structure), and (c) LiFePO4 (olivine structure [9]). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2.3

Formation of the electric double layer [11]. . . . . . . . . . . . . . . . . .

10

2.4

Formation of a concentration gradient at the electrode-electrolyte interface. 12

2.5

Cell response to a step in the a) applied voltage, and b) applied current


assuming a perfectly conducting electrolyte and electrode. . . . . . . . .

2.6

EIS with no DC bias resulting in a) the measured impedance , and b) the


RC circuit that models the measured impedance. . . . . . . . . . . . . .

2.7

2.9

15

EIS for a typical electrode electrolyte interface where Rct is the charge
transfer resistance and Cd is the double layer capacitance [16]. . . . . . .

2.8

14

16

EIS for a lithium battery from [1] as a function of charge-discharge cycle


number. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

16

Electrode-electrolyte circuit model proposed by Conway [17]. . . . . . . .

17

2.10 Simplified battery equivalent circuit, ignoring diffusion rate limiting phenomena and assuming a large number of accessible active sites. . . . . . .

18

2.11 Typical charging profile for Ni-MH and Ni-Cd batteries [22]. . . . . . . .

21

3.1

30

Cell voltage response for constant current charge at 0.5C. . . . . . . . . .


vii

3.2

Predicted cell voltage waveforms during charging using internal battery


resistance to calculate IR voltage drop as function of a) battery capacity
and b) time. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3.3

31

Cell voltage response for constant current charge at 0.5C, 1C, 2C and 3C
along with the predicted voltage response. . . . . . . . . . . . . . . . . .

32

3.4

Cell voltage response for constant current discharge at 0.5C

34

3.5

Predicted cell voltage waveforms during discharge using internal battery

. . . . . . .

resistance to calculate IR voltage drop as function of a) battery capacity


and b) time. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.6

Cell voltage response for constant current discharge at 0.5C, 1C, 2C and
3C. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3.7

34

35

Cell voltage response for 1C charge with 0.1C ripple current of varying
frequencies. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

38

3.8

Effect of ripple current on cell capacity (with a DC current of 2C). . . . .

39

3.9

Cell voltage response for 2C charge with 0.5C ripple current. . . . . . . .

41

3.10 Cell voltage response for 2C charge with 1kHz ripple current . . . . . . .

42

3.11 a) Current pulse response for a 0.5C DC current with a 100ms pulse of 1C
charge current, and b) predicted cell response from Sands equation. . . .

44

3.12 Cell voltage response for a 0.5C DC current with a 100ms pulse of 1C.

44

3.13 Cell voltage response for a 0.5C DC current with a 100ms pulse of 2C.

45

3.14 Cell voltage response for a 0.5C DC current with a 10ms pulse of 1C
discharge current. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

46

3.15 Battery response to a 0.5C to 1C charge pulse of 10ms at various states


of charge. Voltage0 corresponds to the pulse response when the battery is
depleted, Voltage25 is the response when the battery is charged to 25%, etc. 47
viii

3.16 Battery response to a 0.5C to 1C discharge pulse of 10ms at various states


of discharge. Voltage0 corresponds to the pulse response when the battery
is fully charged, Voltage25 is the response when the battery is discharged
by 25%, etc. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

48

A.1 Complete schematic of the battery charging and discharging circuit. . . .

56

A.2 Current control loops. . . . . . . . . . . . . . . . . . . . . . . . . . . . .

57

A.3 DAC Battery charging mode. . . . . . . . . . . . . . . . . . . . . . . . .

58

A.4 DAC Battery discharging mode. . . . . . . . . . . . . . . . . . . . . . .

58

A.5 DAC Theory of Operation. . . . . . . . . . . . . . . . . . . . . . . . . .

59

A.6 Internal resistor ladder of the DAC. . . . . . . . . . . . . . . . . . . . . .

59

A.7 Simplified circuit used for PSpice simulations. . . . . . . . . . . . . . . .

63

A.8 Simulated circuit response of a 1A to 5A pulse. . . . . . . . . . . . . . .

64

A.9 The small signal model of the op-amp and BJT in the charging loop. . .

65

A.10 Transfer function model of a feedback controller. . . . . . . . . . . . . . .

65

A.11 Bode plot of the op-amp open loop gain. . . . . . . . . . . . . . . . . . .

67

A.12 Bode plot of the feedback loop (H(s)) for 1A (blue), 5A (green), 10A (red)
and 14A (teal) currents. . . . . . . . . . . . . . . . . . . . . . . . . . . .

68

A.13 Experimental circuit response of the uncompensated charging loop showing output current oscillations. The second trace shows the op-amp output
and the third trace shows the resulting current. . . . . . . . . . . . . . .

69

A.14 Experimental circuit response of the compensated charging loop showing


output current response to a 1A to 10A step. The second trace shows the
op-amp output and the third trace shows the resulting current. . . . . . .

70

A.15 DAC linearity of the input signal and the resulting output current . . . .

70

B.1 Layout Hierarchy of GUI in dataloggerGUI.m . . . . . . . . . . . . . . .

73

B.2 GUI Layout of dataloggerGUI.m . . . . . . . . . . . . . . . . . . . . . . .

74

B.3 Plot Annotations in dataloggerGUI.m . . . . . . . . . . . . . . . . . . . .

78

ix

Chapter 1
Introduction
With increasing environmental concerns, a large emphasis is being placed on renewable forms of energy. The most prevalent forms of renewable energy derived from
the sun or wind are not constant and thus energy storage is required to reconcile short
as well as longer term mismatches between instantaneous energy supply and energy demand. The storage systems are charged during periods when the load demand is low
and discharged when the demand is high. There are also schemes going forward where
the cost of buying or selling energy to the grid would vary depending on the time of
day, season and location. In this case the sizing of the energy storage system and the
management of the energy transfers has to be optimized to maximize the rate of return
on the investment.
There are several means of storing energy - for example, pump storage, compressed
air in underground caverns, flywheels or electrochemical storage. Pump storage is only
practical in specific geographical areas. Flywheels are of interest but the cost of ownership
is still problematic. Electrochemical energy storage in the form of batteries is the most
common form of energy storage in use today and for the foreseeable future. The work in
this thesis will focus on electrochemical energy storage.
1

Chapter 1. Introduction

There are a number of battery technologies available on the market and each
technology has attributes as well as drawbacks. The choice of battery system ultimately
is based on a site analysis. Aside from utility applications, batteries are also used to
provide backup power for consumer applications where downtime is detrimental. This
includes Uninterruptible Power Supplies (UPS) for consumer appliances as well as for
businesses that use batteries as a means of transitioning from grid power to backup diesel
generation. Another application where an increase in battery use is seen is in hybrid and
electric vehicles. The following discussion focuses more on the use of batteries in utility
systems.
Most applications using batteries require converters to transform the power into
the needed voltage or current. Two schemes for interconnecting a battery to a grid
is shown in Fig. 1.1: Fig. 1.1(a) shows a battery connected to a bus with a floating
voltage; Fig. 1.1(b) shows a battery which is connected through a converter to a bus.
The battery in Fig. 1.1(a) is exposed to pulsed currents and the voltage of the bus
is always maintained between a lower and upper bound. Fig. 1.1(b) shows the other
extreme where the battery is connected through a converter to an intermediate DC bus.
The current supplied to or extracted from the battery is quasi-continuous and thus would
be optimal from the point of view of the battery. The choice of converter in Fig. 1.1(b)
depends to some extent on how many batteries are placed in series and parallel. These
converters will always inject AC waveforms (current ripple) into the battery but the
magnitude and frequency content of the ripple can be designed beforehand.
Battery manufacturers typically provide data sheets showing how the batteries
perform under constant current charging or discharging. They do not give any indication
on how a battery responds under pulsed current conditions which is the case in many
instances depending on the converter topology which has been implemented. It is also
known that the lifetime of a battery depends to a large extent on how the battery is

Chapter 1. Introduction

(a) Battery subjected to pulsed current

(b) Battery subjected to quasi-constant current

Figure 1.1: Two possible methods of interconnecting battery storage to a grid.

charged and discharged; pulsing is known to be detrimental to battery lifetime. Moreover, a batterys response to current pulses near a fully charged state versus a nearly
discharged state is different. Hence, in designing a controller and choosing a converter,
the dynamic conditions have to be considered for over the full operating range of the
battery. Unfortunately, there are currently no good models available that can be used to
characterize a batterys response to arbitrary charging and discharging current pulses.
Although some studies on the behaviour of batteries under pulsed currents [1, 2]
and constant current [3] exist, they deal mostly with the influence of the ambient temperature. The transient self-heating effect due to time varying current profiles is not
accounted for. Self-heating impacts the electrolyte conductivity as well as the electrochemical reaction rate at the electrode/electrolyte interfaces. Excessive heating can lead
to undesirable reactions within the battery and ultimately a reduction in the lifetime. A
model that incorporates the effect of self-heating in a rigorous manner is currently not
available.
Pulse characterization has been done [4] but in hybrid applications where the
battery is placed in parallel with a capacitor; the purpose of the capacitor is to condition
the battery current so that it sees a nearly continuous current and thus the battery
lifetime is extended. There are also studies on the effect of pulsed currents which show

Chapter 1. Introduction

the battery characteristics as the battery performance is degraded [5]. However, there has
been no notable work done in testing a battery subjected to various current waveforms,
representing the real environment.

1.1

Objectives

The objective of this thesis is to explore the impact that different current waveforms have on the behaviour of the battery. Of particular interest are the waveforms that
would be typically seen at the converter output, which are square (pulse width modulated converter with a floating bus, boost or flyback converter operating in the continuous
current conduction mode), near symmetrical triangular (buck in discontinuous, or continuous current), and rectified sinusoidal currents (high frequency link resonant converters
with the rectifier output connected across the battery). Fig. 1.2 shows the categorization of the current waveforms and associated converter type. The diagram is not meant
to provide an exhaustive treatment of all possible converter types. Nevertheless, most
waveforms can be fit into one of the aforementioned categories.
The thesis makes a contribution in terms of deepening our understanding of how
the waveform variables, (the average current, ripple frequency, and ripple amplitude)
impact the battery response assuming a steady state charging or discharging profile. To
understand how batteries behave under sudden changes in currents, pulses are also applied. The ultimate goal is to establish design guidelines for converters that are conducive
to an optimized battery performance; minimizing the number of charge-discharge cycles
for a given specification and maximizing battery lifetime.

Chapter 1. Introduction

Figure 1.2: Characterization of switch-mode converters by current waveforms.

1.2

Outline
The fundamental electrochemical concepts of an electrode-electrolyte interface are

introduced in Chapter 2. The voltage response to changes in current are described. A


simplistic physical model for the interface is introduced and used to create a simple
electrical model of the battery. An overview of the three commonly used rechargeable
batteries is also given in this chapter. In Chapter 3, test results are presented for constant,

Chapter 1. Introduction

triangular and sinusoidal current charge and discharge as well as pulsed currents. Chapter
4 summarizes the results of this thesis and areas where future work is required. The
circuit designed to create the various waveforms used to test the battery is presented
in Appendix A. The design, simulation, and the characteristics of the circuit are also
included in this Appendix. Software developed to analyze the data, along with the
associated documentation is presented in Appendix B.

Chapter 2
Introduction to Batteries
Batteries can be categorized into two groups as either primary (single use) or secondary (rechargeable) cells. Primary batteries undergo a non-reversible electro-chemical
reaction and hence are designed for single discharge purposes. On the other hand,
the electro-chemical reactions in secondary batteries are reversible allowing for multiple charge-discharge cycles. The following secondary batteries are most prevalent today:
lead-acid, nickel based, and lithium ion based batteries. This chapter will introduce some
of the basic operating principles of batteries along with specific information on these three
battery types.

2.1

Electrochemical Cell Overview


The basic structure of a battery consists of two electrodes (called the anode and

the cathode) which are separated by an electrolyte as shown in Fig. 2.1. Each of the
electrodes is connected to a current collector which is connected to the external tabs.
The current collectors are chosen such that they are chemically inactive in the operating
conditions of the battery including the voltage, pH and the species involved in the electro7

Chapter 2. Introduction to Batteries

chemical reactions. A battery operates by undergoing an oxidization reaction (an increase


in the oxidation state in which electrons are produced) at the anode. The electrons then
recombine at the cathode by a reduction reaction (a decrease in the oxidation state).
The individual reactions as well as the net reaction is a chemical change of the form
of 2-1. Unlike chemical redox (reduction/oxidation) reactions where both oxidation and
reduction occur together, an electro-chemical reaction has a partial reaction occurring
at one electrode interface and the other partial reaction occurring at the other electrode
interface. The external circuit provides the channel for electron transport.

Partial Reaction 1 : A A+ + e

(2-1)

Partial Reaction 2 : B+ + e B
Net Reaction : A + B+ A+ + B

Figure 2.1: A typical battery model [6].

The active component of the electrode is attached to the current collector. A


highly porous structure is fabricated to maximize the surface area that is exposed to the
electrolyte, thereby increasing the number of reaction sites available per unit volume.
The pores are designed such that they are large enough to allow the active species within

Chapter 2. Introduction to Batteries

the electrolyte to move freely within the pores but small enough to maximize the surface
area. The structure of these pores varies depending on the chemistry and the desired
characteristics such as cell voltage and safety. For example, in lithium ion batteries the
cathode can be a layer, spinal or olivine structure (Fig. 2.2). The anode is usually made
up of graphene. However there is ongoing research in creating new structures such as
nanowires [7, 8] which provide very high surface area at the electrolyte interface allowing
for higher currents.

Figure 2.2: Schematic illustrations on the crystal structures of (a) LiCoO2 (layered structure),
(b) LiMn2O4 (spinel structure), and (c) LiFePO4 (olivine structure [9]).

The electrolyte can be either in a liquid or solid state and is made up of free ions
that are responsible for the transfer of charge. Liquid electrolytes can be an aqueous
solution, an organic solvent, or an ionic liquid. Aqueous solutions (composed of highly
solvated ions in water) are the least viscous and provide the highest electrical conductivity. However, when the battery potential is higher than that of water (1.23V), hydrogen
or oxygen gas will evolve. Therefore, a non-aqueous solution must be used if the cell
voltage is to exceed 1.23V. Organic solvents provide a higher potential window and are
used when the voltage or potential window is too large for aqueous solutions. Ionic liquids are salts that are liquid at room temperature and have the highest viscosity of the
three types of electrolytes, and as such have a relatively low conductivity [10]. They are
primarily used in higher temperature applications (as conductivity increases at higher
temperatures) or applications where a potential window of up to 6V is needed.

Chapter 2. Introduction to Batteries

2.2

10

Electrode-Electrolyte Interface
For illustrative purposes, and for simplicity, aqueous electrolytes will be used in the

following discussion. At the electrode-electrolyte interface, an electric double layer arises


due to the presence of ions in the electrolyte and the dipole nature of water molecules
(Fig 2.3). The electrons at the surface of the electrode attract water molecules that
reorient themselves and become adsorbed onto the surface and this layer of adsorbed
ions is called the Inner Helmholtz Plane (IHP). In the electrolyte, the dissolved ions are
surrounded by water molecules, and are attracted to the surface due to the electrostatic
forces between the positive ions in the solution and the electrons at the surface of the
electrode. The first layer of attracted cations in the electrolyte form a layer known as
the Outer Helmholtz Plane (OHP). These two planes form the electrical double layer.

Figure 2.3: Formation of the electric double layer [11].

Consider the case of a silver electrode in an aqueous silver nitrate electrolyte. At


the electrode, the silver atoms exist in a solid state (Ag(s) ) while the electrolyte consists
+
of silver ions (Ag(aq)
). The reduction potential is the tendency of the species to be reduced

Chapter 2. Introduction to Batteries

11

(gain an electron), and in the case of silver, 2-2, this potential is +0.799V.

Ag+
(aq) + e Ag(s)

(2-2)

This potential drop is seen across the electrode-electrolyte interface and leads to an interfacial electric field and the formation of the electrical double layer. Inside the battery, two
such double layers are formed (one at the anode and one at the cathode) and the summation of these double layer voltages give rise to the open cell potential when measured
externally.
Inside a battery, the movement of ions in the electrolyte is governed by two forces:
the electric field and the concentration gradient. When no external forces are applied, the
ions in solution are equally distributed in the electrolyte except in the region in very close
proximity of the electrodes. However, when an external current is applied, a concentration
gradient appears well beyond the interface. Consider the electroplating of silver (2-2)
where an external power supply is connected at time t=0. At t=0 , the concentration
+
of Ag(aq)
at the surface is 0 (as silver is in its solid form on the electrode), while it

is uniformly distributed in the electrolyte. At t=0+ , the ions immediately adjacent to


+
the electrode begin to be electroplated, reducing the concentration of Ag(aq)
near the

surface. This leads to diffusion which brings additional silver ions to the electrode.
At equilibrium, this produces a concentration gradient where the concentration at the
surface is at 0, while in the bulk (sufficiently far from the surface) the concentration is
unaffected, as shown in Fig. 2.4. The region where the concentration gradient appears
is called the diffusion layer.
In the example above, the system changed from that of one where the concen+
tration of the Ag(aq)
adjacent to the surface was the same as the bulk to one where the

ions have a lower concentration immediately adjacent to the surface. This has the effect
of increasing the width and changing the capacitance of the electric double layer. The
current that is responsible for the charging and discharging of the double layer is referred

12

Chapter 2. Introduction to Batteries

Figure 2.4: Formation of a concentration gradient at the electrode-electrolyte interface.

to as the non-Faradaic current, double layer current, or displacement current and does
not involve any chemical reactions and hence no electron transfer. Faradaic current is
the term given to the current caused by a chemical reaction in which electron transfer
occurs at the surface of the electrode. Continuing with the electroplating example, at
t=0 there is no current in the system. At t=0+ , a faradaic current begins to flow which
causes the electroplating as well a non-faradaic current which is responsible for the change
in the double layer. When the concentration gradient reaches an equilibrium, only the
faradaic current is present. Hence the non-faradaic current is in response to the change
in potential at the electrode.
Two methods, which are duals of each other, are possible for powering a cell:
apply a voltage source or apply a current source. For simplicity, if a planar electrode
(and hence a one dimensional system) is used , an externally applied potential step results
in an output current whose limits are governed by Cottrells equation [12, p. 239]
i=

nF C D1/2
t1/2

(2.1)

where n is the number of electrons per atom, F is Faradays constant, C is the concentration of the species in the bulk, D is the diffusion coefficient and t is the time.
It is assumed that there is no external resistance and that the electrolyte is a perfect

13

Chapter 2. Introduction to Batteries

conductor. This results in a maximum possible current that it shown in Fig. 2.5(a). Immediately after the potential is applied, the theoretical maximum current goes to infinity
due to the high concentration of the electrochemically active species at the electrode
species. As the concentration gradient is formed, this current drops off to a steady state
value which is limited by the transport of new ions to the electrode from the electrolyte.
When a current step is applied externally such that the current is higher than the
maximum amount sustainable, a similar result occurs (Fig. 2.5(b)) and is governed by
Sands equation [13]:
i 1/2 =

nF C D1/2 1/2
2

(2.2)

The time when the species at the electrolyte surface reaches zero (i.e. the current is no
longer sustainable) is labelled as (refer to Fig. 2.5(b)). The value of is experimentally
determined and is a function of the applied current. When the current is applied, a
potential change occurs across the interface and starts the electroplating process. As the
concentration gradient forms, the potential at the interface increases slightly to promote
the charge transfer, until the concentration gradient is fully formed. This occurs when
the required current is greater than the rate at which the active species at the surface is
replenished by diffusion. At this time, the interfacial potential increases rapidly until new
and often undesirable reactions, such as the evolution of hydrogen gas, are promoted.
Although Cottrells equation and Sands equation are for one dimensional flow,
they can still be applied to batteries where although the surface is porous and nonplanar, the flow is mostly limited to one direction. The equations govern the diffusion
limiting constraints for the current at each electrode. Cottrells equation shows that
one can, in theory, impose a large current, but for a short duration. Sands equation
on the other hand describes the effect of this large current on the potential across the
electrode-electrolyte interface. It also gives the maximum duration this current can be
imposed before unwanted reactions begin to occur. Beyond this duration, the faradaic

14

Chapter 2. Introduction to Batteries

current disappears (due to the diffusion limitation) and the current goes towards charging
the double layer to a higher voltage until new unwanted chemical reactions occur. For
example, given a system where the maximum DC current is 1A, one can, ignoring all
losses, apply a current pulse larger than this provided the duration of the pulse is shorter
than the time constant . For illustrative purposes, assume a pulse of 10A is applied, and
the value of is measured to be 4s. Then, using Sands equation, one can calculate that
a pulse of 20A can be applied for 1s. Alternatively, any other pulse current durations
are possible so long as the product of i 1/2 , which is a constant for a given system, is
satisfied.

(a) Response of Cottrells equation

(b) Response of Sands equation

Figure 2.5: Cell response to a step in the a) applied voltage, and b) applied current assuming
a perfectly conducting electrolyte and electrode.

15

Chapter 2. Introduction to Batteries

2.3

Electrochemical Impedance Spectroscopy


Electrochemical Impedance Spectroscopy (EIS) is a small signal perturbation

technique used to characterize electrochemical systems by superimposing an AC signal, which is frequency swept, on a DC signal and measuring the resulting small signal
AC impedance. The measured impedance is broken into its real and imaginary components and these components are plotted against each other. The shape of the impedance
can then be used to create a circuit model for a particular DC operating point. For
example, a parallel combination of a resistor and capacitor produces a half-circle in the
impedance spectroscopy plot as shown in Fig. 2.6. A typical electrode interface produces
an impedance similar to the one shown in Fig. 2.7, and a typical EIS for a lithium ion
battery is shown in Fig. 2.8. The diagonal line is due to diffusion limits and is modelled
by the Warburg impedance [14] (ZW in the figure).

(a) Impedance [15]

(b) Circuit Model

Figure 2.6: EIS with no DC bias resulting in a) the measured impedance , and b) the RC
circuit that models the measured impedance.

Chapter 2. Introduction to Batteries

16

Figure 2.7: EIS for a typical electrode electrolyte interface where Rct is the charge transfer
resistance and Cd is the double layer capacitance [16].

Figure 2.8: EIS for a lithium battery from [1] as a function of charge-discharge cycle number.

17

Chapter 2. Introduction to Batteries

2.4

Battery Model
Assuming no diffusion rate limits and a large fraction of accessible active sites,

the battery can be modelled in circuit form using the circuit proposed in [17] (Fig. 2.9).
Cdl represents the double layer capacitance across the interface while Rs models the
resistance of the electrolyte. The faradaic reaction that takes place at the interface is
modelled as a series combination of Rf and C . Rf represents the faradaic resistance
and can be calculated from the slope of the applied overpotential to the current in the
Butler-Volmer equation [18, 19]. The pseudo-capacitance that arises from the faradaic
current is C [17].

Figure 2.9: Electrode-electrolyte circuit model proposed by Conway [17].

A battery model can be constructed by utilizing the above interfacial model as


shown in Fig. 2.10. The added resistors RCC

Cathode

and RCC

Anode

represent the energy

lost between the active electrode sites and the external battery terminal. This also
accounts for the fact that the current flowing into the porous electrode material is flowing
through a network and thus the effective cross section for the current flow is restricted.
Hence the effective resistance from the interface to the collector is high. It is important
to note that the values of the capacitors and resistors in the circuit models are a function
of the operating point (the DC current, temperature, state of charge, etc.). Also the
values for the anode are not necessarily the same as that of the cathode.

Chapter 2. Introduction to Batteries

18

Figure 2.10: Simplified battery equivalent circuit, ignoring diffusion rate limiting phenomena
and assuming a large number of accessible active sites.

2.5

Lead Acid
Lead acid batteries were the first type of rechargeable batteries and were invented

by Gaston Plante in 1859. The half cell reactions and the overall reaction for the lead
acid battery is shown in 2-3. When fully charged, one electrode is lead while the other
is lead dioxide. As the battery is discharged, both electrodes are converted into lead
sulphate. Also, from the chemical formula, we see that the acidity of the sulphuric acid
is reduced (due to the hydrogen sulphate being consumed). The solvating of compounds
decreases the freezing point of water (know as freezing point depression). Therefore, the
electrolyte in a fully discharged battery has a higher freezing point and can be prone to
freezing during cold temperature operation.

Chapter 2. Introduction to Batteries

+
discharge: Pb + PbO2 + 2 HSO
4 + 2 H 2 PbSO4 + 2 H2 O

19

(2-3)

anode: Pb + HSO
4 PbSO4 + H + 2 e
+

cathode: PbO2 + HSO


4 + 3 H + 2 e PbSO4 + 2 H2 O

The two main types of lead acid batteries are flooded and valve regulated. Flooded
batteries, the earliest type, required constant maintenance. Electrolysis of water in the
electrolyte occurs when the battery is overcharged, resulting in the removal of water from
the battery. Therefore, it is necessary to check the electrolyte level on a regular basis and
add water to the battery as needed. Valve regulated lead acid (VRLA) batteries are also
known as maintenance free batteries since they contain catalysts that promote hydrogen
and oxygen to recombine and form water.
As lead acid batteries have been in use for over a century, their cost is considerably
less than other rechargeable batteries. Also many variations in cell structures are available
for use in either high power applications or as a high energy density variant. However,
due to their weight, their relative energy and power densities compared to newer battery
chemistries remain low. The weight also limits the use of this type of battery to stationary
applications where this is not an issue. The only notable exception is their widespread
use in automobiles.

2.6

Nickel Based Batteries


The first appearance of nickel based batteries were in the form of nickel-cadmium

(Ni-Cd). The half cell reactions and the overall reaction for Ni-Cd batteries is shown
in 2-4. Unlike the lead-acid batteries of the time, these batteries were sealed and did
not require any maintenance. As Ni-Cd batteries were lighter than lead-acid batteries of

20

Chapter 2. Introduction to Batteries

similar capacity, they had a higher energy density and therefore were favoured in portable
applications. Due to the presence of cadmium (a toxic heavy metal) these batteries
present an environmental hazard. Ni-Cd batteries exhibit a phenomenon known as the
memory effect wherein a battery that is not fully discharged for extended periods of time
loses some of its capacity - the nickel electrode undergoes a change in its structure if left
charged and this reduces the available capacity of the cell [20].

discharge: Cd + 2 NiO(OH) + 2 H2 O Cd(OH)2 + 2 Ni(OH)2

(2-4)

anode: Cd + 2 OH Cd(OH)2 + 2 e
cathode: 2 NiO(OH) + 2 H2 O + 2 e 2 Ni(OH)2 + 2 OH
The cadmium was replaced by alloys capable of absorbing the hydrogen atoms,
leading to the development nickel-metal hydride (Ni-MH) batteries (2-5). The composition of the hydride forming alloy (the active material of the anode) influences the
performance of the battery including the voltage profile and the energy density [21].

discharge: MH + NiO(OH) M + Ni(OH)2

(2-5)

anode: MH + OH H2 O + M + e
cathode: NiO(OH) + H2 O + e Ni(OH)2 + OH
Both Ni-Cd and Ni-MH batteries have similar charge characteristics (including
voltage and temperature profiles). They can be charged with the same charger [22]. There
are two types of chargers that are available for consumer applications: slow chargers and
fast chargers. The older devices, slow chargers, work by charging the battery at a low
current for a fixed period of time. These chargers do not have any sensors to monitor the
battery and will continue to charge the battery even when the battery is fully charged.

Chapter 2. Introduction to Batteries

21

The excess charge is converted into heat and can damage the battery. Fast chargers
have sensors that determine when the battery is fully charged. Although many different
charging algorithms have been proposed [23, 24], they all rely on monitoring either the
voltage or the temperature. As the battery is charged, the cell voltage rises until the cell
is fully charged. after which the voltage actually begins to drop and the temperature
rises sharply (Fig. 2.11) as the energy used to charge the battery is converted into heat.
By detecting either the negative voltage change or the sharp increase in temperature, the
chargers are designed to prevent the batteries from being overcharged.

Figure 2.11: Typical charging profile for Ni-MH and Ni-Cd batteries [22].

2.7

Lithium Based Batteries


The use of lithium-ions for energy storage was first reported in a paper in 1976

[25]. Lithium appeared as a promising means of storing energy, as lithium is relatively


light (being the third element on the periodic table) and is the strongest reducing agent
(releasing the most energy during oxidation), thus giving it a high energy to weight ratio.
The high reactivity also makes lithium a more difficult material to use compared to other
battery chemistries. When exposed to moisture in the air, lithium reacts violently with
the water molecules. Therefore, special consideration must be made when storing lithium.
Also, for commercial batteries using this technology, the structural integrity of the cell

Chapter 2. Introduction to Batteries

22

must be considered to ensure the cell remains sealed when damaged.


The anode of a lithium battery typically consists of lithium atoms stored between
sheets of carbon graphite through a process knows as intercalation. When surrounded
by carbon this way, the lithium remains stable, as it is isolated and cannot participate
in reactions. In the cathode, the lithium is intercalated through a more complex porous
structure (Fig. 2.2). The first commercialized lithium-ion batteries used lithium cobalt
oxide, as well as manganese dioxide and iron phosphate. The transitional metal at the
cathode is reduced to a lower oxidation state during discharge, with the electron being
supplied by lithium. The half-cell reactions as well as the total reaction is shown in 2-6.

discharge: xLi(graphite) + Li1x CoO2 LiCoO2

(2-6)

anode: xLi(graphite) xLi+ + xe


cathode: Li1x CoO2 + xLi+ + xe LiCoO2
Further research efforts continue to develop new cathode materials containing
different transitional metals and structures. These are designed by various manufacturers and are tuned for the cell voltage, safety and weight restriction of the application.
These metals can be mixed together to form such electrodes as LiCo1/3 Ni1/3 Mn1/3 O2 ,
LiNi1/2 Mn1/1 O2 , or any other conceivable combination.
As the open cell voltage can vary between 3V up to 4.2V, depending on the
electrode materials, aqueous electrolytes cannot be used since water electrolyses at 1.23V.
Therefore, lithium salts such as LiPF6 and LiBF4 dissolved in organic solvents are used.
The high cell voltage, in conjunction with the organic electrolyte, cause the formation
of a Solid Electrolyte Interface (SEI). The SEI layer forms during the first few charging
cycles of the cell. The SEI forms a solid coating at the anode which is actually beneficial
because it creates a protective barrier around the graphite. However, the SEI layer is

Chapter 2. Introduction to Batteries

23

porous enough to allow lithium ions to pass through while adding only a slight internal
resistance. When cells are overcharged, unwanted growth of the SEI layer occurs which
increases the resistance of the cell.
The biggest issue with lithium-ion batteries are their delicate range of operation.
Care must be taken during charging and discharging to ensure that the battery is not
pushed to its limits (especially high currents which can lead to cell heating). In consumer
electronics, this is usually done by on-board electronics outside the individual cells but
integrated into the overall battery unit. Since batteries can be made up of multiple cells,
each cell must have its own monitoring circuit, which adds to the weight and size of the
battery.
Overcharging a cell can cause problems at both the electrodes. At the anode,
overcharging causes a build up of electrons on the graphite layer with the lithium ions
forming a plate over the anode as they are unable to enter the graphite. The excess
electrons can freely interact with the electrolyte, and in particular the oxygen available
in the organic electrolyte compounds. The availability of excess electrons, oxygen and
lithium ions promotes the formation of lithium oxide that coats the electrode surface
through a non-reversible reaction reducing the overall capacity of the battery. At the
cathode, as the cell is overcharged, oxidization of the transitional metal occurs. For some
transitional metals, this process is relatively safe; however, for high voltage and high
energy storage batteries, this can be a problem. For example, in LiCoO2, the cobalt
changes from a 3+ oxidization state to 4+, which is unstable. According to [26], the
reversibility of Lix CoO2 is generally good, but it degrades rapidly when x is near 0.5.
Therefore, the cathode should not be oxidized to a point where more than half of the
cobalt cells are in the 4+ oxidation state. This principle holds for other materials as well,
although the value of x varies depending on the metal type. In the experiments carried
out in [26], cell temperatures increased during overcharging, speeding up the oxygen

Chapter 2. Introduction to Batteries

24

liberation reaction (as cobalt oxidized from 4+ to 3+) at the cathode even more. This
oxygen is then free to react with the lithium causing further increases to the temperature.
If not caught quickly enough, this results in thermal runaway.
As with overcharging, deep discharge of the battery is a problem. During deep
discharge, a lack of sites for the lithium to be inserted into can cause the following
reaction:
LiCoO2 (s) + Li+ + e CoO + Li2 O
Although this is not as dangerous as the overcharging situation, the reaction converts
the cathode into an inert species, reducing the capacity of the battery. Also, during
deep discharges, the monitoring circuit for the cell can permanently shut down the cell
if the voltage drops below a threshold, as a low voltage indication can be a sign of other
problems such as an internal short circuit. As a precautionary measure, the cell is shut
down.
As lithium is intercalated in the anode and cathode for safety, this produces
a bottle neck for high power applications, as the current is limited by how fast the
lithium can be removed and inserted. Recent developments in nanostructures for use in
manufacturing electrodes (which increase the surface area of the electrode) have improved
the rate of lithium extraction and insertion.

25

Chapter 2. Introduction to Batteries

2.8

Summary of Battery Chemistries


For comparison purposes, a summary of the characteristics of commonly used

rechargeable batteries is presented in Table 2.1


Table 2.1: Comparison of Secondary Batteries [27, 28]

Lead Acid

N iCd

N iM H

Lithium Ion

Nominal Cell Voltage (V)

1.25

1.25

3.6

Energy Density (Wh/kg)

30-50

45-80

60-120

110-160

Energy Density (Wh/L)

60-90

50-150

140-300

210-270

Power Density (W/kg)

180

150

250-1000

1800

Cycle life

200-300

1500

300-500

500-1000

Self Discharge(%) per Month

20

30

10

Self discharge in batteries in can be caused by three mechanisms [29]. Immediately after the battery is charged, the over-potential needed to form the double layer is
dissipated across the faradaic resistor. This process occurs until the over-potential goes
to zero. The second mechanism of self discharge is caused by redox reactions occurring
at an electrode/electrolyte interface in the presence of impurities. If these impurities are
easily reduced/oxidized by the potentials across the interface, then they form a redox
shuttle that diffuse between the two electrodes. These redox shuttles preform the role
of electron transport. The final mechanism that causes self-discharge is internal short
circuits caused by an improper separation of the two electrodes.

Chapter 3
Experimental Results and Discussion
In real world applications, the battery load can be considered to be a combination of a steady state characteristic and a superimposed transient characteristic. It is
convenient to characterize the steady state component in terms of belonging to one of
the following class of loads: constant resistance load, constant current load, or constant
power load. On the other hand, the transient load in most cases must be established on
a case by case basis.
As previously mentioned in the Introduction, the most common charging/discharging strategy is to simultaneously control the current and monitor the voltage to
ensure that the battery state of charge remains bounded; not excessively overcharged
or discharged. There have been many articles written describing how batteries should
be charged or discharged. These methods are similar in many respects but the design
approaches taken have been by and large heuristic since the details of the battery model
are still not well understood. As mentioned earlier, batteries prefer to be charged or
discharged at a constant rate but can tolerate slow changes from one rate of current
charge/discharge to another. Bounds on acceptable rates are currently established on
the basis of a qualitative analysis.
26

Chapter 3. Experimental Results and Discussion

27

The circuits used to control the current are for the most part switch-mode power
supplies. The use of these power supplies ensure that the efficiency of the conversion
process remains high. As described in the introduction and shown in Fig. 1.1, there
are many switch-mode power supplies on the market so to focus on just one circuit is
not warranted. However, it can be stated that the current waveforms produced by these
power supplies generally fall into one of the following classes: pulsed square current,
triangular current and rectified sinusoidal current. The average current produced by
these power supplies can be controlled so what is important is the width of the pulses,
the amplitude of the pulses and the repetition rate of the pulses. This information would
be used to characterize the steady state operation of the battery.
Transient behaviour cannot be characterized as easily and so for the time being we
inject a square pulse of specific amplitude and pulse width and observe how the battery
behaves.

3.1

Experimental Setup
To understand the behaviour of batteries subjected to different current waveforms,

a battery tester circuit was first built. As the experiments were to be carried out on AA
batteries, we only needed a low current experimental setup (around 15A maximum).
Although a switch mode supply could have been built, the linear amplifier was easier to
design for our purposes and the efficiency of the power supply was not an issue. The
circuit was designed to provide a) constant current, b) triangular and rectified sinusoidal
currents of varying frequency, amplitude and ripple and c) pulsed currents. The circuit
was also designed for both charging and discharging of the battery. Complete circuit
details including simulations and circuit behaviour can be found in Appendix A.
Data collection was done using an 8 channel synchronously sampled Agilent data

Chapter 3. Experimental Results and Discussion

28

logger. The data logger consists of two data samplers (model U2542A1 ), each capable of
four channel analog inputs with a sampling rate of 500KSa/s and a 16-bit resolution. The
acquisition cards were connected to the circuit using a terminal block (model U2901A2 ).
The cards were housed in a six slot chassis (model U2781A3 ) which was connected to a
computer along with the provided customized software. The sampling rate can be varied
from 1Sa/s up to 500KSa/s with the number of samples varying from 1 to 2, 000, 000.
The custom software from Agilent allowed the acquisition to be controlled by a
pulse from an external source (the FPGA on the battery tester circuit in this case refer to AppendixA). The leading edge of the pulse triggers data acquisition at the set
sampling rate and the number of samples specified in the software. After the data is
acquired, it is then stored in a .csv file format and the data logger waits for the next
sampling pulse. Due to limitations in the processing of the data, the next sampling pulse
cannot be sent until the previous data is written to the hard drive. This writing time
varies linearly with the number of data points per sample. If, however, a sampling pulse
is sent before the system is finished with the previous set of data, the pulse is simply
ignored by the data logger.
A MATLAB GUI was coded in order to process the acquired data. The GUI
is able to display the waveforms against time or other waveforms, or the instantaneous
power over time. The GUI is also capable of overlapping the pulses on top of each to
make comparisons easier. The details of the MATLAB code can be found in Appendix B.
As we wanted to be able push the battery to its limits (in terms of applied current) while keeping the current relatively low (to reduce component size), AA rechargeable batteries were chosen. Currently, the two main types of rechargeable batteries are
1

http://www.home.agilent.com/agilent/product.jspx?cc=CA&lc=eng&ckey=1250149&nid=35073.739736.00&id=1250149
2
http://www.home.agilent.com/agilent/product.jspx?cc=CA&lc=eng&nid=35075.384475&pageMode=OV&cc=CA&lc=eng
3
http://www.home.agilent.com/agilent/product.jspx?nid=-33621.0.00&cc=CA&lc=eng

29

Chapter 3. Experimental Results and Discussion

lithium-ion and nickel based. As lithium batteries have a stricter range of operation and
are more dangerous if overcharged, Ni-MH batteries were chosen (specifically Energizer
NH15-2300mAh4 due to their availability). The experiments were conducted on a cell
and repeated to verify the results. As batteries lose capacity with each charge/discharge
cycle, the cells were replaced after a few tests.
Since batteries come in different sizes, it is not practical to compare batteries of
different sizes at the same current. A scaling of the battery is done using the C-rate
to normalize the charging/discharging current to the battery capacity such that at 1C
current, a battery is fully charged/discharged in one hour. The current at any given
C-rate is the current needed to fully discharge the battery in

1
C

hours assuming no loss

in battery capacity. Therefore, for a battery rated at 1Ah, the 1C and 2C charging rates
are 1A and 2A, respectively, while a battery rated at 2Ah has a 1C current of 2A.

3.2

Constant Current Charging and Discharging


Constant current waveforms were first applied to the battery for the purpose of

understanding the battery response including the voltage profile, variations in the internal resistance and variations in the cell capacity at different currents. As battery
capacity decreases with increased current, a charging rate of C/2 was used as the control
current to determine the capacity of the battery and to confirm the manufacturers claim
of 2300mAh. When charging the battery, the tests were terminated when the battery
reached full charge as indicated by either a negative delta V or once the cell voltage
reached 1.6V (higher voltages promote the decomposition of water and the evolution of
hydrogen and oxygen gases). The resulting cell voltage for C/2 during constant charging
is plotted in Fig. 3.1. At this charging rate, the battery capacity is 101% of the manu4

http://data.energizer.com/PDFs/nh15-2300.pdf

Chapter 3. Experimental Results and Discussion

30

facturers claim, and the error can be attributed to the need to overcharge the battery
in order to get the negative delta V.

Figure 3.1: Cell voltage response for constant current charge at 0.5C.

For higher currents, we can make a prediction of the waveforms by using a shift
in the voltage that corresponds to the internal resistance of the battery. In this case,
the battery has an internal resistance of 40m (given by the manufacturers datasheet)
and by shifting the voltage of the C/2 charge rate results one obtains the plot in Fig.
3.2. From this, we can see that as the current increases, the 1.6V cutoff voltage should
come into effect before the battery is fully charged and hence a decrease in cell capacity
is expected. The figure shows that the cutoff voltage 1.6V is reached at about 92% at
1C and 65% at 2C.
The experimental results verify the prediction of the voltage shift caused by the
internal resistance. The experimental waveforms are seen in Fig. 3.3 and a summary
of the results is given in Table 3.1. Note that before each run, the battery was fully
discharged using a rate of C/2 to ensure similar starting states. The measured cell
temperatures (using a temperature gun) are also included in the table. The values
were recorded near the midpoint of the charge. However, there is an uncertainty on

Chapter 3. Experimental Results and Discussion

(a) Percentage of Cell Capacity

31

(b) Time Scale

Figure 3.2: Predicted cell voltage waveforms during charging using internal battery resistance
to calculate IR voltage drop as function of a) battery capacity and b) time.

determining the midpoint as it was based on the predicted waveforms. Also, the battery
heats up over the duration of each test. Therefore, the temperature values presented
may be slightly underestimated and may not represent the steady state value for a given
charge/discharge cycle. For this set of tests, only the C/2 rate of charge showed the
negative delta voltage to indicate a complete charge, while the others were limited by
the cutoff voltage. The results show that there is a large drop in the capacity when
the charging current increases and the battery is only charged to a third of its capacity
during a 3C rate. This is the main reason why quick chargers often charge a battery at
a fast rate (to allow for quick partial charging) followed by a slower rate to insure that
the battery is fully charged. The slow charge allows active sites deep in the pores to be
populated and is used after most of the readily accessible surface sites are populated.
The results show a much higher capacity than was predicted and this can be
attributed to the battery temperature. At the 3C charge rate, the battery temperature
was observed to rise to 46 C and this rise in temperature would result in a decrease of
the internal resistance of the battery. A similar, albeit smaller, increase in temperature
was observed for the other charging currents. This results in a lower battery voltage
(as shown in Fig. 3.3), attributed to a drop in the voltage across the electrolyte region,

32

Chapter 3. Experimental Results and Discussion

(a) 0.5C Charge

(b) 1C Charge

(c) 2C Charge

(d) 3C Charge

Figure 3.3: Cell voltage response for constant current charge at 0.5C, 1C, 2C and 3C along
with the predicted voltage response.
Table 3.1: Constant Current Charge

Current

T ime Capacity

Capacity

Energy

Vavg

Rint

T emperature

(C-rate)

(A)

(s)

(mAh)

(%)

(kJ)

(V)

(m)

( C)

0.5

1.099

7633

2330

101.3

12.27

1.463

40

27

2.230

3409

2112

91.8

11.30

1.487

35

36

4.570

1392

1767

76.8

9.818

1.543

31

43

6.790

406

766

33.3

4.370

1.585

30

46

thus allowing the battery to charge for a longer time before the cutoff voltage is reached,
giving rise to the higher than predicted capacity. By curve fitting the predicted charge

Chapter 3. Experimental Results and Discussion

33

profile to the experimental results, the internal resistance of the battery was calculated.
The results are included in Table 3.1. It is important to note that this does not take
into account the thermal time constant (since the battery is at room temperature at the
start of the test and rises to near steady state a specific time later). We assume that this
thermal time constant is much smaller than the charge time.
A similar experiment was carried out for constant current discharge, where the
tests were terminated once the cell voltage reached 0.9V . The results from the C/2 discharge current (Fig. 3.4) show that the voltage of the battery remains fairly constant
until approximately 80% of discharge, at which point it falls relatively quickly. This
is in contrast to the charging profile, where the battery voltage showed a steady climb
from around 50% charge. Also, we see that during charging, the voltage of the battery
(at the midpoint of charge) was around 1.45V which is only 0.15V from the cutoff voltage, whereas during discharge, the midpoint voltage of 1.25V is 0.35V from the cutoff.
Therefore, we can expect higher discharge currents to be possible, or in this case, a higher
cell capacity. Using only the internal resistance, the predicted waveforms for the higher
currents were calculated (shown in Fig. 3.5). The waveforms indicate that even at a 3C
discharge, we should see around 95% of the cell capacity.
The results of the constant current discharge (voltage profiles are plotted in Fig.
3.6) confirm the predicted cell capacity. As with the charging current, a decrease in
capacity is observed as the current increases, but the decrease is not as significant as in
the charging case and we see a loss of only 10% capacity at 3C. Higher currents were
not tried due to the battery exceeding the manufacturers recommended temperature at
a 3C charging/discharging rate. The summary of the results for the constant discharge
is given in Table 3.2.

34

Chapter 3. Experimental Results and Discussion

Figure 3.4: Cell voltage response for constant current discharge at 0.5C

(a) Percentage of Cell Capacity

(b) Time Scale

Figure 3.5: Predicted cell voltage waveforms during discharge using internal battery resistance
to calculate IR voltage drop as function of a) battery capacity and b) time.
Table 3.2: Constant Current Discharge

Current

T ime Capacity

Capacity

Energy

Vavg

Rint

T emperature

(C-rate)

(A)

(s)

(mAh)

(%)

(kJ)

(V)

(m)

( C)

0.5

-1.164

6830

2208

96.0

9.879

1.243

40

28

-2.230

3510

2198

95.5

9.478

1.198

35

39

-4.536

1715

2161

94.0

8.812

1.133

30

49

-6.860

1077

2052

89.2

7.800

1.056

30

56

Chapter 3. Experimental Results and Discussion

(a) 0.5C Discharge

(b) 1C Discharge

(c) 2C Discharge

(d) 3C Discharge

35

Figure 3.6: Cell voltage response for constant current discharge at 0.5C, 1C, 2C and 3C.

Chapter 3. Experimental Results and Discussion

3.3

36

Triangular and Rectified Sinusoidal Currents


To understand the effect of switch mode converters (and in particular the inductor

shaping of the output current) on the cell performance, triangular current waveforms were
applied to the cell. The first set of tests were performed with a fixed ripple current and
the ripple frequency was varied to determine any frequency dependence of the cell. As
seen in the previous section, a charge rate of C/2 had a negative delta V to indicate
a complete charge. However, this negative delta V would be difficult to detect with a
varying current, so a charge rate of 1C was used as this does not contain the negative
delta V while maintaining a high cell capacity. A ripple current of 0.1C (resulting in a
peak to peak of 0.2C) was chosen for the initial tests.
The results (summarized in Table 3.3) show that when the ripple amplitude is kept
constant the cell has a higher capacity with increasing frequency. The main reason for
this can be explained by the decreasing voltage ripple with increasing frequency (shown
in Fig. 3.7). From the double layer discussion from Chapter 2 (and in particular the
Sands equation), we saw that when the current is not limited by diffusion, a large current
can be applied for a short period of time. Therefore, if the cell does not have time to
react to the change in concentration gradient, there will be no potential change across
the interface. This is reflected in the voltage ripple caused by the current ripple (or the
effective impedance of the current ripple), which decreases with increasing frequency.
From the constant current experiments, we know that the cell is capable of delivering a
3C constant current and hence is not diffusion limited in this set of tests (which have a
DC current of 1C). As we are not diffusion limited, another way of looking at this is by
considering the EIS of the double layer and noting that at higher frequencies the double
layer capacitor is a short circuit. From the experimental results, we see that that above
a frequency of around 5kHz, the battery characteristics are dominated by the electrolyte
resistance.

37

Chapter 3. Experimental Results and Discussion


Table 3.3: 1C Average Charging Current with 10%C Triangular Current Ripple

F requency

ipkpk

vpkpk

Impedance Capacity

Energy

(Hz)

C-rate (mA)

(mV)

(m)

(%)

(kJ)

0.2

595

23

39

79.9

9.511

10

0.2

585

18

33

81.6

9.795

100

0.2

567

17

33

82.4

9.714

1000

0.2

572

16

28

84.9

9.967

5000

0.2

588

16

27

85.4

10.01

10000

0.2

555

15

27

86.2

10.12

DC

91.8

11.30

The commonly seen current waveforms can be broken down into a Fourier series;
higher frequency components decay rapidly. At higher frequencies, the ripple current has
less of an impact on the voltage ripple across the interfacial layer. Therefore only the lowest frequency component of the ripple, below 5 kHz for the battery under consideration,
needs to be accounted for. The ripple current component introduces an additional rms
heating term which has an impact on temperature and indirectly impacts the electrolyte
resistance (decreases with increasing current) and to some extent decreases the faradaic
current.
The DC current was next increased to 2C to understand its effect on the cell
while maintaining the same ripple current. From the results (shown in Table 3.4), the
ripple frequency did not play a major factor. In these set of tests, with the exception of
the 1Hz ripple, the voltage ripple and hence the impedance remained relatively constant
throughout the frequency range. The probable explanation for the constant impedance
is the cell heating caused by the high DC current. As the temperature increases at
higher currents, the mobility of species in the electrolyte increases. This decreases the

Chapter 3. Experimental Results and Discussion

(a) 1Hz ripple

(b) 10Hz ripple

(c) 100Hz ripple

(d) 1kHz ripple

38

Figure 3.7: Cell voltage response for 1C charge with 0.1C ripple current of varying frequencies.

cell electrolyte resistance. Therefore, at these frequencies, the heating of the cell from
the high current had the largest influence on the cell impedance, resulting in virtually no
frequency dependence.
Using a DC current of 2C, the current ripple was increased from 0.1C to 0.2C,
0.3C and 0.5C. As expected, there was only a slight frequency dependence for a fixed
ripple current, but the capacity decreased as the ripple current was increased as shown
in Fig. 3.8. The main reason for this is that the higher ripple current results in a higher
voltage ripple, which leads to the voltage cutoff of 1.6V coming into effect before the cell
is fully charged. Also, similar to the low current tests, the battery waveforms (in Fig.
3.9) show that there is no noticeable phase shift between the current and the voltage.

39

Chapter 3. Experimental Results and Discussion


Table 3.4: 2C Average Charging Current with 10%C Triangular Current Ripple

F requency

ipkpk

vpkpk

Impedance Capacity

Energy

(Hz)

C-rate (mA)

(mV)

(m)

(%)

(kJ)

0.2

575

15

27

73.2

8.513

10

0.2

566

13

24

73.1

8.472

1000

0.2

569

15

26

75.5

8.642

10000

0.2

590

13

23

71.2

8.300

DC

76.8

9.818

A summary of the results is presented in Tables 3.5 (for 0.2C ripple), 3.6 (0.3C ripple),
and 3.7 (0.5C ripple).

Figure 3.8: Effect of ripple current on cell capacity (with a DC current of 2C).

Table 3.5: 2C Average Charging Current with 20%C Triangular Current Ripple

F requency

ipkpk

vpkpk

Impedance Capacity

Energy

(Hz)

C-rate

(A)

(mV)

(m)

(%)

(kJ)

0.4

1.04

28

27

65.2

7.698

10

0.4

1.05

26

25

66.2

7.809

1000

0.4

1.03

23

23

68.6

8.124

40

Chapter 3. Experimental Results and Discussion


Table 3.6: 2C Average Charging Current with 30%C Triangular Current Ripple

F requency

ipkpk

vpkpk

Impedance Capacity

Energy

(Hz)

C-rate

(A)

(mV)

(m)

(%)

(kJ)

0.6

1.47

38

26

60.7

7.290

10

0.6

1.48

38

26

58.3

7.035

100

0.6

1.50

33

22

64.6

7.779

1000

0.6

1.51

34

22

61.6

7.426

Table 3.7: 2C Average Charging Current with 50%C Triangular Current Ripple

F requency

ipkpk

vpkpk

Impedance Capacity

Energy

(Hz)

C-rate

(A)

(mV)

(m)

(%)

(kJ)

10

2.55

62

24

51.8

6.479

100

2.53

58

23

53.3

6.664

1000

2.56

58

23

52.7

6.610

Similar experiments were performed with a half-sine waveform to simulate a rectified converter output. The experiments show that they follow a similar pattern to the
triangular waveforms in that the ripple plays the largest role. From the results shown in
Table 3.8, we can see that the battery shows similar impedance values to the triangular
waveforms, as expected. The waveforms (shown in Fig. 3.10) reaffirm that there is no
phase shift between the current and voltage. That is, the interfacial region can be considered as a near short circuit at theses frequencies and thus the impedance is purely due
to the electrolyte resistance.

41

Chapter 3. Experimental Results and Discussion

(a) 10Hz ripple

(b) 100Hz ripple

(c) 1kHz ripple

Figure 3.9: Cell voltage response for 2C charge with 0.5C ripple current.

Table 3.8: 2C Average Charging Current with 1kHz Sinusoidal Current Ripple

ipkpk

vpkpk

Impedance Capacity

Energy

(C-rate)

(A)

(mV)

(m)

(%)

(kJ)

0.2C

0.589

14

24

77.2

8.966

0.4C

1.030

24

24

74.3

8.718

0.6C

1.441

35

24

69.4

8.240

1C

2.498

62

25

61.5

7.539

Chapter 3. Experimental Results and Discussion

(a) 0.1C ripple

(b) 0.2C ripple

(c) 0.3C ripple

(d) 0.5C ripple

Figure 3.10: Cell voltage response for 2C charge with 1kHz ripple current

42

Chapter 3. Experimental Results and Discussion

3.4

43

Pulsed Currents

Pulsed currents were applied to the battery in order to understand the battery
behaviour under sudden changes in currents. This replicates the case when a battery
is connected across a DC bus and is fed/discharged by a VSI (Voltage Source Inverter)
from the grid. Although square waves are also quite commonly seen in switch mode
converters, we did not exclusively test this waveform. However, the pulse currents give
us information on the battery behaviour during sudden transitions in current and can be
used to extrapolate square wave behaviour. The pulses also give us information about
the effect of sudden changes in the load. Theoretically, the battery should be able to
source (or sink) a large current provided that the pulse is short enough, as seen in the
previous chapter. In order to verify this, the batterys immediate response to a pulse
application was observed.
During a 0.5C constant current, a pulse of 1C was applied for 100ms and the
resulting waveforms are shown in Fig. 3.11 along with the predicted voltage response.
When the pulse is first applied, there is an immediate jump in the voltage, followed by a
more gradual increase. The initial jump in voltage is due to the internal resistance of the
battery, while the gradual increase can be attributed to the change in the equilibrium
potential across the electrode-electrolyte interfaces. When we zoom in to the rising edge
of the pulse (Fig. 3.12), the initial voltage jump is around 0.04V (1.27V to1.31V ) which
corresponds to the IR drop of the batterys internal resistance (0.04 1.15A). Also, at
the edges of the pulse, we see that the settling time for the voltage is around 1.0ms.
The pulse current was then increased to 2C and the waveforms are shown in
Fig. 3.13. The results are similar to the first test, except with the initial jump being
0.14V (1.28V to1.41V ) which agrees with the expected IR drop. The settling time also
increases slightly to about 1.5ms. This increase in the settling time is expected because

Chapter 3. Experimental Results and Discussion

(a) Experimental Results

44

(b) Predicted Waveform

Figure 3.11: a) Current pulse response for a 0.5C DC current with a 100ms pulse of 1C charge
current, and b) predicted cell response from Sands equation.

(a) Zoomed in on the rising edge

(b) Zoomed in on the falling edge

Figure 3.12: Cell voltage response for a 0.5C DC current with a 100ms pulse of 1C.

a higher pulse leads to a bigger concentration gradient forming at the electrode interface.
More time is needed for the double layer current to create a new equilibrium. The voltage
change during this period also increased from approximately 0.02V to 0.05V . The results
agree with the double layer voltage response predicted by Sands equation.
Discharge currents also produced similar results to those of charging currents.
The resulting waveforms for a 1C pulse discharge are shown in Fig. 3.14.
By plotting the pulse response at various states of charge of the battery, we can
see if there are any variations in the response. As the battery voltage varies with the

Chapter 3. Experimental Results and Discussion

45

(a) Complete pulse response

(b) Zoomed in on the rising edge

(c) Zoomed in on the falling edge

Figure 3.13: Cell voltage response for a 0.5C DC current with a 100ms pulse of 2C.

state of charge, we need to look only at the voltage change that was a direct result of
the pulse. Therefore, for each pulse, the voltage of the battery 1ms before the pulse was
used as a reference to calculate the voltage change. The results of this experiment in
the charging state (Fig. 3.15), show that when the battery is near its depleted state, the
pulse causes a greater change in voltage. Also, once this initial stage is passed, the state
of charge doesnt appear to be a factor, although the characteristics mentioned above
(the initial jump in voltage due to IR followed by a slower change) are still present. This
indicates that when the battery is nearly discharged, the battery has a higher internal
resistance. As the electrolyte and the current collectors are not affected by the state
of charge of the battery, this indicates that it is the charge transfer resistance which is

Chapter 3. Experimental Results and Discussion

46

Figure 3.14: Cell voltage response for a 0.5C DC current with a 10ms pulse of 1C discharge
current.

varying and is larger when the battery is nearly at its discharged state. In the case of
fully discharged Ni-MH batteries, the active species in the cathode consists mainly of
Ni(OH)2 which is a poor conductor. This poor conductivity (reflected as an increase in
the resistor RCC

cathode

in the small signal model of Fig. 2.10) explains the larger IR drop

seen when the battery is nearly depleted.


Charging the battery does cause an increase in the temperature and hence a
decrease in the resistance. However, the charging rate was quite low and no noticeable
temperature change was noted. To confirm temperature was not a factor, a discharge
was performed in a similar manner with the results shown in Fig. 3.16. From the graphs
we can see that again the battery shows higher resistances when the battery is nearly
discharged. This indicates that this phenomenon is caused by the state of charge. As a
battery consists of two electrode-electrolyte interfaces (the anode and cathode), we cannot
conclude if the higher resistance occurs at the anode, the cathode, or a combination of
both. One would need to test each one separately using a reference electrode, which was
beyond the scope of this thesis.

Chapter 3. Experimental Results and Discussion

47

Figure 3.15: Battery response to a 0.5C to 1C charge pulse of 10ms at various states of
charge. Voltage0 corresponds to the pulse response when the battery is depleted, Voltage25 is
the response when the battery is charged to 25%, etc.

Chapter 3. Experimental Results and Discussion

48

Figure 3.16: Battery response to a 0.5C to 1C discharge pulse of 10ms at various states
of discharge. Voltage0 corresponds to the pulse response when the battery is fully charged,
Voltage25 is the response when the battery is discharged by 25%, etc.

Chapter 4
Conclusion
This thesis explored how current waveforms impact the voltage response of a
battery. These results could in future be used to provide improved guidelines as to
how to charge and discharge a battery. Using a rechargeable Energizer NI15-2300 AA
battery, we showed that in the ideal case of a constant current with no ripple, the battery
behaviour can be easily predicted. Given the voltage profile for a low current charge and
discharge rate, the waveform at any other currents could be determined by shifting the
voltage by the IR drop of the battery. However, care must be taken in considering any
internal temperature changes that can affect the internal resistance of the battery. There
are no models currently available that can incorporate the temperature dynamics due to
self heating.
Triangular and sinusoidal waveforms were applied as these are the types of waveforms that would exist for a range of switch mode converters. We saw that when the
average current was relatively low (below 1C resulting in minimal heating), the frequency
of the current ripple had the greatest impact in influencing the battery voltage. At ripple frequencies above 5kHz, the battery exhibited a similar capacity to the DC current.
However, at currents over 2C, the impedance of the battery is not as highly affected by
49

Chapter 4. Conclusion

50

the frequency, but rather by the higher temperatures. This indicates that the voltage
modulation across the space charge interfacial regions can be neglected and most of the
voltage drop appears across the electrolyte resistance, which is strongly influenced by
temperature. Therefore, when designing a battery charger, the rate of charge plays an
important role in determining the impact of the ripple current and frequency on the battery. We saw that in slow charging applications where there is a minimal temperature
increase, a low current ripple amplitude and a high ripple frequency will result in a higher
charge capacity of the battery. Also, one can tolerate a higher ripple current amplitude
at higher frequencies without seeing an increase in the ripple voltage. However, in higher
current applications where there is a significant rise in temperature, the ripple frequency
plays a smaller role. This implies that although the impedance of the battery decreased,
the impedance of the interfacial region must decrease further in order to make the electrolyte resistance dominate. This means that the frequency has to be even higher in
order to lower the impedance representing the space charge zone.
At low currents, the small signal impedance of the battery decreased from 40m
at DC to 26m for high frequency currents. This must be taken into account when
deciding on the size of capacitor that will be placed in parallel to the battery. Usually,
the capacitor is chosen such that the resistance of the capacitor is a tenth of the size
of the batterys resistance, the combined electrolyte and faradaic resistances, as this
allows the high frequency components to be shunted to the capacitor. What we have not
stated is that there may also be package inductance which would increase the battery
impedance even further. One must first determine the current waveforms the battery
will see (to determine the impedance of the battery), then use this impedance to choose
the appropriate estimated series resistance ESR rating of the capacitor.
The battery exhibited the response predicted by the electrode-electrolyte theory
and showed that there is a short time between when the pulse is applied and a new

Chapter 4. Conclusion

51

equilibrium is reached in the battery. This indicated that for any given battery, one
could apply large current pulses with amplitudes that are larger than the maximum DC
current. The pulses are possible because under a non-diffusion limiting DC current, there
are an excess of active species in the electrolyte near the electrode surface. The pulse
utilizes the excess species to provide a short burst of current but only as long as the
active species at the surface can be replenished by diffusion. The variation in the voltage
response to the current pulses also shows the need to consider the full operating range
of the battery when determining the battery response and the maximum current pulse
that can be applied. Therefore, it is necessary to know the maximum pulse that can
be applied at different states of charge. Using this data, two possible methods exist to
ensure the battery remains within safe operating voltages: use the smallest of this set, or
use a controller that limits the current pulse based on the state of charge of the battery.

4.1

Contributions

For the battery that was used, Energizers NH15-2300 AA rechargeable, we showed
that the charging current had a large impact on the cell capacity, whereas the
discharging current was not as significant. The thermal effects of the high current
rates on cell impedance were also measured.
We showed that with a DC current below 1C (where a minimum amount of self
heating occurs), ripple frequency plays the most important role and the ripple
frequency should be increased to maximize the time the battery can be charged
before the instantaneous voltage reaches the limit of the battery. This premature
cutoff of the charging or discharging current occurs due to the peak of the voltage
ripple hitting the voltage limit. By increasing the frequency of the ripple, the
voltage ripple across the interfacial region (and hence the battery) is reduced.

Chapter 4. Conclusion

52

Under high DC currents (where there is a significant temperature increase), we


observed minimal ripple frequency dependence on battery capacity. This implies
that the impedance of the interfacial zone must be decreased further in order to
make the electrolyte resistance lower than the impedance representing the interfacial space charge region. This is accomplished by pushing the frequency even
higher to lower the impedance of the space charge region.

It was confirmed experimentally that pulse currents result in a behaviour predicted


by electrochemical theory.

4.2

Future Work
Further research is needed to understand how current waveforms affect the long-

term performance of the battery including battery degradation and lifetime. Other batteries should also be used to understand their responses to the current waveforms, particularly the impact of different chemistries, battery sizes, and the differences between
batteries designed for higher energy density vs power density.
Due to circuit constraints, we werent able to push the circuit to high frequencies.
Although this may not be needed, it would be interesting to see if any other phenomenon
can be observed if one were to increase the frequency and the amplitude of the current
ripple.
It would also be interesting to try short pulses of high magnitudes to see how high
we can push the current before diffusion limiting effects become evident. Of particular
interest would be to understand the battery behaviour at the very extreme current limits.
The pulses present a unique situation where the high currents would not change the
internal temperature of the battery (given a short duration). As the current collectors

Chapter 4. Conclusion

53

are designed to be as small as possible (to increase the volume available for the active
electrodes), the high currents could be destructive to the current collectors (from the
local heating due to the high current density). Therefore, the possible degradation of the
battery must also be studied.

Appendix A
Battery Tester Circuit Design
This appendix describes the circuit used for testing the battery by first going
through the circuit design. Simulations were then performed using PSpice in order to
verify the circuit behaviour. Upon building the circuit (on a solder board), testing was
done to characterize the circuit and to validate the proper operation of the circuit.

A.1

Circuit Requirements

Replicate the waveforms seen at the output of common converter topologies. These
are rectangular, triangular and half-sinusoidal waveforms with varying frequencies
and average DC values.

Current should be easily controllable, and circuit should be rated at 2-5 times the
nominal battery current in order to understand the effects of pulsed inputs.

The circuit should be able to perform charging and discharging.


54

Appendix A. Battery Tester Circuit Design

A.2

55

Circuit Overview
The circuit designed to charge and discharge the battery is shown in Fig. A.1. The

circuit is controlled using an FPGA (Field Programmable Gate Array) and is connected
to the circuit via a 40-pin connector. The FPGA outputs two 8-bit signals as well as
the timing signals that are connected to a pair of DACs (Digital to Analog Converters).
The upper DAC (DAC N on Fig. A.1) and the op-amp DAC OUTB is used to set the
charging current. The current signal is then used at the non-inverting input of a BJT
driver, with the inverting input connected to the current sensing resistor. This creates
the current loop consisting of the battery, the power supply used for charging the battery,
the current sensing resistor, and an NPN BJT. Similarly, the DAC labelled DAC P sets
the discharging current and this signal is sent to a BJT driver. This creates a second
loop consisting of the battery and current sensing resistor (which are shared with the
charging loop), as well as a PNP BJT and power supply used for the discharging of the
battery.

Figure A.1: Complete schematic of the battery charging and discharging circuit.

Appendix A. Battery Tester Circuit Design


56

Appendix A. Battery Tester Circuit Design

A.3

57

Circuit Details
The current controlling scheme is shown in Fig. A.2. The connectors CHR-1 and

CHR-2 are connected to a +5V power supply that is used to charge the battery, while
DIS-1 and DIS-2 connect to the source used for discharging of the battery. BAT-1 and
BAT-2 represent the positive and negative terminals of the battery respectively. R1 is the
current sensing resistor and is 10m. As R1 is rated for 3W (i.e. 17A) and the transistors
rated for 20A, the maximum current allowed for both charging and discharging is 17A.

Figure A.2: Current control loops.

The circuit diagrams for the two DACs (TLC7524) are shown in Fig. A.3 and
Fig. A.4, and their theory of operation is the same. Digital 8-bit signals are sent from
the FPGA to the DAC along with two trigger signals. These signals are used to initiate
the loading of data into internal buffers and the conversion from a digital to an analog
signal. As determined from the datasheet, both DACs are connected to +5V and GND
supplies in order to properly connect with the FPGA.
During the charging stage of operation (Fig. A.3), the voltage on the sensing
resistor will be positive (explained later). In accordance with the DAC operation (Fig.
A.5), the reference voltage is connected to the negative power supply (-5V) to give a
positive output voltage.

Appendix A. Battery Tester Circuit Design

58

Figure A.3: DAC Battery charging mode.

Figure A.4: DAC Battery discharging mode.

Resistors R10 (connected to the Vref terminal) and R9 (connected to RF B ) are


used to vary the range of the output analog signal swing. Based on the internal structure
of the DAC (Fig. A.6), when all bits are set to 0 (as seen in the figure), the effective
input resistance from the Vref terminal to IOU T 2 is R. As IOU T 2 is connected to ground
and the value of R is given as 10k in the datasheet, the current flowing through the
resistor ladder is given by:
5V
R + R10

(A.1)

where R10 is the external resistor. As IOU T 1 is connected to the inverting input of an
op-amp whose non-inverting input is connected to ground, IOU T 1 is a virtual ground.
Therefore, regardless of the position of the switches S1 to S8 (i.e. the bits of the DAC)
the current flowing through the DACs internal resistor ladder remains constant.
Terminal RF B is connected to the output of the op-amp (with resistorR9 in series).
Therefore, the series connection of R9 and the internal resistance R behave as the feedback

Appendix A. Battery Tester Circuit Design

59

Figure A.5: DAC Theory of Operation.

Figure A.6: Internal resistor ladder of the DAC.

resistor for an inverting amplifier. The resulting output voltage is given by:
Vref
(R + R9 ) .
R + R10

(A.2)

The negative sign dictates that for the charging signal (for which a positive voltage signal
is required), Vref should be connected to a negative voltage (-5V). Resistors R10 and R9
can be used to vary the range of the signal based on the desired current levels. In order
to get a current output from 0 to 20A, we need a voltage signal from 0 to 200mV; hence

Appendix A. Battery Tester Circuit Design

60

R10 should be 240k, while R9 is shorted. During the discharge mode (Fig. A.4), the
charging DAC will be set to 0, while the 8-bit signal is used to drive the discharge DAC.
The circuit for the discharging signal is similar, with the reference voltage connected to
+5V in order to provide negative voltages.
During the charging phase, the output signal from the DAC (Fig. A.3) is sent to
the non-inverting input of the op-amp and sets the desired current level while the voltage
across the sensing resistor R1 is used for feedback. The op-amp is used to drive the NPN
Darlington transistor (MJH11019) to obtain the current requested. The minimum VCE
across the transistor to ensure saturation is not reached is 3.0V at 20A. This is under
the minimum voltage that will be seen during operation (5V power supply minus 1.6V
maximum on the battery). During this charging phase, the output of the discharging
DAC and hence the input to the PNP driver op amp will be at 0V (GND). However, as
the voltage across R1 is positive, this will cause the op-amp to saturate to the positive
power supply. Therefore to ensure the emitter-base voltage of the PNP Darlington does
not exceed the maximum rating of 5V, the power supply of the discharging op-amp is
connected to GND and -5V. The operation of the circuit during discharging is similar to
that of charging, but with the polarity of the sensed current (from R1) being negative.
To prevent both BJTs from turning on simultaneously, a control circuit (Q1 &
Q2 for charging, and Q3 & Q4 for discharging) is used to control the power supply of the
BJT drivers. The driver for the the charging circuit is connected to GND on the negative
terminal, while the positive rail can be connected to either ground or +5V depending on
the signal sent to Q2. A value of 0 turns off Q2 which then turns Q1 off and the result
is a driver that is connected to GND at both terminals. Similarly, the driver for the
the discharging circuit is connected to GND on the positive terminal, while the negative
terminal is connected to either ground or -5V depending on the input signal to Q4. A
value of 1 turns off Q4 which then turns Q3 off and the result is again a driver that is

Appendix A. Battery Tester Circuit Design

61

connected to GND at both terminals. The main reason why two MOSFETs are used
is that the voltage levels and the current limit on the signals coming from the FPGA
are not sufficiently high enough to drive the MOSFETs. Hence the first FET acts as a
voltage shifter.
During the discharge operation, the PNP transistor will be operational with the
current as sensed by resistor R1 being negative. However, this is lower than the 0V input
being sent to the charging BJT driver (to indicate no charging). This will activate the
charging circuit and create a short circuit between the two power supplies. The control
circuit ensures that this erroneous activation of the BJTs does not occur.

62

Appendix A. Battery Tester Circuit Design

A.4

Simulation
A simplified circuit (Fig. A.7) was simulated using a time domain (transient) anal-

ysis in PSpice. Without adding any stray impedances, a change in the requested current
from 1A to 5A shows the circuit is well behaved as seen in Fig. A.8(a). However, the
circuit behaves quite differently when wire inductances are taken into account, however
small they may be. Using [30], the inductance can be calculated using the equation
L = 2l[2.303 log

d
4l
l+ + ]
d
4 2l

(A.3)

where l and d are the length and diameter of the wire. The parasitic inductance in the
circuit was estimated to be 46nH. This was calculated using a diameter of 1mm and a
length of 5cm which reflects the dimension of the built circuit. Using this inductance in
the simulation causes the system to be unstable as discussed in the next section. The
op-amp output cannot maintain a constant voltage and this results in the output current
oscillating (Fig. A.8(b)). To prevent the oscillation in the output, a capacitor was added
from the base to the emitter of the BJT. This has the effect of slowing the rate of change
of the op-amp output due to the added load. This in turn stabilizes the circuit as it
prevents any large swings in the output voltage. The trade-off is a reduced speed in the
change in the output current for a given step input. From simulation and experimental
results, a capacitor of 47F was added across the base and emitter, and the resulting
simulation results are shown in Fig. A.8(c).
To understand the reason for the oscillations in the uncompensated circuit, its
necessary to look at the Bode plot of the small signal model. A small signal model is
needed as this is the only method of bringing in frequency dependence to the system.
Although the current changes will be large (potentially from 0A to 15A), the large signal
model can only capture the slew rate and steady state information. As the charging
and discharging circuits operate independently of each other, we can look at each loop

63

Appendix A. Battery Tester Circuit Design

Figure A.7: Simplified circuit used for PSpice simulations.

separately. Also, the current command seen on the non-inverting input to the op-amp
can be taken as a fixed voltage source along with the power supply used to charge the
battery. The hybrid-pi model of the BJT was used and the small signal model of the
charging system is shown in Fig. A.9. In order to analyze the stability of this circuit, it
must be first converted into a transfer function form shown in Fig A.10.
In Fig. A.10 the values 0 u0 and 0 y 0 representVsig and VO from Fig. A.9. As the
transfer function for the op-amp is given by
VB = (V+ V )AO

(A.4)

the transfer function 0 G0 is simply the op-amp open loop gain AO .


The transfer function 0 H 0 is the ratio of the op-amp output voltage VO to VE .
This can be found from the equation of voltage at the emitter of the BJT (and hence the
sensed current) and is given by
VE = Rsense Ic + (VB VE )

Rsense
Z

(A.5)

where

Ic = gm VBE = gm
VB =

C ||r
(VO VE )
L + (C ||r )

C ||r
(VO VE )
L + (C ||r )

(A.6a)
(A.6b)

Appendix A. Battery Tester Circuit Design

(a) no parasitic inductances

(b) with parasitic inductance

(c) with parasitic inductance and compensation capacitor

Figure A.8: Simulated circuit response of a 1A to 5A pulse.

64

65

Appendix A. Battery Tester Circuit Design

Figure A.9: The small signal model of the op-amp and BJT in the charging loop.

Figure A.10: Transfer function model of a feedback controller.

Z = C ||r

(A.6c)

Combining the two sets of equations above, the transfer function 0 H 0 is


C ||r
Rsense
+ gm Rsense L +(C
VO
L +(C ||r )
||r )
H=
=
C ||r
Rsense
VE
1 + L +(C ||r ) + gm Rsense L +(C ||r )

(A.7)

To check the stability of the system, one must look at the Bode plot of G(s)H(s).
Using MATLAB, a Bode plot of the op-amp open loop transfer function AO was created
using the given datasheet. From Fig. A.11 we see that at room temperature the op-amp
provides a good phase margin but this shrinks to 25 at higher temperatures. Looking
at just the transfer function of the feedback loop (H(s)), the bode plot (Fig. A.12(a))
shows that at low frequencies there is a constant magnitude gain with no phase change.
However, there is a resonant frequency at approximately 4MHz, but more importantly
there is a sharp drop in phase. This occurs at approximately at the zero gain frequency
of the op-amp. During the experimental stage, it was seen that there was an oscillation

Appendix A. Battery Tester Circuit Design

66

present in the circuit at approximate 100kHz (shown in the next section). In order to
remove this oscillation, a capacitor was added across the base and emitter junction of the
BJT and this had the effect of producing a phase lead. By using a capacitor of 47F ,
the phase peaks at around 100kHz as shown in Fig. A.12(b).

Appendix A. Battery Tester Circuit Design

(a) under room temperature

(b) at high temperatures

Figure A.11: Bode plot of the op-amp open loop gain.

67

Appendix A. Battery Tester Circuit Design

68

(a) under room temperature

(b) under room temperature

Figure A.12: Bode plot of the feedback loop (H(s)) for 1A (blue), 5A (green), 10A (red) and
14A (teal) currents.

Appendix A. Battery Tester Circuit Design

A.5

69

Testing
In the uncompensated circuit (without the added capacitor across the base-emitter),

the experimental results show an oscillatory behaviour which is similar to the simulation.
Fig. A.13 shows the output of the op-amp (centre trace) and the voltage across the
current sensing resistor (bottom trace) for a 1A current set-point request. After adding
the capacitor, the response to a step in current from 1A to 10A (shown in Fig. A.14)
shows that the circuit stabilizes. However, there is a delay of approximately 400s that
is caused by the capacitor at the output of the op-amp.

Figure A.13: Experimental circuit response of the uncompensated charging loop showing
output current oscillations. The second trace shows the op-amp output and the third trace
shows the resulting current.

From the DACs theory of operation mentioned above and using a value of 250k
for R10 with R9 shorted, the expected change in the output current for change in the LSB
of the DAC is 75mA (19.2A/256 bits). The partial experimental results are shown in Fig.
A.15. The results show that the slopes of the graphs are close to the predicted value with
the error resulting mostly due to both the external resistor R10 and the internal DAC
resistors. More importantly, it shows a linear change in the current for a linear change
in input.

Appendix A. Battery Tester Circuit Design

70

Figure A.14: Experimental circuit response of the compensated charging loop showing output
current response to a 1A to 10A step. The second trace shows the op-amp output and the third
trace shows the resulting current.

Figure A.15: DAC linearity of the input signal and the resulting output current

Appendix B
Battery Tester Code
In order to help analyze the data obtained by the data logger, A MATLAB Graphical User Interface GUI was developed by Pawel Chomicki, a 1st year undergraduate student. I was responsible for assisting in the management of his workload over the summer.
The document was written by Pawel and parts were rewritten to conform with the format
of the thesis. The GUI makes use of the MATLABs GUI Layout Toolbox (version 9).
The following is the MATLAB code and a description of the functions.

B.1

Introduction
This software, developed in the MATLAB environment, interprets information

from a comma separated value (.csv) file created by a high-fidelity, multi-channel data
logger device and imports the information into MATLAB data structures for processing. The data structures are then interpreted into figures which provide a visual and
interactive display of the information captured by the Data Logger. The User Interface
provides an environment that gives the user ultimate control over which information is
displayed and how it is displayed, including: single/multi-channel plots, textual overlays,
71

Appendix B. Battery Tester Code

72

and various post-processing functions (integration, multiplication, etc.).


This software, when used in conjunction with the Data Logger hardware, improves
the usability and provides additional functionality as compared to the Data Logger as a
standalone device. The code is structured according to the following m-files:
dataloggerGUI.m
This MATLAB file is a program which provides a GUI for processing .csv files.
The .csv files are of a specific format, based on reference files obtained from the Data
Logger Hardware. The program is able to process the data and display it graphically,
simplifying synthesis and analysis of large data sets. The following paragraphs describe
the programs main features on a function-by-function basis.
createInterface()
This function builds the majority of the programs user interface - the buttons
and menus which make up the softwares skeleton are constructed here. After exploring
various alternatives in MATLABs GUI design environment (GUIDE), it was decided that
building the GUI programmatically would be advantageous. The main benefit of doing
so is very apparent to anyone reading the programs source code: a programmatically
developed GUI provides a more readable source, which is particularly beneficial for anyone
unfamiliar with MATLAB libraries and commands associated with GUIs.
A programmatically developed GUI is also able to leverage the libraries available
on MATLAB Centrals File Exchange. One such library was used in the development
of this software: Ben Tordoffs GUI Layout Toolbox [31]. The toolbox is aptly-named:
it allows for the development of a more intelligent GUI, laid out hierarchically using
vertical and horizontal sections that can either remain fixed-size, or resized along with
the dimensions of the GUI window.

Appendix B. Battery Tester Code

73

As previously mentioned, the GUI layout toolbox allows the programmer to divide
GUI components into horizontal and vertical sections, providing a grid-like structure for
the user interface. This is intuitive as each UI component has a parent component (ie:
buttons are part of button groups) and therefore has its own place within the interface.
Fig. B.1 shows how the UI components are related as parents and children (vertically)
and siblings (horizontally). Fig. B.2 below shows how these components are visually
layed out within the program. For a better understanding of the GUI Layout Hierarchy,
handle descriptions are available in Table B.1.

Figure B.1: Layout Hierarchy of GUI in dataloggerGUI.m

onSelectNewFile()
This function is initiated when the selectFile button is pressed. The function opens
up the file operating systems file browser for a file to be selected . Since the software is
designed to specifically read files from the data logger, only .csv files (as well as folders)
are visible. The function then stores the file name in gui.fileName and gui.statusBox is
updated to let the user know that a new file has been selected. The filename is stored
in the data structure, and will be used to call upon the file for processing later. This
function does not load any of the file data into the program. Since large files take a

Appendix B. Battery Tester Code

74

Figure B.2: GUI Layout of dataloggerGUI.m

long time to load, it makes sense to separate file selection and loading into two separate
actions which the user may perform.
onLoadNewFile()
This function is initiated when the loadData pushbutton is pressed. Using the
string from gui.fileName, it opens the file and reads it into memory, unprocessed. From
there, the function reads through the data line by line, processing both the header and
pulse information. For a better understanding of the data structure, Table B.2 provides
a list of handles used to organize the processed data. Since different portions of the .csv
files are structured differently, various helper functions must be used to extract the data
in a useful manner such as convertTime, which processes the timestamp and converts it
into seconds relative to the initial pulses timestamp.
Besides the current implementation of onLoadNewFile, additional methods were
considered: primarily csvread and xlsread which were initially used during the development of this function. However, such functions posed compatibility issues and offered

75

Appendix B. Battery Tester Code


Table B.1: GUI Layout Handles

GUI.[handle]

Description

Window

The parent figure (or window) containing the data logger GUI

FileMenu

Provides new, load, save and exit functionality

mainBox

Master parent in GUI layout hierarchy

menuBox

Fixed-width column that contains menus and settings

displayBox

Variable-width column that contains actions and data

visibilityOptions

Checkbox menu that allows for control over channel visibility

plotType

Pop-up menu that allows for control over plot type

plotOptions

Checkbox menu that allows for control over plot settings

buttonBox

Contains various action buttons

viewAxes

Contains three tabbed axes for plotting

statusBox

Textual information, status updates

plotAxes

Axes (graphs) which are plotted on

selectFile

Select new File

loadData

Load last selected file

updatePlot

Update plot with using current plot/visibility Options

clearPlot

Clear the current axes

less performance than fgetl. If the performance of fgetl is still an issue, textread and
strread should be explored.
onUpdatePlot()
This function is initiated when the updatePlot button is pressed. It updates the
plot of the currently tabbed axes, in accordance to the visibility and plot options selected
in the menus. There is an irregularity with certain data sets: when a channels values
remain almost-constant throughout the data logger file, the data will be presented in an

76

Appendix B. Battery Tester Code


Table B.2: Data Structure Handles

data.[handle]

Description

CSV

Stores the unprocessed CSV file

HeaderTable

Stores Header Information (ie: operator, samples per channel, etc.)

Table

Stores Pulse data

iLine/jLine

Used to iterate through the CSV during processing

masterLine

Marks the first line of pulse data

masterTime

Timestamp of first pulse, used as reference time

samples

Samples per channel (per pulse)

unreadable and rather useless fashion . An example of this can be seen in Fig. B.2 (note
the slight variation in value in the y-column). Thankfully, this should not be the case
with the vast majority of data sets obtained by the data logger. A solution to this may
be to plot a rounded set of data; however the drawback of lower-fidelity detracts from
the implementation.
plotType()
This function is initiated by the updatePlot function. Depending on which option
is selected in plotOptions, this function plots a series of lines to the currently tabbed
plotTabs.
Concatenated: Each value is plotted against its index; different pulses are tagged
with a marker for differentiation.
Interval Comparison: Each value is plotted against its index. Pulses are overlayed to compare subsequent pulses. This plot type is disabled when more than a
single channel is selected, as too many pulses make the data unreadable.
True Time: Each value is plotted against time, extracted from the pulses times-

Appendix B. Battery Tester Code

77

tamp and the frequency of the sample. Additionally, there are three plot types that
require multiple channels of data to be processed before a plot can be produced.
Each of these plot types requires exactly two channels of data.
A vs B: Instead of a plot against time, two channels are plotted against each other.
B vs A: Similar to the previous option, except the axes are inverted.
A x B: Two channels are multiplied together and then plotted against their index/time.

annotatePlot() This function is called exclusively for the Concatenated Plot (see plotType() above). This function provides relevant textual data (timestamp, integral) for
every pulse recorded for a channel by the data logger, as seen in Fig. B.3. This feature
can be disabled in the Plot Options.
onClearPlot() This function is initiated by the clearPlot button. Additionally, it is
also called whenever updatePlot is called. This function clears the figure of the currently
tabbed axes.
changeTab() This function is called whenever the user switched between the tabbed
figures. It changes the current axes in view without clearing any of the figures.
onNew() This function opens a new instance of the program.
onExit() This function deletes the Window, closing the program.
onSave() This function saves the data structure from the workspace, making it possible
for another session at a later time. This is beneficial as large data sets do not need to be
processed more than once. This function does not save the GUI; however the GUI can
be easily reloaded and requires very little resources to do so.
onLoad() This function loads a data structure (a previously processed and saved .csv)

Appendix B. Battery Tester Code

Figure B.3: Plot Annotations in dataloggerGUI.m

to be used in the current instance of the program.

B.2

Matlab Code

function dataloggerGUI()
% Processes .csv files which can be viewed graphically though a GUI.
%

78

Appendix B. Battery Tester Code

79

% dataloggerGUI() is an interface which processes specifically formatted


% .csv files from a data logger and displays the data graphically ,
% allowing for enhanced manipulation and usability of the data.
%
% Written by: Pawel Chomicki
% Last Updated on 08.14.2011
data = struct();
gui = createInterface () ; % function builds the GUI

%
function gui = createInterface()
% Create the user interface for the application &
% return structures of handles for global use.
gui = struct() ; % Structure for GUI Elements

% Open a figure
gui.Window = figure( ...
Name, Data Logger GUI, ...
MenuBar, none, ...
Toolbar, figure , ...
HandleVisibility , off , ...
OuterPosition, [100 100 600 600], ...
NumberTitle, off ) ;
% Add File menu, with New, Save, Load & Exit Capability
gui.FileMenu = uimenu( gui.Window, Label, File );
uimenu( gui.FileMenu, Label, New, Callback, @onNew );
uimenu( gui.FileMenu, Label, Save, Callback, @onSave );
uimenu( gui.FileMenu, Label, Load, Callback, @onLoad );
uimenu( gui.FileMenu, Label, Exit, Callback, @onExit );
% Master GUI Parent
gui.mainBox = uiextras.HBox( ...
Parent, gui.Window, ...
Units , normalized, ...
Position , [0 0 1 1] ) ;
% Create Left and Right Panels
gui.menuBox = uiextras.VBox( Parent, gui.mainBox );
gui.displayBox = uiextras.VBox( Parent, gui.mainBox );
% Adjust Panels: 150px fixed menuBox; scalable displayBox
set( gui.mainBox, Sizes , [150 1] );

Appendix B. Battery Tester Code


% Create visibilityOptions subpanel and options
gui.boxPanel{1} = uiextras.BoxPanel( ...
Title , Channel Select, ...
Padding, 0, ...
Parent, gui.menuBox );
gui. visibilityOptions = uiextras.VButtonGroup( ...
Parent, gui.boxPanel{1}, ...
Padding, 0, ...
Visible , on ) ;
% Create plotType subpanel and Options
gui.boxPanel{2} = uiextras.BoxPanel( ...
Title , Plot Type, ...
Parent, gui.menuBox );
gui.plotType = uicontrol( ...
Style , popup, ...
String , { Select 1 or more channels} ,...
Parent, gui.boxPanel{2}, ...
Visible , off ) ;
% Create plotOptions subpanel and Options
gui.boxPanel{3} = uiextras.BoxPanel( ...
Title , Plot Options, ...
Parent, gui.menuBox );
gui.plotOptions(1) = uicontrol( ...
Style , checkbox, ...
Parent, gui.boxPanel{3}, ...
String , Enable Plot Annotations, ...
Visible , off ) ;
% Adjust Panels: Scalable visibility subpanel, fixed plot subpanels
set( gui.menuBox, Sizes, [1 80 80] ) ;
% Create displayBox subpanels
gui.buttonBox = uiextras.HButtonBox( Parent, gui.displayBox );
% Create Axes Tabs
gui.viewAxes = uiextras.TabPanel( ...
Callback, @changeTab, ...
Parent, gui.displayBox, ...
Padding, 50 ) ;
for plotIndex= 1:3 % 3 Tabs, can be reconfigured
gui.plotAxes(plotIndex) = axes( ...
Parent, gui.viewAxes, ...
Position , [ 0 0 1 1] ) ;

80

Appendix B. Battery Tester Code

81

end
gui.viewAxes.TabNames = {Fig. 1, Fig. 2, Fig. 3 };
gui.viewAxes.SelectedChild = 1; % Defaults to Fig. 1
% Modified by @changeTab
gui.currentTab = text( ...
Parent, gui.plotAxes(gui.viewAxes.SelectedChild));
% Provides Textual data about program
gui.statusBox = uicontrol( ...
Style , text , ...
Parent, gui.displayBox, ...
String , Welcome to the Data Logger GUI. );
% Adjust Panels: 50px buttonBox; scalable axes; 50px statusBox.
set( gui.displayBox, Sizes , [50 1 50] );
% Fill buttonBox
gui. selectFile = uicontrol( ...
Parent, gui.buttonBox, ...
String , Select File , ...
Callback, @onSelectNewFile );
gui.loadData = uicontrol( ...
Parent, gui.buttonBox, ...
String , Load Data, ...
Callback, @onLoadNewFile );
gui.updatePlot = uicontrol( ...
Parent, gui.buttonBox, ...
String , Update Plot, ...
Callback, @onUpdatePlot);
gui. clearPlot = uicontrol( ...
Parent, gui.buttonBox, ...
String , Clear Plot , ...
Callback, @onClearPlot);
end

%
function onSelectNewFile( , )
% User wants to select a new file .
% Use GUI, let user browse .csv files .

[gui.fileName, pathname] = uigetfile(.csv);


gui.fullFileName = fullfile (pathname,gui.fileName);

Appendix B. Battery Tester Code

82

% Update statusBox with fileName.


if gui.fileName == 0
set( gui.statusBox, String , ...
File selection failed . Try again. ) ;
else
set( gui.statusBox, String , ...
strcat ( You selected file : , gui.fileName, . ) ) ;
end
end

%
function onLoadNewFile ( , )

% Structure for Data Elements


data.CSV = []; % Unprocessed CSV file
data.iLine = 1; % Counter used to process CSV
data.jLine = 1; % Counter used to process CSV
data.HeaderTable = {}; % Stores processed header data
data.Table = {}; % Stores processed pulse data
% User wants to load .csv data
% Update statusBox with loading message.
set( gui.statusBox, String , ...
strcat ( ...
gui.fileName, ...
is being processed. Please wait. ) ) ;
% Read CSV into memory
fid = fopen(gui.fullFileName);
data.CSV = textscan(fid,%s,Delimiter , \n, whitespace, ) ;
% Process CSV header, skipping insignificant lines
convertHeaderCells()
data.iLine = skipLine(data.iLine,1) ;
convertHeaderCells()
data.iLine = skipLine(data.iLine,4) ;
convertHeaderCells()
data.iLine = skipLine(data.iLine,3) ;
% Timestamp from first pulse, used as point of reference
data.masterLine = data.iLine1;
data.masterTime = convertTime(data.iLine1);

Appendix B. Battery Tester Code

83

% Process Channel Titles [ie: CH101, CH204, etc.]


currentLine = strread ...
( data.CSV{1,1}{data.iLine,1}, %s, delimiter , , ) ;
nLengthRow = size(currentLine);
for i = 1:nLengthRow(1)
data.Table{data.jLine, i} = currentLine{i};
end
data.iLine = data.iLine + 1;
% Process Data from Pulses
nLengthColumn = size(data.CSV{1,1});
while data.iLine < nLengthColumn(1)
tempTime = convertTime(data.iLine2);
for iData = 1:str2num(data.HeaderTable{5,2});
convertNumRow(tempTime, iData)
end
data.iLine = skipLine(data.iLine,3) ;
end
data.samples = str2num(data.HeaderTable{5,2}); % samples per channel
% Build Channel Select Options &
% Process Trapezoidal Integral of Pulses
nLengthHeader = size(data.HeaderTable);
for iHeader = 13: nLengthHeader(1)
if isequal ( data.HeaderTable{ iHeader, 2 } , TRUE )
n = 1;
for headerIndex=1:data.samples:length(data.Table{2,iHeader12})
data.trapz(iHeader12, n) = ...
trapz(data.Table{2,iHeader12}(headerIndex: headerIndex
+ data.samples 1));
n = n + 1;
end
end
end

updateGUI()
end
%
function updateGUI()
nLengthHeader = size(data.HeaderTable);
for iHeader = 13: nLengthHeader(1)
if isequal ( data.HeaderTable{ iHeader, 2 } , TRUE )
name = getChannelName(iHeader);

Appendix B. Battery Tester Code

84

gui.channel(iHeader 12) = uicontrol( ...


Style , checkbox, ...
Parent, gui. visibilityOptions , ...
String , name, ...
Visible , on, ...
Callback, @countChannels );
end
end
gui.numChannels = uicontrol( ...
Style , text , ...
Parent, gui. visibilityOptions , ...
String , Number of Active Channels: 0, ...
Visible , on, ...
Value, 0);
% Build Color Vectors for Interval and Concatenated/True Time Plots
gui.concatColor = hsv(length(gui.channel));
gui.intColor = hsv( ...
length(data.Table{2,1}) / str2num(data.HeaderTable{5,2}) );
for headerIndex = 1: length(gui.channel)
set( gui.channel(headerIndex), ForegroundColor, ...
gui.concatColor(headerIndex,:) );
end
% Update GUI Elements
set( gui.plotOptions, Visible , On );
set( gui.plotType, Visible , On );
set( gui.statusBox, String , ...
Load Complete. Please select 1 or more channels to begin plotting . ) ;
end

%
function convertHeaderCells()
% Processes a cell which represents a line from the .csv file
% and splits each element into its own cell . Used exclusively
% for CSV header data.
while strcmp( data.CSV{1,1}{data.iLine,1}, )
% Seperate a line from the .csv into cells
currentLine = strread ...
( data.CSV{1,1}{data.iLine,1}, %s, delimiter , , ) ;
nLengthRow = size(currentLine);

Appendix B. Battery Tester Code

85

% Insert seperated cells into HeaderTable


for i = 1:nLengthRow(1)
data.HeaderTable{data.iLine, i} = currentLine{i};
end
data.iLine = data.iLine + 1;
end
end

%
function convertNumRow(tempTime, iData)
% Processes a cell which represents a line from the .csv file
% and splits each element into its own cell . Used for pulse data,
% including each pulses timestamp.
currentLine = strread ...
( data.CSV{1,1}{data.iLine,1}, %f, delimiter , , ) ;
nLengthRow = size(currentLine);
for i = 1:nLengthRow(1)
% Special Case, converts voltages to absolute value,
% as requested (to deal with negative voltage values).
if strcmp(data.HeaderTable{i + 12 ,6},V)
data.Table{2, i}(data.jLine) = abs(currentLine(i));
else
data.Table{2, i}(data.jLine) = currentLine(i);
end
end
data.Table{2, nLengthRow(1)+ 1}(data.jLine) = ...
(tempTime data.masterTime) + (iData
str2num(data.HeaderTable{6,2}));
data.jLine = data.jLine + 1;
data.iLine = data.iLine + 1;
end

%
function [tempTime] = convertTime(cell)
% Processes the timestamp of each pulse, converting the stamp to
% seconds. Used for plotting purposes.
splitter = strread( data.CSV{1,1}{cell}, %s, delimiter , , ) ;
time = strread( splitter {2}, %d, delimiter , : ) ;
tempTime = time(1)3600 + time(2)60 + time(3);
end

%
function [counter] = skipLine( counter, amount )

Appendix B. Battery Tester Code

86

% Used to skip lines when processing the CSV file.


% Makes skipping lines more understandable to someone
% reading the code.
counter = counter + amount;
end

%
function [name] = getChannelName(iHeader)
% Processes data from the Header Table, extracting
% a channels name and descriptions. Used to label each
% channel in the visibility options.
if strcmp(data.HeaderTable{iHeader,6},)
name = data.HeaderTable{ iHeader, 1 };
else
name = strcat( data.HeaderTable{ iHeader, 1 }, [ , ...
data.HeaderTable{iHeader,6}, ] ) ;
end
end

%
function changeTab(, )
% User wants to change the current tab.

set( gui.currentTab, Parent, gui.plotAxes(gui.viewAxes.SelectedChild) );


end
%
function countChannels(, )
% Counts the number of channels that have been selected for
% plotting and/or processing by the user, and updates the plotting
% options accordingly.
counter = 0;
for x = 1:length(gui.channel)
if get(gui.channel(x), Value) == get(gui.channel(x), Max)
counter = counter + 1;
end
end
if counter == 0
set(gui.plotType, String , { Select 1 or more channels});
elseif counter == 1
set(gui.plotType, String , {Concatenated, Interval Comparison,
True Time});

Appendix B. Battery Tester Code

87

elseif counter == 2
set(gui.plotType, String , {Concatenated, True Time, A vs B, B
vs A, A x B});
else
set(gui.plotType, String , {Concatenated, True Time});
end
% Updates GUI and data structures.
set(gui.numChannels, Value, counter);
set(gui.numChannels, String, strcat ( ...
Number of Active Channels: , ...
num2str(counter) ));
end

%
function onUpdatePlot( , )
% User wants to update the plot. Updates the current axes
% based on user settings including channels selected , plot type
% and plot settings .
% Clear the axes, turn on hold (to plot multiple lines )
cla(gui.plotAxes(gui.viewAxes.SelectedChild));
hold (gui.plotAxes(gui.viewAxes.SelectedChild), on) ;
% Single Channel Data Plots
for headerIndex = 1: length(gui.channel)
if gui.channel(headerIndex) = 0
checkboxStatus = get(gui.channel(headerIndex),Value);
if (checkboxStatus)
%if box is checked, plot the channel
plotType(headerIndex);
end
end
end
hold (gui.plotAxes(gui.viewAxes.SelectedChild), off ) ;
end

%
function plotType(n)
% Plots in a different format depeding on user plot type selection .
% Currently Tabbed Figure
iFig = gui.plotAxes(gui.viewAxes.SelectedChild);
% Determine which element of the plotType popup menu is selected

Appendix B. Battery Tester Code


str = get(gui.plotType, String) ;
val = get(gui.plotType, Value);
samples = str2num(data.HeaderTable{5,2}); % samples per channel
pulse = data.Table{2,n};
% Plot depending on the selection made
switch str{val};
case Concatenated
% Plot data
plot( iFig , pulse, Color , gui.concatColor(n,:) ) ;
% Plot pulse leaders ( first data point of a pulse)
plot( iFig , ...
1:samples:length(pulse), ...
pulse (1:samples:end), ...
o , ...
MarkerEdgeColor, black, ...
MarkerSize, 6, ...
MarkerFaceColor, gui.concatColor(n,:)) ;
% Update the plot with textual information about every
% pulse
annotatePlot(n, samples, pulse) ;
case Interval Comparison
iColor = 1;
for headerIndex=1:samples:length(pulse)
plot(iFig, pulse(headerIndex: headerIndex + samples 1), ...
Color, gui.intColor(iColor ,:) ) ;
iColor = iColor + 1;
end
case True Time
for headerIndex=1:samples:length(pulse)
plot(iFig, data.Table{2,9}(headerIndex: headerIndex+
samples1), ...
pulse(headerIndex: headerIndex+ samples1));
end
case A vs B
m = findOtherChannel(n);
if m = 0
plot(gui.plotAxes(gui.viewAxes.SelectedChild), ...
data.Table{2,n}, data.Table{2,m});
end
case B vs A
m = findOtherChannel(n);
if m = 0
plot(gui.plotAxes(gui.viewAxes.SelectedChild), ...

88

Appendix B. Battery Tester Code

89

data.Table{2,m}, data.Table{2,n});
end
case A x B
m = findOtherChannel(n);
if m = 0
mult = data.Table{2,m} . data.Table{2,n};
plot(gui.plotAxes(gui.viewAxes.SelectedChild), ...
data.Table{2,9}, mult);
end
end
end

%
function [m] = findOtherChannel(n)
% Used for particular plot type cases ( A vs B, B vs A, A x B)
% where 2 channels of data are necesarry to plot a line in the
% current figure
checkboxStatus = 0;
for headerIndex = n+1: length(gui.channel)
while checkboxStatus = 1
checkboxStatus = get(gui.channel(headerIndex),Value);
if (checkboxStatus)
m = headerIndex;
end
end
end
if checkboxStatus == 0
m = 0;
end
end

%
function annotatePlot(n, samples, pulse)
% When Concatenated data is plotted, the graph can be updated with
% relevant textual data depending on user preference (checkbox).
if get(gui.plotOptions(1), Value) == get(gui.plotOptions(1), Max)
% Currently Tabbed Figure
iFig = gui.plotAxes(gui.viewAxes.SelectedChild);
backColor = brighten(gui.concatColor(n,:),0.9);
m = 0;
for index = 1:samples:length(pulse)

Appendix B. Battery Tester Code

90

time = [ Time: ....


data.CSV{1,1}{data.masterLine + index 1 + (m3)} ];
integral = [ Integral : num2str(data.trapz(n,m+1)) ];
textInfo = strvcat(time, integral ) ;
m = m + 1;
text(index, pulse(index), ...
textInfo , ...
FontSize , 11, ...
BackgroundColor, backColor, ...
HorizontalAlignment, Left , ...
VerticalAlignment, Top, ...
Rotation, 30, ...
Parent, iFig ) ;
end
end
end
%
function onClearPlot( , )
% User wants to clear the plot .
cla(gui.plotAxes(gui.viewAxes.SelectedChild));
end

%
function onNew( , )
% User wants to open a new instance of the application.
dataloggerGUI();
end

%
function onSave(hObject, eventdata, handles)
% User wants to save the current instance of the application .
%allow the user to specify where to save the settings file
[filename,pathname] = uiputfile(untitled,Save your GUI settings);
if pathname == 0 %if the user pressed cancelled, then we exit this callback
return
end
%construct the path name of the save location
saveDataName = fullfile(pathname,filename);

%saves the gui data


save(saveDataName, data);
end
%

Appendix B. Battery Tester Code

91

function onLoad( hObject, eventdata, handles )


% User wants to load a previous instance of the application .
%allow the user to choose which settings to load
[filename, pathname] = uigetfile(.mat, Choose the GUI settings file to
load) ;
%construct the path name of the file to be loaded
loadDataName = fullfile(pathname,filename);
%this is the gui that will be closed once we load the new settings
newdata = load(loadDataName);
set( gui.statusBox, String , num2str(newdata.data.iLine) );
qdata = newdata
updateGUI();
end

%
function onExit( , )
% User wants to quit out of the application .
delete( gui.Window );
end

%
end

References
[1] Y. Saito, Thermal behaviors of lithium-ion batteries during high-rate pulse cycling,
Journal of Power Sources, vol. 146, no. 1-2, pp. 770774, 2005.
[2] K. Onda, T. Ohshima, M. Nakayama, K. Fukuda, and T. Araki, Thermal behavior
of small lithium-ion battery during rapid charge and discharge cycles, Journal of
Power Sources, vol. 158, no. 1, pp. 535542, 2006.
[3] K. Fang, D. Mu, S. Chen, F. Wu, and X. Zeng, Thermal behavior of nickelmetal
hydride battery during charging at a wide range of ambient temperatures, Journal
of Thermal Analysis and Calorimetry, vol. 105, no. 1, pp. 383388, 2011.
[4] C. E. Holland, J. W. Weidner, R. A. Dougal, and R. E. White, Experimental
characterization of hybrid power systems under pulse current loads, Journal of
Power Sources, vol. 109, no. 1, pp. 3237, 2002.
[5] J. P. Zheng, P. L. Moss, R. Fu, Z. Ma, Y. Xin, G. Au, and E. J. Plichta, Capacity
degradation of lithium rechargeable batteries, Journal of Power Sources, vol. 146,
no. 1-2, pp. 753757, 2005.
[6] L. Cai and R. E. White, Mathematical modeling of a lithium ion battery with
thermal effects in comsol inc. multiphysics (mp) software, Journal of Power Sources,
vol. 196, pp. 59855989, 20110715 2011.
92

References

93

[7] C. K. Chan, H. Peng, G. Liu, K. McIlwrath, X. F. Zhang, R. A. Huggins, and


Y. Cui, High-performance lithium battery anodes using silicon nanowires, Nat
Nano, vol. 3, pp. 3135, print 2008.
[8] C. K. Chan, R. Ruffo, S. S. Hong, and Y. Cui, Surface chemistry and morphology
of the solid electrolyte interphase on silicon nanowire lithium-ion battery anodes,
Journal of Power Sources, vol. 189, pp. 11321140, 20090415 2009.
[9] T. Ohzuku and R. J. Brodd, An overview of positive-electrode materials for advanced lithium-ion batteries, Journal of Power Sources, vol. 174, pp. 449456,
20071206 2007.
[10] M. Galinski, A. Lewandowski, and I. Stepniak, Ionic liquids as electrolytes, Electrochimica Acta, vol. 51, no. 26, pp. 55675580, 2006.
[11] http://faculty.kfupm.edu.sa/ME/hussaini/Corrosion%20Engineering/02.05.04.htm.
[12] F. McLennan, Process analytical chemistry. New York: Blackie Academic Professional, 1st ed., 1995.
[13] M. Datta and D. Landolt, Experimental investigation of mass transport in pulse
plating, Surface Technology, vol. 25, pp. 97110, 198506 1985.
[14] E. Warburg, Ann. Phys. Chem. 67, 493 1899.
[15] B.-Y. Chang and S.-M. Park, Electrochemical impedance spectroscopy, Annual
Review of Analytical Chemistry, vol. 3, pp. 207229, 19 July 2010 2010.
[16] D. D. Macdonald, Reflections on the history of electrochemical impedance spectroscopy, Electrochimica Acta, vol. 51, no. 8-9, pp. 13761388, 2006.
[17] B. E. Conway, Transition from supercapacitor to battery behavior in electrochemical energy storage, Journal of The Electrochemical Society, vol. 138, no. 6,
pp. 15391548, 1991.

References

94

[18] A. J. Bard and L. R. Faulkner, Electrochemical methods. John Wiley & Sons, 1980.
[19] E. McAdams and J. Jossinet, Physical interpretation of schwans limit voltage of linearity, Medical and Biological Engineering and Computing, vol. 32, no. 2, pp. 126
130, 1994.
[20] R.C. Cope and Y. Podrazhansky, The art of battery charging, Annual Battery
Conference on Applications and Advances, 233-235, 1999.
[21] F. Feng, M. Geng, and D. O. Northwood, Electrochemical behaviour of
intermetallic-based metal hydrides used in ni/metal hydride (mh) batteries: a review, International Journal of Hydrogen Energy, vol. 26, no. 7, pp. 725734, 2001.
[22] A. A.-H. Hussein and I. Batarseh, A review of charging algorithms for nickel and
lithium battery chargers, IEEE Transactions on Vehicular Technology, vol. 60,
pp. 830838, 2011 MARCH 2011.
[23] T. S. Mundra and A. Kumar, An innovative battery charger for safe charging
of nimh/nicd batteries, IEEE Transactions on Consumer Electronics, vol. 53,
pp. 10441052, 2007 AUG. 2007.
[24] F. Boico, B. Lehman, and K. Shujaee, Solar battery chargers for nimh batteries,
IEEE Transactions on Power Electronics, vol. 22, pp. 16001609, 2007 SEPT. 2007.
[25] M. S. Whittingham, Electrical energy storage and intercalation chemistry, Science,
vol. 192, no. 4244, pp. pp. 11261127, 1976.
[26] H. Maleki, G. Deng, A. Anani, and J. Howard, Thermal stability studies of liion cells and components, Journal of The Electrochemical Society, vol. 146, no. 9,
pp. 32243229, 1999.
[27] http://batteryuniversity.com/.

References

95

[28] Batteries in a portable world: a handbook on rechargeable batteries for non-engineers.


Cadex Electronics, 2001.
[29] B. E. Conway, W. Pell, and T.-C. Liu, Diagnostic analyses for mechanisms of selfdischarge of electrochemical capacitors and batteries, Journal of Power Sources,
vol. 65, no. 12, pp. 53 59, 1997.
[30] Handbook of Chemistry and Physics, 44th Ed. Chemical Rubber Publishing Co.,
Cleveland, OH, 1962.
[31] T. Ben, Gui layout toolbox. http://www.mathworks.com/matlabcentral/fileexchange/27758gui-layout-toolbox. Accessed: July 14, 2011.

You might also like