示例#1
0
RefrigerationSystem::RefrigerationSystem(const Model& model)
  : ModelObject(RefrigerationSystem::iddObjectType(),model)
{
  OS_ASSERT(getImpl<detail::RefrigerationSystem_Impl>());

  ModelObjectList caseAndWalkinList = ModelObjectList(model);
  caseAndWalkinList.setName(this->name().get() + " Case and Walkin List");
  bool ok = getImpl<detail::RefrigerationSystem_Impl>()->setRefrigeratedCaseAndWalkInList(caseAndWalkinList);
  OS_ASSERT(ok);
  ModelObjectList transferLoadList = ModelObjectList(model);
  transferLoadList.setName(this->name().get() + " Transfer Load List");
  ok = getImpl<detail::RefrigerationSystem_Impl>()->setRefrigerationTransferLoadList(transferLoadList);
  OS_ASSERT(ok);
  ModelObjectList compressorlist = ModelObjectList(model);
  compressorlist.setName(this->name().get() + " Compressor List");
  ok = getImpl<detail::RefrigerationSystem_Impl>()->setCompressorList(compressorlist);
  OS_ASSERT(ok);
  ModelObjectList highStageCompressorlist = ModelObjectList(model);
  highStageCompressorlist.setName(this->name().get() + " High Stage Compressor List");
  ok = getImpl<detail::RefrigerationSystem_Impl>()->setHighStageCompressorList(highStageCompressorlist);
  OS_ASSERT(ok);
  setMinimumCondensingTemperature(21.0);
  ok = setRefrigerationSystemWorkingFluidType("R404a");
  OS_ASSERT(ok);
  ok = setSuctionTemperatureControlType("ConstantSuctionTemperature");
  OS_ASSERT(ok);
}
CoilHeatingDXMultiSpeed::CoilHeatingDXMultiSpeed(const Model& model)
  : StraightComponent(CoilHeatingDXMultiSpeed::iddObjectType(),model)
{
  OS_ASSERT(getImpl<detail::CoilHeatingDXMultiSpeed_Impl>());

  bool ok = true;
  auto always_on = model.alwaysOnDiscreteSchedule();
  ok = setAvailabilitySchedule( always_on );
  OS_ASSERT(ok);
  setMinimumOutdoorDryBulbTemperatureforCompressorOperation(-8.0);
  ok = setCrankcaseHeaterCapacity(0.0);
  OS_ASSERT(ok);
  ok = setMaximumOutdoorDryBulbTemperatureforCrankcaseHeaterOperation(10.0);
  OS_ASSERT(ok);
  ok = setMaximumOutdoorDryBulbTemperatureforDefrostOperation(5.0);
  OS_ASSERT(ok);
  ok = setDefrostStrategy("Resistive");
  OS_ASSERT(ok);
  ok = setDefrostControl("OnDemand");
  OS_ASSERT(ok);
  ok = setDefrostTimePeriodFraction(0.058333);
  OS_ASSERT(ok);
  autosizeResistiveDefrostHeaterCapacity();
  setApplyPartLoadFractiontoSpeedsGreaterthan1(false);
  ok = setFuelType("NaturalGas");
  OS_ASSERT(ok);
  ok = setRegionnumberforCalculatingHSPF(4);
  OS_ASSERT(ok);

  auto stageDataList = ModelObjectList(model);
  stageDataList.setName(this->name().get() + " Stage Data List");
  ok = getImpl<detail::CoilHeatingDXMultiSpeed_Impl>()->setStageDataList(stageDataList);
  OS_ASSERT(ok);

}
CoilCoolingWaterToAirHeatPumpVariableSpeedEquationFit::CoilCoolingWaterToAirHeatPumpVariableSpeedEquationFit(const Model& model)
  : WaterToAirComponent(CoilCoolingWaterToAirHeatPumpVariableSpeedEquationFit::iddObjectType(),model)
{
  OS_ASSERT(getImpl<detail::CoilCoolingWaterToAirHeatPumpVariableSpeedEquationFit_Impl>());

  bool ok = true;
  setNominalSpeedLevel(1);
  autosizeGrossRatedTotalCoolingCapacityAtSelectedNominalSpeedLevel();
  autosizeRatedAirFlowRateAtSelectedNominalSpeedLevel();
  autosizeRatedWaterFlowRateAtSelectedNominalSpeedLevel();
  ok = setNominalTimeforCondensatetoBeginLeavingtheCoil(0);
  OS_ASSERT(ok);
  ok = setInitialMoistureEvaporationRateDividedbySteadyStateACLatentCapacity(0);
  OS_ASSERT(ok);
  setUseHotGasReheat(false);

  auto partLoadFraction = CurveQuadratic(model);
  partLoadFraction.setCoefficient1Constant(0.85);
  partLoadFraction.setCoefficient2x(0.15);
  partLoadFraction.setCoefficient3xPOW2(0.0);
  partLoadFraction.setMinimumValueofx(0.0);
  partLoadFraction.setMaximumValueofx(1.0);

  ok = setEnergyPartLoadFractionCurve(partLoadFraction);
  OS_ASSERT(ok);

  auto speedDataList = ModelObjectList(model);
  speedDataList.setName(this->name().get() + " Speed Data List");
  ok = getImpl<detail::CoilCoolingWaterToAirHeatPumpVariableSpeedEquationFit_Impl>()->setSpeedDataList(speedDataList);
  OS_ASSERT(ok);
}
CentralHeatPumpSystem::CentralHeatPumpSystem(const Model& model)
  : WaterToWaterComponent(CentralHeatPumpSystem::iddObjectType(),model)
{
  OS_ASSERT(getImpl<detail::CentralHeatPumpSystem_Impl>());

  bool ok = true;
  ok = setControlMethod( "SmartMixing" );
  OS_ASSERT(ok);
  ok = setAncillaryPower( 0.0 );
  OS_ASSERT(ok);

  auto chillerHeaterModuleList = ModelObjectList(model);
  chillerHeaterModuleList.setName(this->name().get() + " Chiller Heater Module List");
  ok = getImpl<detail::CentralHeatPumpSystem_Impl>()->setChillerHeaterModuleList(chillerHeaterModuleList);
  OS_ASSERT(ok);

}