I suggest we follow the current PyPSA-Eur-Sec implementation including an EV battery bus (this allows us to distinguish between the link for charging the EVs - which ultimately is determined by the charging capacity of the battery- and the link for using the electricity in the EV to supply the transport demand).
[ ] Make the “EV use” link connects the "EV battery" bus to the “land transport demand” bus
The efficiency of that link should be 1 (this is because the land transport demand has already been transformed to be expressed in “MWh of electricity”. This happens here: https://github.com/PyPSA/pypsa-eur-sec/blob/e3ffb66267c324b259b4a3db2cf03a3a642044c6/scripts/build_transport_demand.py#L40
The link p_nom_opt should be subjected to optimization
The resulting p_nom_opt divided by EV_consumption_1car (see variable definition below) is the number_EVs (number of electric cars)
[ ] There is a link connecting the electricity bus to the EV battery bus (named “battery charger”)
In this case, the link p_nom_opt should be subjected to optimization
The resulting p_nom_opt divided by EV_charge_rate (see variables definition below) is the number_EVs (number of electric cars)
[ ] Add a constraint so that the number_EVs calculated in the last two points are the same. It is easier to add a constraint that relates the two p_nom_opt
p_nom_opt(of link “EV use”)=p_nom_opt(of link “battery charger”)*EV_consumption_1car/EV_charge_rate
[ ] There is an “ICE use” multilink connecting the oil bus to the “land transport demand” bus
The efficiency of the link should be 0.3 https://github.com/PyPSA/pypsa-eur/blob/1fbe971ab8dab60d972d3a7b905b9cec7171c0ad/config/config.default.yaml#L404 (this is because the land transport demand is expressed in “MWh of electricity”)
The resulting p_nom_opt divided by ICE_consumption_1car (see variables definition below) is the number_ICE_cars (number of internal combustion engine cars)
The second bus that this link is connected to is “CO2 atmosphere”, the efficiency there should be CO2 emissions oil
[ ] We can use this point to also add a “H2 use” link connecting the H2 bus to the “land transport demand” bus to represent potential H2 vehicles
The efficiency of the link should be 0.5 https://github.com/PyPSA/pypsa-eur/blob/1fbe971ab8dab60d972d3a7b905b9cec7171c0ad/config/config.default.yaml#L403 (this is because the land transport demand is expressed in “MWh of electricity”)
The resulting p_nom_opt divided by H2_consumption_1car (see variables definition below) is the number_H2_cars (number of H2 cars)
Definitions of variables (these should be included in the config file and read from there)
ICE_consumption_1car = 0.033 MWh_oil/hour (assuming 0.66 kWh_oil/km and 50 km/h
(with the link efficiency 0.3, they are equivalent to 0.01 MWh_elec/hour)
H2_consumption_1car = 0.02 MWh_H2/hour (assuming 0.4 kWh_H2/km and 50km/h) (with efficiency 0.5, they are equivalent to 0.01 MWh_elec/hour)
I suggest we follow the current PyPSA-Eur-Sec implementation including an EV battery bus (this allows us to distinguish between the link for charging the EVs - which ultimately is determined by the charging capacity of the battery- and the link for using the electricity in the EV to supply the transport demand).
See a scheme below:
So, the next steps are needed:
[ ] Rename “battery bus” as “EV battery” such as in https://github.com/PyPSA/pypsa-eur-sec/blob/e3ffb66267c324b259b4a3db2cf03a3a642044c6/scripts/prepare_sector_network.py#L1449
[ ] Make the “EV use” link connects the "EV battery" bus to the “land transport demand” bus The efficiency of that link should be 1 (this is because the land transport demand has already been transformed to be expressed in “MWh of electricity”. This happens here: https://github.com/PyPSA/pypsa-eur-sec/blob/e3ffb66267c324b259b4a3db2cf03a3a642044c6/scripts/build_transport_demand.py#L40
The link p_nom_opt should be subjected to optimization The resulting p_nom_opt divided by EV_consumption_1car (see variable definition below) is the number_EVs (number of electric cars)
[ ] There is a link connecting the electricity bus to the EV battery bus (named “battery charger”) In this case, the link p_nom_opt should be subjected to optimization The resulting p_nom_opt divided by EV_charge_rate (see variables definition below) is the number_EVs (number of electric cars)
[ ] Add a constraint so that the number_EVs calculated in the last two points are the same. It is easier to add a constraint that relates the two p_nom_opt p_nom_opt(of link “EV use”)=p_nom_opt(of link “battery charger”)*EV_consumption_1car/EV_charge_rate
[ ] There is an “ICE use” multilink connecting the oil bus to the “land transport demand” bus The efficiency of the link should be 0.3 https://github.com/PyPSA/pypsa-eur/blob/1fbe971ab8dab60d972d3a7b905b9cec7171c0ad/config/config.default.yaml#L404 (this is because the land transport demand is expressed in “MWh of electricity”) The resulting p_nom_opt divided by ICE_consumption_1car (see variables definition below) is the number_ICE_cars (number of internal combustion engine cars) The second bus that this link is connected to is “CO2 atmosphere”, the efficiency there should be CO2 emissions oil
[ ] We can use this point to also add a “H2 use” link connecting the H2 bus to the “land transport demand” bus to represent potential H2 vehicles The efficiency of the link should be 0.5 https://github.com/PyPSA/pypsa-eur/blob/1fbe971ab8dab60d972d3a7b905b9cec7171c0ad/config/config.default.yaml#L403 (this is because the land transport demand is expressed in “MWh of electricity”) The resulting p_nom_opt divided by H2_consumption_1car (see variables definition below) is the number_H2_cars (number of H2 cars)
Definitions of variables (these should be included in the config file and read from there)
EV_charge_rate = 0.011 MWh/h
EV_ consumption_1car = 0.01 MWh_elec/hour (assuming 0.2 kWh/km https://github.com/PyPSA/pypsa-eur/blob/1fbe971ab8dab60d972d3a7b905b9cec7171c0ad/config/config.default.yaml#L382 and velocity of 50km/h -let’s add this velocity assumption to the config file-)
ICE_consumption_1car = 0.033 MWh_oil/hour (assuming 0.66 kWh_oil/km and 50 km/h (with the link efficiency 0.3, they are equivalent to 0.01 MWh_elec/hour)
H2_consumption_1car = 0.02 MWh_H2/hour (assuming 0.4 kWh_H2/km and 50km/h) (with efficiency 0.5, they are equivalent to 0.01 MWh_elec/hour)