el1xr_opt.Modules.oM_GreenHydrogen

el1xr_opt.Modules.oM_GreenHydrogen#

el1xr_opt.Modules.oM_GreenHydrogen.create_green_hydrogen(model, optmodel, indlog)[source]#

Add green-hydrogen temporal matching and electricity PPA settlement.

Two additive features:

  1. Hourly temporal matching (additionality). When the option pParGreenH2Matching is set, the electricity drawn by electrolysers in each load level must not exceed the renewable generation available to the operator in that same load level (own renewable units plus any PPA-contracted renewable units). With hourly load levels this is the strict hourly RFNBO matching rule.

  2. Electricity PPA settlement. The variables vTotalEleMrkPPACost and vTotalEleMrkPPARev are fixed to zero in create_variables (electricity PPA off by default). When renewable units are flagged as PPA-contracted (pEleGenPPA), this function frees the PPA cost variable and defines it as the take-as-produced payment for the contracted generation. Hydrogen PPA is already handled in the model.

PPA-contracted units are renewable generators (subset of egr) that the operator pays for at a fixed price; being physical generators they are already in the energy balance, so they also count toward the matching pool. If no unit is flagged and the matching option is off, this function changes nothing, so existing cases are unaffected.

Run it after create_constraints.