Skip to content
Snippets Groups Projects
Commit 00f2fbd9 authored by Christoph von Oy's avatar Christoph von Oy
Browse files

Added more flexible Architecture

parent 6309ce98
No related branches found
No related tags found
No related merge requests found
Subproject commit c66637237aaac95a0ada31ca9822894af6944748
Subproject commit 0edf03c25862fc9ce6ed02994ea803ea38057e83
......@@ -22,14 +22,16 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
"""
from Model_Library.dynamics import Profile, TrivialArchitecture, TrivialDynamic
from Model_Library.architecture import Architecture, Profile
from Model_Library.dynamics import DynamicTree
from Model_Library.topology import Prosumer
import json
import numpy as np
dynamic = TrivialDynamic(np.full(24 * 60 - 1, 60, dtype=int))
input_profiles = Profile.from_csv("data.csv", dynamic)
architecture = Architecture(DynamicTree(np.full(24 * 60 - 1, 60, dtype=int)).root())
input_profiles = Profile.from_csv("data.csv", architecture.get_dynamic(""))
with open("depot.json") as f:
prosumer_json = json.load(f)
......@@ -55,6 +57,6 @@ prosumer_json["additional_model_logic"]["charger_2_enable"]["enable"] = input_pr
prosumer = Prosumer("LaTrielle", prosumer_json)
prosumer.optimize("sized", TrivialArchitecture(dynamic), ["annuity", "peak_power_cost"])
prosumer.optimize("sized", architecture, {}, ["annuity", "peak_power_cost"], {})
prosumer.save_results("output_files")
......@@ -22,14 +22,16 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
"""
from Model_Library.dynamics import Profile, TrivialArchitecture, TrivialDynamic
from Model_Library.architecture import Architecture, Profile
from Model_Library.dynamics import DynamicTree
from Model_Library.topology import Prosumer
import json
import numpy as np
dynamic = TrivialDynamic(np.full(24 * 60 - 1, 60, dtype=int))
input_profiles = Profile.from_csv("data.csv", dynamic)
architecture = Architecture(DynamicTree(np.full(24 * 60 - 1, 60, dtype=int)).root())
input_profiles = Profile.from_csv("data.csv", architecture.get_dynamic(""))
with open("HPC.json") as f:
prosumer_json = json.load(f)
......@@ -73,6 +75,6 @@ prosumer_json["additional_model_logic"]["HPC_3_bus_2_enable"][
prosumer = Prosumer("LaTreille", prosumer_json)
prosumer.optimize("sized", TrivialArchitecture(dynamic), ["annuity", "peak_power_cost"])
prosumer.optimize("sized", architecture, {}, ["annuity", "peak_power_cost"], {})
prosumer.save_results("output_files")
......@@ -22,14 +22,16 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
"""
from Model_Library.dynamics import Profile, TrivialArchitecture, TrivialDynamic
from Model_Library.architecture import Architecture, Profile
from Model_Library.dynamics import DynamicTree
from Model_Library.topology import Prosumer
import json
import numpy as np
dynamic = TrivialDynamic(np.full(24 * 60 - 1, 60, dtype=int))
input_profiles = Profile.from_csv("data.csv", dynamic)
architecture = Architecture(DynamicTree(np.full(24 * 60 - 1, 60, dtype=int)).root())
input_profiles = Profile.from_csv("data.csv", architecture.get_dynamic(""))
with open("IMC.json") as f:
prosumer_json = json.load(f)
......@@ -77,6 +79,6 @@ prosumer_json["components"]["bus_2_motor_inverter"][
prosumer = Prosumer("LaTreille", prosumer_json)
prosumer.optimize("sized", TrivialArchitecture(dynamic), ["annuity", "peak_power_cost"])
prosumer.optimize("sized", architecture, {}, ["annuity", "peak_power_cost"], {})
prosumer.save_results("output_files")
......@@ -22,29 +22,44 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
"""
from Model_Library.dynamics import PeriodAggregation, Profile, TrivialDynamic
from Model_Library.architecture import Architecture, Profile
from Model_Library.component.core import ComponentPart
from Model_Library.dynamics import DynamicTree
from Model_Library.topology import Prosumer
import json
import numpy as np
dynamic = TrivialDynamic(np.full(240, 3600, dtype=int))
architecture = PeriodAggregation(
dynamic, [[12, 1, 11], [7, 8, 9]], [0, 0, 1, 1, 0, 1, 0, 1, 1, 0]
architecture = Architecture(DynamicTree(np.full(240, 3600, dtype=int)).root())
architecture.root.add_period_aggregation(
[[12 * 3600, 1 * 3600, 11 * 3600], [7 * 3600, 8 * 3600, 9 * 3600]],
[0, 0, 1, 1, 0, 1, 0, 1, 1, 0],
)
profiles = Profile.from_csv("data.csv", architecture.value_dynamic)
input_profiles = Profile.from_csv("data.csv", architecture.get_dynamic("a_0(,)"))
with open("prosumer.json") as f:
prosumer_json = json.load(f)
prosumer_json["components"]["pv"]["irradiance"] = profiles["irradiance"]
prosumer_json["components"]["pv"]["temperature"] = profiles["temperature"]
prosumer_json["components"]["consumption"]["consumption"] = profiles[
prosumer_json["components"]["pv"]["irradiance"] = input_profiles["irradiance"]
prosumer_json["components"]["pv"]["temperature"] = input_profiles["temperature"]
prosumer_json["components"]["consumption"]["consumption"] = input_profiles[
"electricity_demand"
]
prosumer = Prosumer("my_prosumer", prosumer_json)
prosumer.optimize("sized", architecture, ["annuity"])
prosumer.optimize(
"sized",
architecture,
{
("pv", ComponentPart.NONE_STATE): "a_0(,)",
("inverter_pv", ComponentPart.NONE_STATE): "a_0(,)",
("grid", ComponentPart.NONE_STATE): "a_0(,)",
("consumptiopn", ComponentPart.NONE_STATE): "a_0(,)",
},
["annuity"],
{},
)
prosumer.save_results("output_files")
......@@ -22,14 +22,16 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
"""
from Model_Library.dynamics import Profile, TrivialArchitecture, TrivialDynamic
from Model_Library.architecture import Architecture, Profile
from Model_Library.dynamics import DynamicTree
from Model_Library.topology import Prosumer
import json
import numpy as np
dynamic = TrivialDynamic(np.full(24, 3600, dtype=int))
input_profiles = Profile.from_csv("data.csv", dynamic)
architecture = Architecture(DynamicTree(np.full(24, 3600, dtype=int)).root())
input_profiles = Profile.from_csv("data.csv", architecture.get_dynamic(""))
with open("prosumer.json") as f:
prosumer_json = json.load(f)
......@@ -49,8 +51,6 @@ prosumer_json["components"]["hot_water_consumption"]["consumption"] = input_prof
prosumer = Prosumer("my_prosumer", prosumer_json)
prosumer.optimize("sized", TrivialArchitecture(dynamic), ["annuity"])
prosumer.save_results("output_files")
prosumer.optimize("sized", architecture, {}, ["annuity"], {})
prosumer.save_results("output_files")
......@@ -22,15 +22,16 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
"""
from Model_Library.dynamics import Profile, TrivialArchitecture, TrivialDynamic
from Model_Library.architecture import Architecture, Profile
from Model_Library.dynamics import DynamicTree
from Model_Library.topology import District, DistrictAsset, Prosumer
import json
import numpy as np
dynamic = TrivialDynamic(np.full(24, 3600, dtype=int))
architecture = Architecture(DynamicTree(np.full(24, 3600, dtype=int)).root())
input_profiles = Profile.from_csv("data.csv", dynamic)
input_profiles = Profile.from_csv("data.csv", architecture.get_dynamic(""))
prosumer_paths = {
"my_prosumer_1": "prosumer_1.json",
......@@ -51,7 +52,7 @@ for prosumer_name, prosumer_path in prosumer_paths.items():
prosumers[prosumer_name] = Prosumer(prosumer_name, prosumer_json)
for prosumer_name, prosumer in prosumers.items():
prosumer.optimize("sized", TrivialArchitecture(dynamic), ["annuity"])
prosumer.optimize("sized", architecture, {}, ["annuity"], {})
prosumer.save_results("output_files")
......@@ -72,6 +73,12 @@ district = District(
"my_district", district_json, prosumers, {"my_asset": district_asset}
)
district.optimize("sized", TrivialArchitecture(dynamic), ["annuity"])
district.optimize(
"sized",
architecture,
{},
["annuity"],
{"my_asset": ("sized", architecture, {}, ["annuity"], {})},
)
district.save_results("output_files")
......@@ -22,14 +22,16 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
"""
from Model_Library.dynamics import Profile, TrivialArchitecture, TrivialDynamic
from Model_Library.architecture import Architecture, Profile
from Model_Library.dynamics import DynamicTree
from Model_Library.topology import Prosumer
import json
import numpy as np
dynamic = TrivialDynamic(np.full(24, 3600, dtype=int))
input_profiles = Profile.from_csv("data.csv", dynamic)
architecture = Architecture(DynamicTree(np.full(24, 3600, dtype=int)).root())
input_profiles = Profile.from_csv("data.csv", architecture.get_dynamic(""))
with open("prosumer.json") as f:
prosumer_json = json.load(f)
......@@ -42,6 +44,6 @@ prosumer_json["components"]["consumption"]["consumption"] = input_profiles[
prosumer = Prosumer("my_prosumer", prosumer_json)
prosumer.optimize("sized", TrivialArchitecture(dynamic), ["annuity"])
prosumer.optimize("sized", architecture, {}, ["annuity"], {})
prosumer.save_results("output_files")
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment