openjournals / joss-reviews

Reviews for the Journal of Open Source Software
Creative Commons Zero v1.0 Universal
725 stars 38 forks source link

[REVIEW]: COBRAPRO: A MATLAB toolbox for Physics-based Battery Modeling and Co-simulation Parameter Optimization #6803

Open editorialbot opened 5 months ago

editorialbot commented 5 months ago

Submitting author: !--author-handle-->@COBRAPROsimulator<!--end-author-handle-- (Sara Ha) Repository: https://github.com/COBRAPROsimulator/COBRAPRO Branch with paper.md (empty if default branch): Version: v1.0.0 Editor: !--editor-->@mbarzegary<!--end-editor-- Reviewers: @yuefan98, @BradyPlanden, @brosaplanella Archive: Pending

Status

status

Status badge code:

HTML: <a href="https://joss.theoj.org/papers/54273964eb00e1e54308c19d54518891"><img src="https://joss.theoj.org/papers/54273964eb00e1e54308c19d54518891/status.svg"></a>
Markdown: [![status](https://joss.theoj.org/papers/54273964eb00e1e54308c19d54518891/status.svg)](https://joss.theoj.org/papers/54273964eb00e1e54308c19d54518891)

Reviewers and authors:

Please avoid lengthy details of difficulties in the review thread. Instead, please create a new issue in the target repository and link to those issues (especially acceptance-blockers) by leaving comments in the review thread below. (For completists: if the target issue tracker is also on GitHub, linking the review thread in the issue or vice versa will create corresponding breadcrumb trails in the link target.)

Reviewer instructions & questions

@yuefan98 & @BradyPlanden & @brosaplanella, your review will be checklist based. Each of you will have a separate checklist that you should update when carrying out your review. First of all you need to run this command in a separate comment to create the checklist:

@editorialbot generate my checklist

The reviewer guidelines are available here: https://joss.readthedocs.io/en/latest/reviewer_guidelines.html. Any questions/concerns please let @mbarzegary know.

Please start on your review when you are able, and be sure to complete your review in the next six weeks, at the very latest

Checklists

📝 Checklist for @yuefan98

📝 Checklist for @brosaplanella

📝 Checklist for @BradyPlanden

editorialbot commented 5 months ago

Hello humans, I'm @editorialbot, a robot that can help you with some common editorial tasks.

For a list of things I can do to help you, just type:

@editorialbot commands

For example, to regenerate the paper pdf after making changes in the paper's md or bib files, type:

@editorialbot generate pdf
editorialbot commented 5 months ago

Software report:

github.com/AlDanial/cloc v 1.90  T=0.05 s (1133.1 files/s, 146764.4 lines/s)
-------------------------------------------------------------------------------
Language                     files          blank        comment           code
-------------------------------------------------------------------------------
MATLAB                          53            801           2888           2933
Markdown                         2             62              0            406
TeX                              1             24              0            246
YAML                             1              1              4             18
-------------------------------------------------------------------------------
SUM:                            57            888           2892           3603
-------------------------------------------------------------------------------

Commit count by author:

   200  COBRAPROsimulator
     1  CO-simulation BatteRy modeling for Accelerated PaRameter Optimization (COBRAPRO)
editorialbot commented 5 months ago

Paper file info:

📄 Wordcount for paper.md is 2632

✅ The paper includes a Statement of need section

editorialbot commented 5 months ago

License info:

✅ License found: MIT License (Valid open source OSI approved license)

editorialbot commented 5 months ago

:point_right::page_facing_up: Download article proof :page_facing_up: View article proof on GitHub :page_facing_up: :point_left:

mbarzegary commented 5 months ago

👋🏼 @yuefan98 @BradyPlanden @brosaplanella, this is the review thread for the paper. All of our communications will happen here from now on.

As a reviewer, the first step is to create a checklist for your review by entering

@editorialbot generate my checklist

as the top of a new comment in this thread.

These checklists contain the JOSS requirements. As you go over the submission, please check any items that you feel have been satisfied. The first comment in this thread also contains links to the JOSS reviewer guidelines.

The JOSS review is different from most other journals. Our goal is to work with the authors to help them meet our criteria instead of merely passing judgment on the submission. As such, the reviewers are encouraged to submit issues and pull requests on the software repository. When doing so, please mention openjournals/joss-reviews/issues/6803 so that a link is created to this thread (and I can keep an eye on what is happening). Please also feel free to comment and ask questions on this thread.

We aim for reviews to be completed within about 4-6 weeks. Please feel free to ping me (@mbarzegary) if you have any questions/concerns.

mbarzegary commented 5 months ago

@editorialbot check references

mbarzegary commented 5 months ago

@COBRAPROsimulator this is where the review takes place. Please keep an eye out for comments here from the reviewers, as well as any issues opened by them on your software repository. I recommend you aim to respond to these as soon as possible, and you can address them straight away as they come in if you like, to ensure we do not loose track of the reviewers.

brosaplanella commented 5 months ago

Review checklist for @brosaplanella

Conflict of interest

Code of Conduct

General checks

Functionality

Documentation

Software paper

yuefan98 commented 5 months ago

Review checklist for @yuefan98

Conflict of interest

Code of Conduct

General checks

Functionality

Documentation

Software paper

yuefan98 commented 5 months ago

@COBRAPROsimulator It seems there is an issue with the ARM version of MATLAB compatibility. Was able to run code successfully with the intel version of MATLAB. I have created an issue on target repo
https://github.com/COBRAPROsimulator/COBRAPRO/issues/1

yuefan98 commented 5 months ago

@COBRAPROsimulator Overall, this is a great work that requires significant effort. I have several comments that I would like to get clarified and some features that I would like to be considered for future release.

  1. The authors provide decent amount of comments in the code, but minimal documentation. It would be great if there could be structured documentation like other software in the future.
  2. The overpotential in the simulation is almost constant and close to zero (cycle_CC.m). That means there is negligible resistance from the charge transfer reaction. However, for a real battery system, we would expect a much larger SOC-dependent charge transfer resistance and hence overpotential. Can you comment on why this is the case in your simulation? Is it because you are assuming a constant reaction rate over the SOC range? If that is the case, does the current version of the code support input of variable reaction rates?
  3. It seems that in most DC DFN/P2D models, double-layer capacitance is ignored. As a result, the overpotential lacks time dependence in the simulation. It might be worth including this in the future release, as the time dependence on overpotential might be important in certain applications.
  4. Can you comment on the time required to run DFN_pso_HPPC.m. It took more than an hour to run the calculation on my computer, and I frequently encountered the following errors. Is this expected? could not complete due to initialization issues during HPPC

Given the code seems to run forever on my side, I want to confirm first that the code is expected to return SOC dependent estimation of physical parameters for the DFN model rather than a single set of parameters that can fit the HPPC data for the whole SOC range.

COBRAPROsimulator commented 5 months ago

@yuefan98, thank you very much for reviewing COBRAPRO! Here are the answers to your questions:

  1. Thank you for pointing this out. I can include more structured documentation in the future. Will this need to be completed for your review to be complete?
  2. I think your question can be answered in two parts. First, the kinetic parameters used in cycle_CC.m are quite large. The positive electrode kinetic reaction rate (kp) is 3.9537e-08 [m2.5.mol-0.5.s-1] and negative electrode kinetic reaction rate (kn) 1.4394e-08 [m2.5.mol-0.5.s-1] are quite high, which is probably why the overpotential is small for this battery chemistry. Side note, kp and kn were identified from the HPPC profile for this battery data (NMC/Gr-Si). Second, we don't consider the SOC-dependence of kp and kn. The only "SOC-dependence" is considered in the Butler-Volmer equation in the exchange current density (i_0), given as i_0p = kp(csp_max-csp_surf)^0.5c_e0.5csp_surf^0.5 and i_0n = kn(csn_max-csn_surf)^0.5c_e0.5csn_surf^0.5 for positive and negative electrodes, respectively.
  3. Correct, this model does not include the double-layer capacitance. We will consider including in the future releases, thank you.
  4. Yes, the DFN_pso_HPPC.m code takes a while to run. One, because each HPPC simulation takes around ~74 seconds and with 100 PSO particles, then the model needs to run 100 times for a single PSO iteration. I used a 24-core desktop ( PSO ran 24 simulations in parallel), it took me almost 1.5 days to run DFN_pso_HPPC.m using 500 particles. Also, the messages printed in the Command Windows are not errors in the code, but printing when the PSO failed to simulate the model for a particular particle. This is just to provide more information to the user if desired. The user can suppress these messages as noted in Line 138 of DFN_pso_HPPC.m. To clarify, the current code does not optimize for SOC-dependence of parameters. The PSO cost function calculates the RMSE between the experimental and simulated voltage for the entire SOC range, and tries to find a single parameter that best fits the HPPC data. In the future, we plan to include SOC-dependent optimization of parameters, but will require closer investigation to consider parameter identifiability as a function of SOC.
    Lastly, we plan to link our recently accepted paper from the Journal of The Electrochemical Society which explains COBRAPRO's numerical implementation and parameter identification framework in detail.

Please let me know if there are any further questions or points I can clarify.

yuefan98 commented 5 months ago

@COBRAPROsimulator Thanks for the clarifications!

For 1. I am good with that unless other reviewers have comments on it. For 2. I think that make sense to me. For 4. I was able to validate your HPPC result by reducing it to two particles optimization. I think the estimation provides reasonable reaction rate given the fit to the instantaneous response. After reviewing the simulation in detail, I am a bit worry about the diffusion properties in the optimization. And it seems we generally have a faster solids state diffusion estimation than the actual battery response. Can you comment on the diffusion coefficient estimation? That is assumed to be constant over SOC right? Do you think the estimation can be improve by considered SOC dependence in the future or it is more a feature of model?

Lastly, I am glad that SOC dependence optimization is considered as a future work. I believe that will make this toolbox more useful for the real application.

Lastly, we plan to link our recently accepted paper from the Journal of The Electrochemical Society which explains COBRAPRO's numerical implementation and parameter identification framework in detail.

I think that will be really helpful !

COBRAPROsimulator commented 5 months ago

@yuefan98, thank you. Here is my comment to 4:

I hope I answered your question. Please let me know if you have any other questions.

yuefan98 commented 5 months ago
mbarzegary commented 5 months ago

@yuefan98 thanks a lot for finalizing your review. @BradyPlanden how is your review going?

brosaplanella commented 4 months ago

Here's my review. Overall, the package provides a novel solution to the parameterisation of physics-based battery models (in this case the DFN). The code is functional and the article well-written, and meets all the points in the checklist (though note I have some questions regarding the performance and testing, see below). I provide a list of comments to address before publication, split into major and minor comments.

Major comments

Minor comments

mbarzegary commented 4 months ago

@BradyPlanden how is your review going?

mbarzegary commented 4 months ago

@COBRAPROsimulator can you please provide an update on the above, in terms of responding to the issues raised by @brosaplanella?

COBRAPROsimulator commented 3 months ago

Hi @mbarzegary and @brosaplanella, I sincerely apologize for the delay. I will reply to @brosaplanella's comments soon. Thank you for your understanding.

BradyPlanden commented 3 months ago

Review checklist for @BradyPlanden

Conflict of interest

Code of Conduct

General checks

Functionality

Documentation

Software paper

BradyPlanden commented 3 months ago

Apologies for the delay, here is my review in full.

Overall, this paper is well written and makes a novel contribution to the subfield of parameterisation for electrochemical battery modelling. As the current work has all been completed through the @COBRAPROsimulator account, I have assumed that is the first author, as Ferran mentioned above, setting up a contributor list would be helpful and enable expansion in the future.

Repository Comments

Article Comments

mbarzegary commented 3 months ago

@COBRAPROsimulator can you please provide an update on the raised issues? We need to move forward with this submission.

COBRAPROsimulator commented 3 months ago

Hi @mbarzegary, I apologize for the delay. I will reply to the reviewers comments now. There was some delay due to my PhD thesis defense. Thank you for your understanding.

COBRAPROsimulator commented 3 months ago

@brosaplanella , thank you so much for your detailed review. I apologize for my delayed response. Here are my responses below:

Major comments:

Minor comments:

COBRAPROsimulator commented 3 months ago

@BradyPlanden, thank you so much for your review. Here are our answers to your comments:

Repository Comments

Article Comments

mbarzegary commented 2 months ago

@BradyPlanden and @brosaplanella, can you please have a look at the fixes and replies provided by @COBRAPROsimulator and see if they resolve the issues raised by you? If so, I appreciate it if you finalize your reviews.

brosaplanella commented 2 months ago

Hi! Even though the comments have been replied to, there have been no changes in the article nor the repository (or at least I couldn't find them) so I can't approve them yet.

mbarzegary commented 2 months ago

@brosaplanella Ah, I see. @COBRAPROsimulator can you please reflect on the above comment?

COBRAPROsimulator commented 2 months ago

@mbarzegary and @brosaplanella, I am working on implementing the comments. I will let you know when they are complete. Thank you very much.

COBRAPROsimulator commented 2 months ago

Hello, @mbarzegary, @brosaplanella, @BradyPlanden, thank you again for your valuable comments. We wanted to let you know what we are in the process of making those changes, in the code and the paper. When complete, we will respond with a detailed list of the changes we made to address your comments. Thank you.

mbarzegary commented 1 month ago

@COBRAPROsimulator can you please provide an update of your progress on fixing the issues?

COBRAPROsimulator commented 1 month ago

Hello @mbarzegary, I will provide updates to @brosaplanella and @BradyPlanden's comments shortly. Thank you for your patience.

COBRAPROsimulator commented 3 weeks ago

Hello @brosaplanella, thank you again for your valuable suggestions. We have made changes to our code and paper accordingly. In addition to our responses to your comments in the thread above, please find the actions we took for each of your comments below. Please let us know any further clarification you require and other suggestions/comments you may have. Thank you very much.

Major comments

Minor comments

brosaplanella commented 3 weeks ago

@editorialbot generate pdf

editorialbot commented 3 weeks ago

:point_right::page_facing_up: Download article proof :page_facing_up: View article proof on GitHub :page_facing_up: :point_left:

brosaplanella commented 3 weeks ago

Hi! The changes look good to me, happy for the paper to be published.

COBRAPROsimulator commented 2 weeks ago

Hello @BradyPlanden, thank you again for your helpful comments. We have made changes to our code and paper to reflect your comments. Below, please find the action items we took for each of your comments. Please let us know if you require clarification on any items discussed.

Repository Comments

Article Comments

mbarzegary commented 1 week ago

@BradyPlanden, can you please have a look at the above replies provided by @COBRAPROsimulator and see if they resolve your concerns? I see that the Performance item is not checked in your review list yet.

BradyPlanden commented 1 week ago

Yes - thanks for the update @COBRAPROsimulator. Happy for this to proceed @mbarzegary.

mbarzegary commented 1 week ago

Perfect. Thank you for finalizing your reviews @brosaplanella and @BradyPlanden.

mbarzegary commented 1 week ago

@editorialbot generate pdf

editorialbot commented 1 week ago

:point_right::page_facing_up: Download article proof :page_facing_up: View article proof on GitHub :page_facing_up: :point_left:

mbarzegary commented 5 days ago

@editorialbot check references

editorialbot commented 5 days ago
Reference check summary (note 'MISSING' DOIs are suggestions that need verification):

✅ OK DOIs

- 10.1149/1.2221597 is OK
- 10.1149/2.0301603jes is OK
- 10.1016/j.energy.2022.125966 is OK
- 10.1149/1945-7111/ab7bd7 is OK
- 10.1149/2.0551509jes is OK
- 10.1149/2.0321816jes is OK
- 10.1149/1945-7111/ab9050 is OK
- 10.5334/jors.309 is OK
- 10.1149/2.0291607jes is OK
- 10.1149/2.0171711jes is OK
- 10.1016/j.jpowsour.2016.12.083 is OK
- 10.4271/2023-01-5047 is OK
- 10.1016/j.dib.2022.107995 is OK
- 10.1149/1945-7111/ac201c is OK
- 10.1149/1945-7111/ad7292 is OK
- 10.1149/2.0051908jes is OK
- 10.1149/1945-7111/ac22c8 is OK
- 10.1016/j.compchemeng.2011.01.003 is OK
- 10.1016/j.compchemeng.2015.07.002 is OK
- 10.1149/1945-7111/ad1293 is OK
- 10.1145/3539801 is OK
- 10.1145/1089014.1089020 is OK
- 10.1016/j.ensm.2021.10.023 is OK
- 10.1149/1945-7111/ad1293 is OK
- 10.1109/TCST.2020.3017566 is OK
- 10.1149/1945-7111/ab7091 is OK
- 10.1016/j.jpowsour.2012.03.009 is OK

🟡 SKIP DOIs

- No DOI given, and none found for title: COMSOL Multiphysics&copy; v. 6.2
- No DOI given, and none found for title: Battery Design Module User’s Guide, COMSOL Multiph...
- No DOI given, and none found for title: fastDFN

❌ MISSING DOIs

- None

❌ INVALID DOIs

- None
mbarzegary commented 5 days ago

Post-Review Checklist for Editor and Authors

Additional Author Tasks After Review is Complete

Editor Tasks Prior to Acceptance

mbarzegary commented 5 days ago

@COBRAPROsimulator given the green light of the reviewers, we will now work towards processing this for acceptance in JOSS. So please

I can then move forward with recommending acceptance of the submission.

COBRAPROsimulator commented 3 days ago

Hi @mbarzegary, thank you very much for initiating the post-review process. I have completed the post-review tasks as you mentioned:

Finally, I have merged your PR containing the minor edits. Thank you for pointing out the spelling errors.