Skip to content

Update Fan:xxx Outputs in IO reference docs#11552

Draft
joseph-robertson wants to merge 4 commits intodevelopfrom
fan-sys-model-docs
Draft

Update Fan:xxx Outputs in IO reference docs#11552
joseph-robertson wants to merge 4 commits intodevelopfrom
fan-sys-model-docs

Conversation

@joseph-robertson
Copy link
Copy Markdown
Collaborator

@joseph-robertson joseph-robertson commented Apr 28, 2026

Pull request overview

Description of the purpose of this PR

Pull Request Author

  • Title of PR should be user-synopsis style (clearly understandable in a standalone changelog context)
  • Label the PR with at least one of: Defect, Refactoring, NewFeature, Performance, and/or DoNoPublish
  • Pull requests that impact EnergyPlus code must also include unit tests to cover enhancement or defect repair
  • Author should provide a "walkthrough" of relevant code changes using a GitHub code review comment process
  • If any diffs are expected, author must demonstrate they are justified using plots and descriptions
  • If changes fix a defect, the fix should be demonstrated in plots and descriptions
  • If any defect files are updated to a more recent version, upload new versions here or on DevSupport
  • If IDD requires transition, transition source, rules, ExpandObjects, and IDFs must be updated, and add IDDChange label
  • If structural output changes, add to output rules file and add OutputChange label
  • If adding/removing any LaTeX docs or figures, update that document's CMakeLists file dependencies
  • If adding/removing any output files (e.g., eplustbl.*)
    • Update ..\scripts\Epl-run.bat
    • Update ..\scripts\RunEPlus.bat
    • Update ..\src\EPLaunch\ MainModule.bas, epl-ui.frm, and epl.vbp (VersionComments)
    • Update ...github\workflows\energyplus.py

Reviewer

  • Perform a Code Review on GitHub
  • If branch is behind develop, merge develop and build locally to check for side effects of the merge
  • If defect, verify by running develop branch and reproducing defect, then running PR and reproducing fix
  • If feature, test running new feature, try creative ways to break it
  • CI status: all green or justified
  • Check that performance is not impacted (CI Linux results include performance check)
  • Run Unit Test(s) locally
  • Check any new function arguments for performance impacts
  • Verify IDF naming conventions and styles, memos and notes and defaults
  • If new idf included, locally check the err file and other outputs

@joseph-robertson joseph-robertson self-assigned this Apr 28, 2026
@joseph-robertson joseph-robertson added Documentation Related primarily on the LaTeX-based EnergyPlus documentation Defect Includes code to repair a defect in EnergyPlus labels Apr 28, 2026
Comment on lines 228 to +241
\item
HVAC,Average,Fan Electricity Rate {[}W{]}
HVAC,Average,Fan Electricity Rate {[}W{]}
\item
HVAC,Sum,Fan Electricity Energy {[}J{]}
\item
HVAC,Average,Fan Rise in Air Temperature {[}deltaC{]}
\item
HVAC,Average,Fan Air Mass Flow Rate {[}kg/s{]}
\item
HVAC,Sum,Fan Electricity Energy {[}J{]}
HVAC,Average,Fan Heat Gain to Air {[}W{]}
\item
HVAC,Average,Fan Rise in Air Temperature{[}deltaC{]}
HVAC,Average,Fan Runtime Fraction Speed {[]}
\item
HVAC,Average,Fan Air Mass Flow Rate{[}kg/s{]}
HVAC,Average,Fan Runtime Fraction Speed <\#> {[]}
Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Fan:SystemModel

Copy link
Copy Markdown
Collaborator

@rraustad rraustad Apr 28, 2026

Choose a reason for hiding this comment

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

Actually this is for a fan with speeds > 1, which is only for the system fan. Otherwise only Fan Runtime Fraction is reported. Reports that are only for a specific coil type, or for components with speeds, etc., would be highlighted as such. But I could live with this if there are no other changes. You could actually put a ", or" at the end of the previous Fan Runtime Fraction {[]}, or to avoid having to delineate this subtlety further. For example in the coil model these reports are delineated as:

Image

Comment on lines +331 to +334
\item
HVAC,Average,Fan Air Mass Flow Rate {[}kg/s{]}
\item
HVAC,Average,Fan Heat Gain to Air {[}W{]}
Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Fan:ConstantVolume

