Zenmo / Holon-webapp

MIT License
2 stars 2 forks source link

ETM keys zonne energie #942

Open Erikvv opened 3 months ago

Erikvv commented 3 months ago

De volgende keys zijn gewijzigd:

van households_solar_pv_solar_radiation_market_penetration naar capacity_of_households_solar_pv_solar_radiation

van buildings_solar_pv_solar_radiation_market_penetration naar capacity_of_buildings_solar_pv_solar_radiation

(zie https://github.com/quintel/etengine/blob/71345caedbf5219b624e1795db17f3f4b6f01155/db/migrate/20240126141138_solar_and_industry_drenthe.rb)

De eenheid is gewijzigd van % naar MW. Omrekenformule uit de ETM migratie:

  # SOLAR
  # We have changed the solar panels on roofs (for buildings and households) from % of roof
  # surface potential to MW.
  # The % roof surface needs to be recalculated to MW. This is done by
  #   1. calculating the roof surface area,
  #   2. calculating the amount of units (solar panels) can be fit into that area using the
  #      land_use_per_unit and then
  #   3. multiplying this by the capacity of one unit (solar panel) using the
  #      electricity_output_capacity.
const residences_roof_surface_available_for_pv = 266.7 // uit fixture Nederland ETM
const buildings_roof_surface_available_for_pv = 133.3 // uit fixture Nederland ETM
const LAND_USE_PER_UNIT_SOLAR = 1.6000000000000001e-06 // constant
const ELEC_OUTPUT_CAP_SOLAR = 0.000272 // constant

const capacity_of_households_solar_pv_solar_radiation = 
    (households_solar_pv_solar_radiation_market_penetration / 100) * 
     (residences_roof_surface_available_for_pv / LAND_USE_PER_UNIT_SOLAR) *
    ELEC_OUTPUT_CAP_SOLAR

const capacity_of_buildings_solar_pv_solar_radiation = 
    (buildings_solar_pv_solar_radiation_market_penetration / 100) * 
     (buildings_roof_surface_available_for_pv / LAND_USE_PER_UNIT_SOLAR) *
    ELEC_OUTPUT_CAP_SOLAR

Uit deze formule blijkt dat Quintel uit gaat van een totaal potenteel in Nederland voor huizen van 45339 MW en voor bedrijven van 22661 MW.

Om gebruik van deze keys op te zoeken:

SELECT * FROM holon_etmquery 
LEFT JOIN holon_queryandconvertconfig 
    ON holon_etmquery.related_config_id = holon_queryandconvertconfig.id
LEFT JOIN holon_scenario 
    ON holon_queryandconvertconfig.scenario_id = holon_scenario.id
-- LEFT JOIN holon_genericetmquery ON holon_etmquery.id = holon_genericetmquery.etmquery_ptr_id
-- LEFT JOIN holon_etmconversion ON holon_etmquery.id = holon_etmconversion.etm_query_id
WHERE holon_etmquery.etm_key = 'buildings_solar_pv_solar_radiation_market_penetration';

Huidige rules

In de casus buurelektrificatie staat households_solar_pv_solar_radiation_market_penetration op count(EnergieProductionAsset) / aantal_huizen 100 share_rijtjeshuizen. Waarbij share_rijtjeshuizen = 0.301 en aantal_huizen = 40.

In de casus Transitie Visie Warmte staat households_solar_pv_solar_radiation_market_penetration op household_electrification_total_share.

In de casus bedrijventerrein staat buildings_solar_pv_solar_radiation_market_penetration op 60 kW per %. Die 60 kW is uit het scenario. Dus het max uit het scenario zou dan zijn 100 * 60 kW = 6 MW. (De slider zon+wind kan op max 20 MW.)

Regionaal en nationaal zijn in alledrie de casussen identiek.

Voorstel

Voor bedrijventerrein: capacity_of_buildings_solar_pv_solar_radiation = opwek / 6000 kW * potentieel_nederland_bedrijven

Voor buurtelektrificatie: capacity_of_households_solar_pv_solar_radiation = count(EnergieProductionAsset) / aantal_huizen share_rijtjeshuizen potentieel_nederland_huishouden

Voor TVW: capacity_of_households_solar_pv_solar_radiation = household_electrification_total_share * potentieel_nederland_huishoudens

Dat potentieel kunnen we hardcoden op de waardes van hierboven. Voor regionaal voegen we de regionale schalingsfactor toe die vaak al in de casussen zit.

Review

Ik heb de aanpassingen van hierboven gedaan. @GillisHommen @PeterHogeveen kunnen jullie deze aanpak reviewen?

(N.B. het zou allemaal zo veel gemakkelijker en eleganter zijn als dit Python code was ipv deze Rule Engine)

GillisHommen commented 3 months ago

De bedrijventerrein-case schaalt als het goed is zon-op-land en zon-op-bedrijven op naar het ETM. Het gaat hier alleen om zon-op-bedrijven, toch?

In de case (het lokale model) gaat zon-op-bedrijven tot 1.5MW. Laten we zeggen dat dit bij benutting van 60% van het totale dakoppervlak is (je kunt nooit 100% vol leggen). Dus ik zou de opschaling zo instellen dat als de case 1.5MW zon-op-bedrijven heeft, je nationaal (en evt. regionaal) 60% van het dakoppervlak benut. Dat zou dan 0.6*22661 =13596.6MW zijn. De schaalfactor is dan 13596.6/1.5 = 9064.4

Zodat je krijgt: capacity_of_buildings_solar_pv_solar_radiation = opwek_zon_op_bedrijven_MW * 9064.4

Voor zon_op_land zou ook nog een aparte schaling gemaakt moeten worden.

Erikvv commented 2 months ago

De bedrijventerrein-case schaalt als het goed is zon-op-land en zon-op-bedrijven op naar het ETM. Het gaat hier alleen om zon-op-bedrijven, toch?

Ja

In de case (het lokale model) gaat zon-op-bedrijven tot 1.5MW.

Ik heb dit gechecked. Als ik de slider op het maximum 20MW zet is het query resultaat voor zon-op-dak 1.818 MW (Datamodel_building_PV_installed_kW).

Mijn aanname was eerder 6 MW. Dus ik heb dit aangepast naar 1.818 MW. De duurzame opwek in het ETM wordt hiermee hoger.

Laten we zeggen dat dit bij benutting van 60% van het totale dakoppervlak is (je kunt nooit 100% vol leggen)

Volgens mij is die 133.3 km^2 slash 22661 MW al een effectief dakoppervlak. Dus ik stel voor dit als maximum aan te houden.

Voor zon_op_land zou ook nog een aparte schaling gemaakt moeten worden.

Zal ik naar kjiken.