Skip to content

Commit d96885a

Browse files
committed
include dynamic ahu control parameters in AixLib-Multizone
1 parent 92a6309 commit d96885a

File tree

2 files changed

+82
-10
lines changed

2 files changed

+82
-10
lines changed

teaser/data/output/modelicatemplate/AixLib/AixLib_Multizone

Lines changed: 31 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,6 @@ AixLib.ThermalZones.ReducedOrder.Multizone.MultizoneEquipped multizone(
4040
huAHU=${get_true_false(bldg.central_ahu.humidification)},
4141
BPFDehuAHU=${bldg.central_ahu.by_pass_dehumidification},
4242
heatRecoveryAHU=${get_true_false(bldg.central_ahu.heat_recovery)},
43-
dynamicVolumeFlowControlAHU=${get_true_false(bldg.central_ahu.dynamic_volume_flow_control)},
44-
dynamicSetTempControlAHU=${get_true_false(bldg.central_ahu.dynamic_supply_temperature_control)},
4543
T_Treshold_Heating_AHU=${bldg.central_ahu.T_treshold_heating},
4644
T_Treshold_Cooling_AHU=${bldg.central_ahu.T_treshold_cooling},
4745
effFanAHU_sup=${bldg.central_ahu.efficiency_fan_supply},
@@ -50,6 +48,19 @@ AixLib.ThermalZones.ReducedOrder.Multizone.MultizoneEquipped multizone(
5048
effHRSAHU_disabled=${bldg.central_ahu.efficiency_recovery_false},
5149
dpAHU_sup=${bldg.central_ahu.pressure_drop_fan_supply},
5250
dpAHU_eta=${bldg.central_ahu.pressure_drop_fan_return},
51+
dynamicVolumeFlowControlAHU=${get_true_false(bldg.central_ahu.dynamic_volume_flow_control)},
52+
dynamicSetTempControlAHU=${get_true_false(bldg.central_ahu.dynamic_supply_temperature_control)},
53+
gain_V_flow_Heat_Max=${bldg.central_ahu.gain_V_flow_Heat_Max},
54+
gain_V_flow_Cool_Max=${bldg.central_ahu.gain_V_flow_Cool_Max},
55+
dT_SUP_Offset_Heat=${bldg.central_ahu.dT_SUP_Offset_Heat},
56+
dT_SUP_Offset_Cool=${bldg.central_ahu.dT_SUP_Offset_Cool},
57+
dT_SUP_Heat_Max=${bldg.central_ahu.dT_SUP_Heat_Max},
58+
dT_SUP_Cool_Max=${bldg.central_ahu.dT_SUP_Cool_Max},
59+
Ti_PI_Heat_V_flow=${bldg.central_ahu.Ti_PI_Heat_V_flow},
60+
Ti_PI_Cool_V_flow=${bldg.central_ahu.Ti_PI_Cool_V_flow},
61+
Ti_PI_Heat_T_SUP=${bldg.central_ahu.Ti_PI_Heat_T_SUP},
62+
Ti_PI_Cool_T_SUP=${bldg.central_ahu.Ti_PI_Cool_T_SUP},
63+
5364
% else:
5465
heatAHU = false,
5566
coolAHU = false,
@@ -141,6 +152,18 @@ AixLib.ThermalZones.ReducedOrder.Multizone.MultizoneEquipped multizone(
141152
annotation (Placement(transformation(extent={{82,80},{102,100}})));
142153
% endif
143154

155+
Modelica.Blocks.Sources.CombiTimeTable tableBatteryGains(
156+
tableOnFile=true,
157+
extrapolation=Modelica.Blocks.Types.Extrapolation.Periodic,
158+
tableName="Internals_BatteryStacks",
159+
fileName=Modelica.Utilities.Files.loadResource("modelica://CMBlu/Powerhouse/InternalGains_BatteryStacks.txt"),
160+
columns={2}) "Profiles for internal gains of battery stacks"
161+
annotation (Placement(transformation(extent={{-64,-48},{-48,-32}})));
162+
Modelica.Thermal.HeatTransfer.Sources.PrescribedHeatFlow prescribedHeatFlow
163+
annotation (Placement(transformation(extent={{-12,-50},{8,-30}})));
164+
Modelica.Blocks.Math.Gain gain_units(k=500)
165+
annotation (Placement(transformation(extent={{-36,-44},{-28,-36}})));
166+
144167
equation
145168
connect(weaDat.weaBus, multizone.weaBus) annotation (Line(
146169
points={{-62,40},{-32,40},{-32,6},{34,6}},
@@ -159,6 +182,12 @@ equation
159182
connect(tableTSetCool.y, multizone.TSetCool) annotation (Line(points={{55.2,-58},
160183
{36.8,-58},{36.8,-9}}, color={0,0,127}));
161184

185+
connect(prescribedHeatFlow.port, multizone.intGainsConv[1]) annotation (Line(
186+
points={{8,-40},{28,-40},{28,-6.2},{34,-6.2}}, color={191,0,0}));
187+
connect(tableBatteryGains.y[1], gain_units.u)
188+
annotation (Line(points={{-47.2,-40},{-36.8,-40}}, color={0,0,127}));
189+
connect(gain_units.y, prescribedHeatFlow.Q_flow)
190+
annotation (Line(points={{-27.6,-40},{-12,-40}}, color={0,0,127}));
162191

163192
% if use_postprocessing_calc:
164193
connect(multizone.TAir, multizonePostProcessing.TAir) annotation (Line(points={{51,4.95},

teaser/logic/buildingobjects/buildingsystems/buildingahu.py

Lines changed: 51 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -39,12 +39,6 @@ class is very AixLib specific and holds some parameters that are only
3939
Is a HeatRecoverySystem physically integrated in the AHU
4040
AixLib: 'HRS'
4141
(default = True)
42-
dynamic_volume_flow_control: boolean
43-
Wether to use dynamic volume flow control which depends on room temperature deviation
44-
(default = false)
45-
dynamic_supply_temperature_control: boolean
46-
Wether to use dynamic supply temperature flow control which depends on temperature in AHU after HRS
47-
(default = false)
4842
by_pass_dehumidification : float
4943
By-pass factor of cooling coil during dehumidification. Necessary to
5044
calculate the real outgoing enthalpy flow of heat exchanger in
@@ -92,6 +86,43 @@ class is very AixLib specific and holds some parameters that are only
9286
is used for the AHU supply flow calculations.
9387
Per default: (v_flow_profile combined with "min_ahu and max_ahu")
9488
89+
dynamic_volume_flow_control: boolean
90+
Wether to use dynamic volume flow control which depends on room temperature deviation
91+
(default = false)
92+
dynamic_supply_temperature_control: boolean
93+
Wether to use dynamic supply temperature flow control which depends on temperature in AHU after HRS
94+
(default = false)
95+
gain_V_flow_Heat_Max: float
96+
Dynamic volume flow control: Max volume flow gain for further heating power
97+
(default = 1)
98+
gain_V_flow_Cool_Max: float
99+
Dynamic volume flow control: Max volume flow gain for further heating power
100+
(default = 1)
101+
dT_SUP_Offset_Heat: float
102+
Dynamic supply temperature control: Base air supply temperature increase when in heating mode
103+
(default = 0)
104+
dT_SUP_Offset_Cool: float
105+
Dynamic supply temperature control: Base air supply temperature decrease when in cooling mode
106+
(default = 0)
107+
dT_SUP_Heat_Max: float
108+
Dynamic supply temperature control: Max temperature difference of T_SUP for further heating power
109+
(default = 0)
110+
dT_SUP_Cool_Max: float
111+
Dynamic supply temperature control: Max temperature difference of T_SUP for further cooling power
112+
(default = 0)
113+
Ti_PI_Heat_V_flow: float
114+
Dynamic volume flow control: Time constant of heating PI controller
115+
(default = 300)
116+
Ti_PI_Cool_V_flow: float
117+
Dynamic volume flow control: Time constant of cooling PI controller
118+
(default = 300)
119+
Ti_PI_Heat_T_SUP: float
120+
Dynamic supply temperature control: Time constant of heating PI controller
121+
(default = 3600)
122+
Ti_PI_Cool_T_SUP: float
123+
Dynamic supply temperature control: Time constant of cooling PI controller
124+
(default = 3600)
125+
95126
"""
96127

97128
def __init__(self, parent=None):
@@ -104,8 +135,6 @@ def __init__(self, parent=None):
104135
self.dehumidification = True
105136
self.humidification = True
106137
self.heat_recovery = True
107-
self.dynamic_volume_flow_control = False
108-
self.dynamic_supply_temperature_control = False
109138
self.by_pass_dehumidification = 0.2
110139
self.efficiency_recovery = 0.65
111140
self.efficiency_recovery_false = 0.2
@@ -123,6 +152,20 @@ def __init__(self, parent=None):
123152
self.T_treshold_heating = 290.15
124153
self.T_treshold_cooling = 294.15
125154

155+
# Dynamic ahu control params
156+
self.dynamic_volume_flow_control = False
157+
self.dynamic_supply_temperature_control = False
158+
self.gain_V_flow_Heat_Max = 1
159+
self.gain_V_flow_Cool_Max = 1
160+
self.dT_SUP_Offset_Heat = 0
161+
self.dT_SUP_Offset_Cool = 0
162+
self.dT_SUP_Heat_Max = 0
163+
self.dT_SUP_Cool_Max = 0
164+
self.Ti_PI_Heat_V_flow = 300
165+
self.Ti_PI_Cool_V_flow = 300
166+
self.Ti_PI_Heat_T_SUP = 3600
167+
self.Ti_PI_Cool_T_SUP = 3600
168+
126169
self.schedules = pd.DataFrame(
127170
index=pd.date_range("2019-01-01 00:00:00", periods=8760, freq="h")
128171
.to_series()

0 commit comments

Comments
 (0)