Hi,

I'm trying to create a simple model that will calculate the state of charge of a battery, the possible energy flows into/out of the battery are shown below as 'A'.

Positive values are for energy available to change the battery, negative is energy demand on the battery.

`A = [1, 4, 3, 3, 1, -2, -5, 1, 2, 3, -5, -5, 1, 1, 1, 3]`

If the battery is of size 7, the minimum level of charge will be 0 and the max will be 7.

So far I believe the way to calculate this is by using the cumsum function, however the result of each cumsum should not be less than 0 or more than 7.

So for the above array I would like my results to look as follows, with the afformentioned limits taken into account.

`SoC = cumsum(A) SoC =[1, 5, 7, 7, 7, 5, 0, 1, 3, 6, 1, 0, 1, 2, 3, 6]`

Hopefully someone will be able to help me on this, you help is greatly appriciated.

## Best Answer