Comment on lines +432 to +443
\item
HVAC,Average,Fan Electricity Rate {[}W{]}
\item
HVAC,Average,Fan Rise in Air Temperature {[}deltaC{]}
\item
HVAC,Sum,Fan Electricity Energy {[}J{]}
\item
HVAC,Average,Fan Air Mass Flow Rate {[}kg/s{]}
\item
HVAC,Average,Fan Heat Gain to Air {[}W{]}
\item
HVAC,Average,Fan Runtime Fraction {[]}
Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Fan:OnOff

Comment on lines +591 to +594
\item
HVAC,Average,Fan Air Mass Flow Rate {[}kg/s{]}
\item
HVAC,Average,Fan Heat Gain to Air {[}W{]}
Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Fan:VariableVolume

Comment on lines 682 to 693
\item
HVAC,Average,Fan Electricity Rate {[}W{]}
\item
HVAC,Average,Fan Rise in Air Temperature{[}deltaC{]}
HVAC,Average,Fan Rise in Air Temperature {[}deltaC{]}
\item
HVAC,Sum,Fan Electricity Energy {[}J{]}
\item
HVAC,Average,Fan Air Mass Flow Rate {[}kg/s{]}
\item
HVAC,Average,Fan Heat Gain to Air {[}W{]}
\item
HVAC,Average,Fan Unbalanced Air Mass Flow Rate {[}kg/s{]}
Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Fan:ZoneExhaust

Comment on lines +1172 to +1175
\item
HVAC,Average,Fan Air Mass Flow Rate {[}kg/s{]}
\item
HVAC,Average,Fan Heat Gain to Air {[}W{]}
Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Fan:ComponentModel

Comment on lines +260 to +262
\paragraph{Fan Heat Gain to Air {[}W{]}}\label{fan-heat-gain-to-air-fansysmodel}

This output contains the average power in Watts lost to the process air stream for the time interval being reported.
Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Output "Fan Heat Gain to Air" is new here (Fan:SystemModel), as well as for all other fan types. This description should be double-checked.

Comment on lines +264 to +270
\paragraph{Fan Runtime Fraction {[]}}\label{fan-runtime-fraction-fansysmodel}

This output contains the fraction of time that this fan operated for the timestep being reported. Applies only for single-speed fans.

