
Chapter 1. Introduction and Background
1.1 Motivation and Significance of the Research
The power lithium-ion battery represents a new class of high-energy batteries successfully developed during the 20th century. Compared with traditional nickel-metal hydride (Ni-MH), lead-acid, and nickel-cadmium (Ni-Cd) batteries, the lithium-ion chemistry offers unparalleled advantages in terms of energy density, volume, cycle life, and environmental friendliness. While lithium-ion batteries have been widely adopted in portable electronic devices such as mobile phones, laptops, and cameras, their application in high-power scenarios, such as in a **traction battery pack** for electric vehicles, remains challenged by concerns surrounding cost, safety, and cycle life consistency.
A critical issue is that individual cells within a **traction battery pack** inevitably exhibit manufacturing tolerances and aging-dependent variations. These disparities in capacity, internal resistance, and voltage, if left unmanaged, are amplified over repeated charge-discharge cycles, thereby degrading the overall performance and reducing the lifespan of the pack. Additionally, safety is a paramount concern; overcharging can lead to thermal runaway, while over-discharging can cause irreversible damage. To address these challenges, a robust and intelligent battery energy management system is indispensable. Such a system should not only monitor and protect the pack but also perform state estimation and cell balancing to ensure safety, reliability, and optimal energy utilization.
1.2 Overview of Power Battery Technologies
Power batteries are defined as high-capacity and high-power sources suitable for driving electric tools and vehicles. Currently, the main contenders are valve-regulated lead-acid batteries, nickel-metal hydride batteries, lithium-ion batteries, and fuel cells. Lead-acid batteries are mature and inexpensive but suffer from low specific energy and severe environmental pollution. Ni-MH batteries exhibit superior specific power and are used extensively in hybrid electric vehicles, but their high cost limits their widespread adoption. Fuel cells have high conversion efficiency, yet the safe storage and delivery of hydrogen fuel remain a significant hurdle. Lithium-ion batteries, by contrast, are distinguished by their exceptional specific energy, high voltage plateau, low self-discharge rate, and the absence of any memory effect, positioning them as the preferred power source for future EVs and, crucially, as the core of a modern **traction battery pack**.
1.3 The Role of the Energy Management System
The energy management system is the “brain” of the **traction battery pack**. It performs four primary management functions: safety protection, runtime state monitoring, charge equalization, and thermal control. Safety protection involves real-time monitoring of voltage, current, and temperature to prevent over-charge, over-discharge, over-current, and short circuits. State monitoring relies on accurately estimating the state-of-charge (SOC) using algorithms and sensor data. Charge equalization mitigates the imbalances in cell voltages to maximize the usable capacity of the pack. Thermal control manages the cooling systems to ensure the pack operates within a safe temperature window. Traditional systems often fall short in terms of measurement accuracy and lack effective dynamic equalization strategies, motivating the need for the advanced design presented in this research.
1.4 Main Research Content
This thesis designs a comprehensive energy management system specifically tailored for a **traction battery pack**. The core contributions are as follows:
1. An in-depth study of SOC estimation methods, focusing on a hybrid approach that combines Ampere-hour (Ah) counting with open-circuit voltage (OCV) measurement, while incorporating compensations for temperature, charge-discharge efficiency, and cycle life.
2. The design of a hardware platform based on a PIC18F452 microcontroller, featuring dedicated circuitry for voltage, current, and temperature sensing, along with protection and passive equalization modules.
3. The development of modular software for the embedded system, detailing the data acquisition logic and the derived SOC algorithm.
4. Experimental validation of the SOC estimation model through charge and discharge tests on a real battery string.
Chapter 2. SOC Estimation for the Traction Battery Pack
2.1 Definition of State of Charge
The state of charge (SOC) is a dimensionless parameter that describes the remaining capacity of a battery relative to its total capacity. The most common definition relies on an ampere-hour perspective. Let $Q_c$ be the residual capacity and $C_I$ the capacity obtainable at a constant current $I$. The SOC is then expressed as:
$$
SOC = \frac{Q_c}{C_I} \tag{2-1}
$$
Alternatively, based on the discharged quantity $Q$, the equation is:
$$
SOC = 1 – \frac{Q}{C_I} \tag{2-2}
$$
In this formulation, $SOC = 1$ denotes a fully charged state, and $SOC = 0$ indicates the battery has reached its discharge cutoff voltage. This definition, however, is valid primarily under ideal constant-current conditions. Under varying currents, a battery may discharge further at a lower current even after the SOC is nominally zero, indicating the necessity to account for the influence of charge/discharge current rates, temperature, and reversible self-recovery effects. This is particularly important for a **traction battery pack** which sees dynamic load profiles.
2.2 Factors Affecting Remaining Capacity
The process of discharging a lithium-ion battery is a complex electrochemical phenomenon. Several factors strongly influence the actual energy that can be extracted from a **traction battery pack**:
– **Discharge Current**: Higher discharge currents lead to lower observable capacities due to increased internal ohmic drops and polarization. The efficiency of converting chemical energy into electrical energy is reduced at high C-rates.
– **Temperature**: Elevated temperatures enhance the electrochemical activity inside the cells, temporarily increasing usable capacity. Conversely, low temperatures significantly impair the chemical kinetics, reducing available power and capacity.
– **Self-Discharge**: All batteries undergo self-discharge, and the rate is highly dependent on ambient temperature. The self-discharge rate for lithium-ion batteries is relatively low, around 2–5% per month, compared to 20–35% for Ni-Cd and Ni-MH cells.
– **Cycle Life**: The capacity of a lithium-ion battery degrades with every full charge and discharge cycle. The working life of a battery is typically defined as the number of cycles until its capacity falls to 80% of its initial nominal value.
2.3 A Review of Common SOC Estimation Methods
Multiple methodologies exist to estimate SOC, each with distinct advantages and drawbacks as summarized in the table below:
| Method | Working Principle | Advantages | Disadvantages |
|---|---|---|---|
| Discharge Test | Discharging at a constant low current to measure remaining energy | High accuracy and reliability | Time-consuming; battery must be offline |
| Ampere-hour Counting | Integrating the charge and discharge currents over time | Simple, online measurement | Sensitive to current measurement errors; accumulates drift; unable to determine initial SOC |
| Open-Circuit Voltage | Correlating the stable OCV to SOC via a lookup table | Easy to apply, high precision in the beginning or end of charge | Requires open-circuit state; susceptible to temperature and memory effects |
| Internal Resistance | Measuring the battery impedance against SOC | Good accuracy in later discharge stages | Hard to measure online with precision |
| Kalman Filter | Recursively estimating state by minimizing covariance noise | High tolerance to noise and inaccurate sensor input | Computationally intensive |
2.4 An Improved Hybrid SOC Estimation Method
Real-world operation of a **traction battery pack** involves rapid acceleration and regenerative braking, leading to dynamic and fluctuating currents. A simple physical combination of Ah counting and OCV lookup is insufficient to cope with these conditions, particularly because the battery’s self-recovery effect distorts the OCV readings. Therefore, the strategy adopted in this work uses a hybrid method augmented with compensation models. By examining Self-recovery effects, open-circuit voltage data collected immediately after load rejection will be unstable. The model uses the following state-space logic:
$$
Q(t) = \int_{0}^{t} \eta i(t) \, dt \tag{2-3}
$$
The overall SOC for the **traction battery pack** is calculated as:
$$
SOC(t) = \left( K_t K_c K_0 \cdot SOC_0 \right) + \left( 1 – K_0 \right) SOC_0′ + \frac{Q(t)}{Q_N} \tag{2-4}
$$
Where:
– $SOC_0$ is the initial SOC value read from the OCV-SOC correlation curve;
– $SOC_0’$ is the SOC value measured at the conclusion of the previous charge/discharge session;
– $Q(t)$ is the accumulated net charge during the present session;
– $Q_N$ is the nominal capacity of the **traction battery pack**;
– $\eta$ is the Coulombic efficiency factor, which corrects the current integration based on the charge or discharge rate;
– $K_t$ and $K_c$ are the temperature and cycle-life correction coefficients for the initial SOC;
– $K_0$ is a Boolean constant indicating whether the open-circuit voltage has stabilized, ensuring the system correctly handles the open-circuit voltage reading conditions.
The estimation algorithm navigates different operating regimes by distinguishing between the initial state of charge and its progression. In the event that pack voltage is stable at rest, the system consults the experimentally-procured OCV vs. SOC table. On the other hand, if the **traction battery pack** has not yet experienced voltage stabilization, the previous end-state SOC becomes the starting point. Discontinuous current profiles are integrated piecewise; for each sampling period $k$, the charge is expressed as:
$$
Q_k = Q_{k-1} + i_k \cdot \Delta t \tag{2-5}
$$
The final value used for the estimation is normalized to the nominal current discharge value, thereby ensuring the physical definition of SOC remains coherent.
Chapter 3. Hardware Design of the Energy Management System
3.1 Overall System Architecture
The hardware architecture is vital for accurate data acquisition and system stability. The control unit is the PIC18F452 microcontroller from Microchip, which provides sufficient computational performance and peripheral interfaces for pre-processing signals from the **traction battery pack**. The system architecture encompasses several subsystems:
| Module | Description |
|---|---|
| Data Acquisition | Sampling of pack voltage, individual cell voltages, charging/discharging current, and temperature |
| Protection Circuitry | Dedicated chips (S-8261) preventing overvoltage, undervoltage, and overcurrent |
| Equalization Circuitry | Passive bleeder resistor-based topology for charge balancing |
| User Interface | LED management via MAX7219 and an independent input keypad |
3.2 Core Microcontroller and its Peripherals
The PIC18F452 uses a reduced instruction set computing architecture with a 16-bit instruction and an 8-bit data bus. It supports two interrupt priority levels and can operate with a maximum external oscillator frequency of 40 MHz. The MCU features built-in 32 KB Flash memory and 256 bytes of EEPROM. In this design, analog pins RA0, RA1, and RA2 are used for pack voltage, current, and cell voltage sensing; the peripheral ports RC3, RC4, and RC5 provide the control signals for the MAX7219 LED driver; and RC6 connects to the one-wire digital temperature sensor.
3.3 Power Supply Design
The system is powered directly from the battery being monitored. A linear regulator LM7805 converts the raw battery voltage to a stable +5V, which supplies the digital logic, operational amplifiers, and LCD. For the current sensing analog front-end which requires a symmetrical DC supply, an LM7812 produces +12V, which is subsequently inverted to -12V using an ICL7662 DC-DC voltage converter. Capacitive filtering between stages ensures a noise-free environment for high-resolution signal acquisition.
3.4 Voltage Sensing Circuits
Accurate voltage measurement is critical for both protection and SOC estimation.
**(a) Total Pack Voltage:** The voltage of a **traction battery pack** can be as high as 29.4 V, far exceeding the 5 V reference of the ADC. The voltage is scaled down using a precision resistor divider network, with the divider ratio chosen so the maximum pack voltage maps to the full-scale ADC range. The signal is then buffered into the MCU pin.
**(b) Individual Cell Voltages:** Precision measurement of individual cells allows for granular state estimation. Since the cells in series do not share a common ground within the ADC range, a floating measurement technique is required. For the experiments presented in this paper, I designed a discrete sample-and-hold circuit built around an LM358 operational amplifier and a P-channel MOSFET (F9630). The op-amp, in a closed loop configuration with the MOSFET, ensures that the voltage across the shunt resistor is equal to the cell voltage. This presents a high impedance to the cell being measured and is a low-cost solution for monitoring the cells of a **traction battery pack**.
3.5 Current Sensing Circuitry
For a small-scale **traction battery pack**, the current measurement is performed by the shunt-resistor method. I placed a 1 Ω precision resistor in series with the main power path. The voltage drop generated is proportional to the current. When discharging, the voltage drop across the shunt is positive, but during the charging process, it becomes negative. As the ADC can only sample unipolar positive voltages, I designed an absolute-value amplifier circuit stage. This circuit, built around the LM324, performs signal inversion and gain simultaneously. The output voltage is given by:
$$
V_{out} = 5 \times | V_{in} | \tag{3-1}
$$
This allows the MCU to measure both charge and discharge currents with a single-channel ADC conversion. The overall gain of 5 amplifies the relatively small voltage drop to fully exploit the dynamic range of the A/D converter, thus increasing measurement precision.
3.6 Temperature Sensing Circuit
Temperature is a crucial parameter for the safe operation and accurate SOC estimation of a **traction battery pack**. To capture this reliably, I utilized the Maxim/Dallas DS18B20 digital thermometer, which is a fully integrated device. It operates on the 1-Wire bus protocol, requiring only a single data line and a pull-up resistor for connection to the microcontroller. Using an external power supply configuration, the sensor provides a temperature resolution of 0.0625°C within the range of -55°C to +125°C. This digital data transmission eliminates the noise that can plague analog temperature sensors, a key feature for a **traction battery pack** which can generate significant electromagnetic interference.
3.7 LED Display and Keyboard Interface
For local data visualization, I selected the MAX7219 LED driver, which is well-suited for the limited I/O resources of control systems. It interfaces with the MCU over a 4-wire serial interface (DIN, CLK, LOAD). This driver can control up to eight 7-segment digits using internal decoding and providing constant-current digit drives. Only a single external resistor is needed to set the segment current. Four digits are driven to display the voltage, current, temperature, and SOC values. A low-pass RC filter was added to the CLK, DIN, and LOAD lines to suppress digital noise from the MOSFET switching occurring within the charger circuits.
To manually select which parameter is displayed on the LED module, I designed a user interface with independent push-button switches connected to the PORT B interrupts. To remove mechanical contact bounce, the firmware includes a 10 ms software debounce delay. The switch state is determined via a software polling loop, providing a simple one-way interface from the operator to the management system. The lighting circuit for the LEDs used for state-of-charge status indication contains several logic gates (LM339), a voltage reference TL431, and transistors. The dynamic response of this section increases the convenience of the user to read state-of-charge information on the **traction battery pack** display panel.
3.8 Design of the Protection Circuitry
Lithium-ion batteries have a higher energy density, which translates into a high inherent risk of catastrophic failure. When overcharged, the internal pressure builds up due to electrolyte decomposition, which can lead to rupture. Over-discharge degrades electrode structure. To ensure the reliability of a **traction battery pack**, a multi-level protection strategy is mandatory. The protection scheme implemented here is based on the proprietary S-8261 IC. This is a dedicated single-cell protection IC that integrates a high-precision voltage detector, delay circuits, and logic for over-charge, over-discharge, and over-current protection.
The simplified circuit topology of the connection is as follows. An individual S-8261 monitors each cell. Because these cells are in a stacked series configuration, direct communication between the low-voltage ICs is not safe. Therefore, I used optocouplers to isolate the logic signals from the cell monitoring level to the high-side power-switching stage.
| Parameter | Value |
|---|---|
| Overcharge Detection Voltage | 4.28 ± 0.025 V |
| Overcharge Hysteresis Delay | < 1.3 s |
| Overdischarge Detection Voltage | 2.3 ± 0.05 V |
| Overdischarge Hysteresis Delay | < 150 ms |
| Charge Voltage (Max) | 17 V |
| Maximum Continuous Current | 2 A |
| Overcurrent Detection Delay | < 10 ms |
| Short Circuit Protection Delay | < 3 ms |
| Static Power Consumption | < 200 µA |
In the final design, four ICs monitor four cells in series. The circuit engages overcharge protection by switching the charging MOSFET off. If any of the four cells in a **traction battery pack** exceeds the threshold, its corresponding IC’s output signal turns off, activating the optocoupler network to shut down the charge current path entirely, allowing only discharge currents through the intrinsic body diode of the charging MOSFET. Similarly, protect against overdischarge by switching a discharge-control MOSFET off.
To solve the problem of automatic bounce back due to self-discharge recovery, I additionally introduced a latching circuit made with a CMOS NAND gate logic. Once an under-voltage condition occurs, the battery’s protection control logic sets a latch that maintains the discharge MOSFET in a non-conducting state, until the external load is physically removed.
3.9 Equalization Circuit Design
Cell imbalance is one of the main reasons for reduced capacity and service life of a **traction battery pack**. The voltage of individual cells diverges due to manufacturing inconsistencies and temperature gradients, creating an issue that is particularly evident during charging. In a series strings, the charging current flows equally through all cells. Thus, charging ends when the cell with the highest voltage or lowest capacity reaches its limit, leaving the remaining cells undercharged.
Given the power level of this pack, I implemented a passive equalization topology. The circuit uses the overcharge detection signal from the S-8261 protection IC. Upon detecting a cell reaching its overcharge threshold (for instance 4.275 V), the DO/CO pin toggles to a low logic level, driving a P-Channel MOSFET into conduction. This connects a 68 Ω power resistor across the cell’s terminals. The result is that the charging current is effectively bypassed as heat around the highest voltage cell:
$$
I_{bypass} = \frac{V_{cell}}{R} = \frac{4.275\text{ V}}{68\text{ }\Omega} \approx 63\text{mA} \tag{3-2}
$$
During this phase, dissipated power in the bleed resistor is about 0.28 W. This prevents the highest voltage cell from entering a state of overcharge while the weaker cells in the **traction battery pack** continue to receive the net charging current.
Chapter 4. Software Design for the Energy Management System
4.1 Overview of the Program Architecture
The software for the energy management system of the **traction battery pack** was designed using a modular organization, coded in assembly language for the PIC18F452 processor. The software was developed and debugged using the PICMATE2004 simulator. A modular design approach facilitates isolating components during integration. The main program initializes all hardware peripherals, sets the initial states for the LCD, and enters an infinite-loop poll of the keyboard. When a key event is detected, the program will launch the appropriate subroutine to update a parameter. The system uses two main interrupts: TMR0 for data acquisition and TMR1 for data processing and dynamic LED display.
4.2 Initialization Module
Upon power-up, the MCU’s program begins with the initialization sequence. This routine configures the I/O ports as inputs or outputs, configures the A/D module with the appropriate acquisition clock and voltage reference, initializes the TMR0 and TMR1 timers for precise interrupt generation, and finally initializes the MAX7219. For the MAX7219, the initialization includes setting it to shutdown mode, specifying the decode mode (BCD), selecting the number of scanned digits, and establishing the display intensity level.
4.3 Data Acquisition Module
Voltage and current sample processing leverages the PIC’s 10-bit ADC. For the total pack voltage and cell strings, the raw values are read and then mathematically scaled based on the resistor divider ratios. The program performs eight successive samples of each analog input and averages them to reduce electromagnetic interference from the power switching environment. The flowchart logic begins with channel selection, launches the conversion, waits for completion flag, and stores the result in designated memory registers.
The current measurement requires the acquisition of two channels. The pack volt-channel of the ADC reads the linear voltage output from the absolute value amplifier and classifies it as either a charging current or a discharging current.
For the DS18B20, I implemented the strict 1-Wire protocol. Before any communication, the MCU must initialize the bus by sending a reset pulse, followed by the sensor’s presence pulse response. Upon successful detection, the MCU broadcasts a *Skip ROM* command to address all slaves (for single-point detection), then issues a *Convert T* command. After a predetermined conversion time, the MCU resets and sends a *Read Scratchpad* command to get the 16-bit temperature reading from the sensor’s internal RAM.
4.4 The SOC Estimation Program
The overall logic of the SOC calculation program directly implements the model in Equation (2-7). The main routine accesses the SOC initial value table. If the **traction battery pack** is at rest state, it stores the $SOC_0$ reading obtained from the voltage. The voltage-SOC curve was constructed through an experimental calibration experiment, dividing the discharge process into segments. When the system is subject to charging or discharging, the current is integrated and the incremental variations are fed directly into the calculation.
The current integration is realized by the periodic interruption mechanism created by the TMR1 module: at every fixed interval $\Delta t$, the latest value of the instantaneous current is used to update the total charge. The program discriminates between the charge and discharge cases to ensure proper sign convention. After accumulating, the value $Q(t)/Q_N$ is computed and added to the compensation terms. The resulting SOC value is stored and used for displaying to the user.
4.5 Keyboard and Display Handling Module
The key scanning software is executed in the main loop. To eliminate glitches, the firmware utilizes an interrupt-based debouncing routine. When a key closure is detected, the program executes a 10 ms delay after which the state of the port is re-checked. If the key is confirmed closed, the function associated with that port B pin is executed.
The display update routine is tied to the MAX7219. The four displays are refreshed continuously. For the functions like voltage or current, the buffer register holds the decimal digits. The common subroutine for sending data to MAX7219 first pulls the LOAD line low. It then transmits the 16-bit message, consisting of the 4-bit register address and the 8-bit data, one bit at a time. The CLK line is cycled in order to shift the data into the shift register without transmission errors.
Chapter 5. Experimental Results and Analysis
5.1 Experimental Setup
In order to validate the functional capabilities of the management system, I conducted a series of experiments on the hardware prototype. The test battery was a set of seven high-capacity lithium-ion polymer cells connected in series, forming a **traction battery pack**.
| Parameter | Specification |
|---|---|
| Cell Model (TSE-086760) | Nominal Capacity: 2 Ah |
| Operating Voltage | Rated: 25.9 V |
| Charge Voltage | Max: 29.4 V |
| Cut-off Voltage | Min: 21 V |
| Charging Protocol | CC/CV (Constant Current–Constant Voltage) |
| Max Charging Current | 2 A |
| Max Continuous Discharge Current | 2 A |
5.2 Open Circuit Voltage and State of Charge
A pivotal part of the SOC estimation is the OCV-SOC relationship. To obtain it, I conducted a quasi-static discharge test. The **traction battery pack** was discharged using a very low current of 0.05C (100mA) in a temperature-controlled room. Since the pack was in a near-equilibrium state, the terminal voltage was considered equivalent to the open-circuit voltage. At defined SOC points, the discharge process was halted to allow the batteries to rest, ensuring that subsequent voltage readings were stable. The test yielded the following relationship:
$$
V_{ocv} = f(SOC) \tag{5-1}
$$
The relationship exhibited a strong, monotonically increasing trend. Most notably, the curve possessed a significant plateau region between 20% and 80% SOC where minor voltage changes correspond to large capacity variations, indicating the need for direct current integration for estimating mid-range states.
5.3 Constant Current Charging Test
The charging profile for the **traction battery pack** was set to charge at 0.3 C (600 mA) until the terminal voltage reached the maximum cut-off of 29.4 V. After that, the CV phase took over, gradually taper the current down to a termination condition of 50 mA. From the recorded data, we noted that the pack voltage rises sharply, then flattens out. The SOC increases linearly during the complete CC phase. As the system enters CV mode, the current drops from its peak value falling in an exponential decay trend and the SOC curve continues to slowly converge toward full capacity. The small data collecting intervals show the expected increases and the end-of-charge voltage stayed within the limit.
5.4 Constant Current Discharge Tests
The discharge test aims at characterizing the performance and system limits of the **traction battery pack**. The pack was charged fully and then discharged at currents of 0.2 C, 0.4 C, and 0.5 C. As is typical for lithium-ion batteries, a higher discharge current results in a lower terminal voltage for the same SOC point, due to the internal resistance and polarization.
| Discharge Rate | Time to reach Cut-off | Usable Capacity (mAh) |
|---|---|---|
| 0.2 C (400 mA) | 3.6 hours | 1420 |
| 0.4 C (800 mA) | 2.2 hours | 1380 |
| 0.5 C (1000 mA) | 1.3 hours | 1229 |
These results confirm that the effective capacity of a **traction battery pack** is reduced under high demand due to discharge inefficiency at high C-rates. The self-recovery effect is also more pronounced after high-current discharge, as the battery terminal voltages rebound to a higher open circuit voltage when the load is removed.
5.5 Validation of the SOC Estimation Strategy
To validate the algorithm, a dynamic discharge profile was applied using a fixed 40 Ω resistance as a load. This produced a slow and controlled decreasing current over time. The model in Equation (2-4) was used inside the microcontroller, with the algorithm considered the (current) measured pack SOC during voltage integration. The estimated SOC value was compared against the reference value obtained by Coulomb-counting with high accuracy in each test condition. The model yielded SOC errors of about less than 4% after two hours of discharge, establishing the feasibility of the correction factors.
These experiments confirm that the system’s various control and software features are well-integrated and able to maintain operability of a **traction battery pack** in a safe and predictable way.
