Open morrowrasmus opened 5 days ago
@morrowrasmus, I agree on all points :-)
Make it reasonably simple for the first implementation, and then we can build upon that later when or if we have a robust fitting methodology. One design question we would need to make at one point is if we should add more than one set of IR columns to the summary
table. Since "IR" can be obtained both from specific steps implemented by the testers themselves, and from post-processing steps (as suggested here)...
Is your feature request related to a problem? Please describe. Based on the potential drop/jump at the end/start of (dis)charge, the internal resistance should be calculated and reported in the
steps
-DataFrame and possibly in thesummary
-DataFrame.Describe the solution you'd like A simple estimation is suggested: take the potential change between the last point in a preceeding rest step and the first point in a charge or discharge step, and calculate the estimated internal resistance based on Ohm's law. The same for last point of the end of the (dis)charge step and first point of the subsequent rest step. This should result in two columns in the
steps
-table (ir_start
,ir_end
) and four columns in thesummary
-DataFrame if impemented there (ir_start_charge
,ir_start_discharge
,ir_end_charge
,ir_end_discharge
)As a part of this, the relaxation potential and OCV-potential estimation can also be added to the
steps
-DataFrame(and possibly thesummary
-DataFrame) based on the first and last potential values of the following rest-step. This will also result in two columns in thesteps
-DataFrame and four columns in thesummary
-DataFrame.Describe alternatives you've considered As discussed with @jepegit, this can be done in a more correct way by fitting a function to the relaxation potential curve and extrapolating the fitted function to find the internal resistance. However, this is a much more complex task and probably hard to automate properly?
Additional context The
_ir_to_summary()
-method of theCellpyCell
-class assigns internal resistances, as I've understood from @jepegit based on values generated by the Maccor-cyclers. I guess this could be a good place to implement the logic for this?