\paragraph{Fan Runtime Fraction Speed <\#> {[]}}\label{fan-runtime-fraction-speed-fansysmodel}

This output contains the fraction of time that this fan operated at each speed for the timestep being reported. The overall runtime fraction is the sum of the runtime fractions for each speed. Applies only for two-speed and multi-speed fans.
Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

These "Fan Runtime Fraction (Speed <#>)" output descriptions are also new and should be double-checked.

Comment on lines 228 to +241
\item
HVAC,Average,Fan Electricity Rate {[}W{]}
HVAC,Average,Fan Electricity Rate {[}W{]}
\item
HVAC,Sum,Fan Electricity Energy {[}J{]}
\item
HVAC,Average,Fan Rise in Air Temperature {[}deltaC{]}
\item
HVAC,Average,Fan Air Mass Flow Rate {[}kg/s{]}
\item
HVAC,Sum,Fan Electricity Energy {[}J{]}
HVAC,Average,Fan Heat Gain to Air {[}W{]}
\item
HVAC,Average,Fan Rise in Air Temperature{[}deltaC{]}
HVAC,Average,Fan Runtime Fraction Speed {[]}
\item
HVAC,Average,Fan Air Mass Flow Rate{[}kg/s{]}
HVAC,Average,Fan Runtime Fraction Speed <\#> {[]}
Copy link
Copy Markdown
Collaborator

@rraustad rraustad Apr 28, 2026

Choose a reason for hiding this comment

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

Actually this is for a fan with speeds > 1, which is only for the system fan. Otherwise only Fan Runtime Fraction is reported. Reports that are only for a specific coil type, or for components with speeds, etc., would be highlighted as such. But I could live with this if there are no other changes. You could actually put a ", or" at the end of the previous Fan Runtime Fraction {[]}, or to avoid having to delineate this subtlety further. For example in the coil model these reports are delineated as:

Image

\paragraph{Fan Runtime Fraction Speed <\#> {[]}}\label{fan-runtime-fraction-speed-fansysmodel}

This output contains the fraction of time that this fan operated at each speed for the timestep being reported. The overall runtime fraction is the sum of the runtime fractions for each speed. Applies only for two-speed and multi-speed fans.

Copy link
Copy Markdown
Collaborator

@rraustad rraustad Apr 28, 2026

Choose a reason for hiding this comment

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

The overall runtime fraction is the sum of the runtime fractions for each speed.

That doesn't sound right. A fan operating at speed 2 would have RTF between 0 and 1 (e.g., 0.5) where speed 1 RTF should be 1 (I didn't verify that). The overall runtime fraction would not be 1.5. RTF would be 1 for speed 1 and 0.5 for speed 2 but I don't think it's right to say the overall RTF is 1.5.

Copy link
Copy Markdown
Collaborator Author

@joseph-robertson joseph-robertson Apr 28, 2026

Choose a reason for hiding this comment

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

On the "Fan Runtime Fraction Speed" comment above, that's a good idea. I had put the subtlety delineation below the item list -- in the descriptions themselves. But yes, we could also highlight the difference directly in the item list.

On the overall system RTF issue, I don't believe that's the behavior currently happening. Here is some sample hourly output for:

Fan:SystemModel,
  air source heat pump supply fan,        !- Name
[...]
  4,                                      !- Number of Speeds
  0.712,                                  !- Speed Flow Fraction 1
  0.39293,                                !- Speed Electric Power Fraction 1
  0.728,                                  !- Speed Flow Fraction 2
  0.4177,                                 !- Speed Electric Power Fraction 2
  1,                                      !- Speed Flow Fraction 3
  1,                                      !- Speed Electric Power Fraction 3
  1,                                      !- Speed Flow Fraction 4
  1;                                      !- Speed Electric Power Fraction 4
image

I don't ever see greater than 1 for a timestep.

Copy link
Copy Markdown
Contributor

@shorowit shorowit Apr 28, 2026

Choose a reason for hiding this comment

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

Agree with @joseph-robertson. Unless it's somehow specific to how we set up our residential models, we always see the sum of individual speed RTFs <= 1.

Also, it'd be awfully nice if there was an overall system RTF output variable. I know that's scope creep, but it would simplify things for us.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Right. It's not the sum of the RTF's, it's the max. Basically means the fan operates the entire time step but the upper speed is cycling.

Copy link
Copy Markdown
Contributor

@shorowit shorowit Apr 29, 2026

Choose a reason for hiding this comment

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

No, the sum is always less than or equal to 1. Look at the right-most column here:

image

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

(In case it's confusing.... speeds 2/4/6 are heating and speeds 1/3/5 are cooling, so you're only seeing the heating speeds operating above.)

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

I see, it's reporting the fraction of the time step that each speed is active.

As a FYI, this is technically a part load ratio, where RTF = PLR / PLF.

    thisDXCoil.CoolingCoilRuntimeFraction = PartLoadRatio / PLF;

In UnitarySystem the PartLoadRatio, and 1 - PartLoadRatio, are passed to the fan.

Real64 FanPartLoadRatio = PartLoadRatio;

if (SpeedNum > 1) {
    if ((state.dataUnitarySystems->CoolingLoad && this->m_MultiOrVarSpeedCoolCoil) ||
        (state.dataUnitarySystems->HeatingLoad && this->m_MultiOrVarSpeedHeatCoil)) {
        state.dataUnitarySystems->m_runTimeFraction1 = FanPartLoadRatio;
        state.dataUnitarySystems->m_runTimeFraction2 = 1.0 - FanPartLoadRatio;
    } else {
        state.dataUnitarySystems->m_runTimeFraction1 = FanPartLoadRatio;
        state.dataUnitarySystems->m_runTimeFraction2 = 0.0;
    }

 state.dataFans->fans(this->m_FanIndex)
    ->simulate(state,
               FirstHVACIteration,
               state.dataUnitarySystems->FanSpeedRatio,
               _, // Pressure rise
               _, // Flow fraction
               state.dataUnitarySystems->m_massFlow1,
               state.dataUnitarySystems->m_runTimeFraction1,
               state.dataUnitarySystems->m_massFlow2,
               state.dataUnitarySystems->m_runTimeFraction2,
               _);

@github-actions
Copy link
Copy Markdown

⚠️ Regressions detected on ubuntu-24.04 for commit 582355f

Regression Summary
  • ESO Small Diffs: 706
  • Table Small Diffs: 392
  • MTR Small Diffs: 524
  • Table String Diffs: 177
  • EIO: 397
  • JSON Small Diffs: 2
  • ZSZ Small Diffs: 72
  • Table Big Diffs: 36
  • ERR: 14
  • MTR Big Diffs: 2
  • ESO Big Diffs: 10
  • SSZ Small Diffs: 13
  • EDD: 4
  • JSON Big Diffs: 2

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Defect Includes code to repair a defect in EnergyPlus Documentation Related primarily on the LaTeX-based EnergyPlus documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Fan:SystemModel outputs not documented in I/O Ref

4 participants