Security News
Research
Data Theft Repackaged: A Case Study in Malicious Wrapper Packages on npm
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
This repository contains Python code for running an equivalent circuit model (ECM) developed for a 2013 Nissan Leaf battery cell and module. The ecm
package contains source code for the equivalent circuit model while the examples
folder provides scripts for running the ECM for a battery cell, module, and pack. Model parameters are determined from hybrid pulse power characterization (HPPC) and discharge tests conducted at ORNL. The battery cell and module specifications were provided by NREL.
The Anaconda or Miniconda distribution of Python 3 is recommended for this project. The ecm
package requires Matplotlib, NumPy, Pandas, and SciPy.
The simplest way to install the ECM package is with pip. This can be done from within the equiv-circ-model directory:
# Install the ecm package
pip install -e .
A requirements file is provided for running the ECM in a virtual environment using pip:
# Create a new virtual environment
python -m venv env
# Activate the environment
source env/bin/activate
# Install packages needed for the ECM
pip install -r requirements.txt
# From within equiv-circ-model directory, install the ecm package
pip install -e .
# Deactivate the environment
deactivate
# Remove the environment by deleting the `env` folder
An environment yaml file is also provided for running the ECM in a conda environment:
# Create a new conda environment and install packages needed for the ECM
conda env create -f environment.yml
# Activate the environment
conda activate ecm
# From within equiv-circ-model directory, install the ecm package
pip install -e .
# Deactivate the environment
conda deactivate
# Remove the environment and its installed packages
conda env remove -n ecm
Examples of using the ecm
package are provided in the examples
folder. Examples are organized into subfolders for battery cell and battery module models. From within the subfolder, each script can be run from the command line such as:
# View plots of the battery cell HPPC data
cd ~/equiv-circ-model/examples/cell
python view_hppc_data.py
# Run the ECM for a battery cell and compare to HPPC battery cell data
cd ~/equiv-circ-model/examples/cell
python hppc_vt.py
ecm - Python package containing source code for the equivalent circuit model (ECM).
examples/cell - Example scripts for running the battery cell ECM.
examples/cell-to-module - Examples of using a cell model to predict a battery module.
examples/cell-to-pack - Examples of using a cell model to predict a battery pack.
examples/data - Data files from 2013 Nissan Leaf battery cell and module tests. This data is used for developing and validating the ECM.
examples/module - Example scripts for running a battery module ECM.
examples/module-to-pack - Examples of using a module model to predict a battery pack.
Comments, suggestions, and other feedback can be submitted on the Issues page.
This code is available under the MIT License - see the LICENSE file for more information.
FAQs
A Python package for equivalent circuit models
We found that ecm-thinkclock demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Research
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
Research
Security News
Attackers used a malicious npm package typosquatting a popular ESLint plugin to steal sensitive data, execute commands, and exploit developer systems.
Security News
The Ultralytics' PyPI Package was compromised four times in one weekend through GitHub Actions cache poisoning and failure to rotate previously compromised API tokens.