Yes, few days ago. Quoted below.
I did a simulation with very generous assumption that each year, pure EV sales increase by 0.5 M, assume 25 GWh additional batteries will show up from somewhere (Mars?). Simply, there is nothing constraining the 0.5M additional pure EV sales each year. This is very very generous, considering the worldwide growth in EV+PHEV sales in the last few years (check insideevs/evsales) is much less.
I see that BEVs can replace 50% of 2 billion ICE vehicles in120 years! Full replacement of ICE in 220 years! Go figure
View attachment 223876
( Horizontal axis is years. Rest of the numbers are in millions.)
I'm also providing my model with the 60 lines of code. You can play around with your hugely optimistic numbers.
My assumptions are very reasonable (actually, quite optimistic). Look at how many GWh the GF is producing after 3 years of start and ~1 year of the opening party. It also assumes small cars. Larger cars will require a larger pack than 50 KWh, which means fewer EVs with same battery capacity increase.
Also, see here. Currently ~1.4 billions cars in the world; expected to grow to 2 B by 2035.
1.2 Billion Vehicles On World's Roads Now, 2 Billion By 2035: Report
== Program ev_transition.cxx =====
// All numbers in millions
// Assumptions:
// 1. Cars retired after 20 years in service. Ignore the ones wrecked before 20 years.
// 2. 100 million annual sales held steady over simulation, except very late, letting EV-only sales exceed 100M units a year.
// 3. 0.5M EV sales added to prior year EV sales each year. That means, a new GF for 0.5M EVs ( ~35-50 GWh) added each year.
// 4. Assume enough raw materials for new cells.
// 5. Assume no other constraint to sales of EVs; that is, all the additional 0.5M cars each year can be sold.
// 6. Startimng point: 2B ICE light duty vehicles exist in the world to be replaced with BEVs.
#include <stdio.h>
// Parameters to play around
const float WORLD_WIDE_FLEET_SIZE = 2000;
const float EV_ADDL_SALES = 0.5;
const float ANNUAL_CAR_SALES = 100.0;
const int RETIRE_AFTER = 20;
int main(int argc, char *argv[])
{
float ev_sales[1000];
float ice_sales[1000];
// Populate data for first 20 years before transition starts, all sales are ice; net 2 B cars on the planet
for(int year = 0; year < RETIRE_AFTER; year++) {
ev_sales[year] = 0;
ice_sales[year] = ANNUAL_CAR_SALES;
}
// printf("All numbers are in millions except year.\n");
printf("Year , New EV sales , Total EVs , Remaining ICE Vehicles\n");
float ev_total = 0.0, ice_total = WORLD_WIDE_FLEET_SIZE;
float ev_annual_sales = EV_ADDL_SALES, ice_annual_sales = 99.5;
for(int year = RETIRE_AFTER; year < 1000 && ice_total > 0.0001; year++) {
// Retire old cars
ice_total -= ice_sales[year- RETIRE_AFTER];
ev_total -= ev_sales[year- RETIRE_AFTER];
// New sales add to numbers
ice_total += ice_annual_sales;
ev_total += ev_annual_sales;
if(ev_total + ice_total > WORLD_WIDE_FLEET_SIZE) {
ice_total = WORLD_WIDE_FLEET_SIZE - ev_total;
}
if(ice_total < 0) ice_total = 0.0;
printf("%4d , %14.2f , %6.2f , %20.4f\n", year - RETIRE_AFTER +1, ev_annual_sales, ev_total, ice_total);
// Record annual sales for future years, to compute retiring vehicles in future
ev_sales[year] = ev_annual_sales;
ice_sales[year] = ice_annual_sales;
// Update new sales per year. Let ev sales float over ANNUAL_CAR_SALES a year
ev_annual_sales += EV_ADDL_SALES;
ice_annual_sales = ANNUAL_CAR_SALES - ev_annual_sales;
if(ice_annual_sales < 0) ice_annual_sales = 0.0;
}
return 0;
}
===================================
If you tweak to increase of 1 M additional EV sales annually (1% chance, IMO), it is still 110 years for full replacement.
With 2 M additional EV sales per year (0.01% chance, imo), it is still 60 years to replace all ICE light duty vehicles the world.
Schedule with 0.5M additional annual ev sales:
Year , New EV sales , Total EVs , Remaining ICE Vehicles
1 , 0.50 , 0.50 , 1999.5000
2 , 1.00 , 1.50 , 1998.5000
3 , 1.50 , 3.00 , 1997.0000
4 , 2.00 , 5.00 , 1995.0000
5 , 2.50 , 7.50 , 1992.5000
6 , 3.00 , 10.50 , 1989.5000
7 , 3.50 , 14.00 , 1986.0000
8 , 4.00 , 18.00 , 1982.0000
9 , 4.50 , 22.50 , 1977.5000
10 , 5.00 , 27.50 , 1972.5000
11 , 5.50 , 33.00 , 1967.0000
12 , 6.00 , 39.00 , 1961.0000
...
204 , 102.00 , 1945.00 , 55.0000
205 , 102.50 , 1955.00 , 45.0000
206 , 103.00 , 1965.00 , 35.0000
207 , 103.50 , 1975.00 , 25.0000
208 , 104.00 , 1985.00 , 15.0000
209 , 104.50 , 1995.00 , 5.0000
210 , 105.00 , 2005.00 , 0.0000
PS: This is obviously a very simplistic model. One can make the total fleet size grow gradually, annual sales grow every year etc. to make it more realistic. But those will only make the full transition even longer.