From 49bd708e98573abafb42216c511df2f26e7084a1 Mon Sep 17 00:00:00 2001 From: Luc-Sol Date: Thu, 25 Sep 2025 15:50:26 +0200 Subject: [PATCH] No longer scale internal array of J_EAProfile --- ..._BatteryManagementPeakShavingForecast.java | 8 ++-- _alp/Classes/Class.J_EAProfile.java | 38 +++---------------- 2 files changed, 9 insertions(+), 37 deletions(-) diff --git a/_alp/Classes/Class.J_BatteryManagementPeakShavingForecast.java b/_alp/Classes/Class.J_BatteryManagementPeakShavingForecast.java index 98aa5e61..9ab1d64f 100644 --- a/_alp/Classes/Class.J_BatteryManagementPeakShavingForecast.java +++ b/_alp/Classes/Class.J_BatteryManagementPeakShavingForecast.java @@ -87,7 +87,7 @@ private double[] getNettoBalanceForecast_kW() { for(J_EAProfile elecConsumptionProfile : elecConsumptionProfiles) { if(elecConsumptionProfile != null){ - double[] tempNettoBalance_kW = ZeroMath.arrayMultiply(Arrays.copyOfRange(elecConsumptionProfile.a_energyProfile_kWh, startTimeDayIndex, endTimeDayIndex), 1/p_timestep_h);//, elecConsumptionProfile.getProfileScaling_fr()); + double[] tempNettoBalance_kW = ZeroMath.arrayMultiply(Arrays.copyOfRange(elecConsumptionProfile.a_energyProfile_kWh, startTimeDayIndex, endTimeDayIndex), elecConsumptionProfile.getProfileScaling_fr()/p_timestep_h); for (int i = 0; i < tempNettoBalance_kW.length; i++) { nettoBalanceTotal_kW[i] += tempNettoBalance_kW[i]; } @@ -95,7 +95,7 @@ private double[] getNettoBalanceForecast_kW() { } for(J_EAProfile elecHeatPumpProfile : elecHeatPumpProfiles) { if(elecHeatPumpProfile != null){ - double[] tempNettoBalance_kW = ZeroMath.arrayMultiply(Arrays.copyOfRange(elecHeatPumpProfile.a_energyProfile_kWh, startTimeDayIndex, endTimeDayIndex), 1/p_timestep_h);//, elecHeatPumpProfile.getProfileScaling_fr()); + double[] tempNettoBalance_kW = ZeroMath.arrayMultiply(Arrays.copyOfRange(elecHeatPumpProfile.a_energyProfile_kWh, startTimeDayIndex, endTimeDayIndex), elecHeatPumpProfile.getProfileScaling_fr()/p_timestep_h); for (int i = 0; i < tempNettoBalance_kW.length; i++) { nettoBalanceTotal_kW[i] += tempNettoBalance_kW[i]; } @@ -103,7 +103,7 @@ private double[] getNettoBalanceForecast_kW() { } for(J_EAProfile elecEVProfile : elecEVProfiles) { if(elecEVProfile != null){ - double[] tempNettoBalance_kW = ZeroMath.arrayMultiply(Arrays.copyOfRange(elecEVProfile.a_energyProfile_kWh, startTimeDayIndex, endTimeDayIndex), 1/p_timestep_h);//, elecEVProfile.getProfileScaling_fr()); + double[] tempNettoBalance_kW = ZeroMath.arrayMultiply(Arrays.copyOfRange(elecEVProfile.a_energyProfile_kWh, startTimeDayIndex, endTimeDayIndex), elecEVProfile.getProfileScaling_fr()/p_timestep_h); for (int i = 0; i < tempNettoBalance_kW.length; i++) { nettoBalanceTotal_kW[i] += tempNettoBalance_kW[i]; } @@ -111,7 +111,7 @@ private double[] getNettoBalanceForecast_kW() { } for(J_EAProfile surveyHeatDemandProfile : surveyHeatDemandProfiles) { if(surveyHeatDemandProfile != null){ - double[] heatPower_kW = ZeroMath.arrayMultiply(Arrays.copyOfRange(surveyHeatDemandProfile.a_energyProfile_kWh, startTimeDayIndex, endTimeDayIndex), 1/p_timestep_h);//, surveyHeatDemandProfile.getProfileScaling_fr()); + double[] heatPower_kW = ZeroMath.arrayMultiply(Arrays.copyOfRange(surveyHeatDemandProfile.a_energyProfile_kWh, startTimeDayIndex, endTimeDayIndex), surveyHeatDemandProfile.getProfileScaling_fr()/p_timestep_h); //traceln(heatPower_kW); double eta_r = parentGC.energyModel.avgc_data.p_avgEfficiencyHeatpump; double outputTemperature_degC = parentGC.energyModel.avgc_data.p_avgOutputTemperatureHeatpump_degC; diff --git a/_alp/Classes/Class.J_EAProfile.java b/_alp/Classes/Class.J_EAProfile.java index 7ccdae9d..431f5809 100644 --- a/_alp/Classes/Class.J_EAProfile.java +++ b/_alp/Classes/Class.J_EAProfile.java @@ -73,7 +73,7 @@ public void operate(double time_h) { throw new RuntimeException(String.format("Time out of lower bound for evaluating J_EAProfile power! Time is: %s", time_h)); } - double currentPower_kW = a_energyProfile_kWh[(int)floor(time_h/profileTimestep_h)]/profileTimestep_h; + double currentPower_kW = this.profileScaling_fr * this.a_energyProfile_kWh[(int)floor(time_h/profileTimestep_h)]/profileTimestep_h; this.energyUse_kW = currentPower_kW; this.energyUsed_kWh += timestep_h * energyUse_kW; this.flowsMap.put(this.energyCarrier, currentPower_kW); @@ -98,52 +98,24 @@ public void curtailElectricityConsumption(double curtailmentSetpoint_kW) { assetFlows_kW.put(this.assetFlowCategory, curtailmentPower_kW); this.energyUse_kW = -curtailmentPower_kW; - //flowsMap.put(OL_EnergyCarriers.ENERGY_USE, -curtailmentPower_kW); - //lastFlowsArray[4] -= curtailmentPower_kW; this.lastFlowsMap.put(OL_EnergyCarriers.ELECTRICITY, this.lastFlowsMap.get(OL_EnergyCarriers.ELECTRICITY) - curtailmentPower_kW); - //lastFlowsArray[9] -= curtailmentPower_kW; this.lastEnergyUse_kW -= curtailmentPower_kW; - //lastFlowsMap.put(OL_EnergyCarriers.ENERGY_USE, lastFlowsMap.get(OL_EnergyCarriers.ENERGY_USE) - curtailmentPower_kW); - //traceln("Electricity production of asset %s curtailed by %s kW!", this, curtailmentPower_kW); if (parentAgent instanceof GridConnection) { ((GridConnection)parentAgent).f_removeFlows(flowsMap, this.energyUse_kW, assetFlows_kW, this); } - //if (ui_energyAsset!= null) { - //ui_energyAsset.f_removeFlows(flowsMap); - //} - //return new Pair(flowsMap, this.energyUse_kW); } - - public void scaleEnergyProfile(double scaling_fr) { - if (scaling_fr == 0) { - traceln("Failed to scale J_EAProfile with factor of 0 to prevent loss of information."); - return; - } - this.profileScaling_fr *= scaling_fr; - for (int i = 0; i < a_energyProfile_kWh.length; i++) { - a_energyProfile_kWh[i] = a_energyProfile_kWh[i] * scaling_fr; - } - return; - } - - public void resetEnergyProfile() { - if (this.profileScaling_fr == 1) { - return; - } - for (int i = 0; i < a_energyProfile_kWh.length; i++) { - a_energyProfile_kWh[i] = a_energyProfile_kWh[i] / this.profileScaling_fr; - } - this.profileScaling_fr = 1; - return; - } public double getProfileScaling_fr() { return profileScaling_fr; } + public void setProfileScaling_fr( double scaling_fr ) { + this.profileScaling_fr = scaling_fr; + } + public OL_EnergyCarriers getEnergyCarrier() { return this.energyCarrier; }