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

Hybrid Model Internal Thermal Mass Calculation Issues #10508

Open
1 of 3 tasks
mjwitte opened this issue May 16, 2024 · 0 comments
Open
1 of 3 tasks

Hybrid Model Internal Thermal Mass Calculation Issues #10508

mjwitte opened this issue May 16, 2024 · 0 comments

Comments

@mjwitte
Copy link
Contributor

mjwitte commented May 16, 2024

Issue overview

User file with HybridModel:Zone reports multipliers of 1.0.
image

Here's the helpdesk ticket response which summarizes the problems.


​This was interesting.
I ran your file in the debugger.

  1. All capacity multiplier calculations were skipped, because SumSysMCpT (the system flow times supply temp) was never zero.
    If I understand correctly, the system should be off during setback until the zone cools down. The Unitary systems were both set to continuous fan operation, so I changed this in both systems to be always off:
    AirLoopHVAC:UnitarySystem
    Always Off Discrete, !- Supply Air Fan Operating Mode Schedule Name

  2. The calculations are also skipped if the change in measured temperature from the previous timestep is <0.05C.

  3. With cycling fan, now the block that calculates the capacity multiplier was entered, but the calculations were still skipped, because of this line:
    if ((MultpHM < 1.0) || (MultpHM > 30.0) MultpHM = 1.0;
    I was seeing values here of 40-60, so that says your model has much less capacitance than the actual measured building.

  4. I changed the code to eliminate the >30 condition and I still didn't get anything other than 1.0 in the table output.
    That's because the code is poorly structured so that then end of simulation average calculation only happens if the system is off during the last timestep of the hybrid simulation.
    Fixing that results in reported multiplers:

image

​The Engineering Reference section about "Inverse algorithm for zone capacitance multiplier":
a) Discusses system on vs system off, but it implies that calculations are done for both conditions.
b) Mentions the 0.05C condition.
c) Does not mention the limits on the multiplier.

So, how can you get results with the current release verrsion?

  1. Set the unitary systems to cycling fan.
  2. Force the system to be off the last hour the the final day so that the average will be calculated.
  3. Add some internal mass so that the multiplier won't be >30.

I will post a new issue to get the documentation fixed and to fix the code. I don't know where the >30 limit comes from, but I think it should be eliminated but throw a warning if the average result is >30. I will need to consult the hybrid model developer about that.


  1. Pertinent code is in ZoneTempPredictorCorrector::InverseModelTemperature.
  2. Code needs fixing to calculate average regardless of system operation.
  3. Suggest that the >30 limit be removed but perhaps generate a warning if the average result is >30. Try to find out why 30 was chosen as a limit?
  4. I/O Ref and Engineering ref need updates to explain limitations.

Details

Some additional details for this issue (if relevant):

  • Version of EnergyPlus 23.2 (same results in 24.2)
  • Helpdesk ticket number 16643

Checklist

Add to this list or remove from it as applicable. This is a simple templated set of guidelines.

  • Defect file attached:
    10508-HybridModel_ThemalMass.zip

  • Ticket added to Pivotal for defect (development team task)

  • Pull request created (the pull request will have additional tasks related to reviewing changes that fix this defect)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant