switch to web app
This commit is contained in:
127
README.md
127
README.md
@ -1,13 +1,122 @@
|
||||
# LiXX Cell Pack Matcher
|
||||
|
||||
Tool for finding the best configuration in a LiXX Battery Pack.
|
||||
Matches capacity in parallel cell groups from a serial pack.
|
||||
A web-based tool for finding the optimal cell configuration in lithium battery packs. It matches cells based on capacity and internal resistance to maximize pack performance and longevity.
|
||||
|
||||
## Working
|
||||
- Matches cells bases on capacity for varius Pack configuration. Set parallel and serial cell count respectively.
|
||||
- Supports labels as identifier for cells.
|
||||

|
||||
|
||||
## Not Working
|
||||
- Clould be faster, 6S2P needs more than 10min to compute
|
||||
- Support internal cell resistance matching
|
||||
- Support bigger cell pool for a pack that is needed
|
||||
## Features
|
||||
|
||||
- **Pack Configuration**: Support for any SxP configuration (e.g., 6S2P, 4S3P, 12S4P)
|
||||
- **Cell Matching**: Optimize by capacity (mAh) and internal resistance (mΩ)
|
||||
- **Multiple Algorithms**:
|
||||
- Genetic Algorithm (fast, recommended)
|
||||
- Simulated Annealing (good for escaping local minima)
|
||||
- Exhaustive Search (optimal for small configurations)
|
||||
- **Surplus Cell Support**: Use more cells than needed; the algorithm selects the best subset
|
||||
- **Live Progress**: Watch the optimization in real-time
|
||||
- **Visual Pack Layout**: Color-coded visualization of the matched pack
|
||||
- **Export Options**: JSON, CSV, and clipboard support
|
||||
- **Keyboard Accessible**: Full keyboard navigation support
|
||||
- **No Dependencies**: Pure HTML/CSS/JavaScript, no build step required
|
||||
|
||||
## Scientific Background
|
||||
|
||||
This tool implements cell matching algorithms based on research findings about lithium-ion battery pack assembly:
|
||||
|
||||
> **Internal resistance matching for parallel-connected lithium-ion cells and impacts on battery pack cycle life**
|
||||
>
|
||||
> Shi et al., Journal of Power Sources (2013)
|
||||
> DOI: [10.1016/j.jpowsour.2013.11.064](https://doi.org/10.1016/j.jpowsour.2013.11.064)
|
||||
|
||||
Key findings:
|
||||
- A 20% difference in internal resistance between parallel-connected cells can reduce cycle life by approximately 40%
|
||||
- Resistance mismatch causes uneven current distribution
|
||||
- Uneven current leads to higher operating temperatures and accelerated capacity fade
|
||||
|
||||
## Usage
|
||||
|
||||
### Quick Start
|
||||
|
||||
1. Open `index.html` in a web browser
|
||||
2. Set your pack configuration (e.g., 6S2P)
|
||||
3. Enter cell data (label, capacity, and optionally internal resistance)
|
||||
4. Click "Load Example" to see sample data
|
||||
5. Adjust weights for capacity vs. IR matching
|
||||
6. Click "Start Matching"
|
||||
7. Review results and export if needed
|
||||
|
||||
### Keyboard Shortcuts
|
||||
|
||||
| Shortcut | Action |
|
||||
|----------|--------|
|
||||
| `Alt + A` | Add new cell |
|
||||
| `Alt + S` | Start matching |
|
||||
| `Alt + E` | Load example data |
|
||||
| `Esc` | Stop matching / Close dialog |
|
||||
| `?` | Show keyboard shortcuts |
|
||||
|
||||
### Cell Data Format
|
||||
|
||||
Each cell requires:
|
||||
- **Label**: Unique identifier (e.g., "B01", "Cell-A")
|
||||
- **Capacity**: Measured capacity in mAh
|
||||
- **Internal Resistance** (optional): Measured IR in mΩ
|
||||
|
||||
### Algorithm Selection
|
||||
|
||||
| Algorithm | Best For | Speed |
|
||||
|-----------|----------|-------|
|
||||
| Genetic Algorithm | Most cases, large pools | Fast |
|
||||
| Simulated Annealing | Avoiding local optima | Medium |
|
||||
| Exhaustive | Small configs (<8 cells) | Slow |
|
||||
|
||||
### Matching Weights
|
||||
|
||||
- **Capacity Weight**: Importance of matching parallel group capacities
|
||||
- **IR Weight**: Importance of matching internal resistance within parallel groups
|
||||
|
||||
For current high-rate applications (e.g., power tools, EVs), increase IR weight.
|
||||
For capacity-focused applications, increase capacity weight.
|
||||
|
||||
## Project Structure
|
||||
|
||||
```
|
||||
lixx_cell_pack_matcher/
|
||||
├── index.html # Main application
|
||||
├── css/
|
||||
│ └── styles.css # Application styles
|
||||
├── js/
|
||||
│ ├── app.js # Main application logic
|
||||
│ └── matching-algorithms.js # Matching algorithms
|
||||
├── data/
|
||||
│ └── favicon.svg # Application icon
|
||||
├── README.md # This file
|
||||
└── LICENSE # MIT License
|
||||
```
|
||||
|
||||
## Technical Details
|
||||
|
||||
### Scoring Algorithm
|
||||
|
||||
The match quality score is calculated as:
|
||||
|
||||
```
|
||||
score = (capacityWeight × capacityCV) + (irWeight × avgWithinGroupIRCV)
|
||||
```
|
||||
|
||||
Where:
|
||||
- `capacityCV`: Coefficient of variation of parallel group capacities
|
||||
- `avgWithinGroupIRCV`: Average coefficient of variation of IR within each parallel group
|
||||
- Lower score = better match
|
||||
|
||||
### Coefficient of Variation
|
||||
|
||||
```
|
||||
CV = (σ / μ) × 100%
|
||||
```
|
||||
|
||||
Where σ is the standard deviation and μ is the mean.
|
||||
|
||||
## License
|
||||
|
||||
MIT License - see [LICENSE](LICENSE) for details.
|
||||
Reference in New Issue
Block a user