diff --git a/src/main/java/edu/ie3/datamodel/models/profile/NbwTemperatureDependantLoadProfile.java b/src/main/java/edu/ie3/datamodel/models/profile/NbwTemperatureDependantLoadProfile.java index 783e164bc..c2e657460 100644 --- a/src/main/java/edu/ie3/datamodel/models/profile/NbwTemperatureDependantLoadProfile.java +++ b/src/main/java/edu/ie3/datamodel/models/profile/NbwTemperatureDependantLoadProfile.java @@ -6,19 +6,26 @@ package edu.ie3.datamodel.models.profile; import edu.ie3.datamodel.exceptions.ParsingException; +import edu.ie3.datamodel.models.StandardUnits; +import javax.measure.quantity.Temperature; +import tech.units.indriya.ComparableQuantity; +import tech.units.indriya.quantity.Quantities; /** Temperature dependant determined by NBW (accessed 05/2022) */ public enum NbwTemperatureDependantLoadProfile implements TemperatureDependantLoadProfile { + // heat pumps - EP1("ep1"), + EP1("ep1", 1), // night storage heating - EZ2("ez2"); + EZ2("ez2", 0); private final String key; + private final int limitingConstant; - NbwTemperatureDependantLoadProfile(String key) { + NbwTemperatureDependantLoadProfile(String key, int limitingConstant) { this.key = key.toLowerCase(); + this.limitingConstant = limitingConstant; } /** @@ -37,6 +44,39 @@ public String getKey() { return this.key; } + /** + * Maximum temperature to which load profiles are scaled. If temperature is higher the load + * profile according to the reference temperature is used. + * + * @return the reference temperature + */ + @Override + public ComparableQuantity getReferenceTemperature() { + return Quantities.getQuantity(17, StandardUnits.TEMPERATURE); + } + + /** + * Minimum temperature to which load profiles are scaled. If temperature is lower the load profile + * according to the reference temperature is used. + * + * @return the reference temperature + */ + @Override + public ComparableQuantity getMinTemperature() { + return Quantities.getQuantity(-17, StandardUnits.TEMPERATURE); + } + + /** + * Downscaling of load profiles gets limited to the limiting constant. For more information see + * the official VDN description. + * + * @return the limiting constant + */ + @Override + public int getLimitingConstant() { + return this.limitingConstant; + } + @Override public String toString() { return "NbwTemperatureDependantLoadProfile{" + "key='" + key + '\'' + '}'; diff --git a/src/main/java/edu/ie3/datamodel/models/profile/TemperatureDependantLoadProfile.java b/src/main/java/edu/ie3/datamodel/models/profile/TemperatureDependantLoadProfile.java index 4b5a94f20..585c7f79b 100644 --- a/src/main/java/edu/ie3/datamodel/models/profile/TemperatureDependantLoadProfile.java +++ b/src/main/java/edu/ie3/datamodel/models/profile/TemperatureDependantLoadProfile.java @@ -6,6 +6,8 @@ package edu.ie3.datamodel.models.profile; import edu.ie3.datamodel.exceptions.ParsingException; +import javax.measure.quantity.Temperature; +import tech.units.indriya.ComparableQuantity; /** * Temperature dependant load profiles for night storage heating and heat pumps . The profiles rely @@ -14,6 +16,30 @@ */ public interface TemperatureDependantLoadProfile extends LoadProfile { + /** + * Maximum temperature to which load profiles are scaled. If temperature is higher the load + * profile according to the reference temperature is used. + * + * @return the reference temperature + */ + ComparableQuantity getReferenceTemperature(); + + /** + * Minimum temperature to which load profiles are scaled. If temperature is lower the load profile + * according to the reference temperature is used. + * + * @return the reference temperature + */ + ComparableQuantity getMinTemperature(); + + /** + * Downscaling of load profiles gets limited to the limiting constant. For more information see + * the official VDN description. + * + * @return the limiting constant + */ + int getLimitingConstant(); + /** * Returns temperature dependant load profile corresponding to the given key. *