openjournals / joss-reviews

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

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

Open editorialbot opened 1 month ago

editorialbot commented 1 month 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 @brosaplanella

πŸ“ Checklist for @yuefan98

editorialbot commented 1 month 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 1 month 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 1 month ago

Paper file info:

πŸ“„ Wordcount for paper.md is 2632

βœ… The paper includes a Statement of need section

editorialbot commented 1 month ago

License info:

βœ… License found: MIT License (Valid open source OSI approved license)

editorialbot commented 1 month ago

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

mbarzegary commented 1 month 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 1 month ago

@editorialbot check references

mbarzegary commented 1 month 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 1 month ago

Review checklist for @brosaplanella

Conflict of interest

Code of Conduct

General checks

Functionality

Documentation

Software paper

yuefan98 commented 1 month ago

Review checklist for @yuefan98

Conflict of interest

Code of Conduct

General checks

Functionality

Documentation

Software paper

yuefan98 commented 1 month 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 1 month 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 1 month 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 1 month 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 4 weeks 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 4 weeks ago
mbarzegary commented 1 week ago

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

brosaplanella commented 3 days 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