From 4a5a6505747fd3a10039fc7e13704a240edc342e Mon Sep 17 00:00:00 2001 From: Ate Hempenius Date: Fri, 20 Dec 2024 23:04:28 +0100 Subject: [PATCH 1/3] MoneyMade calcualtion price battery management GCNeighborhood --- Zero_engine.alp | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/Zero_engine.alp b/Zero_engine.alp index ad088920..4cf02dd0 100644 --- a/Zero_engine.alp +++ b/Zero_engine.alp @@ -51466,6 +51466,18 @@ public void f_manageHeatingAssets(){ @Override public void f_connectToJ_EA_default(J_EA j_ea){ f_connectToJ_EA_default_overwrite(j_ea); +} + +/* +@Override +public void f_resetSpecificGCStatesAfterRapidRun(){ + f_resetSpecificGCStatesAfterRapidRun_override(); +} +*/ + +@Override +public void f_resetSpecificGCStates(){ + f_resetSpecificGCStates_override(); }]]> @@ -51945,6 +51957,21 @@ public void f_connectToJ_EA_default(J_EA j_ea){ + + 1734716021367 + + 1250630 + + false + true + true + + + + + + + 1718725906048 @@ -52828,6 +52855,11 @@ if (p_batteryAsset.getStorageCapacity_kWh() != 0){ } p_batteryAsset.v_powerFraction_fr = max(-1,min(1, chargeSetpoint_kW / p_batteryAsset.getCapacityElectric_kW())); // Convert to powerFraction and limit power + + //double chargedPower_kW = max(0,p_batteryAsset.v_powerFraction_fr*p_batteryAsset.getCapacityElectric_kW()); + //double dischargedPower_kW = min(0,p_batteryAsset.v_powerFraction_fr*p_batteryAsset.getCapacityElectric_kW()); + + v_batteryMoneyMade_euro += -p_batteryAsset.v_powerFraction_fr*p_batteryAsset.getCapacityElectric_kW()*energyModel.p_timeStep_h*energyModel.v_epexForecast_eurpkWh; //} } @@ -52908,6 +52940,18 @@ v_amountOfDistrictHeating_agriculture_fr = pctArray[3]/100; ]]> + + VOID + + 1734716016619 + + 1250610 + + false + true + true + + From f77c9a6161b66acd8670388e6a30b8d2aa280eb5 Mon Sep 17 00:00:00 2001 From: Ate Hempenius Date: Tue, 7 Jan 2025 10:11:36 +0100 Subject: [PATCH 2/3] Update Zero_engine.alp --- Zero_engine.alp | 39 +++++++++++++++------------------------ 1 file changed, 15 insertions(+), 24 deletions(-) diff --git a/Zero_engine.alp b/Zero_engine.alp index ad088920..e28142f2 100644 --- a/Zero_engine.alp +++ b/Zero_engine.alp @@ -46301,7 +46301,7 @@ FullCapacity.]]> 1709733732105 - 1610150 + 1610140 false true @@ -46492,7 +46492,7 @@ if (p_curtailer != null){ @author: Gillis Hommen @since: 28-12-2022]]> - 1350100 + 1230180 false true @@ -46563,7 +46563,7 @@ if (CurtailerAsset.getElectricCapacity_kW()>0) { 1708089250229 - 161070 + 161060 false true @@ -46650,7 +46650,7 @@ if (ElectrolyserAsset.getInputCapacity_kW()>0) { 1708089644411 - 800240 + 910220 false true @@ -46697,7 +46697,7 @@ if (p_batteryAsset != null){ 1708447959640 - 162090 + 162080 false true @@ -46726,15 +46726,6 @@ double previousElectrolyserConsumption_kW = max(0,flowsMap.get(OL_EnergyCarriers double currentGridNodePowerFlow_kW = this.l_parentNodeElectric.getConnectedAgent().v_currentLoad_kW - previousElectrolyserConsumption_kW; data_liveWeekGridNoderPowerFlow_kW.add(energyModel.t_h, this.l_parentNodeElectric.getConnectedAgent().v_currentLoad_kW); -switch (p_electrolyserOperationMode){ - - case PRICE: - f_electrolyserRegimeControl_Price(excessElectricPower_kW, ElectrolyserAsset); - break; - case BALANCE: - f_electrolyserRegimeControl_Balance(currentGridNodePowerFlow_kW, forecast_time_h, ElectrolyserAsset); - break; -} switch (p_electrolyserOperationMode){ @@ -46755,7 +46746,7 @@ switch (ElectrolyserAsset.getState()){ elektrolyserSetpointElectric_kW = 0; if(energyModel.v_isRapidRun){ - v_totalDownTimeElectrolyser_hr = v_totalDownTimeElectrolyser_hr + 0.25; + v_totalDownTimeElectrolyser_hr = v_totalDownTimeElectrolyser_hr + energyModel.p_timeStep_h; } break; @@ -46763,7 +46754,7 @@ switch (ElectrolyserAsset.getState()){ elektrolyserSetpointElectric_kW = 0; if(energyModel.v_isRapidRun){ - v_totalDownTimeElectrolyser_hr = v_totalDownTimeElectrolyser_hr + 0.25; + v_totalDownTimeElectrolyser_hr = v_totalDownTimeElectrolyser_hr + energyModel.p_timeStep_h; } break; @@ -46771,8 +46762,8 @@ switch (ElectrolyserAsset.getState()){ elektrolyserSetpointElectric_kW = 0.025*ElectrolyserAsset.getInputCapacity_kW(); // 1 - 5 percent of nominal load to keep it warm! if(energyModel.v_isRapidRun){ - v_totalDownTimeElectrolyser_hr = v_totalDownTimeElectrolyser_hr + 0.25; - v_totalEnergyLossIdle_kWh = v_totalEnergyLossIdle_kWh + elektrolyserSetpointElectric_kW*0.25; + v_totalDownTimeElectrolyser_hr = v_totalDownTimeElectrolyser_hr + energyModel.p_timeStep_h; + v_totalEnergyLossIdle_kWh = v_totalEnergyLossIdle_kWh + elektrolyserSetpointElectric_kW*energyModel.p_timeStep_h; } break; @@ -46818,7 +46809,7 @@ return elektrolyserSetpointElectric_kW;]]> 1708448673879 - 1630110 + 1630100 false true @@ -46912,7 +46903,7 @@ switch (ElectrolyserAsset.getState()){ 1715611921617 - 1630130 + 1630120 false true @@ -47043,7 +47034,7 @@ switch (ElectrolyserAsset.getState()){ 1717066943639 - 1140550 + 1230570 false true @@ -47061,7 +47052,7 @@ v_hydrogenInStorage_kWh = 0; 1717068271650 - 1140590 + 1250590 false true @@ -47141,7 +47132,7 @@ v_hydrogenInStorage_kWh = 0;]]> 1731589202880 - 960560 + 930560 false true @@ -47346,7 +47337,7 @@ if (energyModel.b_isLastTimeStepOfDay) { -14774017 null SOLID - 280 + 350 490 0.0 -1 From bf985b81b660710108f382264ef685dd04b3ad39 Mon Sep 17 00:00:00 2001 From: Ate Hempenius Date: Tue, 7 Jan 2025 14:13:38 +0100 Subject: [PATCH 3/3] comment out unused price calculation electrolyser price --- Zero_engine.alp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Zero_engine.alp b/Zero_engine.alp index e28142f2..eda4839a 100644 --- a/Zero_engine.alp +++ b/Zero_engine.alp @@ -46823,7 +46823,7 @@ return elektrolyserSetpointElectric_kW;]]>