Validation of the baseclasses
Information
This package contains models that validate the models in
Buildings.Fluid.CHPs.BaseClasses.
Extends from Modelica.Icons.ExamplesPackage (Icon for packages containing runnable examples).
Package Content
Name |
Description |
AssertFuelFlow
|
Validate model AssertFuelFlow |
AssertPower
|
Validate model AssertPower |
AssertWaterFlow
|
Validate model AssertWaterFlow |
AssertWaterTemperature
|
Validate model AssertWaterTemperature |
Controller
|
Validate model Controller |
CoolDown
|
Validate model CoolDown |
EnergyConversion
|
Validate model EnergyConversion |
EnergyConversionNormal
|
Validate model EnergyConversionNormal |
EnergyConversionWarmUp
|
Validate model EnergyConversionWarmUp |
EngineTemperature
|
Validate model EngineTemperature |
FilterPower
|
Validate model FilterPower |
PowerConsumption
|
Validate model PowerConsumption |
StandBy
|
Validate model StandBy |
WarmUpTemperature
|
Validate model WarmUp if warm-up by engine temperature |
WarmUpTimeDelay
|
Validate model WarmUp if warm-up by time delay |
WaterFlowControl
|
Validate model WaterFlowControl |
Validate model AssertFuelFlow
Information
This example validates
Buildings.Fluid.CHPs.BaseClasses.AssertFuelFlow
for sending a warning message if the fuel mass flow rate is outside boundaries.
Extends from Modelica.Icons.Example (Icon for runnable examples).
Parameters
Modelica definition
Validate model AssertPower
Information
This example validates
Buildings.Fluid.CHPs.BaseClasses.AssertPower
for sending a warning message if the electric power is outside boundaries.
Extends from Modelica.Icons.Example (Icon for runnable examples).
Parameters
Modelica definition
model AssertPower
extends Modelica.Icons.Example;
parameter Buildings.Fluid.CHPs.Data.ValidationData1 per
;
Buildings.Fluid.CHPs.BaseClasses.AssertPower assPow(
PEleMax=per.PEleMax,
PEleMin=per.PEleMin,
use_powerRateLimit=per.use_powerRateLimit,
dPEleMax=per.dPEleMax)
;
Buildings.Controls.OBC.CDL.Continuous.Sources.TimeTable PEleDem(
table=[0,0; 300,500; 600,2000; 900,3001;
1200,0; 1500,6000; 2000,6000],
smoothness=Buildings.Controls.OBC.CDL.Types.Smoothness.ConstantSegments)
;
equation
connect(PEleDem.y[1], assPow.PEleDem);
end AssertPower;
Validate model AssertWaterFlow
Information
This example validates
Buildings.Fluid.CHPs.BaseClasses.AssertWaterFlow
for sending a warning message if the water mass flow is outside boundaries.
Extends from Modelica.Icons.Example (Icon for runnable examples).
Parameters
Modelica definition
Validate model AssertWaterTemperature
Information
This example validates
Buildings.Fluid.CHPs.BaseClasses.AssertWaterTemperature
for sending a warning message if the water temperature is outside boundaries.
Extends from Modelica.Icons.Example (Icon for runnable examples).
Parameters
Modelica definition
Validate model Controller
Information
This example validates
Buildings.Fluid.CHPs.BaseClasses.Controller
for switching between six operating modes.
Extends from Modelica.Icons.Example (Icon for runnable examples).
Parameters
Modelica definition
model Controller
extends Modelica.Icons.Example;
parameter Buildings.Fluid.CHPs.Data.ValidationData3 per
;
Modelica.Blocks.Sources.BooleanTable runSig(
startValue=false,
table={900,960,1200,2200})
;
Buildings.Fluid.CHPs.BaseClasses.Controller con(
final per=per)
;
Modelica.Blocks.Sources.BooleanTable avaSig(
final startValue=false,
table={300,600,900}) ;
Buildings.Controls.OBC.CDL.Continuous.Sources.TimeTable mWat_flow(
table=[0,0; 900,0.4; 1320,0; 1500,0.4;
1900,0; 1960,0.4; 2200,0; 3000,0],
smoothness=Buildings.Controls.OBC.CDL.Types.Smoothness.ConstantSegments)
;
protected
inner Modelica.StateGraph.StateGraphRoot stateGraphRoot;
equation
connect(avaSig.y, con.avaSig);
connect(runSig.y, con.runSig);
connect(mWat_flow.y[1], con.mWat_flow);
end Controller;
Validate model CoolDown
Information
This example validates the transitions to and from the cool-down operating mode.
Extends from Modelica.Icons.Example (Icon for runnable examples).
Parameters
Modelica definition
model CoolDown
extends Modelica.Icons.Example;
parameter Buildings.Fluid.CHPs.Data.ValidationData1 per
;
Buildings.Fluid.CHPs.BaseClasses.Types.Mode actMod=
if norm.active
then
Buildings.Fluid.CHPs.BaseClasses.Types.Mode.Normal
elseif cooDow.active
then
Buildings.Fluid.CHPs.BaseClasses.Types.Mode.CoolDown
else
Buildings.Fluid.CHPs.BaseClasses.Types.Mode.Off
;
Modelica.Blocks.Sources.BooleanTable runSig(
final startValue=true,
table={300,600,660,690}) ;
Buildings.Controls.OBC.CDL.Logical.Not notRun ;
Buildings.Controls.OBC.CDL.Logical.And and1 ;
Buildings.Controls.OBC.CDL.Logical.Sources.Constant cooDowOpt(
final k=per.coolDownOptional)
;
Modelica.StateGraph.StepWithSignal cooDow(nIn=2, nOut=2) ;
protected
Modelica.StateGraph.InitialStep norm(
final nIn=2,
final nOut=2)
;
inner Modelica.StateGraph.StateGraphRoot stateGraphRoot;
Modelica.StateGraph.TransitionWithSignal transition2 ;
Modelica.StateGraph.TransitionWithSignal transition1
;
Modelica.StateGraph.TransitionWithSignal transition4
;
Modelica.StateGraph.Step off(
final nIn=1,
final nOut=1) ;
Modelica.StateGraph.TransitionWithSignal transition3 ;
Modelica.StateGraph.Transition transition5(
final condition=false,
final waitTime=0);
protected
Buildings.Controls.OBC.CDL.Logical.Timer timer(
final t=per.timeDelayCool)
;
equation
connect(transition4.outPort, norm.inPort[1]);
connect(transition1.inPort, norm.outPort[1]);
connect(off.inPort[1], transition2.outPort);
connect(off.outPort[1], transition3.inPort);
connect(transition3.outPort, norm.inPort[2]);
connect(transition5.inPort, norm.outPort[2]);
connect(runSig.y, notRun.u);
connect(notRun.y, transition1.condition);
connect(cooDowOpt.y, and1.u1);
connect(runSig.y, and1.u2);
connect(runSig.y, transition3.condition);
connect(and1.y, transition4.condition);
connect(cooDow.outPort[1], transition2.inPort);
connect(cooDow.outPort[2], transition4.inPort);
connect(transition1.outPort, cooDow.inPort[1]);
connect(transition5.outPort, cooDow.inPort[2]);
connect(cooDow.active, timer.u);
connect(timer.passed, transition2.condition);
end CoolDown;
Validate model EnergyConversion
Information
This example validates
Buildings.Fluid.CHPs.BaseClasses.EnergyConversion
for defining the energy conversion control volume.
Extends from Modelica.Icons.Example (Icon for runnable examples).
Parameters
Modelica definition
model EnergyConversion
extends Modelica.Icons.Example;
parameter Buildings.Fluid.CHPs.Data.ValidationData2 per
;
parameter Data.ValidationData2 per1(warmUpByTimeDelay=true)
;
Buildings.Fluid.CHPs.BaseClasses.EnergyConversion eneConEngTem(
final per=per)
;
Buildings.Fluid.CHPs.BaseClasses.EnergyConversion eneConTimDel(
final per=per1)
;
Buildings.Controls.OBC.CDL.Continuous.Sources.TimeTable mWat_flow(
table=[0,0; 300,0.4; 2700,0; 3000,0],
smoothness=Buildings.Controls.OBC.CDL.Types.Smoothness.ConstantSegments)
;
Buildings.Fluid.CHPs.BaseClasses.Controller con(
final per=per) ;
Modelica.Blocks.Sources.BooleanTable runSig(startValue=false, table={300,2700})
;
Modelica.Blocks.Sources.BooleanTable avaSig(startValue=true, table={3500})
;
Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp TEng(
final height=90,
final duration=600,
final offset=273.15 + 15,
final startTime=360) ;
Buildings.Controls.OBC.CDL.Continuous.Sources.Constant TWatIn(
y(
final unit="K", displayUnit="degC"),
final k=273.15 + 15) ;
Modelica.Blocks.Sources.TimeTable PEle(
table=[0,0; 299,0; 300,2500; 2699,2500;2700,0; 3000,0])
;
Controls.OBC.CDL.Continuous.Sources.Constant TRoo(
y(
final unit="K", displayUnit="degC"),
final k=273.15 + 15)
;
protected
inner Modelica.StateGraph.StateGraphRoot stateGraphRoot;
equation
connect(con.opeMod, eneConEngTem.opeMod);
connect(avaSig.y, con.avaSig);
connect(runSig.y, con.runSig);
connect(TEng.y, con.TEng);
connect(TEng.y, eneConEngTem.TEng);
connect(TWatIn.y, eneConEngTem.TWatIn);
connect(PEle.y, eneConEngTem.PEle);
connect(mWat_flow.y[1], eneConEngTem.mWat_flow);
connect(mWat_flow.y[1], con.mWat_flow);
connect(TWatIn.y, eneConTimDel.TWatIn);
connect(mWat_flow.y[1], eneConTimDel.mWat_flow);
connect(PEle.y, eneConTimDel.PEle);
connect(con.opeMod, eneConTimDel.opeMod);
connect(PEle.y, con.PEle);
connect(eneConEngTem.PEleNet, con.PEleNet);
connect(TRoo.y, eneConEngTem.TRoo);
connect(TRoo.y, eneConTimDel.TRoo);
end EnergyConversion;
Validate model EnergyConversionNormal
Information
This example validates
Buildings.Fluid.CHPs.BaseClasses.EnergyConversionNormal
for defining energy conversion for a typical CHP operation.
Extends from Modelica.Icons.Example (Icon for runnable examples).
Parameters
Modelica definition
Validate model EnergyConversionWarmUp
Information
This example validates
Buildings.Fluid.CHPs.BaseClasses.EnergyConversionWarmUp
for defining energy conversion during the warm-up mode dependent on the engine temperature.
Extends from Modelica.Icons.Example (Icon for runnable examples).
Parameters
Modelica definition
model EnergyConversionWarmUp
extends Modelica.Icons.Example;
parameter Buildings.Fluid.CHPs.Data.ValidationData2 per
;
Buildings.Fluid.CHPs.BaseClasses.EnergyConversionWarmUp opeModWarUpEngTem(
final per=per) ;
Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp TEng(
y(
final unit="K", displayUnit="degC"),
final height=90,
final duration=360,
final offset=273.15 + 15,
final startTime=600) ;
Buildings.Controls.OBC.CDL.Continuous.Sources.Constant mWat_flow(
final k=0.05)
;
Buildings.Controls.OBC.CDL.Continuous.Sources.Constant TWatIn(
y(
final unit="K", displayUnit="degC"),
final k=273.15 + 15)
;
Buildings.Controls.OBC.CDL.Continuous.Sources.Constant TRoo(
y(
final unit="K", displayUnit="degC"),
final k=273.15 + 15)
;
equation
connect(TWatIn.y, opeModWarUpEngTem.TWatIn);
connect(mWat_flow.y, opeModWarUpEngTem.mWat_flow);
connect(TRoo.y, opeModWarUpEngTem.TRoo);
connect(TEng.y, opeModWarUpEngTem.TEng);
end EnergyConversionWarmUp;
Validate model EngineTemperature
Information
This example validates
Buildings.Fluid.CHPs.BaseClasses.EngineTemperature
for defining the heat exchange within the engine control volume.
Extends from Modelica.Icons.Example (Icon for runnable examples).
Parameters
Modelica definition
model EngineTemperature
extends Modelica.Icons.Example;
parameter Buildings.Fluid.CHPs.Data.ValidationData1 per
;
Buildings.Fluid.CHPs.BaseClasses.EngineTemperature eng(
final UAHex=per.UAHex,
final UALos=per.UALos,
final capEng=per.capEng,
final TEngIni=273.15 + 20) ;
Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp QGen(
final height=5000,
final duration=360,
final offset=0,
final startTime=600) ;
Buildings.Controls.OBC.CDL.Continuous.Sources.Constant TRoo(
y(
final unit="K", displayUnit="degC"),
final k=273.15 + 15)
;
Buildings.Controls.OBC.CDL.Continuous.Sources.Constant TWat(
y(
final unit="K", displayUnit="degC"),
final k=273.15 + 60)
;
protected
Buildings.HeatTransfer.Sources.PrescribedTemperature rooTem
;
Buildings.HeatTransfer.Sources.PrescribedTemperature cooWatTem
;
equation
connect(QGen.y, eng.QGen_flow);
connect(rooTem.port, eng.TRoo);
connect(rooTem.T, TRoo.y);
connect(cooWatTem.T, TWat.y);
connect(cooWatTem.port, eng.TWat);
end EngineTemperature;
Validate model FilterPower
Information
This example validates
Buildings.Fluid.CHPs.BaseClasses.FilerPower
for applying constraints and sending a warning message if the electric power
is outside boundaries. The constraints include minimum and maximum electric power and
the maximum rate of change in power output.
Extends from Modelica.Icons.Example (Icon for runnable examples).
Parameters
Modelica definition
model FilterPower
extends Modelica.Icons.Example;
parameter Buildings.Fluid.CHPs.Data.ValidationData1 per
;
Buildings.Controls.OBC.CDL.Continuous.Sources.TimeTable PEleDem(
table=[0,0; 300,500; 600,2000; 900,3000;
1200,0; 1500,6000; 1800,6000],
smoothness=Buildings.Controls.OBC.CDL.Types.Smoothness.ConstantSegments)
;
Buildings.Fluid.CHPs.BaseClasses.FilterPower filPow(
final PEleMax=per.PEleMax,
final PEleMin=per.PEleMin,
final dPEleMax=per.dPEleMax,
final use_powerRateLimit=per.use_powerRateLimit)
;
equation
connect(PEleDem.y[1], filPow.PEleDem);
end FilterPower;
Validate model PowerConsumption
Information
This example validates
Buildings.Fluid.CHPs.BaseClasses.PowerConsumption
for calculating the power consumption during the stand-by and cool-down modes of
operation.
Extends from Modelica.Icons.Example (Icon for runnable examples).
Parameters
Modelica definition
model PowerConsumption
extends Modelica.Icons.Example;
parameter Buildings.Fluid.CHPs.Data.ValidationData1 per
;
Buildings.Controls.OBC.CDL.Continuous.Sources.TimeTable mWat_flow(
table=[0,0; 300,0.4; 2700,0; 3000,0],
smoothness=Buildings.Controls.OBC.CDL.Types.Smoothness.ConstantSegments)
;
Buildings.Fluid.CHPs.BaseClasses.Controller con(
final per=per);
Modelica.Blocks.Sources.BooleanTable runSig(
final startValue=false,
final table={300,2700})
;
Modelica.Blocks.Sources.BooleanTable avaSig(
final startValue=true,
final table={3500})
;
Buildings.Fluid.CHPs.BaseClasses.PowerConsumption powCon(
final PStaBy=per.PStaBy,
final PCooDow=per.PCooDow)
;
protected
inner Modelica.StateGraph.StateGraphRoot stateGraphRoot;
equation
connect(avaSig.y, con.avaSig);
connect(runSig.y, con.runSig);
connect(con.opeMod,powCon. opeMod);
connect(mWat_flow.y[1], con.mWat_flow);
end PowerConsumption;
Validate model StandBy
Information
This example validates the transitions to and from the stand-by operating mode.
Extends from Modelica.Icons.Example (Icon for runnable examples).
Parameters
Modelica definition
model StandBy
extends Modelica.Icons.Example;
parameter Buildings.Fluid.CHPs.Data.ValidationData1 per
;
Buildings.Controls.OBC.CDL.Continuous.Sources.Constant mWat_flow(
final k=0.5) ;
Buildings.Fluid.CHPs.BaseClasses.Types.Mode actMod ;
Modelica.StateGraph.TransitionWithSignal transition1 ;
Modelica.StateGraph.TransitionWithSignal transition2
;
Modelica.StateGraph.Step staBy(nOut=2, nIn=1)
;
Modelica.StateGraph.Step pumOn(nIn=1, nOut=1)
;
protected
Modelica.Blocks.Sources.BooleanTable avaSig(table={300,600,900,1260})
;
Buildings.Controls.OBC.CDL.Logical.Not notAva ;
Modelica.Blocks.Sources.BooleanTable runSig(table={1200,1260})
;
Modelica.StateGraph.InitialStep off(nIn=2, nOut=1)
;
inner Modelica.StateGraph.StateGraphRoot stateGraphRoot;
Modelica.StateGraph.TransitionWithSignal transition3(
final enableTimer=true,
final waitTime=60) ;
Modelica.StateGraph.TransitionWithSignal transition4 ;
Buildings.Controls.OBC.CDL.Continuous.Sources.Constant minWatFlo(
final k=per.mWatMin_flow)
;
Buildings.Controls.OBC.CDL.Continuous.Greater cheMinFlo
;
equation
if off.active
then
actMod = CHPs.BaseClasses.Types.Mode.Off;
elseif staBy.active
then
actMod = CHPs.BaseClasses.Types.Mode.StandBy;
else
actMod = CHPs.BaseClasses.Types.Mode.PumpOn;
end if;
connect(transition1.inPort, off.outPort[1]);
connect(transition4.outPort, off.inPort[1]);
connect(transition3.outPort, off.inPort[2]);
connect(avaSig.y, transition1.condition);
connect(avaSig.y, notAva.u);
connect(notAva.y, transition4.condition);
connect(runSig.y, transition2.condition);
connect(mWat_flow.y, cheMinFlo.u1);
connect(minWatFlo.y, cheMinFlo.u2);
connect(cheMinFlo.y, transition3.condition);
connect(pumOn.outPort[1], transition3.inPort);
connect(transition2.outPort, pumOn.inPort[1]);
connect(staBy.outPort[1], transition2.inPort);
connect(transition1.outPort, staBy.inPort[1]);
connect(staBy.outPort[2], transition4.inPort);
end StandBy;
Validate model WarmUp if warm-up by engine temperature
Information
This example validates
Buildings.Fluid.CHPs.BaseClasses.WarmUpLeaving.
The example is for the warm-up mode dependent on the engine temperature
(e.g. CHPs with Stirling engines).
Extends from Modelica.Icons.Example (Icon for runnable examples).
Parameters
Modelica definition
model WarmUpTemperature
extends Modelica.Icons.Example;
parameter Buildings.Fluid.CHPs.Data.ValidationData2 per
;
Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp TEng(
final height=200,
final duration=360,
final offset=273.15,
final startTime=0) ;
Modelica.Blocks.Sources.BooleanTable runSig(
final startValue=true,
final table={600})
;
Buildings.Fluid.CHPs.BaseClasses.Types.Mode actMod ;
Modelica.StateGraph.TransitionWithSignal transition1 ;
Modelica.StateGraph.TransitionWithSignal transition2 ;
Modelica.StateGraph.TransitionWithSignal transition3 ;
Modelica.StateGraph.StepWithSignal warUp(nIn=2, nOut=2)
;
Controls.OBC.CDL.Continuous.Sources.Constant PEle[2](k={1,2})
;
protected
Modelica.StateGraph.InitialStep off(
final nIn=2,
final nOut=2) ;
inner Modelica.StateGraph.StateGraphRoot stateGraphRoot;
Modelica.StateGraph.TransitionWithSignal transition4 ;
Modelica.StateGraph.Step nor(nIn=1, nOut=1) ;
Modelica.StateGraph.Transition transition5(
final condition=false,
final waitTime=0);
Buildings.Controls.OBC.CDL.Logical.Not notRun ;
WarmUpLeaving warUpCtr(
final timeDelayStart=per.timeDelayStart,
final TEngNom=per.TEngNom,
final warmUpByTimeDelay=per.warmUpByTimeDelay) ;
equation
if off.active
then
actMod = CHPs.BaseClasses.Types.Mode.Off;
elseif warUp.active
then
actMod = CHPs.BaseClasses.Types.Mode.WarmUp;
else
actMod = CHPs.BaseClasses.Types.Mode.Normal;
end if;
connect(transition4.outPort, off.inPort[1]);
connect(transition1.inPort, off.outPort[1]);
connect(nor.inPort[1], transition2.outPort);
connect(nor.outPort[1], transition3.inPort);
connect(transition3.outPort, off.inPort[2]);
connect(transition5.inPort, off.outPort[2]);
connect(runSig.y, notRun.u);
connect(runSig.y, transition1.condition);
connect(notRun.y, transition3.condition);
connect(notRun.y, transition4.condition);
connect(warUp.active, warUpCtr.actWarUp);
connect(transition1.outPort, warUp.inPort[1]);
connect(warUp.outPort[1], transition2.inPort);
connect(transition5.outPort, warUp.inPort[2]);
connect(warUp.outPort[2], transition4.inPort);
connect(TEng.y, warUpCtr.TEng);
connect(warUpCtr.y, transition2.condition);
connect(PEle[1].y, warUpCtr.PEleNet);
connect(PEle[2].y, warUpCtr.PEle);
end WarmUpTemperature;
Validate model WarmUp if warm-up by time delay
Information
This example validates
Buildings.Fluid.CHPs.BaseClasses.WarmUpLeaving.
The example is for the warm-up mode with the static time delay
(e.g. CHPs with internal combustion engines).
Extends from Modelica.Icons.Example (Icon for runnable examples).
Parameters
Modelica definition
model WarmUpTimeDelay
extends Modelica.Icons.Example;
parameter Buildings.Fluid.CHPs.Data.ValidationData1 per
;
Modelica.Blocks.Sources.BooleanTable runSig(
final table={300,330,600})
;
Buildings.Fluid.CHPs.BaseClasses.Types.Mode actMod ;
Modelica.StateGraph.TransitionWithSignal transition1 ;
Modelica.StateGraph.TransitionWithSignal transition2 ;
Modelica.StateGraph.TransitionWithSignal transition3 ;
Modelica.StateGraph.StepWithSignal warUp(nIn=2, nOut=2)
;
protected
Modelica.StateGraph.InitialStep off(nIn=2, nOut=2) ;
inner Modelica.StateGraph.StateGraphRoot stateGraphRoot;
Modelica.StateGraph.TransitionWithSignal transition4 ;
Modelica.StateGraph.Step nor(nIn=1, nOut=1) ;
Modelica.StateGraph.Transition transition5(
final condition=false,
final waitTime=0);
Buildings.Controls.OBC.CDL.Logical.Not notRun ;
WarmUpLeaving warUpCtr(
final timeDelayStart=per.timeDelayStart,
final TEngNom=per.TEngNom,
final PEleMax=per.PEleMax,
final warmUpByTimeDelay=per.warmUpByTimeDelay) ;
equation
if off.active
then
actMod = CHPs.BaseClasses.Types.Mode.Off;
elseif warUp.active
then
actMod = CHPs.BaseClasses.Types.Mode.WarmUp;
else
actMod = CHPs.BaseClasses.Types.Mode.Normal;
end if;
connect(transition4.outPort, off.inPort[1]);
connect(transition1.inPort, off.outPort[1]);
connect(nor.inPort[1], transition2.outPort);
connect(nor.outPort[1], transition3.inPort);
connect(transition3.outPort, off.inPort[2]);
connect(transition5.inPort, off.outPort[2]);
connect(runSig.y, transition1.condition);
connect(runSig.y, notRun.u);
connect(notRun.y, transition3.condition);
connect(notRun.y, transition4.condition);
connect(warUpCtr.y, transition2.condition);
connect(warUp.active, warUpCtr.actWarUp);
connect(transition1.outPort, warUp.inPort[1]);
connect(warUp.outPort[1], transition2.inPort);
connect(warUp.outPort[2], transition4.inPort);
connect(transition5.outPort, warUp.inPort[2]);
end WarmUpTimeDelay;
Validate model WaterFlowControl
Information
This example validates
Buildings.Fluid.CHPs.BaseClasses.WaterFlowControl
for calculating the optimum cooling water flow rate based on internal contol.
Extends from Modelica.Icons.Example (Icon for runnable examples).
Parameters
Modelica definition
model WaterFlowControl
extends Modelica.Icons.Example;
parameter Buildings.Fluid.CHPs.Data.ValidationData2 per
;
Buildings.Fluid.CHPs.BaseClasses.WaterFlowControl conWat(
final per=per)
;
protected
inner Modelica.StateGraph.StateGraphRoot stateGraphRoot;
Buildings.Controls.OBC.CDL.Continuous.Sources.TimeTable mWat_flow(
table=[0,0; 300,0.4; 2700,0; 3000,0],
smoothness=Buildings.Controls.OBC.CDL.Types.Smoothness.ConstantSegments)
;
Buildings.Fluid.CHPs.BaseClasses.Controller con(
final per=per)
;
Modelica.Blocks.Sources.BooleanTable runSig(
final startValue=false,
final table={300,2700})
;
Modelica.Blocks.Sources.BooleanTable avaSig(
final startValue=true,
final table={3500})
;
Buildings.Controls.OBC.CDL.Continuous.Sources.Ramp TEng(
y(
final unit="K", displayUnit="degC"),
final height=90,
final duration=300,
final offset=273.15 + 15,
final startTime=360) ;
Buildings.Controls.OBC.CDL.Continuous.Sources.Constant TWatIn(
y(
final unit="K", displayUnit="degC"),
final k=273.15 + 15)
;
Buildings.Controls.OBC.CDL.Continuous.Sources.TimeTable PEle(
final table=[0,0; 300,2500; 2700,0; 3000,0],
final smoothness=Buildings.Controls.OBC.CDL.Types.Smoothness.ConstantSegments)
;
equation
connect(avaSig.y, con.avaSig);
connect(runSig.y, con.runSig);
connect(TEng.y, con.TEng);
connect(con.opeMod, conWat.opeMod);
connect(TWatIn.y, conWat.TWatIn);
connect(mWat_flow.y[1], con.mWat_flow);
connect(PEle.y[1], conWat.PEle);
connect(PEle.y[1], con.PEle);
connect(PEle.y[1], con.PEleNet);
end WaterFlowControl;