Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 15 Next »

[page is not complete]

Prerequisite: Cell testing must be complete

MSXIV Module Testing Procedure (Summary)

  1. 100A complete discharge/charge test

  2. Equipment

    1. Keysight N3300A electronic load (with associated electronic load modules)

    2. a current shunt resistor

    3. 2 Keysight 34465A DMMs - one to measure the current via the current shunt, and one to measure the voltage of the first series group

    4. Keysight U5855A thermal camera

  3. Internal resistance test? Capacity test?

https://uwmidsun.atlassian.net/l/cp/PTFyj8dV

https://uwmidsun.atlassian.net/l/cp/1FjNwoPe

https://uwmidsun.atlassian.net/l/cp/eCq1YMDH

https://uwmidsun.atlassian.net/l/cp/zgaxYM2W

https://uwmidsun.atlassian.net/l/cp/gYYKFaCP

Jehugarcia Video (Summary)

lithium Battery testing Procedures - YouTube

  1. test voltage, see if any individual cell(s) are low

  2. check capacity and internal resistance (discharge-->charge-->discharge)

NHS Video / Brochure (Summary)

Learn the Fundamentals of Battery Module and Pack Test - YouTube

The Fundamentals of Battery/Module Pack Test (nhresearch.com)

  • module-testing is more “application-focused” whereas cell-testing is more “chemistry focused”

  • Battery Condition

    • SOC (State of Charge)

    • DOD (Depth of Discharge)

    • SOH (State of Health)

    • DCIR (Direct Current Internal Resistance)

  • Battery Capability

    • SOP (State of Power)

  • Testing interests

    • battery cycling (cells swell?!, may or may not fit?!)

    • performance under simulated environment

    • performance under simulated use

    • degradation over time / # of cycles/aging characteristics? (might be less relevant to us)

    • capacity measurement

    • mechanical stress test

    • thermal tests

Questions for Micah

  • Charge / Discharge test procedure?

  • Internal resistance test? Capacity test?

  • What other tests?

  • Where did you find the equipment?

  • [not complete, feel free to add]

Miscellaneous Links

Chatgpt3

A Kalman filter is an algorithm that uses a series of measurements observed over time to estimate the state of a system. It is a type of recursive filter, which means that it processes each measurement by using the previous state estimate and the current measurement to produce a new state estimate.

Here is an example of how to implement a Kalman filter in Python:

import numpy as np

# Initialize state vector x and covariance matrix P
x = np.array([0, 0])
P = np.array([[1, 0], [0, 1]])

# Process noise covariance matrix Q
Q = np.array([[1, 0], [0, 1]])

# Measurement noise covariance matrix R
R = np.array([[1, 0], [0, 1]])

# State transition matrix A
A = np.array([[1, 1], [0, 1]])

# Measurement matrix H
H = np.array([[1, 0], [0, 1]])

# Input control vector u
u = np.array([0, 0])

# Measurement vector z
z = np.array([1, 1])

# Kalman filter
for i in range(10):
    # Predict
    x = np.dot(A, x) + np.dot(B, u)
    P = np.dot(A, np.dot(P, A.T)) + Q

    # Update
    K = np.dot(P, np.dot(H.T, np.linalg.inv(np.dot(H, np.dot(P, H.T)) + R)))
    x = x + np.dot(K, z - np.dot(H, x))
    P = P - np.dot(K, np.dot(H, P))

    # Print result
    print("x:", x)
    print("P:", P)

This implementation assumes that the system is a linear dynamical system with Gaussian noise. It uses the state transition matrix A to predict the state at the next time step, and the measurement matrix H to transform the state vector into the measurement space. The Kalman filter then uses the Kalman gain K to correct the predicted state based on the difference between the measured and predicted values.


Coulomb counting is a method for estimating the remaining charge in a battery. It works by measuring the current flowing into or out of the battery and integrating this value over time to obtain the total charge that has been transferred. This value can then be used to estimate the remaining charge in the battery.

Here is an example of how to implement a Coulomb counting algorithm in Python:

# Initialize variables
current = 0
charge = 0
capacity = 100

# Sample current every second
for i in range(10):
    # Measure current
    current = measure_current()

    # Integrate current over time to obtain charge
    charge += current

    # Estimate remaining capacity
    remaining_capacity = capacity - charge

    # Print result
    print("Remaining capacity: ", remaining_capacity)

This implementation assumes that the battery has a known capacity and that the current flowing into or out of the battery can be measured accurately. It also assumes that the current remains constant over each time step, which may not be the case in practice. In order to improve the accuracy of the estimation, a more sophisticated algorithm that takes into account the variations in the current over time may be necessary.


SOH (State of Health) filters are used to estimate the remaining capacity of a battery based on its voltage and temperature. The idea behind SOH filters is to use historical data on the battery's performance to predict its future behavior. This is typically done by fitting a curve to the battery's discharge data and using this curve to estimate the remaining capacity at a given voltage and temperature.

Here is an example of how to implement a SOH filter in Python:

import numpy as np
from scipy.optimize import curve_fit

# Define the curve fitting function
def curve(x, a, b, c):
    return a * x**2 + b * x + c

# Load the battery's discharge data
voltages = np.array([3.7, 3.6, 3.5, 3.4, 3.3])
capacities = np.array([98, 95, 90, 85, 80])

# Fit a curve to the discharge data
params, _ = curve_fit(curve, voltages, capacities)

# Estimate the battery's remaining capacity at a given voltage and temperature
voltage = 3.5
temperature = 25
remaining_capacity = curve(voltage, *params)

# Print the result
print("Remaining capacity: ", remaining_capacity)

This implementation uses a simple quadratic function to fit a curve to the battery's discharge data. More sophisticated functions may be used to improve the accuracy of the estimate, but this will require more data points and a more complex optimization algorithm. Additionally, this implementation does not take into account the effect of temperature on the battery's performance, which can also affect the accuracy of the estimate. A more complete implementation would include a temperature correction factor to account for this effect.

Pack Testing, BMS Testing is still left…

  • No labels