Open TiejunWu opened 4 years ago
@lgu1234 After our discussion and some further investigation, I have the following proposals and explanation.
Instead of adding a new System Outdoor Air Method option in "Controller:MechanicalVentilation", can we do the following?
In figuring out the ZoneMaxCO2, can we add another condition in this if statement to check the "Maximum Carbon Dioxide Concentration Schedule Name" of the "ZoneControl:ContaminantController" object, if there is a schedule specified, then use the value specified in the schedule, otherwise calculate it based on occupancy. I am proposing this since this field is not used by any other calculations.
In calculating the ZoneOAMax and ZoneOAMin, add an if statement here to check if there is a schedule specified in the "Proportional Control Minimum Outdoor Air Flow Rate Schedule Name" field of the "DesignSpecification:OutdoorAir" object. If that field is empty, then use the current equations to calculate the ZoneOAMax and ZoneOAMin. If there is a schedule specified, then use ZoneOAMax = OAVolumeFlowRate and ZoneOAMin = ZoneOAMax * ScheduleValue. I am proposing this change since the Minimum OA Flow Schedule is not currently used by any other calculations in EnergyPlus.
With the above two changes, we have an alternative approach to get the 3 of the 4 values used in this diagram. The only other value is ZoneMinCO2, we still follow the same logic to first check the Minimum CO2 Concentration Schedule Name in ZoneControl:ContaminantController object, if its not empty, then use the schedule value, otherwise use outdoor air CO2 concentration.
I do not know enough about the inner working mechanism of EnergyPlus to propose a proper solution. I guess that the responsibility lies in the "AirTerminal:SingleDUct:Mixer" object, if we assume there is a damper at the Primary Air Inlet of the mixer, it should function similar to a VAV Terminal, then it may be able to draw the required OA flow from the AirLoopHVAC:ZoneSplitter or SupplyPlenum rather than just getting an air flowrate proportional to its design flow rate ratio in the DOAS air loop.
I made the VRF/DOAS configuration of Space2-1 and Space4-1 to be the same (both have the Mixer at the Inlet side of the Zone), now the only difference between Space2-1 and Space 4-1 is the VRF terminal unit design flow rate (Space2-1 : 0.44 m3/s; Space4-1: 0.55 m3/s). However, in the result, I still see the difference in the space CO2 concentration. Then I tried to change the configuration of the two zones to DOAS directly to Zone and set the outdoor air flow rate for these two zones to 0. I still see the difference in zone CO2 concentration. At this time I realized that the VRF terminal unit recirculation air CO2 concentration is 1 timestep lagged behind the zone air CO2 concentration. For example, the following diagram shows the first time step with occupancy (8:10 AM), the VRF recirculation air CO2 concentration is 400 ppm, which is the zone CO2 concentration from the last timestep. Because Space4-1 has higher VRF terminal unit air flow rate, when the zone CO2 balance is calculated, the zone CO2 concentration is getting diluted more by the higher VRF recirculation flow rate in Space 4-1. So that in the morning hours when Zone CO2 is keep increasing, space4-1 CO2 concentration is lower than Space2-1, then in the afternoon, when people are leaving, Zone CO2 overall trend is to go lower, then the high recirculation flow rate in Space4-1 combined with the time lag, will cause Space4-1 CO2 concentration to be higher than Space 2-1. So my conclusion is that the difference in CO2 concentration is caused by the timestep lag. This may be inherent to the current EnergyPlus calculation flow. For most cases, the impact may not be significant unless the recirculation flow rate is very high.
@TiejunWu Thanks for providing possible solutions. Here is my personal thought related to your approach to address item 1.
We have very complicated OA calculation procedures with lot of "if then" statements. From coding point of view, it is easy to implement. However, it is very complicated for users to remember what you expect, even though it is documented clearly in References, I would like to suggest to add a new Outdoor Air Method, so that users know what is expected with each method directly.
I need time to think of Item 2 and 3.
@lgu1234 Thanks for the feedback. I would suggest that we add a new Outdoor Air Method named "ProportionalControlBasedOnSpecifiedCO2andOAFlowRange". Its a rather long name, but that should be clear about what input expected (minCO2, maxCO2, DesignOAFlow, MinOAFlowRatio). Then we can add that linear relationship between CO2 concentration and zone ventilation air flow rate in the reference document.
On the other hand, I was a little curious about those two fields that are not currently used in the code:
the "Maximum Carbon Dioxide Concentration Schedule Name" of the "ZoneControl:ContaminantController" object,
"Proportional Control Minimum Outdoor Air Flow Rate Schedule Name" field of the "DesignSpecification:OutdoorAir" object.
What I found was that in Section 16.2.3 of the EnergyPlus Engineering Reference (Page 1030 for Version 9.4, I am attaching below), it actually mentioned how these two fields should be used in the calculation. On this page:
The Design Outdoor Air Flow Rate is determined in the DesignSpecification:OutdoorAir object, so it should allow whatever method specified (Flow/Person, flow/Area, Flow/Zone, AirChanges/Hour, Sum, Maximum, IndoorAirQualityProcedure?)
Equation 16.115 uses the "Proportional Control Minimum Outdoor Air Flow Rate Schedule Name"
In the last sentence, it mentioned that if "Maximum Carbon Dioxide Concentration Schedule Name" is entered, it should be used.
From this it actually looks like a code defect that should be fixed with no need to add additional documents.
@TiejunWu You mentioned: On the other hand, I was a little curious about those two fields that are not currently used in the code:
the "Maximum Carbon Dioxide Concentration Schedule Name" of the "ZoneControl:ContaminantController" object,
"Proportional Control Minimum Outdoor Air Flow Rate Schedule Name" field of the "DesignSpecification:OutdoorAir" object.
Here is what I found:
The "Maximum Carbon Dioxide Concentration Schedule Name" is a field of ZoneControl:ContaminantController. the following statement assigns the field as a variable in GetZoeContaminantSetPoint of ZoneContaminantPredictorCorrector module:
ContaminantControlledZone(ContControlledZoneNum).ZoneMaxCO2SchedIndex = GetScheduleIndex(cAlphaArgs(6));
Then:
Zone(ContaminantControlledZone(ContControlledZoneNum).ActualZoneNum).ZoneMaxCO2SchedIndex =
ContaminantControlledZone(ContControlledZoneNum).ZoneMaxCO2SchedIndex;
The ZoneMaxCO2 is obtained from the schedule value in MixedAir module.
} else if (curZone.ZoneMaxCO2SchedIndex > 0.0) {
ZoneMaxCO2 = GetCurrentScheduleValue(curZone.ZoneMaxCO2SchedIndex);
} else {
The Proportional Control Minimum Outdoor Air Flow Rate Schedule Name is a field of DesignSpecification:OutdoorAir. The Schedule Pointer is assigned in ProcessInputOARequirements of the SizingManager module:
OARequirements(OAIndex).OAPropCtlMinRateSchPtr = GetScheduleIndex(Alphas(4));
Then, the pointer is transfer to VentilationMechanical in GetOAControllerInput of the MixedAir module:
thisVentilationMechanical.OAPropCtlMinRateSchPtr(ventMechZoneNum) = curOARequirements.OAPropCtlMinRateSchPtr;
The ZoneOAMin uses the schedule value as follows in CalcMechVentController:
if (this->OAPropCtlMinRateSchPtr(ZoneIndex) > 0) {
ZoneOAMin = ZoneOAMax * GetCurrentScheduleValue(this->OAPropCtlMinRateSchPtr(ZoneIndex));
} else {
@lgu1234 I ran some test with the example file, just modified the two schedules, and the result came out exactly same as the original model. Here are the 3 models.
This comparison shows the DCV control did not use those two schedules in the example. Can you modify the example file to a configuration that these two schedule values are used?
Issue overview
With the EnergyPlus example DOAToVRF.idf, I tried to modify this file to model demand controlled ventilation with System Outdoor Air Method set to "ProportionalControlBasedOnDesignOARate". However, I see the following problems:
This is different from what is specified in the "Controller:MechanicalVentilation" object, where the System Outdoor Air Method is "ProportionalControlBasedOnDesignOARate". I would expect that the "Outdoor Air Method" field in the "DesignSpecificationOutdoorAir" object can be any method, since it is just used to figure out the Zone Design Outdoor Air Flow Rate. Then in actual operation, the outdoor air request from each zone should be calculated based on its CO2 concentration and the following curve:
In this graph, the base ventilation rate is specified using the schedule "ZoneMinimumVentRatio" in the "Proportional Control Minimum Outdoor Air Flow Rate Schedule Name" field. The lower bound and upper bound of CO2 concentration is specified by schedules in the "Minimum Carbon Dioxide Concentration Schedule" and the "Maximum Carbon Dioxide Concentration Schedule" fields.
Then the requested OA flow rate should be just summed together to be the system outdoor air flow rate at that timestep.
So here the question is: Can EnergyPlus be modified to allow "Outdoor Air Method" in DesignSpecification:OutdoorAir object to be "Sum", "Flow/Area", "Flow/Zone", "Flow/Person", "AirChanges/Hour" or "Maximum"?
Looks like the DOAS supply air is split at the zone splitter to the primary air inlet of the "AirTerminal:SingleDuct:Mixer" proportionally based on the ratio of design outdoor air flow rate for each zone, this is kind of assuming the zone dampers are at fixed position. Is there any option to split the DOAS air proportionally based on the current time step requested OA flow for each zone?
A side note, when I first added CO2 concentration simulation to the original example, I see that at the same timestep, Zone 2-1 and Zone 4-1 have different CO2 concentration. Given that those two zones have exactly the same Floor area, internal Volume, Occupancy, infiltration air flow rate and Outdoor air flow rate, I would expect they have same CO2 concentration at each time step. See the IDF file here. Is this a sign that there is a potential problem with the zone CO2 balance calculation?
Details
Some additional details for this issue (if relevant):
Checklist
Add to this list or remove from it as applicable. This is a simple templated set of guidelines.