M.A.P.L.E. Lab

img1 img2

Are you trying to improve battery cell performance? This design tool may help you!

Would you like to unlock the full potential of your new electrode material in cell testing? Would you like to design your electrode structure properly and efficiently to achieve the best performance possible? If so, these programs (download here) may help you out. They are ready to use on any Windows PC without any software installation.

Modeling and mathematical optimization can significantly improve the efficiency of battery design, helping to meet the growing production demands of batteries from various applications. The programs provided can generate the optimal porosity distribution for any cathode chemistry. The particle size, exchange current density, filler fraction, operating temperature, ionic conductivity, electronic conductivity, electrode thickness, and applied current density can all be customized.

The two programs can be viewed as an a posteriori optimization approach. The first program (minR.exe) can minimize the overall resistance for a graded electrode with continuously changing porosity distribution using customized parameters provided by the user. The minimal resistance acquired then can be used as a guidance for the second optimization. The second program (minEta.exe) takes a user-defined value for resistance (e.g. 1.1 times the minimal resistance obtained in the previous step) and minimize the overpotential variance with the constraint that the overall resistance is no bigger than the value specified. In this way, users can find the optimal design for a more uniform overpotential distribution with a low overall resistance at the same time.


Detailed instruction for using the programs can be found below.

1. Download the program files (here) and unzip all the files into the same folder.

2. Modify the design parameters in the “parameters.txt” file if needed. The baseline values are given in the txt file as an example. They are given as a 1 by 8 array in the following order:

  • particle radius (m),
    exchange current (A/m2),
    electrode filler fraction, temperature (K),
    electronic conductivity (S/m),
    ionic conductivity (S/m),
    electrode thickness (m),
    applied current density (A/m2)..

3. Modify the bounds for porosity in the “porosity_bound.txt” file if needed. The bounds are given as a 3 by 1 array: lower bound, initial guess, and upper bound. 0.1, 0.4, 0.7 are given in the txt file as an example.

4. Double click and run the “minR.exe” or "minEta.exe" program. A command line window will be opened and closed by the program. Just let the program run and no action is required.

5. The optimization results for all the variables can be found in the “resistance.csv” (for “minR.exe”) and “overpotential.csv” (for “minEta.exe”) files. There are 5 columns in the result file.
a) The first column is the location for the collocation points. k=35 internal collocation points were used to create the program, which should be sufficient for this model.
b) The second column is the current density in the solid phase. The unit is A/m2.
c) The third column is the potential in the solid phase in V. The empty cell I the column means that there is no boundary condition at that point for the variable, so no value is given by the optimizer. The values at the boundaries can be extracted from the internal profile if needed.
d) The fourth column is the potential distribution in the electrolyte. Subtracting the potential in the electrolyte from the potential in the solid phase gives the overpotential profile for each internal collocation points.
e) The minimal objective function value is given at the end of the result file. For “minR.exe”, the objective function is the overall resistance in Ω-cm2. For “minEta.exe”, the objective function is the standard deviation of the overpotential in V.

For the second program “minEta.exe”, there is an additional parameter for the constraint value on the resistance needed in "parameters.txt" at the end . 5.5 Ω-cm2 is provided as an example. The results obtained from the “minR.exe” can be used as a reference to give the constraint. The objective function for this program is to minimize the standard deviation of the overpotential (column3 minus column4) with the condition that the overall resistance is no bigger than the constraint value specified (last value in the “parameters.txt” file). The structure for the result is the same as the first program, with the objective function value being the minimal overpotential standard deviation in V.


These codes given should be viewed as providing an initial estimate for an optimal porosity profile. Other important phenomena, such as concentration variance and degradation mechanism, which requires more detailed models, are not included here.