Help with Battery Capacity Prediction using LSTM

6 次查看(过去 30 天)
Hello everyone,
I'm trying to predict the capacity of a battery using a sequence-to-one regression model, but my current results aren't good, and I'm looking for some advice.
My Data:
  • I have 1000 data sequences.
  • Each sequence represents a single battery charfe and discharge cycle.
  • The input features for each sequence are Voltage, Current, Temperature, and Time.
  • The shape of each input sequence is [4 features x 3700 time steps].
  • The output is the battery capacity, which is a single double value for each sequence.
My Model Architecture:
I'm using an LSTM network with the following layers:
Matlab
layers = [
sequenceInputLayer(4, 'MinLength', 3700, 'Name', 'input', 'Normalization', 'zscore')
lstmLayer(50, 'OutputMode', 'last', 'Name', 'lstm')
fullyConnectedLayer(40, 'Name', 'fc1')
reluLayer('Name', 'relu_fc')
fullyConnectedLayer(1, 'Name', 'fc_output')
regressionLayer('Name', 'output')
];
My Problem:
The model isn't providing useful results. I'm not sure what I might be doing wrong with my approach.
My questions are:
  • Is this a suitable architecture for this type of problem?
  • Are there any common issues I should check, such as data preprocessing (e.g., normalization) or hyperparameter tuning (e.g., number of hidden units)?
  • Could the issue be in how I'm handling the Time feature? Should it be a separate feature, or is there a better way to represent it?
Any suggestions on how to improve my model or overall approach would be greatly appreciated. Thank you!

回答(1 个)

Shishir Reddy
Shishir Reddy 2025-7-17
Your architecture is a good starting point for sequence-to-one regression. Using an LSTM with OutputMode='last' is appropriate since you're mapping the full sequence to a single capacity value.
Here are the common issues that should be checked -
  • Batch Size: Try using mini-batches of size 16 or 32.
  • Learning Rate: Consider experimenting with a lower learning rate (e.g., 0.001).
  • Sequence Padding: Make sure all sequences are the same length or properly padded.
  • Train/Validation Split: Ensure a good mix of battery capacities in both training and validation sets.
  • Overfitting: Check for overfitting, use early stopping or dropout layers if needed.
For more information regarding training deep neural networks, kindly refer the following documentation - https://www.mathworks.com/help/deeplearning/train-deep-neural-networks.html
I hope this helps.

类别

Help CenterFile Exchange 中查找有关 Image Data Workflows 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by