BotB 4: Cylindrical cells
roll it up
Another week, another "back of the battery" BotB calculator episode. If you’re enjoying our build-along battery model, shoot us a subscribe below. For inquiries, reach out:
Here’s where we are in the plan for the BotB series
Winding a cylindrical cell
Stacking a pouch cell
A couple of case studies
As usual, we recommend checking out the actual code for this episode of BotB - the code and explanations will be easier to read:
In the fourth episode of our Back of the Battery Calculator series, we're winding our electrode and other stack layers into a cylindrical cell format!
Outline
A) Recap: Making a cell stack
B) Cylindrical cell geometry
C) Winding a jelly roll
D) Total capacity and energy
E) Cell mass and volume
F) Putting it all together (with visualizations!)
G) Quick comparison: 18650, 21700, 4680, etc
A) Recap: Making cell stack
Let’s quickly define a cell stack with a double-coated cathode, anode, separator, and electrolyte just as we did in BotB 3. This cell is NMC811 and graphite based:
The cell stack layer thickness stackthick
is found for the double coated electrode composites, 2 current collectors, and 2 separators using this equation:
stackthick = 2*cellstack.positive.composite.thick + cellstack.positive.currentcollector.thick + 2*cellstack.negative.composite.thick + cellstack.negative.currentcollector.thick + 2*cellstack.separator.thick
print('cell stack layer thickness: ')
print(stackthick)
B) Cylindrical cell geometry
As the name suggests, a cylindrical cell has the shape of a cylinder. You may be familiar with types of cylindrical batteries like 18650s, 21700s, and 4680s. This naming convention is based on the outer dimensions of the cylinder. For example, a 21700 battery will have a diameter of 21 mm and a cell height of 70.0 mm.
John Zhang's Lithium-Ion Battery Systems and Technology write up provides some nice figures of what components go into a cylindrical cell:
The main points to note are:
The outer casing sets the overall dimensions of the cell
The inner "jelly roll" is made by winding the full electrode stack around a central pin
The jelly roll size is constrained by the diameter of the battery can, and the thickness of the outer walls
The height of the jelly roll is also set based on how much headspace is needed for the vent/gasket/top cap components
We can also look at this flow chart for how cylindrical cells are assembled to get some intuition for what components are involved. For a cell energy calculator, we need to include the electrochemically irrelevant parts to scale the energy and capacity of the cell stack that we calculated in BotB 3.
This video of a 18650 teardown is also a quick watch to see how a jelly roll looks like in real life:
Defining cylindrical cell geometry:
Based on the above images, we should add these general properties in addition to our cell layer stack to get the full battery defined:
diameter - diameter of the full cylinder
height - height of the full cylinder
canthick - thickness of the wall of the container, usually made of stainless steel
candens - density of the material of the container, usually made of stainless steel
mandreldiam - diameter of the mandrel, the central pillar that the electrode stack is wound around
headspace - how much height is between the top of the jelly roll and the top of the cell: space for the top tab, vents and seals
extramass - an extra mass factor that is used to account for the tape, tabs, vents, seals, and other random components
Lets define some typical values for a 21700 cell:
diameter=2.1*unit.cm
height=7.0*unit.cm
canthick=0.165*unit.mm
candens=(7.9*unit.g/unit.cm**3).plus_minus(0.2)
mandreldiam=2.5*unit.mm
headspace=0.6*unit.cm
extramass=(4*unit.g).plus_minus(2)
C) Winding the jelly roll
The energy density and capacity to store lithium in your battery is directly related to the amount of active material you can fit into the cell. Active materials are coated onto electrode sheets and then wound up into a jelly roll that is fit into the cylindrical case. So in order to calculate cell energy, we need to be able to work out the electrode area that fits into the cylinder.
The jelly roll area is given by:
But how do we calculate the cell length?
This requires using some geometry equations, to calculate how much of a Archimedean spiral fits between the inner core mandrel and the walls of the cell can.
You can clearly see how these spirals compare in 18650 vs 21700 batteries in the below figure (a), taken from the work by Waldmann and colleagues:
It should also be clear from (b) in the figure, that the overall cell stack height will also affect the total length of the electrode we can roll up into the can.
Ok, Waldmann and colleagues showed us this equation for the length 𝑙l of an Archimedean spiral curve:
a is a factor that is related to the thickness of each winding: stackthick, or d_ascs in figure (b)
This equation uses polar coordinates, so θ is the polar angle, which can be found with this equation:
But, remember because there is also a center mandrel with its own diameter, we have to work out how much of the electrode would have been rolled up in that area, and subtract it from the total thickness!
Putting it all together, we can calculate the jelly roll length with the example 21700 data like this:
# We know the stack layer thickness which was calculated earlier:
d_mandrel = mandreldiam
d_cell = diameter-2*canthick
#Total jelly roll length via Archimedes spiral maths
a = stackthick/(2*np.pi)
theta = (d_cell/2)*(2*np.pi)/stackthick
l_all = (a/2)*(theta*(1+theta**2)**0.5 + np.log(theta.n + (1+theta.n**2)**0.5))
#Inner mandrel jelly roll length which needs to bbe subtracted
theta_mandrel = (d_mandrel/2)*(2*np.pi)/stackthick
l_inner = (a/2)*(theta_mandrel*(1+theta_mandrel**2)**0.5 + np.log(theta_mandrel.n + (1+theta_mandrel.n**2)**0.5))
#Calculate the actual jelly roll length
l_winding = l_all-l_inner
l_winding.ito(unit.m)
print('jelly roll length: ')
print(l_winding)
So we can expect that based on our given cell stack layer thickness, if we unrolled a 21700 jelly roll it would be approximately 0.9 meters long.
The jelly roll height is given by the height of the cell with the headspace and can wall thickness on the top and bottom subtracted.
Of course, multiplying the jelly roll length by the jelly roll height will give us the actual jelly roll area. Keep in mind that the actual electrodes are double coated, which we will use in the next section.
#Calculate the actual jelly roll area
#First the jelly roll height:
h = height-headspace-2*canthick
#Now the jelly roll area:
area = h*l_winding
area.ito(unit.cm**2) #convert to cm2
print('jelly roll area: ')
print(area)
D) Total capacity and energy
Now that we can work out the exact area and amount of active materials are coated onto the electrodes based on the jelly roll area, we can go ahead and calculate the total capacity and energy of the battery.
Capacity
Because lithium can be stored in either the positive or negative active material, the actual lithium capacity is given by limiting areal capacity, which is the smaller of the two.
We then use the above areal capacity along with double of the jelly roll area to work out the total capacity of the double sided electrode coatings.
For each battery we can also include a loss of lithium inventory factor
llifactor
which is used to account of any initial decrease in capacity from formation and degradation etc
Through the above equations we can calculate that our 21700 battery should hold approximately 4.9 Ah.
#Capacity
llifactor = 0.95 # 5% initial capacity loss
capacity = min(cellstack.positive.composite.arealcap,cellstack.negative.composite.arealcap) * llifactor * 2*area #double coat
capacity.ito(unit.A*unit.hr)
print('cell capacity: ')
print(capacity)
Energy
The cell energy is given by the average voltage multiplied by the cell capacity
The average voltage is given by the difference between the positive active material voltage and the negative active material voltage
Carrying this out, we find the cell has an energy of 18 Wh
#Energy
energy = capacity*(cellstack.positive.composite.active.avgE-cellstack.negative.composite.active.avgE)
energy.ito(unit.W*unit.hr)
print('cell energy: ')
print(energy)
E) Cell mass and volume
We dont just care about the total cell energy and capacity, we want to be able to calculate the gravimetric and volumetric energy density, which is better for comparison. We also care about the weight and volume occupied for a battery, especially if we are trying to pack them into electric vehicles and other devices.
Cell mass
Cell mass requires us to calculate the mass contributed from each individual component
Because we already assigned densities to most components under
cellstack
, we just need the area and thicknesses to work out the mass of the componentFor the electrolyte, we'll assign an
ecapratio
which is the electrolyte volume to cell capacity ratio (mL/Ah)We also need to calculate the outer can mass which is given by the surface area of a cylinder, thickness of the wall, and density of the stainless steel material
Finally we can calculate the gravimetric energy density by dividing
energy
bycellmass
#Electrolyte to capacity ratio:
ecapratio = 1.6*unit.mL/(unit.A*unit.hr)
#Total electrolyte mass
elytemass = ecapratio*capacity*cellstack.electrolyte.density
#Positive electrode mass: 2 layers of composite + 1 layers of current collector
posmass = area*(2*cell.cellstack.positive.composite.thick*cell.cellstack.positive.composite.density) #double coated composite
posccmass = area*(cell.cellstack.positive.currentcollector.thick*cell.cellstack.positive.currentcollector.density) #current collector
#Negative electrode mass: 2 layers of composite + 1 layers of current collector
negmass = area*(2*cell.cellstack.negative.composite.thick*cell.cellstack.negative.composite.density) #double coated composite
negccmass = area*(cell.cellstack.negative.currentcollector.thick*cell.cellstack.negative.currentcollector.density) #current collector
#Separator mass: 2 layers of separator in the cell
sepmass = area*(2*cell.cellstack.separator.thick*cell.cellstack.separator.density)
#Total jelly roll mass
jellymass = posmass + posccmass + negmass + negccmass + sepmass + elytemass
#Cylindrical can mass, outer packaging and extra mass
canmass = candens*canthick*(np.pi*(diameter*height) + 2*np.pi*(diameter/2)**2) + extramass
#Total cell mass (jelly roll + cylindrical case)
cellmass = canmass + jellymass
cellmass.ito(unit.g)
print('cell mass: ')
print(cellmass)
#Energy density
gravimetric_energy_density = energy/cellmass
gravimetric_energy_density.ito(unit.W * unit.hr /unit.kg)
print('cell gravimetric energy density: ')
print(gravimetric_energy_density)
Cell volume
Luckily, calculating the total cell volume for the cylinder is much less involved...
Volume of a cylinder
Divide energy by volume to get the volumetric energy density
#Cell volume
volume = (np.pi*(diameter/2)**2)*height
volume.ito(unit.cm**3)
volume = round(volume,2)
print('cell volume')
print(volume)
#Energy density
volumetric_energy_density = energy/volume
volumetric_energy_density.ito(unit.W * unit.hr /unit.L)
print('cell volumetric energy density: ')
print(volumetric_energy_density)
F) Putting it all together (with visualizations!)
Based on all the above calculations, we can now take a specified cell stack (BotB 2 + 3) and put them into a cylindrical cell format, and calculate the key cylindrical cell properties like energy density
For BotB 4 we've put all these calculations together in the make_cylindrical()
function. We put all the parameters for cell geometry, cell stack, electrolyte ratio, and extra factors like lithium loss and extra mass together into a structure.
Here's how we would call make_cylindrical()
, you can look at the nitty gritty details under the fn_cellformat.py
file attached to this BotB sheet. This function calculates the jelly roll area, component masses, volume, as well as the cell design parameter NP-ratio, which is the ratio between negative and positive active material capacities.
Once the cell
structure is created, you can also use the print_cellresults()
function to print a tidy summary of the cell specs:
21700 cell (cylindrical)
Al | NMC811 | PP:PE | LiPF6:EC:EMC 3:7 | Graphite | Cu
============================================================
grav. energy dens.:(247 +/- 12) hour * watt / kilogram
vol energy dens.:(745 +/- 33) hour * watt / liter
------------------------------------------------------------
cell energy: (18.1 +/- 0.8) hour * watt
cell capacity: (4.90 +/- 0.21) ampere * hour
cell mass: (73.1 +/- 2.6) gram
np ratio: 1.1
Visualizing the geometry
We also made some functions you can call to better visualize the cylindrical cell geometry
plot_2D_cylindrical()
shows a cross section of the can wall and spiral wound jelly rollplot_3D_cylindrical()
shows a 3D render of the cylindrical cell with labelled geometries
Let’s do it for the 21700 cell here:
Visualizing the mass and thickness breakdown
We've shown the plot_thickbreakdown()
before for the cellstack, it also works for full cells
plot_massbreakdown()
shows the mass proportions for the components in the cell, including the outer casing
Lets do it for the 21700 cell here:
G) Quick comparison: 18650, 21700, 4680, etc
One cool case study we can use this for is to quickly plot out and compare how energy density scales as we increase the size of our cylindrical cells from 18650 to 21700 to 4680 cells. The thicc boi 4680 cylindrical cell is well known as Tesla's new tabless next generation cell. Intercalation Station has written on this format from Tesla's announcement before.
What we can do is easily change the size of the cell while keeping the cellstack electrode properties the same, and keeping the outer casing thickness the same too.
18650 Cylindrical Cell Report
18650 cell (cylindrical)
Al | NMC811 | PP:PE | LiPF6:EC:EMC 3:7 | Graphite | Cu
============================================================
grav. energy dens.:(237 +/- 13) hour * watt / kilogram
vol energy dens.:(732 +/- 32) hour * watt / liter
------------------------------------------------------------
cell energy: (12.1 +/- 0.5) hour * watt
cell capacity: (3.28 +/- 0.14) ampere * hour
cell mass: (51.1 +/- 2.3) gram
np ratio: 1.1
21700 Cylindrical Cell Report
21700 cell (cylindrical)
Al | NMC811 | PP:PE | LiPF6:EC:EMC 3:7 | Graphite | Cu
============================================================
grav. energy dens.:(247 +/- 12) hour * watt / kilogram
vol energy dens.:(745 +/- 33) hour * watt / liter
------------------------------------------------------------
cell energy: (18.1 +/- 0.8) hour * watt
cell capacity: (4.90 +/- 0.21) ampere * hour
cell mass: (73.1 +/- 2.6) gram
np ratio: 1.1
4680 Cylindrical Cell Report
4680 cell (cylindrical)
Al | NMC811 | PP:PE | LiPF6:EC:EMC 3:7 | Graphite | Cu
============================================================
grav. energy dens.:(273 +/- 11) hour * watt / kilogram
vol energy dens.:(777 +/- 34) hour * watt / liter
------------------------------------------------------------
cell energy: (103 +/- 5) hour * watt
cell capacity: (28.0 +/- 1.2) ampere * hour
cell mass: (379 +/- 10) gram
np ratio: 1.1
So how do they compare
We can clearly see from the mass breakdowns that larger cells mean better energy densities, in that dead weight from the outer casing makes up a lower fraction of the over all cell mass.
From the plots below we can also tell that increasing the diameter means we can get way more active material in to the jelly roll too.
Alright just for fun...
What if we made cylindrical cells the shape of a tuna can? These would have a thin strip of electrode that is wound up into a jelly roll...
This tuna can has the following dimensions:
h = 23 mm
d = 73 mm
Tuna can cell (cylindrical)
Al | NMC811 | PP:PE | LiPF6:EC:EMC 3:7 | Graphite | Cu
============================================================
grav. energy dens.:(263 +/- 10) hour * watt / kilogram
vol energy dens.:(616 +/- 27) hour * watt / liter
------------------------------------------------------------
cell energy: (59.3 +/- 2.6) hour * watt
cell capacity: (16.1 +/- 0.7) ampere * hour
cell mass: (226 +/- 6) gram
np ratio: 1.1
Conclusion
Congrats! We've successfully assembled a full cylindrical cell together!!!
We also looked at how the cell geometry changes the energy densities
Next time we will look at stacked pouch cell geometries
🌞 Thanks for reading!
📧 For tips, feedback, or inquiries, please reach out!
🐦 Follow us on Twitter and LinkedIn
About the writers: Andrew is a PhD researcher at the University of Oxford (@ndrewwang). Nicholas is a Business Manager at UCL Business and Venture Fellow with Berkeley SkyDeck (@nicholasyiu). Ethan is a battery scientist in the Jeff Dahn Research Group (@ethandalter).
Create your profile
Only paid subscribers can comment on this post
Check your email
For your security, we need to re-authenticate you.
Click the link we sent to , or click here to sign in.