Nearly every energy modeler on the planet will ask at some point, “How do I solve unmet hours?”
Well, the rookie question would be “Which setting do I change to get rid of unmet hours?” or even better “Which button do I press to fix unmet hours?”
Sometimes a little naiveté is a good thing, but not when solving unmet hours. Experience matters and so does diligence. Being neurotic helps too. That’s where I come in.
In the past decade, I personally have taken unmet hours questions on over 1,000 files. There were only two times that I could not solve an unmet hours problem without “cheating” (such as tip #5 in our 6 Tips for Unmet Hours blog).
Of my two “failures”, one was a bug. The other instance was because the model was so messy that I couldn’t use my standard method. So, >99.9% effective. Here we go:
First, backup your file in it's exact state. Backup all your libraries too.
Always check these settings first
- Are there driftpoints and if so, is there an Optimum Start schedule?
- Is the supply air volume set? If so, is the supply air temperature?
- Are the misc load/ventilation/infiltration schedules setup according to conventional methods (refer to trainings)?
- Is anything scheduled unconventionally?
These 4 items often fix the problem and can be changed in 1 iteration because they follow best practices. However, if solving unmet hours only required four steps, it wouldn’t be such a big problem (caveat - “Overscheduling” is often a contributing problem that is hard to fix... custom schedules on things like coils, fans, and equipment)
To continue with my method:
Most of the time, unmet hours occur in larger buildings. This is simply because of statistics and the exponential complexity of energy models as they become larger. Large buildings also take a long time to calculate, and solving unmet hours requires many iterations. That takes us to step 1.
Step 1: Simplify the project
Objective: Minimize runtime, and identify where problems occurs (room, zone, system, or plant).
Look at your reports (in TRACE 700, it is the system temperature profile)
Identify a set of problematic rooms and find a common system that contains a number of these. Make a note of commonalities among these rooms. For example, the unmet hours all occur at night, or they all start at 8 am and run through 2 pm.
Save the file as, and then delete everything but the said system.
You should now have a file that runs in a fraction of the time and is therefore much easier to troubleshoot. Run the file and see if the rooms have a similar number of unmet hours. It is common that they will be different (i.e. 357 unmet hours might become 420, or might become 220, but we are looking for something in the same order of magnitude)
If the unmet hours mysteriously have vanished at this point… we need to note this and we learn that the problem is probably due to another system and/or problematic system interaction! Go back to your original file and start step 1 again, but try to find a problematic system.
Step 2: Reset the system and run the file
Objective: Eliminate variables.
In many cases, the unmet hours are due to system level settings.
Are you running with a VAV system with all the bells and whistles such as (Economizer, Energy Wheel, Static Reset, System level demand control ventilation, etc etc). Even if you don’t think you did anything special, save the file as, create the same system from defaults, assign all the rooms to that system and rerun the file.
If the unmet hours went away, you will know that the problem is at least partially due to your airside system. You can also try changing the system type as well (which would indicate that maybe you have poor zoning).
One of the main problems at the system level is that the supply air temperature is too constrained. When you reset a system, it frees up that variable. Of course, there are many system settings but it is unlikely that you set more than 10-15 of them. Once you reset, you can start re-adding your initial settings to see which setting triggers the unmet hours. Since the file now runs faster, this shouldn’t take too long. [If you did change more than 10-15 settings, you A) are an expert and probably have your own method OR B) are a very zealous newbie in desperate need of my help.]
Step 3: Reset the plant
Objective: Process of elimination, decrease simulation time
If resetting the system didn’t fix unmet hours, try doing the same thing with the plant. Create a new plant using all of the software defaults and use that plant instead.
This usually doesn’t fix unmet hours, but it can and it only takes a moment to change. It also will probably boost the speed of your simulations.
Step 4: Give Each space it’s own zone.
Objective: Eliminate over/undersizing and elude reality
It’s not uncommon for the zoning to cause unmet hours. In reality (though not in simulations), most unmet hours are caused by zoning. Take a house for instance; some rooms will differ by 10 degrees. Of course, sometimes this is life and we have to accept it. You don’t get to live by that mantra when simulating, even though ASHRAE 90.1 allows for you to explain why unmet hours occur. I’d guess that too many people rely on “explaining it away” and therefore, the rating authority scarcely allows the “upstairs bedroom” argument.
Depending on your software, you might not have to reset all of your zones, or there might be a ruleset that allows this. OpenStudio, for instance, has a ruleset to make one zone per room. On the other hand TRACE 700, allows you to specify the coil and/or the thermostat to the room. You can switch these to the room level first but you may eventually need to set the file so that each room is its own zone (adequate training helps here).
If the problem turns out to be zoning, it is very common that the zoning issue results in unmet hours in tiny rooms, such as closets and storage areas. Consider merging these areas into 1 room. For instance, if a classroom has a tiny storage area, simply add the storage area to the classroom.
There are a number of other reasons why tiny rooms cause unmet hours. Naturally, statistics is part of it, but tiny rooms don’t really operate by standard assumptions that we assume in commercial building simulations and such rooms should be imbibed by larger rooms when creating thermal blocks. The topic of small rooms and energy modeling is actually pretty neat but requires a very long discussion!
Step 5: Reset rooms settings
Objective: Eliminate variables
Resetting a room is tricky because their aren’t really “default” settings that are “good”. I have some additional tricks for this, but that will require a demo.
Take some of your “problem rooms” and reset them to default schedules and settings. Set the supply air to auto-calculate, the drift points to be equal, and remove any non-standard provisions you have to fenestration and opaque assemblies (like anything that would be considered "superb", "lousy", "weird", or "a workaround"). Delete any massive plenums that may exist.
Step 6: Check your calculation settings
Objective: Quality Control. Do something to prevent yourself from smashing your computer.
Okay, so if you haven’t made any headway in the first 5 steps. You are probably feeling very angry. Let’s take a moment and make sure we didn’t do something really stupid. Note that you would probably know if you had changed something so significant, but maybe not.
Ensure that if you have an enthalpy wheel, you are not resizing your coils to account for it (even though there is nothing inherently wrong with that). Check that your weather file has normal entries and that you have heat going through the walls appropriately. These setting vary by software, but it isn’t unheard of that somebody switches a setting during load design and then forgets to change it back during the energy modeling phase!
Step 7: Pick a problem room and examine it hourly
Objective: Find the esoteric idiosyncrasy. Be the most Neurotic modeler in the room.
Find your room with the most unmet hours. Take a look at it hourly. In TRACE 700, that starts with the Temperature reports, then the visualizer, then calling in the mercenary support (i.e.) not supported by CDS. I’ve built my own cavalry report for this. See here:
Would you like to go over this in TRACE 700 and cover more? I will be kicking off the new year by giving some advanced tutorials, starting with the ever popular demo of finding and fixing Unmet hours!
Additionally, I can't add it as a step because it gets very complicated, but schedules regarding internal loads can often be manipulated to reduce unmet hours. This falls in line with best practices.
Ultimately, a very skilled user doesn't need to use a stepwise method, but it certainly helps to have a consistent method and it always help to reduce simulation times.
Got a tip? Post it in the comments.