diff --git a/Zero_engine.alpx b/Zero_engine.alpx
index e4bb2252..90810d25 100644
--- a/Zero_engine.alpx
+++ b/Zero_engine.alpx
@@ -275,7 +275,7 @@
1676463395259
-
+
1676894965662
@@ -1300,6 +1300,22 @@ LARGE_CONNECTION (grootverbruik, > 3x80)
+
+ 1779959996975
+
+
+ 1779959996976
+
+
+
+ 1779959996977
+
+
+
+ 1779959996978
+
+
+
@@ -1517,12 +1533,6 @@ LARGE_CONNECTION (grootverbruik, > 3x80)
1752677832758
-
- 1659117174457
-
- true
- 1752677832758
-
1659117174458
@@ -1609,7 +1619,7 @@ LARGE_CONNECTION (grootverbruik, > 3x80)
1673445448881
-
+
1752677832758
diff --git a/_alp/Agents/EnergyModel/Code/Functions.java b/_alp/Agents/EnergyModel/Code/Functions.java
index 14126e5f..2776b497 100644
--- a/_alp/Agents/EnergyModel/Code/Functions.java
+++ b/_alp/Agents/EnergyModel/Code/Functions.java
@@ -835,7 +835,7 @@ EnergyCoop f_addProductionEnergyCarrier(OL_EnergyCarriers EC)
((J_EAStorageHeat)e).updateAmbientTemperature( pp_ambientTemperature_degC.getCurrentValue() );
break;
case BUILDING:
- new RuntimeException("AmbientTempType 'BUILDING' is not supported yet for J_EAStorageHeat!");
+ throw new RuntimeException("AmbientTempType 'BUILDING' is not supported yet for J_EAStorageHeat!");
/*
GridConnection parentGC = (GridConnection)e.getParentAgent();
if(parentGC.p_BuildingThermalAsset == null){
@@ -845,17 +845,15 @@ EnergyCoop f_addProductionEnergyCarrier(OL_EnergyCarriers EC)
((J_EAStorageHeat)e).updateAmbientTemperature(parentGC.p_BuildingThermalAsset.getCurrentTemperature());
}
*/
- break;
case HEAT_GRID:
// Do Nothing, keep fixed temp for now
- //new RuntimeException("AmbientTempType 'HEAT_GRID' is not supported yet for J_EAStorageHeat!");
+ //throw new RuntimeException("AmbientTempType 'HEAT_GRID' is not supported yet for J_EAStorageHeat!");
break;
case HEAT_STORAGE:
- new RuntimeException("AmbientTempType 'HEAT_STORAGE' is not supported yet for J_EAStorageHeat!");
- break;
+ throw new RuntimeException("AmbientTempType 'HEAT_STORAGE' is not supported yet for J_EAStorageHeat!");
}
}
- if (e instanceof J_EAConversionHeatPump) {
+ if (e instanceof J_EAConversionHeatPump hp) {
switch(((J_EAConversionHeatPump) e).getAmbientTempType()){
case FIXED:
//Do nothing, use preset ambient temp
@@ -864,7 +862,7 @@ EnergyCoop f_addProductionEnergyCarrier(OL_EnergyCarriers EC)
((J_EAConversionHeatPump)e).updateAmbientTemperature( pp_ambientTemperature_degC.getCurrentValue() );
break;
case BUILDING:
- new RuntimeException("AmbientTempType 'BUILDING' is not supported yet for J_EAConversionHeatPump!");
+ throw new RuntimeException("AmbientTempType 'BUILDING' is not supported yet for J_EAConversionHeatPump!");
/*
GridConnection parentGC = (GridConnection)e.getParentAgent();
if(parentGC.p_BuildingThermalAsset == null){
@@ -874,13 +872,12 @@ EnergyCoop f_addProductionEnergyCarrier(OL_EnergyCarriers EC)
((J_EAConversionHeatPump)e).updateAmbientTemperature(parentGC.p_BuildingThermalAsset.getCurrentTemperature());
}
*/
- break;
case HEAT_GRID:
- new RuntimeException("AmbientTempType 'HEAT_GRID' is not supported yet for J_EAConversionHeatPump!");
+ // Do Nothing, keep fixed temp for now
+ //throw new RuntimeException("AmbientTempType 'HEAT_GRID' is not supported yet for J_EAConversionHeatPump!");
break;
case HEAT_STORAGE:
- new RuntimeException("AmbientTempType 'HEAT_STORAGE' is not supported yet for J_EAConversionHeatPump!");
- break;
+ throw new RuntimeException("AmbientTempType 'HEAT_STORAGE' is not supported yet for J_EAConversionHeatPump!");
}
}
if( e instanceof J_EABuilding ) {
diff --git a/_alp/Agents/GCHouse/Code/Functions.java b/_alp/Agents/GCHouse/Code/Functions.java
index 374a9803..75072626 100644
--- a/_alp/Agents/GCHouse/Code/Functions.java
+++ b/_alp/Agents/GCHouse/Code/Functions.java
@@ -11,7 +11,7 @@
if (p_cookingTracker != null) { // check for presence of cooking asset
p_cookingTracker.manageActivities(timeVariables); // also calls f_updateAllFlows in HOB asset
- double residualHeatGasPit_kW = -p_cookingTracker.HOB.getLastFlows().get(OL_EnergyCarriers.HEAT);
+ double residualHeatGasPit_kW = -p_cookingTracker.getHob().getLastFlows().get(OL_EnergyCarriers.HEAT);
throw new RuntimeException("Cooking trackers and HOBs are not properly integrated with current heating management!");
/*if (p_BuildingThermalAsset != null) {
p_BuildingThermalAsset.v_powerFraction_fr += residualHeatGasPit_kW / p_BuildingThermalAsset.getCapacityHeat_kW(); // Does this work out correctly with new heatingManagement structure??
diff --git a/_alp/Agents/GCPublicCharger/Variables.xml b/_alp/Agents/GCPublicCharger/Variables.xml
index 6be4b972..3f867328 100644
--- a/_alp/Agents/GCPublicCharger/Variables.xml
+++ b/_alp/Agents/GCPublicCharger/Variables.xml
@@ -29,6 +29,7 @@
1750335661857
+ true
1630
150
diff --git a/_alp/Agents/GridConnection/Code/Functions.java b/_alp/Agents/GridConnection/Code/Functions.java
index 0b97ac84..f8b2b05d 100644
--- a/_alp/Agents/GridConnection/Code/Functions.java
+++ b/_alp/Agents/GridConnection/Code/Functions.java
@@ -483,7 +483,7 @@ else if (flowPacket.flowsMap.get(EC) > 0){
c_vehicleAssets.forEach(vehicle -> vehicle.setAvailability(true));
if (p_chargePoint != null) {
c_tripTrackers.forEach(tt -> {
- if (tt.vehicle instanceof J_EAEV ev && p_chargePoint.isRegistered(ev)) {
+ if (tt.getVehicle() instanceof J_EAEV ev && p_chargePoint.isRegistered(ev)) {
p_chargePoint.deregisterChargingRequest(ev);
}
tt.setStartIndex(timeVariables, f_getChargePoint());
@@ -903,20 +903,20 @@ else if (j_ea instanceof J_EAConversion conversionAsset) {
//Check if heating asset
if (conversionAsset instanceof I_HeatingAsset) {
c_heatingAssets.add(conversionAsset);
- if (j_ea instanceof J_EAConversionHeatPump) {
- energyModel.c_ambientDependentAssets.add(j_ea);
+ if (conversionAsset instanceof J_EAConversionHeatPump) {
+ energyModel.c_ambientDependentAssets.add(conversionAsset);
}
}
- else if ( conversionAsset.energyAssetType == OL_EnergyAssetType.GAS_PIT || j_ea.energyAssetType == OL_EnergyAssetType.ELECTRIC_HOB){
+ else if ( conversionAsset instanceof J_EAConversionHob hob){
if (p_cookingTracker == null) {
int rowIndex = uniform_discr(2, 300);
- p_cookingTracker = new J_ActivityTrackerCooking(energyModel.p_cookingPatternCsv, rowIndex, (energyModel.p_timeVariables.getAnyLogicTime_h())*60, (J_EAConversion)j_ea );
+ p_cookingTracker = new J_ActivityTrackerCooking(energyModel.p_cookingPatternCsv, rowIndex, hob, timeParameters, energyModel.p_timeVariables);
}
else {
- p_cookingTracker.HOB = (J_EAConversion)j_ea;
+ p_cookingTracker.setHob(hob);
}
}
- else if (j_ea instanceof J_EAConversionAirConditioner aircoAsset) {
+ else if (conversionAsset instanceof J_EAConversionAirConditioner aircoAsset) {
p_airco = aircoAsset;
energyModel.c_ambientDependentAssets.add(aircoAsset);
}
@@ -925,19 +925,19 @@ else if (j_ea instanceof J_EAConversionAirConditioner aircoAsset) {
else if (j_ea instanceof J_EAStorage storageAsset) {
c_storageAssets.add(storageAsset);
energyModel.c_storageAssets.add(storageAsset);
- if (j_ea instanceof J_EAStorageHeat) {
- energyModel.c_ambientDependentAssets.add(j_ea);
- if (j_ea instanceof J_EABuilding buildingAsset) {
+ if (storageAsset instanceof J_EAStorageHeat heatStorage) {
+ energyModel.c_ambientDependentAssets.add(heatStorage);
+ if (heatStorage instanceof J_EABuilding buildingAsset) {
p_BuildingThermalAsset = buildingAsset;
}
else {
- p_heatBuffer = (J_EAStorageHeat)j_ea;
+ p_heatBuffer = heatStorage;
}
}
- else if (j_ea instanceof J_EAStorageGas gasStorage) {
+ else if (storageAsset instanceof J_EAStorageGas gasStorage) {
p_gasBuffer = gasStorage;
}
- else if (j_ea instanceof J_EAStorageElectric battery) {
+ else if (storageAsset instanceof J_EAStorageElectric battery) {
p_batteryAsset = battery;
double capacity_MWh = battery.getStorageCapacity_kWh()/1000;
v_liveAssetsMetaData.totalInstalledBatteryStorageCapacity_MWh += capacity_MWh;
@@ -954,17 +954,17 @@ J_ActivityTrackerTrips f_getNewTripTracker(OL_EnergyAssetType assetType,I_Vehicl
J_ActivityTrackerTrips tripTracker;
if (assetType == OL_EnergyAssetType.ELECTRIC_TRUCK || assetType == OL_EnergyAssetType.PETROLEUM_FUEL_TRUCK || assetType == OL_EnergyAssetType.HYDROGEN_TRUCK) {
int rowIndex = uniform_discr(1, 7); //Truck trip CSV has 7 valid rows.
- tripTracker = new J_ActivityTrackerTrips(timeParameters, energyModel.p_truckTripsCsv, rowIndex, energyModel.p_timeVariables, vehicle, p_chargePoint);
+ tripTracker = new J_ActivityTrackerTrips(energyModel.p_truckTripsCsv, rowIndex, vehicle, p_chargePoint, timeParameters, energyModel.p_timeVariables);
} else if (assetType == OL_EnergyAssetType.PETROLEUM_FUEL_VAN || assetType == OL_EnergyAssetType.ELECTRIC_VAN || assetType == OL_EnergyAssetType.HYDROGEN_VAN) {// No mobility pattern for business vans available yet!! Falling back to truck mobility pattern
int rowIndex = uniform_discr(1, 7); //Truck trip CSV (used for vans) has 7 valid rows.
- tripTracker = new J_ActivityTrackerTrips(timeParameters, energyModel.p_truckTripsCsv, rowIndex, energyModel.p_timeVariables, vehicle, p_chargePoint);
+ tripTracker = new J_ActivityTrackerTrips(energyModel.p_truckTripsCsv, rowIndex, vehicle, p_chargePoint, timeParameters, energyModel.p_timeVariables);
tripTracker.setAnnualDistance_km(30_000); //Wat gebeurt hier???
} else if(assetType == OL_EnergyAssetType.PETROLEUM_FUEL_VEHICLE || assetType == OL_EnergyAssetType.ELECTRIC_VEHICLE || assetType == OL_EnergyAssetType.HYDROGEN_VEHICLE) {
int rowIndex = uniform_discr(0, 200); //Car trip CSV has 200+ valid rows.
while (rowIndex == 28 || rowIndex == 42 || rowIndex == 150) { // 28, 42, 150, 445, 457, 483, 540, 563 all impossible triptrackers for vehicles with 116 kWh and 0.16 kWhpkm
rowIndex = uniform_discr(0, 200);
}
- tripTracker = new J_ActivityTrackerTrips(timeParameters, energyModel.p_householdTripsCsv, rowIndex, energyModel.p_timeVariables, vehicle, p_chargePoint);
+ tripTracker = new J_ActivityTrackerTrips(energyModel.p_householdTripsCsv, rowIndex, vehicle, p_chargePoint, timeParameters, energyModel.p_timeVariables);
}
else{
throw new RuntimeException("Trying to get a new trip tracker for an unsupported vehicle type");
@@ -1153,7 +1153,7 @@ else if (j_ea instanceof J_EAConversionGasCHP) {
}
}
- else if ( j_ea.energyAssetType == OL_EnergyAssetType.GAS_PIT || j_ea.energyAssetType == OL_EnergyAssetType.ELECTRIC_HOB){
+ else if ( j_ea.energyAssetType == OL_EnergyAssetType.GAS_HOB || j_ea.energyAssetType == OL_EnergyAssetType.ELECTRIC_HOB){
p_cookingTracker = null;
}
else if (j_ea instanceof J_EAConversionElectrolyser) {
@@ -1201,7 +1201,7 @@ J_ActivityTrackerTrips f_connectTripTracker(I_Vehicle vehicle,J_TimeParameters t
vehicle.setTripTracker(tripTracker);
}
else if( vehicle.getAvailability() && vehicle instanceof J_EAEV ev){ // J_EAEV that already has triptracker, but still needs to prepare next trip to determine chargedeadline.
- tripTracker.prepareNextActivity(energyModel.p_timeVariables.getT_h()*60, p_chargePoint);
+ tripTracker.prepareNextActivity(energyModel.p_timeVariables, p_chargePoint);
}
c_tripTrackers.add( tripTracker );
/*ALCODEEND*/}
diff --git a/_alp/Classes/Class.I_Vehicle.java b/_alp/Classes/Class.I_Vehicle.java
index e696cc8a..430017e7 100644
--- a/_alp/Classes/Class.I_Vehicle.java
+++ b/_alp/Classes/Class.I_Vehicle.java
@@ -14,7 +14,8 @@
public interface I_Vehicle
{
// These methods can't have default implementations because they use the Object States.
-
+ I_AssetOwner getOwner();
+
boolean startTrip(J_TimeVariables timeVariables);
boolean endTrip(double tripDist_km);
@@ -27,6 +28,9 @@ public interface I_Vehicle
double getVehicleScaling_fr();
double getEnergyConsumption_kWhpkm();
- //Temporary, till replaced with getVehicleType() (Car, Van, Truck, Tractor) and getFuelType() (ELE, Petrol, h2)
+ OL_VehicleType getVehicleType();
+ OL_EnergyCarriers getFuelType();
+
+ //Temporary, till fully replaced with getVehicleType() (Car, Van, Truck, Tractor) and getFuelType() (ELE, Petrol, h2)
OL_EnergyAssetType getEAType();
}
\ No newline at end of file
diff --git a/_alp/Classes/Class.J_ActivityTracker.java b/_alp/Classes/Class.J_ActivityTracker.java
index 6e24db7b..be029145 100644
--- a/_alp/Classes/Class.J_ActivityTracker.java
+++ b/_alp/Classes/Class.J_ActivityTracker.java
@@ -17,13 +17,10 @@
)
@JsonIdentityInfo(generator = ObjectIdGenerators.UUIDGenerator.class, property = "@id")
public abstract class J_ActivityTracker implements I_StoreStatesAndReset {
- protected EnergyModel energyModel;
// Tripdata
- protected ArrayList starttimes_min = new ArrayList<>();
- protected ArrayList endtimes_min = new ArrayList<>();
- //private ArrayList eventMagnitude = new ArrayList<>();
- public int nbActivities = 0;
+ protected ArrayList startTimes_h = new ArrayList<>();
+ protected ArrayList endTimes_h = new ArrayList<>();
public int eventIndex = 0;
protected int eventIndexStored =0;
@@ -33,9 +30,6 @@ public abstract class J_ActivityTracker implements I_StoreStatesAndReset {
public J_ActivityTracker() {
}
- public J_ActivityTracker(EnergyModel main, int rowIndex, double time_min) {
- }
-
public void storeStatesAndReset() {
eventIndexStored = eventIndex;
eventIndex = 0;
@@ -44,10 +38,4 @@ public void storeStatesAndReset() {
public void restoreStates() {
eventIndex = eventIndexStored;
}
-
-
- @Override
- public String toString() {
- return super.toString();
- }
}
\ No newline at end of file
diff --git a/_alp/Classes/Class.J_ActivityTrackerCooking.java b/_alp/Classes/Class.J_ActivityTrackerCooking.java
index d91c6869..02301c4b 100644
--- a/_alp/Classes/Class.J_ActivityTrackerCooking.java
+++ b/_alp/Classes/Class.J_ActivityTrackerCooking.java
@@ -1,21 +1,17 @@
/**
* J_ActivityTrackerCooking
*/
-
-import com.fasterxml.jackson.annotation.JsonIdentityInfo;
-import com.fasterxml.jackson.annotation.ObjectIdGenerators;
-@JsonIdentityInfo(generator = ObjectIdGenerators.UUIDGenerator.class, property = "@id")
public class J_ActivityTrackerCooking extends zero_engine.J_ActivityTracker {
private ArrayList powerFractions_fr = new ArrayList<>();
- public J_EAConversion HOB;
- public double powerFraction_fr=0;
- private int rowIndex;
+ private J_EAConversionHob hob;
+ private double powerFraction_fr=0;
private boolean cooking = false;
- private double timeStep_min;
- private ArrayList initalStarttimes_min;
- private ArrayList initalEndtimes_min;
- private ArrayList storedStarttimes_min;
- private ArrayList storedEndtimes_min;
+ private J_TimeParameters timeParameters;
+ private Integer CSVRowIndex = null;
+ private ArrayList initalStartTimes_h;
+ private ArrayList initalEndTimes_h;
+ private ArrayList storedStartTimes_h;
+ private ArrayList storedEndTimes_h;
/**
* Default constructor
@@ -23,111 +19,83 @@ public class J_ActivityTrackerCooking extends zero_engine.J_ActivityTracker {
public J_ActivityTrackerCooking() {
}
- public J_ActivityTrackerCooking(TextFile inputCookingActivities, int rowIndex, double time_min, J_EAConversion HOB) {
-
- this.rowIndex = rowIndex;
- this.HOB=HOB;
- //int rowIndex = uniform_discr(2, 300);
-
- this.timeStep_min = 60 * this.HOB.timeParameters.getTimeStep_h();
+ public J_ActivityTrackerCooking(TextFile cookingActivitiesCSV, int CSVRowIndex, J_EAConversionHob hob, J_TimeParameters timeParameters, J_TimeVariables timeVariables) {
+ this.CSVRowIndex = CSVRowIndex;
+ this.hob=hob;
+ double time_h = timeVariables.getAnyLogicTime_h();
+ this.timeParameters = timeParameters;
- inputCookingActivities.close();
- inputCookingActivities.canReadMore();
- inputCookingActivities.readLine(); // Skips first line
+ cookingActivitiesCSV.close();
+ cookingActivitiesCSV.canReadMore();
+ cookingActivitiesCSV.readLine(); // Skips first line
- while (roundToInt(inputCookingActivities.readDouble())!=rowIndex && inputCookingActivities.canReadMore()) { // Skip until rowIndex found
- inputCookingActivities.readLine();
- //String line = tripsCsv.readLine(); // Does this also skip to the next line?
- //traceln("Skipping line: " + line);
+ while (roundToInt(cookingActivitiesCSV.readDouble())!=CSVRowIndex && cookingActivitiesCSV.canReadMore()) { // Skip until rowIndex found
+ cookingActivitiesCSV.readLine();
}
- int currentLineNb = inputCookingActivities.getLineNumber();
- traceln("rowIndex %s found on line: %s", rowIndex, currentLineNb);
- int nbActivities = inputCookingActivities.readInt();
- traceln("Number of trips: %s", nbActivities);
+ int currentLineNb = cookingActivitiesCSV.getLineNumber();
+ int nbActivities = cookingActivitiesCSV.readInt();
-
for (int i = 0; i < nbActivities; i++){
- starttimes_min.add(inputCookingActivities.readDouble());
- endtimes_min.add(inputCookingActivities.readDouble());
-
- double ratio = inputCookingActivities.readDouble() / HOB.getOutputCapacity_kW();
- powerFractions_fr.add(ratio);
+ startTimes_h.add(cookingActivitiesCSV.readDouble()/60.0); // Convert data (min) to hours
+ endTimes_h.add(cookingActivitiesCSV.readDouble()/60.0); // Convert data (min) to hours
+ powerFractions_fr.add(cookingActivitiesCSV.readDouble() / hob.getOutputCapacity_kW());
}
- while ( starttimes_min.get(eventIndex) - time_min < 0) {
- starttimes_min.set( eventIndex, starttimes_min.get(eventIndex) + 1440 ); // Source data is always just one day, repeating every day.
- endtimes_min.set( eventIndex, endtimes_min.get(eventIndex) + 1440 ); // Source data is always just one day, repeating every day.
+ while ( startTimes_h.get(eventIndex) - time_h < 0) {
+ startTimes_h.set( eventIndex, startTimes_h.get(eventIndex) + 24 ); // Source data is always just one day, repeating every day.
+ endTimes_h.set( eventIndex, endTimes_h.get(eventIndex) + 24 ); // Source data is always just one day, repeating every day.
eventIndex++;
- if ( eventIndex > starttimes_min.size() - 1 ) {
+ if ( eventIndex > startTimes_h.size() - 1 ) {
eventIndex = 0;
}
}
- initalStarttimes_min = new ArrayList<>(starttimes_min);
- initalEndtimes_min = new ArrayList<>(endtimes_min);
- //traceln("Current model time in minutes: " + energyModel.t_h*60 + ", nb sessions: " + nbOfCookingSessions);
- //traceln("Starttimes: %s", starttimes_min);
- //traceln("Endtimes: %s", endtimes_min);
+ initalStartTimes_h = new ArrayList<>(startTimes_h);
+ initalEndTimes_h = new ArrayList<>(endTimes_h);
}
public void manageActivities(J_TimeVariables timeVariables) {
- double time_min = timeVariables.getAnyLogicTime_h() * 60;
- //traceln("Cooking tracker current time: " + time_min);
- //traceln("Event index: " + eventIndex);
- //traceln("startTimes: " + starttimes_min);
- //traceln("endTimes: " + endtimes_min);
- //traceln("powerFractions_fr: " + powerFractions_fr);
-
- if (cooking) {
- if (time_min >= endtimes_min.get(eventIndex) ) { // end cooking session. Also check if a new one starts in this timestep!
+ double time_h = timeVariables.getAnyLogicTime_h();
- //main.v_activeCookingSessions.decrementAndGet();
- //traceln("End of cooking session, currently active cooking sessions %s", main.v_activeCookingSessions);
+ if (cooking) {
+ if (time_h >= endTimes_h.get(eventIndex) ) { // end cooking session. Also check if a new one starts in this timestep!
// factor to compensate for the fact that you might not be cooking for the entire timestep.
- double fr = (time_min - this.endtimes_min.get(this.eventIndex)) / this.timeStep_min;
+ double fr = (time_h - this.endTimes_h.get(this.eventIndex)) / this.timeParameters.getTimeStep_h();
this.powerFraction_fr = fr * this.powerFractions_fr.get(this.eventIndex);
- starttimes_min.set( eventIndex, starttimes_min.get(eventIndex) + 1440 );
- endtimes_min.set( eventIndex, endtimes_min.get(eventIndex) + 1440 );
+ startTimes_h.set( eventIndex, startTimes_h.get(eventIndex) + 24 );
+ endTimes_h.set( eventIndex, endTimes_h.get(eventIndex) + 24 );
eventIndex++;
- if ( eventIndex >= starttimes_min.size() ) {
+ if ( eventIndex >= startTimes_h.size() ) {
eventIndex = 0;
}
cooking=false;
- if (time_min >= starttimes_min.get(eventIndex)) {
+ if (time_h >= startTimes_h.get(eventIndex)) {
// factor to compensate for the fact that you might not be cooking for the entire timestep.
- fr = (time_min - this.starttimes_min.get(this.eventIndex)) / this.timeStep_min;
+ fr = (time_h - this.startTimes_h.get(this.eventIndex)) / this.timeParameters.getTimeStep_h();
this.powerFraction_fr = fr * this.powerFractions_fr.get(this.eventIndex);
- //main.v_activeCookingSessions.incrementAndGet();
cooking=true;
traceln("Starting next cooking session in same timestep as previous session ended!! Rowindex %s, eventIndex %s\", rowIndex, eventIndex");
}
}
else {
- this.powerFraction_fr = this.starttimes_min.get(this.eventIndex);
+ this.powerFraction_fr = this.startTimes_h.get(this.eventIndex);
}
- } else if (time_min >= starttimes_min.get(eventIndex) ) { // start cooking session. Also check if it ends within this timestep!
- /*if (endtimes_min.get(eventIndex) - starttimes_min.get(eventIndex) > 100) {
- traceln("Cooking event longer than 100 minutes!! Rowindex %s, eventIndex %s.", rowIndex, eventIndex);
- }*/
+ } else if (time_h >= startTimes_h.get(eventIndex) ) { // start cooking session. Also check if it ends within this timestep!
// factor to compensate for the fact that you might not be cooking for the entire timestep.
- double fr = (time_min - this.starttimes_min.get(this.eventIndex)) / this.timeStep_min;
+ double fr = (time_h - this.startTimes_h.get(this.eventIndex)) / this.timeParameters.getTimeStep_h();
this.powerFraction_fr = fr * this.powerFractions_fr.get(this.eventIndex);
- //main.v_activeCookingSessions.incrementAndGet();
cooking=true;
- if (time_min >= endtimes_min.get(eventIndex) ) { // end cooking session in the same timestep? Still need to fix energy use for this case!!
-
- //main.v_activeCookingSessions.decrementAndGet();
- //traceln("End of cooking session, currently active cooking sessions %s", main.v_activeCookingSessions);
- fr = (this.endtimes_min.get(this.eventIndex) - this.starttimes_min.get(this.eventIndex)) / this.timeStep_min;
+ if (time_h >= endTimes_h.get(eventIndex) ) { // end cooking session in the same timestep? Still need to fix energy use for this case!!
+ fr = (this.endTimes_h.get(this.eventIndex) - this.startTimes_h.get(this.eventIndex)) / this.timeParameters.getTimeStep_h();
this.powerFraction_fr = fr * this.powerFractions_fr.get(this.eventIndex);
- starttimes_min.set( eventIndex, starttimes_min.get(eventIndex) + 1440 );
- endtimes_min.set( eventIndex, endtimes_min.get(eventIndex) + 1440 );
+ startTimes_h.set( eventIndex, startTimes_h.get(eventIndex) + 24 );
+ endTimes_h.set( eventIndex, endTimes_h.get(eventIndex) + 24 );
eventIndex++;
- if ( eventIndex >= starttimes_min.size() ) {
+ if ( eventIndex >= startTimes_h.size() ) {
eventIndex = 0;
}
cooking=false;
@@ -136,29 +104,43 @@ public void manageActivities(J_TimeVariables timeVariables) {
else {
this.powerFraction_fr = 0;
}
- //if (powerFraction_fr > 0 ) { traceln("Cooking event in progress!"); }
- HOB.f_updateAllFlows(powerFraction_fr, timeVariables);
+ hob.f_updateAllFlows(powerFraction_fr, timeVariables);
}
+
+ //Setters
+ public void setHob(J_EAConversionHob hob) {
+ this.hob = hob;
+ }
+
+
+ //Getters
+ public J_EAConversionHob getHob() {
+ return this.hob;
+ }
+
+
@Override
public void storeStatesAndReset() {
eventIndexStored = eventIndex;
- storedStarttimes_min = new ArrayList<>(starttimes_min);
- storedEndtimes_min = new ArrayList<>(endtimes_min);
- starttimes_min = new ArrayList<>(initalStarttimes_min);
- endtimes_min = new ArrayList<>(initalEndtimes_min);
+ storedStartTimes_h = new ArrayList<>(startTimes_h);
+ storedEndTimes_h = new ArrayList<>(endTimes_h);
+ startTimes_h = new ArrayList<>(initalStartTimes_h);
+ endTimes_h = new ArrayList<>(initalEndTimes_h);
eventIndex = 0;
}
@Override
public void restoreStates() {
eventIndex = eventIndexStored;
- starttimes_min = new ArrayList<>(storedStarttimes_min);
- endtimes_min = new ArrayList<>(storedEndtimes_min);
+ startTimes_h = new ArrayList<>(storedStartTimes_h);
+ endTimes_h = new ArrayList<>(storedEndTimes_h);
}
- @Override
+ @Override
public String toString() {
- return super.toString();
+ String outputString = "J_ActivityTrackerCooking: \n";
+ outputString += "Based on CSV data with row index: " + CSVRowIndex + "\n";
+ return outputString;
}
}
diff --git a/_alp/Classes/Class.J_ActivityTrackerTrips.java b/_alp/Classes/Class.J_ActivityTrackerTrips.java
index 38eaa892..d87b3243 100644
--- a/_alp/Classes/Class.J_ActivityTrackerTrips.java
+++ b/_alp/Classes/Class.J_ActivityTrackerTrips.java
@@ -12,88 +12,85 @@ public class J_ActivityTrackerTrips extends J_ActivityTracker {
private J_TimeParameters timeParameters;
- public ArrayList distances_km = new ArrayList<>();
- private int rowIndex;
- public I_Vehicle vehicle;
- public double idleTimeToNextTrip_min;
- public double idleTimeToNextTripStored_min;
- public double tripDistance_km;
- public double nextEventStartTime_min;
- public double distanceScaling_fr = 1.0;
- public double currentTripTimesteps_n;
+ private ArrayList distances_km = new ArrayList<>();
+ private Integer CSVRowIndex = null;
+ private I_Vehicle vehicle;
+ private double idleTimeToNextTrip_h;
+ private double idleTimeToNextTripStored_h;
+ private double tripDistance_km;
+ private double distanceScaling_fr = 1.0;
+ private double currentTripTimesteps_n;
private double nextEventStartTime_h;
/**
- * Default constructor
+ * Empty constructor for serialization
*/
public J_ActivityTrackerTrips() {
}
- public J_ActivityTrackerTrips(J_TimeParameters timeParameters, TextFile tripsCsv, int rowIndex, J_TimeVariables timeVariables, I_Vehicle vehicle, I_ChargePointRegistration chargePointRegistration) {
+ /**
+ * Default constructor using CSV trip input file
+ */
+ public J_ActivityTrackerTrips(TextFile tripsCSV, int CSVRowIndex, I_Vehicle vehicle, I_ChargePointRegistration chargePointRegistration, J_TimeParameters timeParameters, J_TimeVariables timeVariables) {
this.timeParameters = timeParameters;
- this.rowIndex = rowIndex;
+ this.CSVRowIndex = CSVRowIndex;
this.vehicle = vehicle;
- tripsCsv.close();
- tripsCsv.canReadMore();
- tripsCsv.readLine(); // Skips first line
+ tripsCSV.close();
+ tripsCSV.canReadMore();
+ tripsCSV.readLine(); // Skips first line
- while (roundToInt(tripsCsv.readDouble())!=rowIndex && tripsCsv.canReadMore()) { // Skip until rowIndex found
- tripsCsv.readLine();
- //String line = tripsCsv.readLine(); // Does this also skip to the next line?
- //traceln("Skipping line: " + line);
+ while (roundToInt(tripsCSV.readDouble())!= CSVRowIndex && tripsCSV.canReadMore()) { // Skip until rowIndex found
+ tripsCSV.readLine();
}
- int currentLineNb = tripsCsv.getLineNumber();
- //traceln("rowIndex %s found on line: %s", rowIndex, currentLineNb);
- int nbActivities = tripsCsv.readInt();
-
+ int currentLineNb = tripsCSV.getLineNumber();
+ int nbActivities = tripsCSV.readInt();
+
for (int i = 0; i < nbActivities; i++){
- starttimes_min.add(tripsCsv.readDouble());
- endtimes_min.add(tripsCsv.readDouble());
- distances_km.add(tripsCsv.readDouble());
+ startTimes_h.add(tripsCSV.readDouble()/60.0); // Data is in min -> convert to hours
+ endTimes_h.add(tripsCSV.readDouble()/60.0); // Data is in min -> convert to hours
+ distances_km.add(tripsCSV.readDouble());
}
// 'forward' to next activity
setStartIndex(timeVariables, chargePointRegistration);
}
- private double getTimeSinceWeekStart(double time_min) {
- double timeSinceWeekStart_min = (time_min + (timeParameters.getDayOfWeek1jan()-1) * 24 * 60) % (7*24*60);
- return timeSinceWeekStart_min;
+ /**
+ * Constructor using defined trips as input
+ */
+ public J_ActivityTrackerTrips(List startTimes_h, List endTimes_h, List distances_km, I_Vehicle vehicle, I_ChargePointRegistration chargePointRegistration, J_TimeParameters timeParameters, J_TimeVariables timeVariables) {
+ this.timeParameters = timeParameters;
+ this.vehicle = vehicle;
+
+ //Check
+ if(startTimes_h.size() != endTimes_h.size() && startTimes_h.size() != distances_km.size()) {
+ throw new RuntimeException("Trying to create a custom J_ActivityTrackerTrips, with unequal amount of startTimes (" + startTimes_h.size() + "), endTimes (" + endTimes_h.size()+ "), and/or distances_km (" + distances_km.size() + ").");
+ }
+
+ this.startTimes_h.addAll(startTimes_h);
+ this.endTimes_h.addAll(endTimes_h);
+ this.distances_km.addAll(distances_km);
+
+ // 'forward' to next activity
+ setStartIndex(timeVariables, chargePointRegistration);
+ }
+
+ private double getTimeSinceWeekStart_h(double time_h) {
+ double timeSinceWeekStart_h = (time_h + (timeParameters.getDayOfWeek1jan()-1) * 24) % (7*24);
+ return timeSinceWeekStart_h;
}
private void setNextTrip() {
eventIndex++;
- if ( eventIndex > starttimes_min.size() - 1 ) {
+ if ( eventIndex > startTimes_h.size() - 1 ) {
eventIndex = 0;
}
}
-
- public void setVehicle(I_Vehicle vehicle) {
- this.vehicle = vehicle;
- }
- public void setDistanceScaling_fr(double distanceScaling_fr) {
- this.distanceScaling_fr = distanceScaling_fr;
- }
+
- public double getAnnualDistance_km() {
- double currentAnnualDistance_km = 52 * distances_km.stream().mapToDouble(a -> a).sum(); // assumed trip-data is one week long!! Hence the 52, for 52 weeks in a year.
- return currentAnnualDistance_km;
- }
-
- public void setAnnualDistance_km(double desiredAnnualDistance_km) { // Scale trips to come to a certain total annual distance traveled. This can lead to unfeasibly long trips for EVs!!
- double currentAnnualDistance_km = getAnnualDistance_km();
- double scalingFactor_f = desiredAnnualDistance_km / currentAnnualDistance_km;
-
- ListIterator iterator = distances_km.listIterator();
- for (int i = 0; i a).sum());
- //traceln("Desired annual distance was: %s km", desiredAnnualDistance_km);
- }
+
/*
* Main method that is called every timestep.
@@ -103,32 +100,32 @@ public void setAnnualDistance_km(double desiredAnnualDistance_km) { // Scale tri
* If so, it also checks if a new trip is starting in that same timestep.
*/
public void manageActivities(J_TimeVariables timeVariables, I_ChargePointRegistration chargePointRegistration) {
- double time_min = timeVariables.getT_h() * 60;
- double timeSinceWeekStart_min = getTimeSinceWeekStart(time_min); // Trip start/end-times are all defined as minutes since monday 00:00h, trips are looped indefinitely
+ double time_h = timeVariables.getT_h();
+ double timeSinceWeekStart_h = getTimeSinceWeekStart_h(time_h); // Trip start/end-times are all defined as minutes since monday 00:00h, trips are looped indefinitely
if (vehicle.getAvailability()) { // at start of timestep! check for multiple 'events' in timestep!
- if ( timeSinceWeekStart_min >= starttimes_min.get(eventIndex) && (timeSinceWeekStart_min-timeParameters.getTimeStep_h() * 60) < starttimes_min.get(eventIndex)) { // is a trip starting this timestep?
- currentTripTimesteps_n = max(1,roundToInt(((endtimes_min.get(eventIndex) - starttimes_min.get(eventIndex)) / (timeParameters.getTimeStep_h() * 60))));
+ if ( timeSinceWeekStart_h >= startTimes_h.get(eventIndex) && (timeSinceWeekStart_h-timeParameters.getTimeStep_h()) < startTimes_h.get(eventIndex)) { // is a trip starting this timestep?
+ currentTripTimesteps_n = max(1,roundToInt(((endTimes_h.get(eventIndex) - startTimes_h.get(eventIndex)) / (timeParameters.getTimeStep_h()))));
vehicle.startTrip(timeVariables);
if(vehicle instanceof J_EAEV EV) {
chargePointRegistration.deregisterChargingRequest(EV);
}
- if (timeSinceWeekStart_min >= endtimes_min.get(eventIndex) && (timeSinceWeekStart_min-timeParameters.getTimeStep_h() * 60) < endtimes_min.get(eventIndex)) { // is the trip also ending this timestep?
+ if (timeSinceWeekStart_h >= endTimes_h.get(eventIndex) && (timeSinceWeekStart_h-timeParameters.getTimeStep_h()) < endTimes_h.get(eventIndex)) { // is the trip also ending this timestep?
vehicle.endTrip(tripDistance_km);
setNextTrip();
- prepareNextActivity(time_min, chargePointRegistration);
+ prepareNextActivity(timeVariables, chargePointRegistration);
}
}
} else {
if (vehicle instanceof J_EAFuelVehicle fuelVehicle) {
fuelVehicle.progressTrip(tripDistance_km / currentTripTimesteps_n);
}
- if (timeSinceWeekStart_min >= endtimes_min.get(eventIndex) && (timeSinceWeekStart_min-timeParameters.getTimeStep_h() * 60) < endtimes_min.get(eventIndex)) { // is a trip ending this timestep?
+ if (timeSinceWeekStart_h >= endTimes_h.get(eventIndex) && (timeSinceWeekStart_h-timeParameters.getTimeStep_h()) < endTimes_h.get(eventIndex)) { // is a trip ending this timestep?
vehicle.endTrip(tripDistance_km);
setNextTrip();
- prepareNextActivity(time_min, chargePointRegistration);
- if (timeSinceWeekStart_min >= starttimes_min.get(eventIndex) && (timeSinceWeekStart_min-timeParameters.getTimeStep_h() * 60) < starttimes_min.get(eventIndex) ) { // is the next trip also starting this timestep?
- currentTripTimesteps_n = max(1,roundToInt(((endtimes_min.get(eventIndex) - starttimes_min.get(eventIndex)) / (timeParameters.getTimeStep_h() * 60))));
+ prepareNextActivity(timeVariables, chargePointRegistration);
+ if (timeSinceWeekStart_h >= startTimes_h.get(eventIndex) && (timeSinceWeekStart_h-timeParameters.getTimeStep_h()) < startTimes_h.get(eventIndex) ) { // is the next trip also starting this timestep?
+ currentTripTimesteps_n = max(1,roundToInt(((endTimes_h.get(eventIndex) - startTimes_h.get(eventIndex)) / timeParameters.getTimeStep_h())));
vehicle.startTrip(timeVariables);
if(vehicle instanceof J_EAEV EV) {
chargePointRegistration.deregisterChargingRequest(EV);
@@ -143,13 +140,13 @@ public void manageActivities(J_TimeVariables timeVariables, I_ChargePointRegistr
* It also immediately calls prepareNextActivity
*/
public void setStartIndex(J_TimeVariables timeVariables, I_ChargePointRegistration chargePointRegistration) {
- double time_min = timeVariables.getT_h() * 60.0;
- double timeSinceWeekStart_min = getTimeSinceWeekStart(time_min);
+ double time_h = timeVariables.getT_h();
+ double timeSinceWeekStart_h = getTimeSinceWeekStart_h(time_h);
boolean looped = false;
- while ( starttimes_min.get(eventIndex) < (timeSinceWeekStart_min ) ) { // If this occurs 'during' a trip, that trip is ignored, it is not executed.
+ while ( startTimes_h.get(eventIndex) < (timeSinceWeekStart_h ) ) { // If this occurs 'during' a trip, that trip is ignored, it is not executed.
setNextTrip(); // Skip to the next trip.
- if (eventIndex == starttimes_min.size()-1 ) {
+ if (eventIndex == startTimes_h.size()-1 ) {
if (looped) {
setNextTrip(); // Increments eventIndex, reverts to first trip of week when 'overflowing'
break;
@@ -157,9 +154,8 @@ public void setStartIndex(J_TimeVariables timeVariables, I_ChargePointRegistrati
looped = true;
}
}
-
}
- prepareNextActivity(time_min, chargePointRegistration);
+ prepareNextActivity(timeVariables, chargePointRegistration);
}
/*
@@ -168,37 +164,39 @@ public void setStartIndex(J_TimeVariables timeVariables, I_ChargePointRegistrati
* If the vehicle is an EV it also calculates the charging need, including possible future trips.
* The function passes this information to the EV and registers the charging request at the chargepoint.
*/
- public void prepareNextActivity(double time_min, I_ChargePointRegistration chargePointRegistration) {
+ public void prepareNextActivity(J_TimeVariables timeVariables, I_ChargePointRegistration chargePointRegistration) {
+ double time_h = timeVariables.getT_h();
+
// Trip start/end-times are all defined as minutes since monday 00:00h
- double timeSinceWeekStart_min = getTimeSinceWeekStart(time_min);
- nextEventStartTime_min = starttimes_min.get(eventIndex);
+ double timeSinceWeekStart_h = getTimeSinceWeekStart_h(time_h);
+ nextEventStartTime_h = startTimes_h.get(eventIndex);
- if (eventIndex == 0 && timeSinceWeekStart_min > nextEventStartTime_min) { // Next week's trip!
- nextEventStartTime_h = (nextEventStartTime_min + time_min - timeSinceWeekStart_min)/60 + 168;
+ if (eventIndex == 0 && timeSinceWeekStart_h > nextEventStartTime_h) { // Next week's trip!
+ nextEventStartTime_h = (nextEventStartTime_h + time_h - timeSinceWeekStart_h) + 168;
} else {
- nextEventStartTime_h = (nextEventStartTime_min + time_min - timeSinceWeekStart_min)/60;
+ nextEventStartTime_h = (nextEventStartTime_h + time_h - timeSinceWeekStart_h);
}
- idleTimeToNextTrip_min = (nextEventStartTime_min - timeSinceWeekStart_min) % (24*7*60); // Modulo 24*7*60 needed because otherwise negative values can occur when trip starts 'next week'.
+ idleTimeToNextTrip_h = (nextEventStartTime_h - timeSinceWeekStart_h) % (24*7); // Modulo 24*7 needed because otherwise negative values can occur when trip starts 'next week'.
tripDistance_km = distanceScaling_fr * distances_km.get( eventIndex ); // Update upcoming trip distance
if (vehicle instanceof J_EAEV ev) {
double energyNeedForNextTrip_kWh = ev.getEnergyConsumption_kWhpkm() * tripDistance_km;
- if (idleTimeToNextTrip_min > 0 && (energyNeedForNextTrip_kWh-ev.getCurrentSOC_kWh())> idleTimeToNextTrip_min/60 * ev.getVehicleChargingCapacity_kW()) {
- traceln("TripTracker reports: charging need for next trip is not feasible! Time till next trip: %s hours, chargeNeed_kWh: %s", roundToDecimal(idleTimeToNextTrip_min/60,2), roundToDecimal(energyNeedForNextTrip_kWh-ev.getCurrentSOC_kWh(),2));
+ if (idleTimeToNextTrip_h > 0 && (energyNeedForNextTrip_kWh-ev.getCurrentSOC_kWh())> idleTimeToNextTrip_h * ev.getVehicleChargingCapacity_kW()) {
+ traceln("TripTracker reports: charging need for next trip is not feasible! Time till next trip: %s hours, chargeNeed_kWh: %s", roundToDecimal(idleTimeToNextTrip_h,2), roundToDecimal(energyNeedForNextTrip_kWh-ev.getCurrentSOC_kWh(),2));
}
// Check if more charging is needed for next trip!
double nextTripDist_km = 0;
- double nextTripStartTime_min = 0;
+ double nextTripStartTime_h = 0;
- if ( eventIndex == starttimes_min.size() - 1 ) {
+ if ( eventIndex == startTimes_h.size() - 1 ) {
nextTripDist_km = distances_km.get( 0 );
- nextTripStartTime_min = endtimes_min.get( 0 );
+ nextTripStartTime_h = endTimes_h.get( 0 );
} else {
nextTripDist_km = distanceScaling_fr*distances_km.get( eventIndex+1 );
- nextTripStartTime_min = starttimes_min.get( eventIndex+1 );
+ nextTripStartTime_h = startTimes_h.get( eventIndex+1 );
}
- double additionalChargingNeededForNextTrip_kWh = max(0,nextTripDist_km * ev.getEnergyConsumption_kWhpkm() - (nextTripStartTime_min - endtimes_min.get(eventIndex))/60*ev.getVehicleChargingCapacity_kW());
+ double additionalChargingNeededForNextTrip_kWh = max(0,nextTripDist_km * ev.getEnergyConsumption_kWhpkm() - (nextTripStartTime_h - endTimes_h.get(eventIndex))*ev.getVehicleChargingCapacity_kW());
energyNeedForNextTrip_kWh += additionalChargingNeededForNextTrip_kWh;
energyNeedForNextTrip_kWh = min(energyNeedForNextTrip_kWh+10,ev.getStorageCapacity_kWh());
@@ -209,35 +207,62 @@ public void prepareNextActivity(double time_min, I_ChargePointRegistration charg
}
}
- public double getNextEventStartTime_h() {
- return nextEventStartTime_h;
- }
-
- @Override
- public String toString() {
- return
- "Number of trips = " + this.nbActivities + " " +
- "Row index = " + this.rowIndex + " " +
- "Distance Scaling = " + this.distanceScaling_fr + " ";
- }
-
- public double getDistanceScaling_fr( ) {
- return this.distanceScaling_fr;
- }
+
+ //Setters
+ public void setVehicle(I_Vehicle vehicle) {
+ this.vehicle = vehicle;
+ }
+ public void setDistanceScaling_fr(double distanceScaling_fr) {
+ this.distanceScaling_fr = distanceScaling_fr;
+ }
+ public void setAnnualDistance_km(double desiredAnnualDistance_km) { // Scale trips to come to a certain total annual distance traveled. This can lead to unfeasibly long trips for EVs!!
+ double currentAnnualDistance_km = getAnnualDistance_km();
+ double scalingFactor_f = desiredAnnualDistance_km / currentAnnualDistance_km;
+
+ ListIterator iterator = distances_km.listIterator();
+ for (int i = 0; i a).sum(); // assumed trip-data is one week long!! Hence the 52, for 52 weeks in a year.
+ return currentAnnualDistance_km;
+ }
+
- @Override
- public void storeStatesAndReset() {
- eventIndexStored = eventIndex;
- idleTimeToNextTripStored_min = idleTimeToNextTrip_min;
- idleTimeToNextTrip_min = 0;
- // Don't forget to call setStartIndex !
- }
-
- @Override
- public void restoreStates() {
- eventIndex = eventIndexStored;
- nextEventStartTime_min = starttimes_min.get(eventIndex);
- idleTimeToNextTrip_min = idleTimeToNextTripStored_min;
- tripDistance_km = distanceScaling_fr * distances_km.get( eventIndex ); // Update upcoming trip distance
- }
-}
+ @Override
+ public void storeStatesAndReset() {
+ eventIndexStored = eventIndex;
+ idleTimeToNextTripStored_h = idleTimeToNextTrip_h;
+ idleTimeToNextTrip_h = 0;
+ // Don't forget to call setStartIndex !
+ }
+
+ @Override
+ public void restoreStates() {
+ eventIndex = eventIndexStored;
+ nextEventStartTime_h = startTimes_h.get(eventIndex);
+ idleTimeToNextTrip_h = idleTimeToNextTripStored_h;
+ tripDistance_km = distanceScaling_fr * distances_km.get( eventIndex ); // Update upcoming trip distance
+ }
+
+ @Override
+ public String toString() {
+ String outputString = "J_ActivityTrackerTrips: \n";
+ outputString += "Based on " + (CSVRowIndex != null ? "CSV data with row index: " + CSVRowIndex : "Custom input") + "\n";
+ outputString += "Distance Scaling = " + this.distanceScaling_fr + " ";
+ return outputString;
+ }
+}
\ No newline at end of file
diff --git a/_alp/Classes/Class.J_EAAirco.java b/_alp/Classes/Class.J_EAAirco.java
index eb4c7b7f..c6c7763e 100644
--- a/_alp/Classes/Class.J_EAAirco.java
+++ b/_alp/Classes/Class.J_EAAirco.java
@@ -5,17 +5,23 @@ public class J_EAAirco extends zero_engine.J_EAFlex {
double capacityElectric_kW;
int remainingONtimesteps = 0;
+ /**
+ * Empty constructor for serialization
+ */
+ public J_EAAirco() {
+ }
+
/**
- * Default constructor
+ * Constructor initializing the fields
*/
- public J_EAAirco(I_AssetOwner owner, double capacityElectric_kW, J_TimeParameters timeParameters) {
+ public J_EAAirco(I_AssetOwner owner, double capacityElectric_kW, J_TimeParameters timeParameters) {
this.setOwner(owner);
- this.timeParameters = timeParameters;
- this.capacityElectric_kW = capacityElectric_kW;
+ this.timeParameters = timeParameters;
+ this.capacityElectric_kW = capacityElectric_kW;
this.activeConsumptionEnergyCarriers.add(OL_EnergyCarriers.ELECTRICITY);
//this.assetFlowCategory = OL_AssetFlowCategories.AIRCO; // bestaat nog niet!
this.registerEnergyAsset(timeParameters);
- }
+ }
@Override
diff --git a/_alp/Classes/Class.J_EABuilding.java b/_alp/Classes/Class.J_EABuilding.java
index e0d7b99f..c68bfc62 100644
--- a/_alp/Classes/Class.J_EABuilding.java
+++ b/_alp/Classes/Class.J_EABuilding.java
@@ -1,14 +1,13 @@
/**
* J_EABuilding
*/
-//import com.fasterxml.jackson.annotation.JsonTypeName;
-//@JsonTypeName("J_EABuilding")
-public class J_EABuilding extends zero_engine.J_EAStorageHeat implements Serializable {
+public class J_EABuilding extends zero_engine.J_EAStorageHeat{
private double solarAbsorptionFactor_m2;
private double solarRadiation_Wpm2 = 0;
private double additionalVentilationLosses_fr = 0;
private double coldExtracted_kWh = 0;
+
//Slider scaling factor
private double lossScalingFactor_fr = 1;
@@ -23,7 +22,7 @@ public class J_EABuilding extends zero_engine.J_EAStorageHeat implements Seriali
private int exteriorReleaseScheduleIndex;
/**
- * Default constructor
+ * Empty constructor for serialization
*/
public J_EABuilding() {
}
@@ -111,16 +110,6 @@ public void operate(double powerFraction_fr, J_TimeVariables timeVariables) {
}
}
- @Override
- public String toString() {
- return
- this.getClass().toString() + " " +
- "energyUsed_kWh (heat losses) = " + this.energyUsed_kWh + "kWh, " +
- "temp = " + this.temperature_degC + ", " +
- "lossFactor_WpK = " + this.lossFactor_WpK + ", "+
- "heatCapacity_JpK = " + this.heatCapacity_JpK;
- }
-
@Override
protected void updateStateOfCharge( double deltaEnergy_kWh ) {
double tempDelta_degC = deltaEnergy_kWh / (this.heatCapacity_JpK / 3.6E6 );
@@ -153,35 +142,6 @@ public double getLossScalingFactor_fr() {
return this.lossScalingFactor_fr;
}
- @Override
- public void storeStatesAndReset() {
- // Each energy asset that has some states should overwrite this function!
- this.energyUsedStored_kWh = this.energyUsed_kWh;
- this.ambientEnergyAbsorbedStored_kWh = this.ambientEnergyAbsorbed_kWh;
- this.energyUsed_kWh = 0.0;
- this.ambientEnergyAbsorbed_kWh = 0.0;
- this.temperatureStored_degC = this.temperature_degC;
- this.temperature_degC = this.initialTemperature_degC;
- if (this.interiorReleaseSchedule_kWh != null) {
- this.interiorReleaseScheduleStored_kWh = this.interiorReleaseSchedule_kWh;
- Arrays.fill(this.interiorReleaseSchedule_kWh, 0.0);
- }
- if (this.exteriorReleaseSchedule_kWh != null) {
- this.exteriorReleaseScheduleStored_kWh = this.exteriorReleaseSchedule_kWh;
- Arrays.fill(this.exteriorReleaseSchedule_kWh, 0.0);
- }
- clear();
- }
-
- @Override
- public void restoreStates() {
- // Each energy asset that has some states should overwrite this function!
- this.energyUsed_kWh = this.energyUsedStored_kWh;
- this.ambientEnergyAbsorbed_kWh = this.ambientEnergyAbsorbedStored_kWh;
- this.temperature_degC = this.temperatureStored_degC;
- this.interiorReleaseSchedule_kWh = this.interiorReleaseScheduleStored_kWh;
- this.exteriorReleaseSchedule_kWh = this.exteriorReleaseScheduleStored_kWh;
- }
@Override
public void updateAmbientTemperature(double currentAmbientTemperature_degC) { // TODO: Hoe zorgen we dat we deze niet vergeten aan te roepen??
@@ -272,10 +232,44 @@ public boolean hasHeatBuffer() {
return false;
}
}
- /**
- * This number is here for model snapshot storing purpose
- * It needs to be changed when this class gets changed
- */
- private static final long serialVersionUID = 1L;
-}
-
+
+ @Override
+ public void storeStatesAndReset() {
+ // Each energy asset that has some states should overwrite this function!
+ this.energyUsedStored_kWh = this.energyUsed_kWh;
+ this.ambientEnergyAbsorbedStored_kWh = this.ambientEnergyAbsorbed_kWh;
+ this.energyUsed_kWh = 0.0;
+ this.ambientEnergyAbsorbed_kWh = 0.0;
+ this.temperatureStored_degC = this.temperature_degC;
+ this.temperature_degC = this.initialTemperature_degC;
+ if (this.interiorReleaseSchedule_kWh != null) {
+ this.interiorReleaseScheduleStored_kWh = this.interiorReleaseSchedule_kWh;
+ Arrays.fill(this.interiorReleaseSchedule_kWh, 0.0);
+ }
+ if (this.exteriorReleaseSchedule_kWh != null) {
+ this.exteriorReleaseScheduleStored_kWh = this.exteriorReleaseSchedule_kWh;
+ Arrays.fill(this.exteriorReleaseSchedule_kWh, 0.0);
+ }
+ clear();
+ }
+
+ @Override
+ public void restoreStates() {
+ // Each energy asset that has some states should overwrite this function!
+ this.energyUsed_kWh = this.energyUsedStored_kWh;
+ this.ambientEnergyAbsorbed_kWh = this.ambientEnergyAbsorbedStored_kWh;
+ this.temperature_degC = this.temperatureStored_degC;
+ this.interiorReleaseSchedule_kWh = this.interiorReleaseScheduleStored_kWh;
+ this.exteriorReleaseSchedule_kWh = this.exteriorReleaseScheduleStored_kWh;
+ }
+
+ @Override
+ public String toString() {
+ return
+ "J_EABuilding: \n" +
+ "energyUsed_kWh (heat losses) = " + this.energyUsed_kWh + "kWh \n" +
+ "temp = " + this.temperature_degC + " \n" +
+ "lossFactor_WpK = " + this.lossFactor_WpK + " \n"+
+ "heatCapacity_JpK = " + this.heatCapacity_JpK;
+ }
+}
\ No newline at end of file
diff --git a/_alp/Classes/Class.J_EAConsumption.java b/_alp/Classes/Class.J_EAConsumption.java
index dccebc19..10485fab 100644
--- a/_alp/Classes/Class.J_EAConsumption.java
+++ b/_alp/Classes/Class.J_EAConsumption.java
@@ -1,12 +1,12 @@
/**
* J_EAConsumption
*/
-public class J_EAConsumption extends zero_engine.J_EAProfile implements Serializable {
+public class J_EAConsumption extends zero_engine.J_EAProfile{
private double yearlyDemand_kWh;
- //public double loadLoad_kWh = 0;
+
/**
- * Default constructor
+ * Empty constructor for serialization
*/
public J_EAConsumption() {
}
@@ -120,9 +120,4 @@ public String toString() {
"energyCarrier = " + this.energyCarrier + " " +
"yearlyDemand_kWh = " + this.yearlyDemand_kWh;
}
- /**
- * This number is here for model snapshot storing purpose
- * It needs to be changed when this class gets changed
- */
- private static final long serialVersionUID = 1L;
}
diff --git a/_alp/Classes/Class.J_EAConversion.java b/_alp/Classes/Class.J_EAConversion.java
index a2b2c961..2052d28d 100644
--- a/_alp/Classes/Class.J_EAConversion.java
+++ b/_alp/Classes/Class.J_EAConversion.java
@@ -1,7 +1,7 @@
/**
* J_EAConversion
*/
-public class J_EAConversion extends zero_engine.J_EAFlex implements Serializable {
+public class J_EAConversion extends zero_engine.J_EAFlex{
protected OL_EnergyCarriers energyCarrierProduced;
protected OL_EnergyCarriers energyCarrierConsumed;
protected double eta_r;
@@ -10,8 +10,9 @@ public class J_EAConversion extends zero_engine.J_EAFlex implements Serializable
private OL_AssetFlowCategories inputAssetFlowCategory;
private OL_AssetFlowCategories outputAssetFlowCategory;
+
/**
- * Default constructor
+ * Empty constructor for serialization
*/
public J_EAConversion() {
}
diff --git a/_alp/Classes/Class.J_EAConversionAirConditioner.java b/_alp/Classes/Class.J_EAConversionAirConditioner.java
index 60930aec..a7a6077f 100644
--- a/_alp/Classes/Class.J_EAConversionAirConditioner.java
+++ b/_alp/Classes/Class.J_EAConversionAirConditioner.java
@@ -7,10 +7,9 @@ public class J_EAConversionAirConditioner extends J_EAConversion {
protected OL_AmbientTempType ambientTempType;
public double totalElectricityConsumed_kWh =0;
public J_EABuilding building;
- //public double p_baseTemperatureReference;
/**
- * Default constructor
+ * Empty constructor for serialization
*/
public J_EAConversionAirConditioner() {
}
@@ -26,7 +25,6 @@ public J_EAConversionAirConditioner(I_AssetOwner owner, double inputElectricCapa
this.setOwner(owner);
this.timeParameters = timeParameters;
this.inputCapacity_kW = inputElectricCapacity_kW;
- //this.eta_r = eta_r;
this.building = building;
this.ambientTempType = OL_AmbientTempType.AMBIENT_AIR;
this.updateAmbientTemperature( building.getAmbientTemperature_degC() ); // also updates COP
@@ -42,12 +40,11 @@ public J_EAConversionAirConditioner(I_AssetOwner owner, double inputElectricCapa
public void updateAmbientTemperature(double ambientTemperature_degC) {
double buildingTemp_degC = building.getCurrentTemperature();
- this.COP_r = calculateCOP(ambientTemperature_degC, buildingTemp_degC); //this.eta_r * ( 273.15 + this.outputTemperature_degC ) / ( this.outputTemperature_degC - this.baseTemperature_degC );
+ this.COP_r = calculateCOP(ambientTemperature_degC, buildingTemp_degC);
this.outputCapacity_kW = this.inputCapacity_kW * this.COP_r; // this represents the current maximum cooling power (heat extracted from building!)
}
public double getCOP() {
- //traceln("Heatpump output temperature: " + this.outputTemperature_degC);
return this.COP_r;
}
@@ -72,6 +69,7 @@ public OL_AmbientTempType getAmbientTempType() {
}
private double calculateCOP(double ambientTemperature_degC, double buildingTemperature_degC) { // This is the cooling COP, defined as the extracted heat power divided by the input electric power.
+ //double COP_r = this.eta_r * ( 273.15 + this.outputTemperature_degC ) / ( this.outputTemperature_degC - this.baseTemperature_degC );
double deltaT = max(0,ambientTemperature_degC - buildingTemperature_degC); // Limit deltaT to 0-or-higher, meaning outside temp is equal or higher than inside temp. In reality, it can happen that an AC runs with a lower outside temp, but we 'cap' the COP this way.
double COP_r = 5 - 0.10 * deltaT + 0.00126 * deltaT*deltaT; // 'expert judgement'-curve, not based on manufacturer or measurement data but on 'typical' efficiencies found online.
return COP_r; // Ratio of cooling power (extracted heat) to input electric power.
@@ -86,5 +84,4 @@ public String toString() {
+ "Energy used: " + this.energyUsed_kWh + ", "
+ "Current output: " + -this.getLastFlows().get(this.energyCarrierProduced) + " kW";
}
-
}
\ No newline at end of file
diff --git a/_alp/Classes/Class.J_EAConversionBiogasMethane.java b/_alp/Classes/Class.J_EAConversionBiogasMethane.java
deleted file mode 100644
index aefd82db..00000000
--- a/_alp/Classes/Class.J_EAConversionBiogasMethane.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/**
- * J_EAConversionBiogasMethane
- */
-public class J_EAConversionBiogasMethane extends zero_engine.J_EAConversion implements Serializable {
-
- //private OL_EnergyCarriers energyCarrierProduced = OL_EnergyCarriers.METHANE;
- //private OL_EnergyCarriers energyCarrierConsumed = OL_EnergyCarriers.METHANE;
- public double capacityMethane_kW;
- //protected double outputTemperature_degC;
- /**
- * Default constructor
- */
- public J_EAConversionBiogasMethane() {
- }
-
- /**
- * Constructor initializing the fields
- */
- public J_EAConversionBiogasMethane(Agent parentAgent, double capacityMethane_kW, double efficiency, double timestep_h) {
- this.parentAgent= parentAgent;
- this.capacityMethane_kW = capacityMethane_kW;
- this.eta_r = efficiency;
- this.timestep_h = timestep_h;
- registerEnergyAsset();
- }
-
- @Override
- public Pair operate(double ratioOfCapacity) {
- //traceln("I convert now! GasBurner @ " + (ratioOfCapacity * 100) + " %");
- this.methaneProduction_kW = capacityMethane_kW * ratioOfCapacity;
- this.methaneConsumption_kW = methaneProduction_kW / eta_r;
- energyUse_kW = methaneConsumption_kW - methaneProduction_kW;
- this.energyUsed_kWh += timestep_h * energyUse_kW; // This represents losses!
- //double[] arr = {this.electricityProduction_kW, this.methaneProduction_kW, this.hydrogenProduction_kW, this.heatProduction_kW, this.electricityConsumption_kW, this.methaneConsumption_kW, this.hydrogenConsumption_kW, this.heatConsumption_kW };
- //return arr;
- return returnEnergyFlows();
- }
-
- public double getEnergyUsed_kWh() {
- return energyUsed_kWh;
- }
-
- @Override
- public String toString() {
- return
- "parentAgent = " + parentAgent +", Energy consumed = " + this.energyUsed_kWh +
- "capacityMethane_kW = " + this.capacityMethane_kW +" "+
- "eta_r = " + this.eta_r+" " +
- "energyUsed_kWh (losses) = " + this.energyUsed_kWh + " ";
- }
-
- /**
- * This number is here for model snapshot storing purpose
- * It needs to be changed when this class gets changed
- */
- private static final long serialVersionUID = 1L;
-
-}
\ No newline at end of file
diff --git a/_alp/Classes/Class.J_EAConversionElectricHeater.java b/_alp/Classes/Class.J_EAConversionElectricHeater.java
index a9688614..6878091a 100644
--- a/_alp/Classes/Class.J_EAConversionElectricHeater.java
+++ b/_alp/Classes/Class.J_EAConversionElectricHeater.java
@@ -1,13 +1,19 @@
/**
* J_EAConversionElectricHeater
*/
-public class J_EAConversionElectricHeater extends J_EAConversion implements Serializable, I_HeatingAsset {
+public class J_EAConversionElectricHeater extends J_EAConversion implements I_HeatingAsset {
protected double outputTemperature_degC;
+
/**
- * Default constructor
+ * Empty constructor for serialization
+ */
+ public J_EAConversionElectricHeater() {
+ }
+
+ /**
+ * Default constructor initializing the fields
*/
-
public J_EAConversionElectricHeater(I_AssetOwner owner, double outputHeatCapacity_kW, double efficiency_r, J_TimeParameters timeParameters, double outputTemperature_degC) {
this.setOwner(owner);
this.timeParameters = timeParameters;
diff --git a/_alp/Classes/Class.J_EAConversionElectrolyser.java b/_alp/Classes/Class.J_EAConversionElectrolyser.java
index e5e5c937..a4e04af6 100644
--- a/_alp/Classes/Class.J_EAConversionElectrolyser.java
+++ b/_alp/Classes/Class.J_EAConversionElectrolyser.java
@@ -19,7 +19,7 @@ public class J_EAConversionElectrolyser extends zero_engine.J_EAConversion imple
/**
- * Default constructor for serialization
+ * Empty constructor for serialization
*/
public J_EAConversionElectrolyser() {
}
diff --git a/_alp/Classes/Class.J_EAConversionGasBurner.java b/_alp/Classes/Class.J_EAConversionGasBurner.java
index 03df9132..5a9c18f0 100644
--- a/_alp/Classes/Class.J_EAConversionGasBurner.java
+++ b/_alp/Classes/Class.J_EAConversionGasBurner.java
@@ -5,8 +5,8 @@ public class J_EAConversionGasBurner extends zero_engine.J_EAConversion implemen
protected double outputTemperature_degC;
- /**
- * Default constructor
+ /**
+ * Empty constructor for serialization
*/
public J_EAConversionGasBurner() {
}
diff --git a/_alp/Classes/Class.J_EAConversionGasCHP.java b/_alp/Classes/Class.J_EAConversionGasCHP.java
index 191cae85..38fe09e3 100644
--- a/_alp/Classes/Class.J_EAConversionGasCHP.java
+++ b/_alp/Classes/Class.J_EAConversionGasCHP.java
@@ -8,10 +8,9 @@ public class J_EAConversionGasCHP extends zero_engine.J_EAConversion implements
protected double outputElectricCapacity_kW;
protected List energyCarriersProduced = new ArrayList<>();
- /**
- * Default constructor
+ /**
+ * Empty constructor for serialization
*/
-
public J_EAConversionGasCHP() {
}
diff --git a/_alp/Classes/Class.J_EAConversionHeatDeliverySet.java b/_alp/Classes/Class.J_EAConversionHeatDeliverySet.java
index 03f39198..49927ecc 100644
--- a/_alp/Classes/Class.J_EAConversionHeatDeliverySet.java
+++ b/_alp/Classes/Class.J_EAConversionHeatDeliverySet.java
@@ -1,11 +1,11 @@
/**
* J_EAConversionHeatDeliverySet
*/
-public class J_EAConversionHeatDeliverySet extends zero_engine.J_EAConversion implements Serializable, I_HeatingAsset {
+public class J_EAConversionHeatDeliverySet extends zero_engine.J_EAConversion implements I_HeatingAsset {
protected double outputTemperature_degC;
/**
- * Default constructor
+ * Empty constructor for serialization
*/
public J_EAConversionHeatDeliverySet() {
}
@@ -13,7 +13,6 @@ public J_EAConversionHeatDeliverySet() {
/**
* Constructor initializing the fields
*/
-
public J_EAConversionHeatDeliverySet(I_AssetOwner owner, double outputHeatCapacity_kW, double efficiency_r, J_TimeParameters timeParameters, double outputTemperature_degC) {
this.setOwner(owner);
this.timeParameters = timeParameters;
@@ -49,6 +48,4 @@ public void operate(double powerFraction_fr, J_TimeVariables timeVariables) {
this.assetFlowsMap.put(this.assetFlowCategory, powerFraction_fr * this.inputCapacity_kW);
}
}
-
-}
-
+}
\ No newline at end of file
diff --git a/_alp/Classes/Class.J_EAConversionHeatPump.java b/_alp/Classes/Class.J_EAConversionHeatPump.java
index 472102cb..3e04f7aa 100644
--- a/_alp/Classes/Class.J_EAConversionHeatPump.java
+++ b/_alp/Classes/Class.J_EAConversionHeatPump.java
@@ -1,7 +1,7 @@
/**
* J_EAConversionHeatPump
*/
-public class J_EAConversionHeatPump extends zero_engine.J_EAConversion implements Serializable, I_HeatingAsset {
+public class J_EAConversionHeatPump extends zero_engine.J_EAConversion implements I_HeatingAsset {
private double COP_r;
private double belowZeroHeatpumpEtaReductionFactor;
protected double outputTemperature_degC;
@@ -13,13 +13,11 @@ public class J_EAConversionHeatPump extends zero_engine.J_EAConversion implement
public double p_baseTemperatureReference;
/**
- * Default constructor
+ * Empty constructor for serialization
*/
public J_EAConversionHeatPump() {
}
- //Agent parentAgent, double outputCapacity_kW, double efficiency_r, double timestep_h, double outputTemperature_degC) {
-
/**
* Constructor initializing the fields
*/
@@ -33,8 +31,6 @@ public J_EAConversionHeatPump(I_AssetOwner owner, double inputElectricCapacity_k
this.ambientTempType = ambientTempType;
this.updateAmbientTemperature( this.baseTemperature_degC );
- //this.COP_r = eta_r * ( 273.15 + outputTemperature_degC ) / ( outputTemperature_degC - baseTemperature_degC );
- // traceln("Carnot-based Heatpump COP with parameter eta_r is no longer used! Replaced by empirical COP-curve.");
this.COP_r = calculateCOP(this.outputTemperature_degC, this.baseTemperature_degC);
this.sourceAssetHeatPower_kW = sourceAssetHeatPower_kW;
@@ -55,32 +51,26 @@ public void updateParameters(double baseTemperature_degC, double outputTemperatu
if ( this.baseTemperature_degC > this.outputTemperature_degC) {
traceln("**** EXCEPTION **** Heatpump baseTemperature ( " + this.baseTemperature_degC + ") > outputTemperature ( " + this.outputTemperature_degC + ") ");
}
- //this.COP_r = this.eta_r * ( 273.15 + this.outputTemperature_degC ) / ( this.outputTemperature_degC - this.baseTemperature_degC );
- this.COP_r = calculateCOP(this.outputTemperature_degC, this.baseTemperature_degC); //8.74 - 0.190 * deltaT + 0.00126 * deltaT * deltaT;
+
+ this.COP_r = calculateCOP(this.outputTemperature_degC, this.baseTemperature_degC);
// water heatpump should take sourceAsset power transfer limitations into account (e.g. residual heat). Ugly but effectively limiting heat power output.
if( this.sourceAssetHeatPower_kW > 0) {
this.outputCapacity_kW = min( this.outputCapacity_kW, this.sourceAssetHeatPower_kW / (1 - (1 / COP_r )));
- //traceln("Water water heatpump heat capacity limited from source! =" + this.capacityHeat_kW);
}
else {
this.outputCapacity_kW = this.inputCapacity_kW * this.COP_r;
- //traceln("heatpump updating temp: " + baseTemperature_degC);
if( baseTemperature_degC < 0 ) {
this.COP_r = this.COP_r / this.belowZeroHeatpumpEtaReductionFactor;
}
}
- //traceln("J_EAConversionHeatpump capacityHeat_kW = "+ this.capacityHeat_kW + ", sourceAssetHeatPower_kW " + this.sourceAssetHeatPower_kW );
-
}
public void updateAmbientTemperature(double baseTemperature_degC) {
// water heatpump should take sourceAsset power transfer limitations into account (e.g. residual heat). Ugly but effectively limiting heat power output.
-
- //traceln("J_EAHeatpump capacityHeat_kW = " + this.capacityHeat_kW + ", baseTemperature = "+ baseTemperature_degC + ", outputtemperature = "+ outputTemperature_degC);
updateParameters(baseTemperature_degC, this.outputTemperature_degC);
- this.COP_r = calculateCOP(this.outputTemperature_degC, this.baseTemperature_degC); //this.eta_r * ( 273.15 + this.outputTemperature_degC ) / ( this.outputTemperature_degC - this.baseTemperature_degC );
+ this.COP_r = calculateCOP(this.outputTemperature_degC, this.baseTemperature_degC);
this.outputCapacity_kW = this.inputCapacity_kW * this.COP_r;
}
@@ -90,7 +80,6 @@ public void setCOP(double COP_r) {
}
public double getCOP() {
- //traceln("Heatpump output temperature: " + this.outputTemperature_degC);
return this.COP_r;
}
@@ -110,7 +99,7 @@ public void operate(double powerFraction_fr, J_TimeVariables timeVariables) {
heatConsumption_kW = heatProduction_kW - electricityConsumption_kW;
//update effective energy production of source asset!
this.p_linkedSourceEnergyAsset.v_powerFraction_fr += ( heatConsumption_kW / ((J_EAProduction)this.p_linkedSourceEnergyAsset).getCapacityHeat_kW() );
-// this.ownerAsset.p_linkedSourceEnergyAsset.j_ea.heatProduction_kW += this.heatConsumption_kW;
+ this.ownerAsset.p_linkedSourceEnergyAsset.j_ea.heatProduction_kW += this.heatConsumption_kW;
}
*/
if (this.ambientTempType == OL_AmbientTempType.HEAT_GRID ) {
@@ -129,7 +118,6 @@ public void operate(double powerFraction_fr, J_TimeVariables timeVariables) {
public void setSourceAssetHeatPower(double sourceAssetHeatPower_kW) {
this.sourceAssetHeatPower_kW = sourceAssetHeatPower_kW;
- //traceln("sourceAssetHeatPower_kW is set to: "+sourceAssetHeatPower_kW);
}
public void setBaseTemperature_degC( double baseTemperature_degC) {
@@ -142,6 +130,7 @@ public OL_AmbientTempType getAmbientTempType() {
}
public double calculateCOP(double outputTemperature_degC, double baseTemperature_degC) {
+ //double COP_r = this.eta_r * ( 273.15 + this.outputTemperature_degC ) / ( this.outputTemperature_degC - this.baseTemperature_degC );
double deltaT = max(1,this.outputTemperature_degC - this.baseTemperature_degC); // Limit deltaT to at least 1 degree.
double COP_r = 8.74 - 0.190 * deltaT + 0.00126 * deltaT*deltaT;
return COP_r;
@@ -151,21 +140,17 @@ public double calculateCOP(double outputTemperature_degC, double baseTemperature
public double getOutputTemperature_degC() {
return this.outputTemperature_degC;
}
- /*
+
@Override
public String toString() {
return
- "type = " + this.getClass().toString() + " " +
- "parentAgent = " + parentAgent +" " +
- "capacityElectricity_kW = " + capacityElectric_kW +" "+
- "capacityHeat_kW = " + capacityHeat_kW +" "+
- "baseTemperature_degC = " + baseTemperature_degC + " "+
- "ambientTempType = " + ambientTempType + " "+
- "sourceAssetHeatPower_kW = " + sourceAssetHeatPower_kW + " " +
- "outputTemperature_degC = " + outputTemperature_degC +" "+
- "energyUsed_kWh = " + energyUsed_kWh + " "+
- "heatProduced_kWh = " + heatProduced_kWh + " "+
- "heatConsumed_kWh = " + heatConsumed_kWh + " ";
- }
- */
+ "J_EAConversionHeatPump: \n" +
+ "capacityElectricity_kW = " + inputCapacity_kW + "\n"+
+ "capacityHeat_kW = " + outputCapacity_kW +"\n"+
+ "baseTemperature_degC = " + baseTemperature_degC + "\n"+
+ "ambientTempType = " + ambientTempType + "\n"+
+ "sourceAssetHeatPower_kW = " + sourceAssetHeatPower_kW + "\n"+
+ "outputTemperature_degC = " + outputTemperature_degC +" \n"+
+ "energyUsed_kWh = " + energyUsed_kWh;
+ }
}
diff --git a/_alp/Classes/Class.J_EAConversionHob.java b/_alp/Classes/Class.J_EAConversionHob.java
new file mode 100644
index 00000000..abf346db
--- /dev/null
+++ b/_alp/Classes/Class.J_EAConversionHob.java
@@ -0,0 +1,62 @@
+/**
+ * J_EAConversionHob
+ */
+public class J_EAConversionHob extends J_EAConversion{
+
+ //protected double outputTemperature_degC;
+
+ /**
+ * Empty constructor for serialization
+ */
+ public J_EAConversionHob() {
+ }
+
+ /**
+ * Default constructor
+ */
+ public J_EAConversionHob(I_AssetOwner owner, OL_EnergyCarriers energyCarrierConsumed, double inputCapacity_kW, double efficiency, J_TimeParameters timeParameters, double outputTemperature_degC) {
+ this.setOwner(owner);
+ this.timeParameters = timeParameters;
+ this.inputCapacity_kW = inputCapacity_kW;
+ this.eta_r = efficiency; // The efficiency is the amount of heat that is retained within the building
+ this.outputCapacity_kW = inputCapacity_kW * efficiency;
+ //this.outputTemperature_degC = outputTemperature_degC;
+ this.energyCarrierProduced = OL_EnergyCarriers.HEAT;
+ this.energyCarrierConsumed = energyCarrierConsumed;
+
+ if(energyCarrierConsumed == OL_EnergyCarriers.ELECTRICITY) {
+ this.assetFlowCategory = OL_AssetFlowCategories.electricHobConsumption_kW;
+ this.energyAssetType = OL_EnergyAssetType.ELECTRIC_HOB;
+ }
+ else if (energyCarrierConsumed == OL_EnergyCarriers.METHANE){
+ this.energyAssetType = OL_EnergyAssetType.GAS_HOB;
+ }
+ else {
+ throw new RuntimeException("EnergyCarrierConsumed (" + energyCarrierConsumed + ") found for J_EAConversionHob that is not supported!");
+ }
+
+ this.activeProductionEnergyCarriers.add(this.energyCarrierProduced);
+ this.activeConsumptionEnergyCarriers.add(this.energyCarrierConsumed);
+ registerEnergyAsset(timeParameters);
+ }
+
+ @Override
+ public void operate( double powerFraction_fr, J_TimeVariables timeVariables ) {
+ double heatProduction_kW = this.inputCapacity_kW * powerFraction_fr * eta_r;
+ double energyInput_kW = this.inputCapacity_kW * powerFraction_fr;
+ this.energyUse_kW = (energyInput_kW - heatProduction_kW);
+ this.energyUsed_kWh += this.timeParameters.getTimeStep_h() * (energyInput_kW - heatProduction_kW); // This represents losses!
+ flowsMap.put(this.energyCarrierConsumed, energyInput_kW);
+ flowsMap.put(OL_EnergyCarriers.HEAT, -heatProduction_kW);
+ assetFlowsMap.put(this.assetFlowCategory, energyInput_kW);
+ }
+
+ @Override
+ public String toString() {
+ return
+ "J_EAConversionHob: \n" +
+ "capacityElectric_kW = " + this.inputCapacity_kW +", \n"+
+ "eta_r = " + this.eta_r+ ", \n" +
+ "energyUsed_kWh (losses) = " + this.energyUsed_kWh;
+ }
+}
\ No newline at end of file
diff --git a/_alp/Classes/Class.J_EAConversionHydrogenBurner.java b/_alp/Classes/Class.J_EAConversionHydrogenBurner.java
index ce6c8b28..33cbb9a3 100644
--- a/_alp/Classes/Class.J_EAConversionHydrogenBurner.java
+++ b/_alp/Classes/Class.J_EAConversionHydrogenBurner.java
@@ -1,11 +1,12 @@
/**
* J_EAConversionGasBurner
*/
-public class J_EAConversionHydrogenBurner extends zero_engine.J_EAConversion implements Serializable, I_HeatingAsset {
+public class J_EAConversionHydrogenBurner extends zero_engine.J_EAConversion implements I_HeatingAsset {
protected double outputTemperature_degC;
- /**
- * Default constructor
+
+ /**
+ * Empty constructor for serialization
*/
public J_EAConversionHydrogenBurner() {
}
@@ -30,11 +31,4 @@ public J_EAConversionHydrogenBurner(I_AssetOwner owner, double outputHeatCapacit
this.activeConsumptionEnergyCarriers.add(this.energyCarrierConsumed);
registerEnergyAsset(timeParameters);
}
-
- /**
- * This number is here for model snapshot storing purpose
- * It needs to be changed when this class gets changed
- */
- private static final long serialVersionUID = 1L;
-
}
\ No newline at end of file
diff --git a/_alp/Classes/Class.J_EAEV.java b/_alp/Classes/Class.J_EAEV.java
index 323ea974..b8125579 100644
--- a/_alp/Classes/Class.J_EAEV.java
+++ b/_alp/Classes/Class.J_EAEV.java
@@ -1,9 +1,6 @@
/**
* J_EAEV
*/
-import com.fasterxml.jackson.annotation.JsonTypeName;
-
-//@JsonTypeName("J_EAEV")
public class J_EAEV extends J_EAFlex implements I_Vehicle, I_ChargingRequest {
private boolean available = true;
@@ -11,12 +8,12 @@ public class J_EAEV extends J_EAFlex implements I_Vehicle, I_ChargingRequest {
private double energyConsumption_kWhpkm;
private double vehicleScaling;
private J_ActivityTrackerTrips tripTracker;
-
- public OL_EnergyCarriers storageMedium = OL_EnergyCarriers.ELECTRICITY;
+ private OL_VehicleType vehicleType;
+ private OL_EnergyCarriers storageMedium = OL_EnergyCarriers.ELECTRICITY;
private double stateOfCharge_fr;
private double initialstateOfCharge_fr;
private double stateOfChargeStored_r;
- protected double capacityElectric_kW;
+ private double capacityElectric_kW;
private double storageCapacity_kWh;
private boolean V2GCapable = true; // For now default true: Add to constructor, where constructor calls: setV2GCapable(boolean isV2GCapable) to adjust min rato of capacity accordingly
@@ -30,8 +27,9 @@ public class J_EAEV extends J_EAFlex implements I_Vehicle, I_ChargingRequest {
private double energyChargedOutsideModelAreaStored_kWh;
private double charged_kWh = 0;
private double discharged_kWh = 0;
- /**
- * Default constructor
+
+ /**
+ * Empty constructor for serialization
*/
public J_EAEV() {
}
@@ -39,11 +37,11 @@ public J_EAEV() {
/**
* Constructor initializing the fields
*/
- public J_EAEV(I_AssetOwner owner, double capacityElectricity_kW, double storageCapacity_kWh, double stateOfCharge_fr, J_TimeParameters timeParameters, double energyConsumption_kWhpkm, double vehicleScaling, OL_EnergyAssetType energyAssetType, J_ActivityTrackerTrips tripTracker) {
- this(owner, capacityElectricity_kW, storageCapacity_kWh, stateOfCharge_fr, timeParameters, energyConsumption_kWhpkm, vehicleScaling, energyAssetType, tripTracker, true);
+ public J_EAEV(I_AssetOwner owner, double capacityElectricity_kW, double storageCapacity_kWh, double stateOfCharge_fr, J_TimeParameters timeParameters, double energyConsumption_kWhpkm, double vehicleScaling, OL_VehicleType vehicleType, J_ActivityTrackerTrips tripTracker) {
+ this(owner, capacityElectricity_kW, storageCapacity_kWh, stateOfCharge_fr, timeParameters, energyConsumption_kWhpkm, vehicleScaling, vehicleType, tripTracker, true);
}
- public J_EAEV(I_AssetOwner owner, double capacityElectricity_kW, double storageCapacity_kWh, double stateOfCharge_fr, J_TimeParameters timeParameters, double energyConsumption_kWhpkm, double vehicleScaling, OL_EnergyAssetType energyAssetType, J_ActivityTrackerTrips tripTracker, boolean available) {
+ public J_EAEV(I_AssetOwner owner, double capacityElectricity_kW, double storageCapacity_kWh, double stateOfCharge_fr, J_TimeParameters timeParameters, double energyConsumption_kWhpkm, double vehicleScaling, OL_VehicleType vehicleType, J_ActivityTrackerTrips tripTracker, boolean available) {
this.setOwner(owner);
this.timeParameters = timeParameters;
this.capacityElectric_kW = capacityElectricity_kW; // for EV, this is max charging power.
@@ -52,11 +50,12 @@ public J_EAEV(I_AssetOwner owner, double capacityElectricity_kW, double storageC
this.stateOfCharge_fr = initialstateOfCharge_fr;
this.energyConsumption_kWhpkm = energyConsumption_kWhpkm;
this.vehicleScaling = vehicleScaling;
- this.energyAssetType = energyAssetType;
+ this.vehicleType = vehicleType;
+ this.setEnergyAssetType(vehicleType); // Temporary, till EA type is removed!
this.tripTracker = tripTracker;
this.available = available;
if (tripTracker != null) {
- tripTracker.vehicle=this;
+ tripTracker.setVehicle(this);
}
// Validation checks
if (capacityElectric_kW <= 0 || storageCapacity_kWh <= 0 || energyConsumption_kWhpkm <= 0) {
@@ -158,34 +157,33 @@ public boolean endTrip(double tripDist_km) {
public void setVehicleScaling(double vehicleScaling) {
this.vehicleScaling = vehicleScaling;
}
-
public void setTripTracker(J_ActivityTrackerTrips tracker) {
this.tripTracker = tracker;
}
-
public void setEnergyNeedForNextTrip_kWh(double energyNeedForNextTrip_kWh) {
this.energyNeedForNextTrip_kWh = energyNeedForNextTrip_kWh;
}
-
public J_ActivityTrackerTrips getTripTracker() {
return this.tripTracker;
}
-
public boolean getAvailability() {
return this.available;
}
-
public void setAvailability(boolean available) {
this.available = available;
}
-
public double getVehicleScaling_fr() {
return this.vehicleScaling;
}
-
public double getEnergyConsumption_kWhpkm() {
return this.energyConsumption_kWhpkm * this.vehicleScaling;
}
+ public OL_VehicleType getVehicleType() {
+ return this.vehicleType;
+ }
+ public OL_EnergyCarriers getFuelType() {
+ return this.storageMedium;
+ }
// Methods from I_ChargingRequest
public double getLeaveTime_h() {
@@ -301,5 +299,19 @@ public String toString() {
"storageCapacity_kWh = " + storageCapacity_kWh + " " +
"charged_kWh = " + roundToDecimal( charged_kWh, 2 );
}
-}
-
+
+ //Temporary, till OL_EnergyAssetType is removed!!!!
+ private void setEnergyAssetType(OL_VehicleType vehicleType) {
+ switch(vehicleType) {
+ case CAR:
+ this.energyAssetType = OL_EnergyAssetType.ELECTRIC_VEHICLE;
+ break;
+ case VAN:
+ this.energyAssetType = OL_EnergyAssetType.ELECTRIC_VAN;
+ break;
+ case TRUCK:
+ this.energyAssetType = OL_EnergyAssetType.ELECTRIC_TRUCK;
+ break;
+ }
+ }
+}
\ No newline at end of file
diff --git a/_alp/Classes/Class.J_EAElectricHob.java b/_alp/Classes/Class.J_EAElectricHob.java
deleted file mode 100644
index b24256ad..00000000
--- a/_alp/Classes/Class.J_EAElectricHob.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/**
- * J_EAElectricHob
- */
-public class J_EAElectricHob extends J_EAConversion implements Serializable {
-
- //protected double outputTemperature_degC;
-
- /**
- * Default constructor
- */
- // The efficiency is the amount of heat that is retained within the building
- public J_EAElectricHob(I_AssetOwner owner, double inputCapacity_kW, double efficiency, J_TimeParameters timeParameters, double outputTemperature_degC) {
- this.setOwner(owner);
- this.timeParameters = timeParameters;
- this.inputCapacity_kW = inputCapacity_kW;
- this.eta_r = efficiency;
- this.outputCapacity_kW = inputCapacity_kW * efficiency;
- //this.outputTemperature_degC = outputTemperature_degC;
- this.energyCarrierProduced = OL_EnergyCarriers.HEAT;
- this.energyCarrierConsumed = OL_EnergyCarriers.ELECTRICITY;
- this.energyAssetType = OL_EnergyAssetType.ELECTRIC_HOB;
- this.assetFlowCategory = OL_AssetFlowCategories.electricHobConsumption_kW;
- this.activeProductionEnergyCarriers.add(this.energyCarrierProduced);
- this.activeConsumptionEnergyCarriers.add(this.energyCarrierConsumed);
- registerEnergyAsset(timeParameters);
- }
-
- @Override
- public void operate( double powerFraction_fr, J_TimeVariables timeVariables ) {
- double heatProduction_kW = this.inputCapacity_kW * powerFraction_fr * eta_r;
- double electricityConsumption_kW = this.inputCapacity_kW * powerFraction_fr;
- this.energyUse_kW = (electricityConsumption_kW - heatProduction_kW);
- this.energyUsed_kWh += this.timeParameters.getTimeStep_h() * (electricityConsumption_kW - heatProduction_kW); // This represents losses!
- //this.heatProduced_kWh += heatProduction_kW * timestep_h;
- flowsMap.put(OL_EnergyCarriers.ELECTRICITY, electricityConsumption_kW);
- flowsMap.put(OL_EnergyCarriers.HEAT, -heatProduction_kW);
- assetFlowsMap.put(this.assetFlowCategory, electricityConsumption_kW);
- }
-
- @Override
- public String toString() {
- return
- "AssetType = " + energyAssetType + ", " +
- "Energy consumed = " + this.energyUsed_kWh + ", " +
- " capacityElectric_kW = " + this.inputCapacity_kW +" "+
- "eta_r = " + this.eta_r+ ", " +
- "energyUsed_kWh (losses) = " + this.energyUsed_kWh;
- }
-
- /**
- * This number is here for model snapshot storing purpose
- * It needs to be changed when this class gets changed
- */
- private static final long serialVersionUID = 1L;
-
-}
\ No newline at end of file
diff --git a/_alp/Classes/Class.J_EAFixed.java b/_alp/Classes/Class.J_EAFixed.java
index 34420938..41be9a0b 100644
--- a/_alp/Classes/Class.J_EAFixed.java
+++ b/_alp/Classes/Class.J_EAFixed.java
@@ -21,10 +21,4 @@ public J_FlowPacket f_updateAllFlows(J_TimeVariables timeVariables) {
}
public abstract void operate(J_TimeVariables timeVariables);
-
-
- @Override
- public String toString() {
- return super.toString();
- }
}
\ No newline at end of file
diff --git a/_alp/Classes/Class.J_EAFlex.java b/_alp/Classes/Class.J_EAFlex.java
index 5c8eef18..c4a9be9f 100644
--- a/_alp/Classes/Class.J_EAFlex.java
+++ b/_alp/Classes/Class.J_EAFlex.java
@@ -22,9 +22,4 @@ public J_FlowPacket f_updateAllFlows(double powerFraction_fr, J_TimeVariables ti
}
public abstract void operate(double powerFraction_fr, J_TimeVariables timeVariables);
-
- @Override
- public String toString() {
- return super.toString();
- }
}
\ No newline at end of file
diff --git a/_alp/Classes/Class.J_EAFuelVehicle.java b/_alp/Classes/Class.J_EAFuelVehicle.java
index 55344bdd..d14c6a1d 100644
--- a/_alp/Classes/Class.J_EAFuelVehicle.java
+++ b/_alp/Classes/Class.J_EAFuelVehicle.java
@@ -1,7 +1,7 @@
/**
* J_EAConversionPetroleumFuelVehicle
*/
-public class J_EAFuelVehicle extends J_EAFixed implements I_Vehicle, Serializable {
+public class J_EAFuelVehicle extends J_EAFixed implements I_Vehicle{
private OL_EnergyCarriers energyCarrierConsumed;
private boolean available = true;
@@ -9,7 +9,7 @@ public class J_EAFuelVehicle extends J_EAFixed implements I_Vehicle, Serializabl
private double energyConsumption_kWhpkm;
private double vehicleScaling;
private J_ActivityTrackerTrips tripTracker;
-
+ private OL_VehicleType vehicleType;
/**
* Default constructor
*/
@@ -19,10 +19,10 @@ public J_EAFuelVehicle() {
/**
* Constructor initializing the fields
*/
- public J_EAFuelVehicle(I_AssetOwner owner, double energyConsumption_kWhpkm, J_TimeParameters timeParameters, double vehicleScaling, OL_EnergyAssetType energyAssetType, J_ActivityTrackerTrips tripTracker, OL_EnergyCarriers energyCarrier ) {
- this(owner, energyConsumption_kWhpkm, timeParameters, vehicleScaling, energyAssetType, tripTracker, energyCarrier, true );
+ public J_EAFuelVehicle(I_AssetOwner owner, double energyConsumption_kWhpkm, J_TimeParameters timeParameters, double vehicleScaling, OL_VehicleType vehicleType, J_ActivityTrackerTrips tripTracker, OL_EnergyCarriers energyCarrier ) {
+ this(owner, energyConsumption_kWhpkm, timeParameters, vehicleScaling, vehicleType, tripTracker, energyCarrier, true );
}
- public J_EAFuelVehicle(I_AssetOwner owner, double energyConsumption_kWhpkm, J_TimeParameters timeParameters, double vehicleScaling, OL_EnergyAssetType energyAssetType, J_ActivityTrackerTrips tripTracker, OL_EnergyCarriers energyCarrier, boolean available ) {
+ public J_EAFuelVehicle(I_AssetOwner owner, double energyConsumption_kWhpkm, J_TimeParameters timeParameters, double vehicleScaling, OL_VehicleType vehicleType, J_ActivityTrackerTrips tripTracker, OL_EnergyCarriers energyCarrier, boolean available ) {
if (energyCarrier == OL_EnergyCarriers.HEAT || energyCarrier == OL_EnergyCarriers.ELECTRICITY) {
throw new RuntimeException("Invalid choice of energy carrier for J_EAFuelVehicle");
}
@@ -30,11 +30,12 @@ public J_EAFuelVehicle(I_AssetOwner owner, double energyConsumption_kWhpkm, J_Ti
this.timeParameters = timeParameters;
this.energyConsumption_kWhpkm = energyConsumption_kWhpkm;
this.vehicleScaling = vehicleScaling;
- this.energyAssetType = energyAssetType;
+ this.vehicleType = vehicleType;
+ this.setEnergyAssetType(vehicleType, energyCarrier); // Temporary, till EA type is removed!
this.tripTracker = tripTracker;
this.available = available;
if (tripTracker != null) {
- tripTracker.vehicle=this;
+ tripTracker.setVehicle(this);
}
this.energyCarrierConsumed = energyCarrier;
@@ -102,30 +103,30 @@ public boolean progressTrip(double marginalTripDist_km) {
public void setVehicleScaling(double vehicleScaling) {
this.vehicleScaling = vehicleScaling;
}
-
public void setTripTracker(J_ActivityTrackerTrips tracker) {
this.tripTracker = tracker;
}
-
public J_ActivityTrackerTrips getTripTracker() {
return this.tripTracker;
}
-
public boolean getAvailability() {
return this.available;
}
-
public double getVehicleScaling_fr() {
return this.vehicleScaling;
}
-
public double getEnergyConsumption_kWhpkm() {
return this.energyConsumption_kWhpkm * this.vehicleScaling;
}
-
public OL_EnergyCarriers getEnergyCarrierConsumed() {
return this.energyCarrierConsumed;
}
+ public OL_VehicleType getVehicleType() {
+ return this.vehicleType;
+ }
+ public OL_EnergyCarriers getFuelType() {
+ return this.energyCarrierConsumed;
+ }
@Override
public void storeStatesAndReset() {
@@ -152,11 +153,40 @@ public String toString() {
"energyConsumption_kWhpkm =" + energyConsumption_kWhpkm + " " +
"vehicleScaling = " + vehicleScaling;
}
-
- /**
- * This number is here for model snapshot storing purpose
- * It needs to be changed when this class gets changed
- */
- private static final long serialVersionUID = 1L;
-}
-
+
+ //Temporary, till OL_EnergyAssetType is removed!!!!
+ private void setEnergyAssetType(OL_VehicleType vehicleType, OL_EnergyCarriers energyCarrier) {
+ switch(vehicleType) {
+ case CAR:
+ switch(energyCarrier) {
+ case PETROLEUM_FUEL:
+ this.energyAssetType = OL_EnergyAssetType.PETROLEUM_FUEL_VEHICLE;
+ break;
+ case HYDROGEN:
+ this.energyAssetType = OL_EnergyAssetType.HYDROGEN_VEHICLE;
+ break;
+ }
+ break;
+ case VAN:
+ switch(energyCarrier) {
+ case PETROLEUM_FUEL:
+ this.energyAssetType = OL_EnergyAssetType.PETROLEUM_FUEL_VAN;
+ break;
+ case HYDROGEN:
+ this.energyAssetType = OL_EnergyAssetType.HYDROGEN_VAN;
+ break;
+ }
+ break;
+ case TRUCK:
+ switch(energyCarrier) {
+ case PETROLEUM_FUEL:
+ this.energyAssetType = OL_EnergyAssetType.PETROLEUM_FUEL_TRUCK;
+ break;
+ case HYDROGEN:
+ this.energyAssetType = OL_EnergyAssetType.HYDROGEN_TRUCK;
+ break;
+ }
+ break;
+ }
+ }
+}
\ No newline at end of file
diff --git a/_alp/Classes/Class.J_EAPetroleumFuelTractor.java b/_alp/Classes/Class.J_EAPetroleumFuelTractor.java
index 2c967eed..2993c51b 100644
--- a/_alp/Classes/Class.J_EAPetroleumFuelTractor.java
+++ b/_alp/Classes/Class.J_EAPetroleumFuelTractor.java
@@ -1,6 +1,6 @@
import java.util.*;
-public class J_EAPetroleumFuelTractor extends J_EAProfile implements Serializable {
+public class J_EAPetroleumFuelTractor extends J_EAProfile{
final static double PETROLEUM_FUEL_ENERGY_DENSITY_KWH_PER_L = 9.7;
final double[] petroleumFuelConsumptionPerWeek_L;
diff --git a/_alp/Classes/Class.J_EAProduction.java b/_alp/Classes/Class.J_EAProduction.java
index e5ce819f..2df84c3e 100644
--- a/_alp/Classes/Class.J_EAProduction.java
+++ b/_alp/Classes/Class.J_EAProduction.java
@@ -1,12 +1,8 @@
/**
* J_EAProduction
*/
-public class J_EAProduction extends zero_engine.J_EAProfile implements Serializable {
- //protected J_ProfilePointer profilePointer;
- //protected OL_EnergyCarriers energyCarrier = OL_EnergyCarriers.ELECTRICITY;
+public class J_EAProduction extends zero_engine.J_EAProfile{
protected double totalEnergyCurtailed_kWh=0;
- //protected double outputTemperature_degC;
- //protected double capacity_kW;
/**
* Default constructor
@@ -188,15 +184,4 @@ public String toString() {
"assetFlowCategory = " + this.assetFlowCategory + " " +
"energyProduced_kWh = " + (-this.energyUsed_kWh) + " ";
}
-
-
- /*public double getCurrentTemperature() {
- return outputTemperature_degC;
- }*/
-
- /**
- * This number is here for model snapshot storing purpose
- * It needs to be changed when this class gets changed
- */
- private static final long serialVersionUID = 1L;
}
diff --git a/_alp/Classes/Class.J_EAStorageElectric.java b/_alp/Classes/Class.J_EAStorageElectric.java
index b3a2bb6a..76417d91 100644
--- a/_alp/Classes/Class.J_EAStorageElectric.java
+++ b/_alp/Classes/Class.J_EAStorageElectric.java
@@ -4,13 +4,9 @@
public class J_EAStorageElectric extends J_EAStorage implements Serializable {
protected OL_EnergyCarriers storageMedium = OL_EnergyCarriers.ELECTRICITY;
-
- //protected double etaCharge_r; // charging efficiency
- //protected double etaDischarge_r;
- //protected double capacityElectric_kW;
-
+
/**
- * Default constructor
+ * Empty constructor for serialization
*/
public J_EAStorageElectric() {
}