Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Addressed FanCoil with CyclingFan control using Fan:SystemModel has different fan power than Fan:OnOff #7380

Merged
merged 2 commits into from
Aug 26, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 12 additions & 6 deletions src/EnergyPlus/FanCoilUnits.cc
Original file line number Diff line number Diff line change
Expand Up @@ -3594,8 +3594,7 @@ namespace FanCoilUnits {
ZoneCompTurnFansOn,
ZoneCompTurnFansOff);
} else {
HVACFan::fanObjs[FanCoil(FanCoilNum).FanIndex]->simulate(
FanCoil(FanCoilNum).LowSpeedRatio, ZoneCompTurnFansOn, ZoneCompTurnFansOff, _);
HVACFan::fanObjs[FanCoil(FanCoilNum).FanIndex]->simulate(_, ZoneCompTurnFansOn, ZoneCompTurnFansOff, _);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you walk me through this change? By not passing a speed ratio, does this force the fan object to operate at a single discrete mode? Is that what fixes the fan to operate just like the Fan:OnOff?

Copy link
Contributor Author

@Nigusse Nigusse Aug 26, 2019

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We do not want to pass the fan speed ratio for cycling operating mode. FanCoilUnits cycling mode are designed such that the fan coil unit cycles at each speed level. Thus passing speed ratio will result incorrect fan power calculation. By not passing the fan speed ratio, the fansystem model locally calculates average flow fraction instead, for the fan power calculation.

}
} else if (FanCoil(FanCoilNum).SpeedFanSel == 2) {

Expand All @@ -3607,15 +3606,22 @@ namespace FanCoilUnits {
ZoneCompTurnFansOn,
ZoneCompTurnFansOff);
} else {
HVACFan::fanObjs[FanCoil(FanCoilNum).FanIndex]->simulate(
FanCoil(FanCoilNum).MedSpeedRatio, ZoneCompTurnFansOn, ZoneCompTurnFansOff, _);
HVACFan::fanObjs[FanCoil(FanCoilNum).FanIndex]->simulate(_, ZoneCompTurnFansOn, ZoneCompTurnFansOff, _);
}
} else { // using 1.0 here for fan speed ratio seems wrong if FCU max flow rate is different than the fan maximum flow rate
} else if (FanCoil(FanCoilNum).SpeedFanSel == 3) {

if (FanCoil(FanCoilNum).FanType_Num != DataHVACGlobals::FanType_SystemModelObject) {
Fans::SimulateFanComponents(
FanCoil(FanCoilNum).FanName, FirstHVACIteration, FanCoil(FanCoilNum).FanIndex, 1.0, ZoneCompTurnFansOn, ZoneCompTurnFansOff);
} else {
HVACFan::fanObjs[FanCoil(FanCoilNum).FanIndex]->simulate(1.0, ZoneCompTurnFansOn, ZoneCompTurnFansOff, _);
HVACFan::fanObjs[FanCoil(FanCoilNum).FanIndex]->simulate(_, ZoneCompTurnFansOn, ZoneCompTurnFansOff, _);
}
} else { // using 1.0 here for fan speed ratio seems wrong if FCU max flow rate is different than the fan maximum flow rate
if (FanCoil(FanCoilNum).FanType_Num != DataHVACGlobals::FanType_SystemModelObject) {
Fans::SimulateFanComponents(
FanCoil(FanCoilNum).FanName, FirstHVACIteration, FanCoil(FanCoilNum).FanIndex, 0.0, ZoneCompTurnFansOn, ZoneCompTurnFansOff);
} else {
HVACFan::fanObjs[FanCoil(FanCoilNum).FanIndex]->simulate(0.0, ZoneCompTurnFansOn, ZoneCompTurnFansOff, _);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this change required for fixing this defect or is this an unrelated change?

Copy link
Contributor Author

@Nigusse Nigusse Aug 26, 2019

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If you referring to the last line where I set 0.0 for speed ratio, is to turn off the fan. Simple because the unit is off if no fan speed is specified.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The fancoil unit is expected to operate at one of the three fan speed levels, if the fan speed is not set yet, then the fan coil unit must be off. Otherwise, what does the fancoil unit do if no fan speed set yet? I observed such a case when I was debugging the defect.

}
}
if (FanCoil(FanCoilNum).CCoilType_Num == CCoil_HXAssist) {
Expand Down
Loading