Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Separate Voltages for events and setting initial SOC #2562

Closed
js1tr3 opened this issue Dec 15, 2022 · 12 comments
Closed

Separate Voltages for events and setting initial SOC #2562

js1tr3 opened this issue Dec 15, 2022 · 12 comments
Labels

Comments

@js1tr3
Copy link
Contributor

js1tr3 commented Dec 15, 2022

Description

It appears the parameters
Lower voltage cut-off [V] 2.8
Upper voltage cut-off [V] 4.2

are used both to set the initial SOC and for simulation events, as a result if the voltage limits for discharge are changed, this impacts the initial SOC.

Motivation

It would be good to have a sperate variable for the simulation event termination and calculation of SOC/initial stoichiometry.
The present implementation is breaking my use case of comparing the model to different discharge voltages, as the initial SOC changes also.

Possible Implementation

No response

Additional context

No response

@js1tr3 js1tr3 added the feature label Dec 15, 2022
@valentinsulzer
Copy link
Member

Hi Jason :) You can change the values in the experiment specification

pybamm.Experiment(
    [
        "Discharge at C/5 for 10 hours or until 3 V",
        "Rest for 1 hour",
        "Charge at 1 A until 4.2 V",
        "Hold at 4.2 V until 10 mA",
        "Rest for 1 hour",
    ]
)

without affecting the voltage limits for SOC, is this what you need?

@js1tr3
Copy link
Contributor Author

js1tr3 commented Dec 15, 2022 via email

@valentinsulzer
Copy link
Member

I see, that makes sense. And even if the SOC is still <100% the voltage might go above the cut-off. So we should add parameters "Open circuit potential at 0% SOC" and "Open circuit potential at 100% SOC", which can be different from the voltage cut-offs.

Could you open a PR to do this? It should be pretty straightforward. Basic steps are:

  1. Add these parameters to each parameter set, defaulting to the same value as the cut-offs
  2. Add a two new Parameter object to the lithium_ion_parameters.py files (e.g. self.opc_soc_0, self.ocp_soc_100)
  3. Replace the cut-off voltage in this line (and other places in that file) with the new target ocp voltage
    V_min = parameter_values.evaluate(param.voltage_low_cut_dimensional)

@js1tr3
Copy link
Contributor Author

js1tr3 commented Dec 15, 2022 via email

@js1tr3
Copy link
Contributor Author

js1tr3 commented Dec 17, 2022 via email

@valentinsulzer
Copy link
Member

Does test_electrode_soh.py work as expected?

@js1tr3
Copy link
Contributor Author

js1tr3 commented Dec 20, 2022 via email

@valentinsulzer
Copy link
Member

Can you open a draft pull request so I can check it? It shouldn't make a difference what Vmin and Vmax are for this calculation, if it's based entirely on OCP at 0/100% SOC. Make sure you change voltage_low_cut_dimensional to opc_soc_0_dimensional everywhere relevant.

@rtimms
Copy link
Contributor

rtimms commented May 15, 2023

@js1tr3 how is this going?

@js1tr3
Copy link
Contributor Author

js1tr3 commented May 15, 2023

@js1tr3 how is this going?

Good, got tied up with teaching this semester, but hope to get back on this shortly. Any suggestions for resolving conflicts in jupyter notebooks?

@rtimms
Copy link
Contributor

rtimms commented May 16, 2023

No worries, thanks for the update. Conflicts in notebooks can be a bit of a pain. Are they notebooks you have actively changed for this PR? If not, just accept all the incoming changes or check the file out from develop.

@valentinsulzer
Copy link
Member

Solved by #2580

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants