lbl-srg / modelica-buildings

Modelica Buildings library
256 stars 159 forks source link

Add zone load and HVAC system auto-sizing to Spawn #3866

Open mwetter opened 5 months ago

mwetter commented 5 months ago

This issue is to update the Spawn coupling to allow obtaining sizing information for zone HVAC and system HVAC, as described in https://lbl-srg.github.io/soep/softwareArchitecture.html

The implementation on the EnergyPlus side will be done after upgrading to the latest version of EnergyPlus. To progress on the Modelica implementation, it will initially be done in the source code in the package EnergyPlus_9_6_0 and then moved to EnergyPlus_xxx after the Spawn binaries and models are updated.

kbenne commented 1 month ago

@mwetter here are a couple of things to discuss.

  1. We have defined variables sizZon.tCoo and sizZon.tHea. I'd like us to think about what the reported time represents. Presumably it should be elapsed seconds from 00:00 on January 1st, but the question is from what date and/or weather period. As it is now, there can be many design days and the EnergyPlus sizing algorithm will find the peak loads among those days. Do we need a mechanism to indicate which design day resolved as the greatest load. Without something like this the reported time will lack important context. A different route might be to contstrain the sizing algorithm to the weather file only, but I think that might be limiting.
  2. We have some question marks in the current design documentation related to outdoor air. I think we can support the EnergyPlus design specification objects, but in order for it to mean anything, I would need to add a mechanism such as Ideal Air Loads to actually deliver air.
mwetter commented 1 month ago

Regarding 1, the time should be seconds since 0:00 on January 1, or the start of the day if a design day causes the highest load. The associated outdoor conditions are to be reported as shown in the table in section https://lbl-srg.github.io/soep/softwareArchitecture.html#coupling-of-the-envelope-model This way all necessary information for a complete sizing is known (as far as I can tell).

Regarding 2, zones should have no outdoor air exchange during the sizing; this needs to be added on the Modelica side (as the HVAC model determines whether for example a zone is over-pressurized and has no infiltration).

kbenne commented 1 month ago

For item 1, I believe the, "or the start of the day if a design day causes the highest load" answers my question. Though, I'm still unsure about how this information will be used and if we're giving what is needed. How would someone know if the reported time was offset from January 1st (presumable because design load was driven from the weather file) or alternatively the reported time is offset from one of the design days? I don't see how a client would know, and if they don't then how is the information useful?

Another nuance about item 1, is that when sizing from the weather file using SizingPeriod:WeatherFileDays, you still prescribe a specific day in the weather file as the sizing period. Considering this, would we perhaps want to report time from the start of the day, even if that day is one of the days in the weather file? That would bring some consistency to how we are proposing to report time in the case of RunPeriod:DesignDay.

On item 2. It seems like we are going to report sizes that are too low if we do not include some kind of ventilation in the sizing run. Is the idea that additional capacity will be added on the Modelica side on top of the load reported by EnergyPlus?