Today we are discussing internal loads and schedules and it's something that is a lot
more focused than what we've been working on and EP3 has a nifty schedule editor and
I was just talking to Karen about some really neat other schedule features that she will
show us in EnergyPlus.
One thing before she gets started that I want to mention is that I review a lot of files
and one of the problems I see especially in beginner models is that people use too many
schedules and they cause various conflicts and so we really want to keep our schedules
all operating together and not lose control over what we're modeling based on trying to
do what I call over-scheduling.
So I hope that ties into what Karen is going to teach us but that's relevant to eQuest
reviews that I do and I was just working on one last night that had some conflicting
schedules so it's very common.
With that said, let's turn this over to Karen and we're going to have a much more task oriented
presentation today.
Great.
So I'd just like to start as always by seeing if there are any questions that have not been
answered over email or on the forum.
We can just open with that if there is any specific and focused how do I draw X thing.
We can open SketchUp and answer those questions before we get started with internal loads
and schedules.
Okay, not seeing any questions here.
I have to disable my camera as I look back and forth to the Q&A.
With this giant monitor I mentioned I look super goofy.
Okay, nothing's coming in.
One just joined us and so we have most of the class here.
Great.
Okay, so let's get started with day three, internal loads and schedules.
So we're starting with internal loads and again we're going to talk a little bit about
energy plus internal load objects, familiarize you with the energy plus structure for these
objects.
And then we're going to dig into some details on some workflows related to internal loads
and later on in the day we will talk in a lot of detail about creating custom schedules.
So once again, energy plus gives us a ton of objects and there are only a couple that
we use really regularly.
So there are also some objects that don't really belong in this category.
So energy plus in the IDF editor will give everything a category and so there's some
objects in here that are maybe not completely internal load type objects.
So we're not going to get distracted.
We're going to concentrate principally on these objects.
So we have people, which is basically how we describe our occupancy, lights, electric
equipment, gas equipment, and then other equipment which has a bunch of different options for
different energy uses.
So all of those types of equipment, people, lights, electric equipment, gas equipment
and other equipment, they all have a very similar structure.
So this is what it looks like in the IDF editor for a people object.
There's a name field with a unique name, a zone, zone list, space, or spaceless name.
So we're going to talk about this in a lot more detail.
You have the option to assign all of these internal load objects to either a zone, a
space, or a collection of zones or spaces.
Then there's a schedule.
Here we have a calculation method selection.
So there are a couple of different ways that we can define the number of people in a space.
So we can just give it a number, a number of people.
We can define how many people per floor area, in this case we're in international units,
so that's per meter squared, or we can say we want to define floor area per person.
So up here we need to select the calculation method that we're using.
And it's similar in lighting.
We have that similar for lighting, electric equipment, gas equipment, and other equipment
where we have the option to specify the total load, the load per square foot, or the square
foot per load.
So we're going to choose the calculation method that aligns with the type of units we want
to use.
So this must match the calculation method.
And then there are a whole bunch of other fields that are unique to this particular
object.
We're not going to go into all of these other fields in a lot of detail.
For a person object, you can set a radiant and sensible heat fraction, and there's also
this activity level schedule name, which is useful if you want to do thermal comfort analysis
for your simulation, and this activity level is also related to the amount of heat that's
generated because a human body that is resting gives us a vastly different amount of heat
than a human body that is, say, playing basketball in a gymnasium.
So in EP3, it looks very similar, and now we're going to talk about workflows.
So using zone lists and space lists to manage those internal loads.
All right, what are zone lists and space lists?
It's simply a list of zones or spaces that can be used in place of a single zone or a
single space, and it can be used with many energy plus objects.
So people, lights, electric equipment, other equipment, gas equipment, and then zone lists.
I think there are a couple other places in energy plus that zone lists and space lists
can also be used.
Oh, infiltration, zone sizing objects, thermostats.
There are a lot of places that can reference a zone list as well.
So this is the format, so we have the object type, it's a zone list, we have a name, and
then we just have a list of zones.
One word of caution is that I've noticed that zone lists and space lists are not often used
in energy plus example files.
So this is a workflow that we've developed and that we recommend, but if you're looking
at examples on how to model internal loads, you may not see zone lists and space lists
in example files.
I don't know why they've done that, it's just an observation.
And without zone lists and space lists, you end up having to create individual lighting
people, electric equipment, other equipment, gas objects, and you have to create one for
each volume.
Okay, in EP3, when you are looking at a zone list in the dialogue, if you have the building
geometry showing, it will actually highlight all of the zones.
So you get a very quick visual representation of what parts of the building are included
in that zone list.
And if we switch, we get a visual representation that these are our circulation zones.
All gives us all of our zones, we can see we have their elevator zones.
So we like to give you as much context clues to understand your model as possible.
What is happening underhood with energy plus when zone lists and space lists are used.
Okay, so here we have a zone list, it's the same residential circulation zone list with
three different zones.
We have a lighting object, which references that zone list.
We have a schedule.
Our unit type is watts per area.
And then we have a lighting watts per flow area.
The internal units for energy plus are always going to be international units.
So anytime you're looking at a text file, these units are always going to be in watts
and meters, sometimes joules, degrees Celsius, but it's always going to be system international
units.
Okay, so here we have what, so what happens internally is that inside energy plus energy
plus basically creates a lighting object for each of those zones.
So on this side, slide, we have these three zones, we have floor 201 residential circulation
zone.
We have one for the ground floor, 01 residential circulation zone, and middle floor 02 residential
circulation zone.
So internally in energy plus, we have a lighting object, which is for this floor 201 residential
circulation zone.
We have another one for ground floor 01 residential circulation zone, and we have another one
for the middle floor.
And you can see that the inputs and the rest of the object is all exactly the same, but
this is generally what's happening internally inside energy plus.
So this system of using a zone list or a space list to manage our internal loads means that
we can reuse internal load objects between projects.
Zone and space names can end up being fairly specific to your project, but zone list names,
it's easy to standardize on a zone list or a space list name.
So residential apartment zones, that is a name that you can use over and over again
in multiple projects, and you can have a whole set of people objects, light objects, electric
equipment objects, et cetera, that you can reuse that just reference that zone list.
And then you add and remove zones to the zone list.
So we can reuse internal load objects between projects.
We can also change a space or zone internal load profile by changing which list reference
it.
So a lot of projects that I've worked on from early on, you start with schematic design.
You have kind of a general occupancy type of the building.
And then design development, it gets a little bit more specific.
And then with construction drawings, often you will have some space types changing.
And so this makes it quite easy to change the internal load profile of the space when
say it changes from an office space to a conference room.
We can also provide some generic internal loads for a wide range of spaces and zones,
and then provide additional specific loads for individual spaces and zones.
So an example of that might be, there's a project that I worked on years ago that was
a campus center, and it had a lot of classrooms in that campus center.
So we had a load profile for each classroom.
One of the classrooms was dedicated towards teaching how it was, how do I describe this?
It was a computer lab for immersive 3D gaming.
So the students were creating and rendering 3D gaming environments, and the computers
were often running, all night long, generating these renderings for the environments for
the 3D space.
So we were able to create a normal load profile for the lights and occupancy in all of the
classrooms, and that was applied across the board.
For that specific classroom where they were rendering game engines, we had an additional
load for that classroom.
All right.
So we also have in this file, we have two different objects, so the video is jumping
around a bit, but we have residential hardwired lights and residential plug-in lights, and
they both reference the same residential apartment's zone list.
And they have different schedules and different internal loads.
So you can have some different loads that some might be quite steady.
In a residential type building, you might have refrigeration loads, which are fairly
steady.
You would also have cooking loads, which vary drastically.
They're quite intense for short periods of time, and then you have other kind of miscellaneous
loads like television, charging devices, maybe hairdryers, coffee machines, sort of all the
other little stuff that we use throughout the day, which goes up and down, but doesn't
spike quite as high as, say, cooking.
All right.
How do we edit these lists?
So in the IDF editor, it's fairly time-consuming and a bit error-prone, because you're just
using these drop-down lists.
So you can add a zone name this way, and if it's the end of the list, you can just remove
the zone name.
But if you're trying to change one at the beginning, you're going to have to go through
and bump all of the zones up the list, or you can edit in a text editor and remove a
line.
We don't recommend editing zone lists in the IDF editor.
It's not great.
It's not a great method.
In EP3, you just have a whole bunch of check boxes, so you can check.
Let's see if there's actually a video here.
You can just check on and off which zones are included in your particular zone list.
But we also have a way to make it even easier.
So we have something called dynamically updated zone lists, and the first check box on any
zone list in EP3 asks you if you want to dynamically update the list.
So this zone list is called residential apartments, and you'll notice all the check boxes are
grayed out.
You can edit them, but each zone that includes this string residential apartments is included
on that list.
So when these dynamically updated lists are used, all we have to do is change the name
of a zone or space, and it will change which list it's assigned to.
So here we have a couple different lists.
All is kind of a magic string.
If you have a dynamically updated list named all, it will include all of the zones in the
building.
We have elevator, residential apartments, residential circulation.
So if we want to change a occupancy type from residential apartments to say circulation,
all we need to do is change the name of that particular space or zone.
Okay, so here we have ground floor 04 residential apartments, and we're going to copy and paste
just to make sure there's no typos and change the name to ground floor 04 residential circulation
is now on the residential circulation zone, and it's been removed from the apartments
zone list.
So the workflow for internal loads is first you're going to choose whether to assign loads
at the zone or at the space level.
So the difference between zones and spaces are that zones are the level at which we assign
HVAC equipment, and spaces, each zone has at least one space, but you can subdivide
a zone into multiple spaces if you need to get more specific about your internal loads.
Or if you want to get a little bit more specific about the thermodynamics between the, it also
evaluates the thermodynamics of the interior spaces and the heat transfer across interior
walls between spaces.
So we're going to choose whether to assign loads at the zone or space level.
For most buildings, I would assign it at the zone level and just have one space per zone,
but for certain buildings where I need to get more detailed about my internal loads,
I would change and assign everything at the space level.
I wouldn't recommend mixing and matching.
You're allowed to do it.
You're allowed to mix and match, but choose one or the other.
It's going to make your life a lot easier.
Second, in your workflow, create a list for every use type.
So it would either be a space list or a zone list, depending on what you chose in step
one.
So for example, private office, open office, corridor, MEP, conference, maybe storage,
a whole bunch of others, just create a list for every space type and do this even if there's
only one item on the list.
It's going to make your life a lot easier.
If for some reason down the line, the architect changes the project, the project changes a
little bit and there's an additional space type or there's an additional item, so space
or zone that needs to be added to the list.
It is much easier to just add it to one list and then all of the internal loads get updated
versus having to go and change each internal load from a zone or space designation to a
zone list designation.
So we'll look at an example of that in the model as well.
Okay, for each space you type, use type, create the following internal loads objects.
The ones that you are needed.
If there's no occupancy, then you don't need to create a people object, but you're going
to create people, lights, electric equipment, thermostat, and your zone HVAC sizing object.
We'll talk about this in more detail on day four, so don't worry so much about this.
And step number four, for spaces with very specific individual uses, you can add additional
internal load objects just for those.
So that was the example of the game, the computer game lab in the campus center that I worked
on where we had some additional internal loads that we created just for that one particular
zone.
Question so far.
I wanted to make the point that it appears, correct me if I'm wrong, that you're using
a text string to identify the dynamically updated loads, and that makes naming things
very important.
And consistent naming will make this a lot easier.
And so you want to name your buildings with a consistent string and then add a number so
that you know whether it's different or not.
But that appears how it works.
Yes, exactly.
Thank you for that observation.
And we can actually move into EP3 for a moment.
Naming is very important throughout Energy Plus.
And you know, some people have different workflows.
Now let's see.
This is a modified version of our five zone air cooled.
Actually, you know what, we need to work with this file in the near future anyway.
So this is the detailed and built out version of the tutorial file, the multifamily tutorial
that you will have been following along with.
Just loading here a minute.
Naming is very important.
EP3 will automatically number your zones for your spaces as you create them.
You can override that number and give it a new number.
If it's possible, I find it very useful to match the numbering on the architectural
floor plan.
And you don't need to use dynamic naming if you don't want to.
It is there for you if you want to.
It's available.
You don't have to use it.
So there we go.
It's fully loaded.
Now let's take a look at our ground floor level.
So we have residential circulation, elevator, residential apartments.
And then we have, these are a couple of spaces.
If you remember from yesterday, we have a couple of spaces that are assigned to the
same zone, but we've gone into a little bit more granularity here.
I can bulk rename spaces.
So each space, if you look at the information for an individual space, the name of the space
is ground floor.
So it's the name of the floor followed by a number, followed by a number, and then followed
by residential circulation.
This number is generated automatically, and it helps you have a unique name for each space.
If I want to rename and essentially re-categorize a bunch of spaces at the same time, I just
need to select those surfaces.
So here I'm using the SketchUp Select tool, and if I hold the control down, I get this
little plus mark next to the arrow, and then I can select multiple surfaces.
Now if I right click, I get this context menu, and there are a couple of EP3 items, and one
of them is rename spaces.
So I could rename spaces here to, we'll just name it elevator for now, just to show you
how this works, and I click OK, and now all of these have been renamed elevator.
And if we go to our elevator zone list, all of those spaces are now showing up on this
zone list.
Another thing with naming, and the reason why if we rename a space, the zone name, and
the zone name changes unless the zone name is updated, is that if I go to a space here,
the zone name, the convention, the EP3 convention, is that the zone name is just the space name
followed by the word zone.
So it's fairly easy as a human to kind of miss that because we have ground floor 01 elevator,
and then if we go to the zone list, we can see ground floor 01 elevator zone.
So this is actually a zone list with a zone on it.
This is our space, and then our zone for this space is ground floor 01 elevator zone.
You can edit that name, and then it will be, once you edit that name, and it's a custom
name, it won't automatically update for you anymore.
So it's allowed to be cautious if you're using dynamically updated zone lists and space lists.
Be a little bit cautious about manually renaming your zones.
Any other questions on internal loads?
Nothing came in yet here.
I have some questions that I will think of.
Are we going to run through an example shortly, or is that coming up later?
We are going to dive into schedules for a bit, and then kind of come back into EP3.
Okay.
So that changes my questions.
The zone naming convention should be very familiar to anyone who's used eQuest.
Yep.
I think it works exactly the same way.
Yes.
It's the same way.
And it's just not dynamic, but it automatically, the zones are automatically named the space
name plus zone.
Yep.
Yes.
If you have multiple spaces, one question before we move on, is if you have multiple
spaces and then they are assigned to the zone, how does it know which space to name,
which zone to name after which space?
Yes.
Okay.
That is a really good question.
Each, it's not random, but it will appear random to the user.
So when you create multiple spaces, let's see, let me create a new model here.
My guess is that it uses the first of the spaces that use that zone, and then it names
the zone after that and then assigns that zone to, or assigns the spaces to that zone.
So when you have multiple spaces per zone, initially, for every time you create a space
in EP3, it creates a zone to go along with it every single time.
So if you want to have multiple spaces all in one zone, you have to change them manually.
So you will manually select from the list of zones in your model, which zone you want
to assign your space to.
And there will be one, that sort of the original space.
So the original zone for that original space is the one that it will be connected to.
Which I mean, numerically, that's the first one according to the computer.
No, not really.
I think it will be easier if I show you.
Okay.
I hope that this topic is relevant to everyone.
I just want to give a real example is if you were modeling apartments and you had multiple
you had a bedroom and a kitchen and a living room and those are all a single zone unit,
you would create those spaces and then assign them to one zone instead of multiple zones.
Yes, exactly.
So let's kind of do that.
I'm going to sort of free form draw the floor plan for a single story house.
So I've just created a floor and I think offscreen when I started using EP three, the wizard popped up and I just closed out of the wizard so I didn't generate anything with the wizard.
Let me know what let's let's redo this let's creating new model.
And let's generate something with the wizard.
Okay.
I'm going to select some.
I'm going to select residential apartments and then I think I will also select office space. So we're going to informally draw a basic house.
That is that has a home office in it. So most of the building will use this residential apartments occupancy, but we'll have a space in this house that has a home office. So we'll use the office space.
Internal loads and occupancy.
So constructions will bring in.
Climate zone 5 residential.
And then I'm just going to do a real basic. Yeah, we'll just do a fan coil.
And I'll say draw my own building geometry.
Okay, very simple fan coil system is actually not that system.
Simple.
But
we will, we will ignore the systems until next week.
So now I'm going to open my building geometry outliner and create a floor by clicking here.
And we can just call it floor. We're only going to do 1 floor.
Now, I think most of us are in the US. So I'm actually going to change my drawing units and to change your drawing units, you go to the sketch up.
Preferences to go to model info.
And it's popping up on my other screen, but you can go to select units here and go to architectural format.
Now, I'm going to draw a floor outline.
And I'll use that.
I'll do that using the rectangle tool and the shortcut is R. So I can just hit R.
And then click the 1st corner.
And now if you look in the lower right corner here, I have some dimensions there are moving as I move the mouse.
But I can type in say, let's do 60 feet.
40 feet. And then I have an exact.
A space that's that exact dimension.
So now I can create some sub spaces.
And in the entrance of time, I'm just going to freehand.
But this will be our office space. And then let's say this is going to be a bedroom.
And the rest will just be residential apartments.
So let's go and take a look at what we have for.
Zones.
We have.
All anytime you see something showing up in red, this means that this is an object where we don't have enough information to.
To export it into.
Energy plus and to simulate if you have a zone list in energy plus that doesn't have any zones on it, it will create a fatal error and your simulation will crash.
So.
Um, we by doing this, we're allowing you to have objects kind of incomplete objects in your three model.
Without crashing energy plus.
And we're just showing you that we're not going to export this because we don't have any zones assigned and same with, if you go to the lighting objects, none of these have any zones assigned.
And so we're not going to export them to energy plus because that would cause a problem for energy plus.
Let's go back to our illness. So we have residential apartments.
And even though we have a bedroom and kind of an open space in the interest of having a functional model in just a few minutes, I'm going to call both of these residential apartments. I'm going to copy the string.
And then here I'm going to click to select this space.
Hold control down.
And then select the other face and then I'll right click.
And say rename spaces.
And I'm just going to paste in their residential apartments.
So if I refresh that view, I now have a couple of zones on the cell list.
And then here, this one is going to be this office space. So copy.
Right click.
Reading spaces and click. Okay.
And then here we go. But these are all zone less and I want to use space less. So let's go to
space list.
I'm going to click update. Great. Okay, we have another one, which is
residential apartments
and update this list. Okay, so now if I look at my
list, so when I toggle this back and forth, you can see the objects that are available in the list changes.
When it's off, I'm showing all of the energy plus objects, but I'm also filtering some of them here.
So I'm doing multiple things to get quickly into the place and energy plus that I want to be if I use the string list as a filter.
I know that I will have space list and zone list and probably a couple other things, but this list here is short enough that I can quickly find what I'm looking for.
So now I'm going to get rid of this list object. And I'm just going to look for the objects that are actually in my model.
And I want to, well, hang on, we've kind of skipped a step. I've skipped a step here.
Let's close out of this.
I'm going to open up my selected object dialogue.
And so we have space number one is called residential apartments.
So I think this is the one I'm going to leave this zone alone. I want to use the zone that was automatically created for this space as my zone for the entire building.
So if I go now to office space, I can go and I can select for one residential apartment zone.
And then for 03 residential apartments, I can go to 401 residential apartments zone.
And you'll notice that these other zones, they still exist in the model, but now there's a little tag here that says, okay, there's no spaces assigned.
And we get the same information here. We don't have any spaces assigned to these to these zones.
And actually, I think here we need to update EP3 so it knows not to export this office space zone list, but that's all right.
Let's go to our electric equipment.
So our electrical equipment, our office space electric equipment and our residential plug-in equipment, these two objects are referencing the zone list.
And we need to update it so it references the space list.
Residential apartments space list.
Same with lights.
We're just going to go through and update office space, space list.
Lights, electric equipment, people.
Office space, space list.
Yeah, I think that's okay. My equipment doesn't look like we have gas equipment.
All right.
There we go. So now we have internal loads assigned at the space level instead of at the zone level.
We could go ahead and build out the rest of this.
From an internal loads demonstration point of view.
I'm sure there are questions on that. So I will open the floor back up to questions.
The question is, which level would you recommend for assigning loads zone or space?
It depends on the project. I think most projects can be done at the zone level.
I think if you have, if your project is one space per zone, you can do it at the zone level and it makes things a little bit simpler.
Then your entire workflow in all of EP3 and energy plus, you're just sort of thinking in zones and that makes the entire project a little bit simpler.
If you have a more complex project where you have, you have to have multiple spaces per zone, then I would 100% use spaces and space lists.
So it depends a little bit on the complexity of your project. I think most projects you can do with zones and zoneness, but with, for more complex projects, I would use spaces and space lists.
I would agree and would add that space lists seem to make more sense when you have zones that have numerous spaces in them.
And the spaces have very different schedules. If the spaces can be simplified to assume the same schedule throughout, you can still just use the zone list.
Yes, absolutely. Absolutely. And I want to say that I know a lot of other modeling tools rely on templates for assigning all sorts of different things, but principally internal loads.
I find this approach with zone lists and space lists, specifically dynamically updating them. It's a lot like templates, but it's a little bit more flexible.
I actually want to show you another trick with this as well. So you can uncheck this dynamically update piece.
So if you want to, you can create a list. So say you're in the beginning stages of setting up your model.
You don't think your model is going to change all that much. So you assign the names of all of your spaces based on their load profile, their internal load profile.
You create dynamically updated lists. And then at some point you say, okay, I now want to name, give my spaces names that align with the architectural floor plans.
You could just go in and first you uncheck dynamically update the list and now we can rename the space.
Maybe we can do that.
Moving on.
There we go. Residential apartments and this space is still on this list here, even though we changed the name.
More questions.
Give it a minute. I was going to make the same comparison that this seems very similar to templates from where I started with trace 700.
Except that does not dynamically update.
So that's a lot more powerful. And what you just showed is that it will dynamically update based on the name.
And then when you want to give it a more specific name, you can remove that and it keeps all of the existing assignments.
Exactly. Yes.
And one of the things that I find quite restrictive about templates is that it seems like once you use a template, yours, no wheel wiggle room.
Whereas with this particular situation, like, let's say that we had, you know, some additional lights for space three.
And so we can name it, we can.
Assign it directly to this floor with three residential apartments.
And give it.
Maybe it's got the office building.
We have an office building lighting schedule office building.
Office area office lighting receptacle. And maybe it's just a hundred watt lamp that, you know, somebody is sitting in there doing a little bit of office work.
So we have now space, oh, three residential apartments, which has all of the normal residential apartment lighting.
And then we, we've been able to add like a little supplemental object just for that one particular space because that particular space is something special going on.
So that space still has all of the properties associated with residential apartments, but we can add a little bit.
Without having to recreate everything else because we're not removing it from a template object. We're not removing all that template information. We're just adding some additional information.
Other questions.
Nothing here. So, okay.
That all made sense to me. So I don't have any questions.
Great.
Right. So we're going to move on to schedules.
I'm just going to, in the background, let this reopen.
Our schedules file because we changed some space types and I don't want that to perpetuate into the next portion.
We had a question come in.
It's a good question. Could you please confirm if the internal loads library is based on Ashway 90.1.
If so, which versions of 90.1 are included in EP 3.
Yeah, so the internal loads library, the schedules and the miscellaneous loads, I believe are based on the 90.1 users manual.
I think I think it's.
Because I have to look exactly, but there's some schedules that are outlined in its GB of the users manual.
The lighting power density. I'm not 100% sure which version of Ashway 90.1 lighting power density is, is based on.
I have to get back to you on that.
I imagine that can be updated rather quickly.
Yes, so when you on the user end, yes, you can update that quite quickly and.
I have this bar that is a little bit blocking my EP 3 bar.
Yes, you can update those values really quickly. So if you go to lights.
We have our lighting power density.
Each one is listed right here.
And you can actually update them for multiple at the same time. So if I.
Click these 2 right now, they're both were essentially 0.9. But if I wanted to update them to 0.7, I just type in this box.
And then.
It will ask me if I want to update for all selected objects and it's telling me which other objects are selected that.
Are not my current object and I can click yes.
So when I go to both of these and I have that new updated value.
So that goes for was.
Go ahead. Yeah, and that type of updating it goes for any input. So you can change a schedule. You can change.
A design level calculation method. You can change any input that way.
And for objects that are selectable. So if I had.
Let's see.
We have on the AC sign.
If I wanted to change.
Some pump parameters.
I have both of these pumps selected and I did the same thing as I did to select multiple faces.
I held control down while using this select.
And now I could change say the pump head to 40.
If I want to change the water and it will ask me do I want to change it for all selected and I just click OK.
So now if I go either one.
I've updated that value in both objects.
Yeah, so back to lighting, which was the central thing for the.
Yes, the question.
Basically, if you were updating your model and you were using the whole building.
You were using the lighting source from ashray and you switched your version of ashray to where the whole building.
Watts per square foot or what's per square meter was different.
You just select all of the lighting objects and then update the lighting level.
To update to that version of ashray.
Okay, you said there was another question that came in.
Can the libraries be updated or generated by users?
I assume that means the EP3 libraries.
Yes.
We can right here this button create internal loads library.
It opens a little wizard here.
Where it gives you all of the objects that you have in your model.
Related to.
Internal loads so people lights electric equipment.
Gas equipment sizing zone and you can select the ones that you want to include.
And then you say save library and once you as long as you choose a consistent.
Library file location and this can be a network shared network drive so you can have 1 particular library.
That you share through without throughout the whole company. Once you create a library.
When the next time you use the wizard, all of those libraries will be available to you to import in wizard using wizard.
So if you have some specific parameters, so we've given you a basic framework to start with in EP3.
But you are not locked in at all. So if you have needs and we expect most modelers will have needs that are a little bit outside of what we've given you.
There will be a process to create some of your own schedules and some of your own internal load profiles and then create your own libraries.
And then once they're created, you can reuse them. And these are just these are just IDF files.
So you can go in and inspect them or edit them or change them or recreate them. They're completely under your own control.
And so then when you save this, I assume you can give it a name. For example, you could give it a name 90.1 users manual 2019 or something like that.
Yes. Yes. So you, you give it a name and you will have.
Yep. Yes, you give it a name. The file name will then pop up and will be listed with your other libraries.
And then the next time you open EP3, will it automatically be available or do you have to import it?
No, it will automatically show up in the wizard. So when you use the wizard, you, you'll see that they're under internal loads and constructions.
And I'm pretty sure we have this for HVAC systems as well. You'll see that it says EP3 library.
You're not being shown a user library because you don't have anything. There's nothing in your user library yet. But once you create a user library.
And to create a user library, all you need to do is use this button and say save library. Once you create a user library, you will have another option to pull the libraries, pull internal load sets, pull construction sets or pull HVAC systems in from your own libraries.
Okay, great. So yeah, so then it's automatically accessible from the wizard and you can most definitely update and create your own libraries.
Yeah, step by step on how to do that would be another potential topic for day eight. I think on Monday, I think at the end of the day on Monday, we maybe we will sort of revisit our potential day eight topics and and start to hone it in a little bit.
I'm going to need a little bit of time to prepare. So there's a cohesive presentation. But let's, yeah, let's be thinking about what we want to talk about for day eight.
But more specifics on how we create those libraries will be great day at eight topic as well.
Okay. All right. Any other questions?
Okay, so nothing came in. Nothing came in. Okay, so let's move on to schedules.
Again, energy plus with a ton of different ways to look at schedule.
These are the schedule objects that we're going to talk about today.
This schedule type limits is a way that we define the types of values we're expecting to see any schedule and it helps energy plus verify that a schedule is valid.
There's also schedule compact, which we will talk about first.
First look, it's going to look messy. It's going to look scary.
I hated it when I first started working with energy plus, but it's actually not so bad. So we'll talk about it a little bit.
Schedule constant is quite explanatory self explanatory. It's very scheduled where you have a single value for the entire year.
And it was absolutely the simplest type of schedule to use. And then we have scheduled file and we're going to go into some detail with this in the second half of our talk on presentations.
What are schedules and energy plus and schedules are used to control all kinds of different things and energy plus we have schedules that can control equipment availability.
We have schedules that vary over the course of the day and the year to change occupancy or change internal loads.
We have schedules that might tell us a specific number such as the, like the activity schedule in the people object gives a specific number.
It's the number of watts of heat that a person and giving off at a particular time of day.
When you're starting with energy plus and these objects are available to you and you might be tempted to use this schedule day hourly.
So if you have scheduled a hourly schedule, we daily and schedule a year. These are going to look at and feel a lot like the equals schedules.
However, I recommend that you kind of bite the bullet and use, use these schedule types instead and we'll dig into them.
They are once you get used to them, they're much, much more flexible and much faster to use and much easier if you need to go in and change the values.
Okay, so schedule compact. This is what it looks like. And our little dude is very, very confused.
Don't worry. We're going to parse it out.
So, alright, so we're starting with our normal energy plus stuff. The first line is the type of object.
The second line is the name.
The third line is the type of schedule. It is the name of schedule type limits. It's the type of schedule. So it's a fractional schedule.
And then this line here it says through 1231. So this indicates the dates for which the following block.
So all of this is valid.
The default start date for schedule. All schedule start on January 1st. And so here we're saying through 1231. So we just have one schedule or one, you know, definition for the entire year.
But we could go through and we could say, okay, we're going to have one, one block through say March 31st and then another block through June and then, then we have the rest of the year all at once.
So here we are, we're just taking it through December 31st.
Then the next one.
And we see this coming up twice. So here we have for and a bunch of different types of days. So, and notice there's no commas between that. So it's just giving a list with spaces between.
So weekdays.
Summer design day and then custom day 1 and 2.
We talked about this a little bit yesterday, but.
These are kind of custom holidays that might be specific to your particular project.
And down here, we have a different definition, which is for weekends, winter design day and holiday. So let's start down here. So for weekends, winter design day and holiday, it says until 24.
And 0. So.
Oh, yeah. Okay. So here this until is a time value.
So, for this 1, this until the specific 1, the same.
We're going to go from this value, which is 8 am the previous value until 11.
For the 1st line here.
Default we're starting at, you know, just after midnight. So this would be from midnight until 8.
And then we have the value here.
So this schedule is saying that.
For all days of the year until December 31st.
Weekdays, summer design day, custom design day 1 and custom design day 2.
We have no load at night. And then at 8 am, we go from.
We.
Yeah, so from 8 to 11, we go to 100%.
And then we vary a little bit in the day.
As people are leaving and coming back for lunch. And then we're at 100% again from 2pm.
To 6pm.
And then just a little bit of occupancy until 7pm. And then again, nothing until midnight.
On weekends, winter design day and holidays.
There is nothing.
Okay, you can also specify at the sub hourly level. So if you wanted to, you could specify until 1230 or 1215.
I don't do that very often, but that is 1 of the things that's quite nice about energy plus is you can simulate at sub hourly level and schedules can do that as well.
Okay, so.
First reaction.
Maybe maybe we can get a show of hands. How many people think this is awful. And why are we talking about this format?
If you can relay that.
I would. So first, this is really my first time seeing this for energy plus because I'm so familiar with the quest method.
And my first reaction is that this is fantastic. And it makes perfect sense to me.
Okay, great. What are some reactions from other people?
Because when I first saw this, I was like, this is terrible. I don't want to deal with this, but I have to if I want to use energy plus.
This, this makes perfect sense to me and but I'm intimately familiar with schedules.
Yeah, starting starting from the, the difficult trace 700 schedule maker.
I think we have one comment that it doesn't seem terrible at all.
Doesn't seem terrible. Great. Okay. I think I didn't, I didn't do a horrible job of explaining it then.
And you all are quite smart. So that's, that's fantastic. Okay.
And I imagine, I imagine that if the weekends had their own custom schedule.
Where it was not off in this case, it's, it's unoccupied during the weekends that you could have its own schedule for weekends and then have another four statement that says for winter design day and holiday.
Add it on to the bottom of this.
Yes, I mean, this is, this is just an example.
Yeah, we're going to, we're going to take a look at this in EP 3 as well.
Okay, so you could have another block. You can also specify different values for.
Mondays, Tuesday, Wednesday, Wednesdays, et cetera, just because weekends is listed here as an option doesn't mean you can't specify something for Saturday and Sunday.
So just because weekends is listed here as an option doesn't mean you can't specify something for Saturday and Sunday. They're also, there's also a nice little keyword called all other days.
So you could specify something for, so for example, this schedule right here, they say weekdays, summer design day, custom design day one, custom design day two.
And then here they specify weekends, winter design day and holidays.
Weekends, winter design day and holidays. That's essentially all the other day types. So instead they could just right here put in all other days.
Everything else is going to take this schedule.
Yeah, and that works great. That works great as long as you don't miss a day type in the first definition.
Yes. Yeah.
Okay, so why are we using this format? Okay, first of all, it's very concise. You can do quite a lot without a ton of extra information. We don't need to write out the value of every single thing between midnight and 8am.
They're just all, we're just saying until eight, it's zero.
Once you get used to it, it's easy to edit. So let's say you want to add something that's very similar through.
Let's say you want to do something a little bit different for the first half of the year. You can just copy and paste this entire block and create a new through statement.
And just edit the values.
And with a little bit of help from a UI, it's easy to understand. So we're going to show you the EP3 user interface for this because we allow you to interact with this and inspect it graphically.
Okay, so here we go. So in EP3, we have a text editor and we're breaking out this until statement onto two different lines. So until eight, we have the zero value until 11, we have this value.
And so you can interact and you can interact with this portion of your schedule compact just as a, as you would in a text editor.
But if you click this button here and say edit graphically, it will show you the graph and clicking on a block will let you edit by clicking and dragging values.
Now I find this is going a bit fast. I might just, I might just live demo this instead of playing the video here.
I think it's going a bit fast.
Where are we here? Okay.
Schedule compact.
And let's look at.
Okay, yes, this is the same schedule. So we can edit the schedule values, either you can right click and give it a new number so we can change this number and make it 0.7.
Or if you click on the square here, you can click and drag to edit.
So this is possible. It's a bit slow. And if you wanted to say change all of these values, you would need to manually make them exactly the same.
So I don't, I don't think that editing large scale like this is great, but I think for understanding what your schedules are and just getting a visual representation is really helpful.
This will allow you to export images because I find including graphics like this in your report ports to your clients is very, very useful for helping them understand the flows and what you've actually simulated in the model.
If you click here, you can select different day types.
And you can also add a new series.
So we can either copy an existing series or we can manually select date types and initial values.
And you can also add.
Or you can edit the time period that you want to cover.
Before we do that, let's add a time block. So we can add a time block through April.
And then register an update.
And just going to select weekdays with an initial value of one for this series, but once I have this.
I can create a new series that copies one of the existing series that's anywhere else in the schedule.
So I could create.
I did weekdays, summer design days, or I could.
Let's do this.
Okay, so.
I have this.
These values here.
And it's given me all other days as the day types, but I can just go in and click and change things.
And if I look at the dates here, it's from May 1st through 1231. So it's automatically saying it starts the day after.
This schedule.
And I think that.
Okay, and then to register changes, we save data.
Okay, no.
Then we go back here. We can see this in.
In some detail here.
So now we've added a lot of complexity because we have a until for.
Because we have so many different individual hourly values and these hourly values change just a little bit. We have a lot more hours.
For the day where we have values registered, but if I wanted to.
To make a wide scale change, I can just copy and paste portions of this text and.
And so it becomes a very flexible type of format.
Yeah, this is something that tastes a little bit of practice and we'll have actually a really quick learning curve.
I think with a little playing around, this is something that can be learned quickly.
And I mean, I feel like I fully understand it already.
Great. Yeah. So.
I'm getting coordinated schedules is something that's really important for accurate.
Energy modeling.
Bob and I were chatting about this a little bit before a class got started, but it's really important to.
To spend some time and have high quality coordinated schedules.
So having a schedule like this with a definition.
That is where it's easy to kind of copy and paste this can this can mean that you're.
On hours and off hours, even if your values have changed a little bit, it can be, it can be easier to kind of coordinate your occupancy schedule with your lighting schedule.
But yeah, we were saying that, that we, we want our schedules to be congruent.
Especially we didn't talk about that, but especially for on met hours. And once you add in thermostat schedules and other items.
You typically want those things to coordinate as they do in reality.
And that also helps prevent on met hours.
Yes, absolutely. Okay, so let's have a little bit of open discussion about this schedule format.
And let's just develop a little like pros and cons list here.
We had a good question. I had the same question actually are the keywords case sensitive.
No, they're not.
Generally, generally throughout energy plus things are not case sensitive.
Great question.
Yeah.
Are there questions.
That's, that's all it was.
Okay, so let's discuss a little bit pros and cons of this schedule compact.
When, when would you like it and when would you hate it.
When all the days are very similar. It would be great.
Yeah. Okay. So,
I'm going to change this from pros and cons to be really good.
Okay.
All right, when you hate it.
On the opposite side, or when, when days of the week are very different, I could see it getting very messy.
Yeah.
So I'm going to say when there's
I'm also going to say that I found it could be quite hard to keep track of when there's sort of more than three
through statements or more than three
times of year that you need to coordinate.
How do I say that a bit more concisely?
We have some feedback here, which is great.
I would hate it if I take the time to build a detailed schedule, but then cannot export to another project.
Okay.
And, and well, that's text based. So you could definitely copy and paste it.
Yeah. So you can, you can definitely reuse these in other EP three and energy plus projects.
You wouldn't necessarily be able to use it in equest, but you could definitely use it.
Definitely could not use it in equest.
Yeah.
But I've built a similar complex schedule maker and equest and it just doesn't work this way at all.
Okay.
Because you have to define the day schedules and then you have to define the week schedules and then you have to order the weeks in terms of the year.
This bypasses all of that. I tend to despise making schedules in equest because it doesn't let you make these simplifications.
Yeah. Yeah.
Anything else?
Keep going.
I think this, this sort of sums up the
My general experience of it is that it's
Oh, yes.
A good point.
Okay.
When tweaking schedules, if you're calibrating the model to existing utility data, I'd rather have a graphical interface.
Okay, so let's put this on the.
Now, is the EP3 graphical interface?
Is that saying that they like the EP3 graphical interface?
I think this person is saying that they don't like the text inputs when calibrating, which makes perfect sense.
Yeah.
So I think in EP3, you could switch into editing this in the graphical interface.
Yes.
And I think we're going to get into a topic that is probably a little better for the calibration method, depending on the building type.
We might not be there yet, but I think that's where we're going.
We are. Yeah, we're one slide away. So, right.
Now.
Yeah, so I think, I think it's schedule contact is great when it's a relatively simple schedule.
But when it's more complicated, it's difficult to manage more complex structure.
So there's this thing in energy class called a schedule file.
I'm going to start moving just a little bit faster because we have, I would like to get through this topic.
I'm going too, too fast. I'll see if my hand puts words a little bit faster. Yeah, we'll see how we go.
Okay. So schedule file. This is the schedule file definition in energy plus and it looks pretty similar in EP3.
We have a name. Again, we select a schedule type limits.
And then we have a file name. This is always a CSV file.
And then we're telling and basically this file will have a list of data in a column.
So we're going to tell it the column number and the number of rows to skip at the top and how many hours we have.
So it's either going to be 8760 or 8784 depending on whether it's a leap year.
Comma column separator, which is comma, and then we can, we can, it can sort of do this smoothing and interpolate between time steps instead of doing steps.
And there are a couple other inputs, but essentially what you can do is create a schedule using calculations in Excel to create 8760 hours of data and then reference that and use it in energy plus.
So I recommend this approach for more complex schedule needs and you can use complex logic to generate schedules.
A lot of the EMS so EMS is energy management system, which is the an internal programming language for energy plus that's a lot that allows you to do custom custom stuff within the energy plus runtime.
But many of the EMS applications that I see when a lot of the ones that are in the energy plus example files could instead be handled with a little bit of creative use of schedule file and the advantage of using schedule file.
There are many advantages of using schedule file over EMS. We'll talk about that in a bit more detail, but one of them is simulation time.
Okay, so before we get into that we need to talk a little bit about the schedule type limits because the example we're going to use about schedule file is a thermostat.
We haven't talked about thermostats yet and we need to talk about temperature and control type schedules in order to talk about thermostats.
So schedule type limits.
It's just a little definition about what numbers are allowed in a schedule and energy plus will use these limits internally to double check the validity of your schedule.
So if you have a schedule that has a value that's outside of the limits energy plus will tell you about it. So it helps you a little bit with quality control.
So EP3 will create these type of schedule limits by default. So one is any number where we're just anything goes absolutely any number fraction positive, negative, whatever you want.
Okay, now we have a fraction type schedule type limits. So the limits are between zero and one inclusive.
And it's continuous. So the fractional values are allowed. There's no unit type. It's just a fraction.
There's an on and off schedule where we are allowing only zero and one. So it's discrete.
And again, it's no unit type. So this is often used for like an availability schedule. Is this coil, is this heating coil allowed to be on for this time step? Yes or no.
In general, energy plus follows our computer programming convention where one means yes and zero means no.
We have temperature, which has a lowered limit by default of minus 60 and upper of 200. Remember, this is either Celsius units.
It's continuous so we can have fractional value. And the unit type is temperature. So this is important. If you select the unit type of temperature, then any temperature schedules in EP3 will be able to be displayed in Fahrenheit as well as Celsius units.
So if you import a file from another project and you have a temperature type schedule and you switch units and it's not switching, it may be because the schedule type limits definition hasn't actually specified that it's a temperature schedule.
You can just come here and say, hey, who's the temperature schedule? Please, please convert the units for me.
Alright, and then control type. We're going to talk about this a little bit more, but this is a very specific type of schedule that's referenced by thermostats and energy plus and it says what type of control is valid for that particular time step.
And again, these are discrete values so you can have 0, 1, 2, 3, or 4 are the only options for control type.
Here are the details about what they mean. So if the time step has a value of 0, that means there is no control for that thermostat. That thermostat has no power. It's not going to do anything.
If their value is 1, it's going to look for a heating thermostat. And so it's just going to give a single heating set point.
If the control value is 2, it's going to give a single cooling set point.
3, it will give a single heating or cooling set point. So it'll be a single numerical temperature value with no dead band.
And if it's number 4, it's going to be a dual set point. So heat to 70, cool to 74 and there'll be a dead band between them.
And each one of these 1, 2, 3, and 4, these are different thermostat types in energy plus. So if it's number 4, it's going to be looking for a dual set point thermostat.
We'll talk more about thermostats on Monday when we talk about zone HVAC equipment.
Okay, so common zone control type schedules. It might just be heating only, cooling only or dual set point dead band.
I don't see a lot of projects that have a requirement for switching between control type, but it does happen.
Here we have a thermostat object. So we have a control type schedule name. So it's just a default name, but this is actually a control type schedule that is always 4.
And the control object is a dual set point control.
And this is the name.
So yes, so this control type schedule, you can see here, numbers are a bit small, but it has a value of 4. So it's looking for a dual set point thermostat.
And then this thermostat point, the dual set point thermostat itself is referencing to schedule. So a heating set point schedule and a cooling set point schedule.
So this is what the heating set point schedule looks like.
It goes between, and this is a residential building. So it is at 71 when the building is principally occupied and then it drops down to 61 during the day.
And the cooling set point schedule is different. It is at 76 when it's occupied and it goes up to 81 during the day.
So this, this control works very well with standard applications, but what if we wanted to create a thermostat that's based on say outdoor air reset temperature, there is no object in energy plus that allows you to create a thermostat based on outdoor air reset.
Okay, so there are two ways to approach that in energy plus. One is to use energy management system or Python scripting. You can also modify the internal parameters of energy plus as it's simulating with some specific Python scripting.
This approach is highly capable. It requires some custom code that is pretty confusing to create and it really slows down the simulation.
Okay. Instead we can use schedule file, which again is highly capable. It does require pre running a simulation in order to get the weather data in this particular case, which makes it only applicable to one weather file.
But the simulation is quite fast because all of the calculations and all of the definitions happen ahead of time.
I will also point out that this is very easy to reuse in future projects, whereas this is much more difficult to reuse in future projects.
Okay, so here, here we're going to go step by step on how to do this. So step one is we're going to define the parameters and I just made some stuff up.
But I'm going to say that for heating, when it's less than 50 degrees, I want to set my thermostat to 70 degrees Fahrenheit.
And when it's greater than an equal to 50, I'm going to go for a 65 degree heating set point.
And for cooling, when it's greater than 70 degrees, my set point will be 74.
And when it's less than or equal to 70, I'm going to go to 79.
Okay, step two, we need to gather data. So we need to figure out what the outdoor air dry bulb temperature is for every hour of the year.
Here we're looking at one of the output files. It's the RDD file. So when you just close out of this for a second.
But when you look at your results.
Your results files will generate, generally generate an RDD.
An RDD file and list lists every single output variable that's available to you in your model.
The output, the, the variables that are available, they change a little bit depending on your simulation.
So if you, there are a whole bunch of variables that are related to say fan parameters. So if you had a simulation that didn't have any fans in it, you wouldn't have those fan parameters available.
Okay, so this is just showing you there's a ton of variables available.
Okay, this is the variable that we want. And I've rewritten this format and put it on multiple lines so that we can start to see the energy plus format here.
So the object type is output variable.
This instead of having a name, this is a key value. And we'll talk about that more in a minute and probably tomorrow we'll talk about this quite a bit as well.
The next is the variable name, and then we can specify how often we want to get this piece of data.
So we are looking for the site outdoor air dribbled temperature and we want it on an hourly basis.
Okay, in EP three, you'll notice that we have inputs and we have outputs and once you've run your simulation once and you have that RDD file has been created.
EP three will look for the outputs that are available for your particular object that you have selected. So here we were seeing all of the outputs that are available at the building level.
And that went a little bit fast that you saw we had the site outdoor air dribble.
And so that means that this output variable object is going to be created for you when you create when you do your simulation.
So here.
If we look at say a surface. So now we're just looking at the an exterior wall surface and the output variables. We can look at say the surface inside and outside temperatures.
And here now we're getting the key variable. It's keying it to this particular surface.
If we, if we got this with, if we had a star here instead of the key value of the surface name, we would get the, the inside surface temperature for every single surface in the model, which means you're getting a ton of data.
So if you only need data for one particular object using the, the output format and the checkbox in EP three means you can get just that one particular piece of data.
And it's very easy because the key value is automatically created for you.
Okay, once the file is simulated, we can view those, those variables.
And I can click, use variables.
And they're listed here. So now we have the outdoor air temperature and we have that surface inside face temperature.
And I can add them and update a graph and look at, look at them in graph format.
But what I actually want is to just, I just need the, the inside face temperature.
I'm just doing that as, as, as an example, but what I actually need is the outside dribbled temperature in order to do some calculations and create some custom schedules.
Okay, so in, in energy plus itself.
We can do the same thing.
We can create that output variable here and then run the simulation. So this is the, these are the same output variables, but they're showing up as energy plus objects.
And then we can view them as you click variables that will open a CSV file that has those, those very big values for each variable shown.
So we remember before we took that little detail about how do we get the data. We're creating a custom schedule file in order to do an outdoor air reset temperature thermostat.
So step number three is to calculate the hourly values that we want.
We'll notice that, so I'm going to freeze pains.
And you'll notice that the first bunch of variables that we have is related to, these are actually related to our sizing runs. So we have a section from mid July and a section from February and and the model is actually simulated for our sizing periods.
I'm actually going to delete all of those rows because we don't want those rows we want to start at January 1st.
It's also really important to save your file and create an Excel file.
Because if you do all your calculations in a CSV and then you save it, you're going to lose your formulas. So I'm re saving this file as an Excel file.
So here I've done the calculations. I've added, I've added two rows. So I've added a row for my heating set point. And I've added, I'm sorry, I've added two columns.
So there's a column for my heating set point and a column for my cooling set point.
I've put in all of my parameters. So these right here, these are just some notes so that when I come back to this file in a year or two, I know what I was trying to do.
I could do a little bit better here, make this a little bit more clear.
And then here I have my assumptions and some calculations. So my heating outdoor air temp is 50 converted to Celsius, my high set point, my low set point.
And then same with cooling the outdoor air temperature at which I switch and conversions to Celsius and current height.
And then here, so this is the calculation for my heating set point as I'm basically doing a little bit of Excel logic to choose whether my heating set point is 70 degrees or 65 degrees.
So 21 or 18 Celsius.
I also find it quite useful with these sort of things to use some conditional formatting to format and give me visual clues about what I've done. So I've done some conditional formatting on column B about the temperature.
So if, if I am at a low enough temperature that I need heating, it highlights in red, or if I'm at a low enough temperature that I need a higher heating set point, then it's red.
And if I am at a high enough outdoor air temperature that I want a more aggressive cooling set point, then it highlights in green.
And as I scroll through, I can see that, yes, everything is lining up and it makes sense and I have the values that I want.
Okay, the next step is to create the actual energy plus IDF objects. And I think what I'm going to do, because we don't have a ton of time.
Today is I'm going to share this file in the, in the class forum so you can inspect it.
The IDF objects are created right here.
And I have a line for each, each line that I want to create. And this is really, really useful because I can programmatically with Excel figure out what column number and what row number I want my data to start at.
And then I'm going to add the objects to the model. And I also need to save my file as a CSV.
Be a little bit careful when you're creating your, your IDF objects, because you're saving as a CSV, if you have multiple,
if you try to do multiple lines of IDF on in the same cell, it will kind of mess up the CSV file.
And you won't necessarily end up with everything on the correct column. So after you save as a CSV, you may want to reopen as a CSV and make sure that everything is still in the same place.
I'm also using concat to end up with them.
I'm sorry, it's not multiple comm commas, it's multiple lines. So if you're trying to format this so that this looks nice, it will, it can kind of mess things up for you.
A couple of formulas here.
Okay, so we can just paste this right into your, into your model, either in EP3 or in Energy Club.
Okay, we're going to save the file as a CSV.
And then we need to replace our original file with the schedule file definition.
Oh, and then, and then we can run the model and simulate the model.
So that is actually the end of the presentation on that, but we have this model open.
So the schedule file objects here with the file name, you can either create an entire or you can either reference with the entire
path, or you can do a, I didn't do it here, you can also do a relative path. So if this file is located in the same directory as your simulation directory, I think, I think that definition is just
like two periods before the file name, it might be this. They do this in the example file with schedule files. So if you want to use schedule files, you can either do a relative or an exact path.
I have used this method to create some relatively complex files for hotels.
With hotels, you have a whole bunch of different rooms, and you have varying occupancy, depending on the, on the time of year, the day of the week, etc.
But if you're not varying the occupancy equally in every single space in every single hotel room, you have some hotel rooms that are full and other hotel rooms that are empty.
And with schedule file, I was able to create coordinated schedules for each room, based on whether or not the room was was occupied.
So you have a list of occupancy percentages for each day of the year, and then use an Excel randomness kind of probability to say, okay, what's the probability that room one is going to be occupied.
What's the probability of room two is going to be occupied.
Once you do those calculations, even though you've used some randomness to generate them, the randomness is
it's not like the randomness is happening every time you run the simulation randomness happened when you generated the values for the schedule, and then you can use those same values over and over and over again.
I apologize, I've moved a little bit fast because we spent a lot of time answering questions in the middle of the session. So I'd like to leave the last five minutes for some questions. I know there's going to be quite a few here, but go ahead.
Let's start discussing.
Yeah, well, we're waiting for questions. I do want to add that that is extremely powerful.
What you just showed and that it would be a good thing for everyone to practice on for the homework.
When you post that file.
Yeah, so I will, I will post the file.
And
I would recommend.
I will post the file. I will post the, I will tell you where to find the example file for schedule file.
And for homework, I would recommend that you create one custom file. It can be a fractional schedule that you use for say lighting and just use it somewhere in your model.
It can be any kind of any type of file.
But yeah, just just see if you can play a little bit with schedule file and start to use it.
Yeah, so this is an extremely powerful application that you can apply to any schedule.
Absolutely any schedule. So you could, you could use Excel to coordinate.
You know, we're talking about how difficult it can be to coordinate your lighting occupancy thermostat and, you know, fan control schedules.
You can use schedule file to programmatically coordinate all of those schedules.
So I might have, like, um,
I might have say another tab here where I have 0 through
24
A little bit more. So these might be my
My hours of the day
for
weekdays and maybe this is like an office occupancy.
So I might have
zero values until 7am
and then 50% and then
75 and then 90 and kind of just going on like this.
0.5 and then 0.
Okay, so this might be like a lookup table for office occupancy if it's a weekday and then
I would have the same thing for Saturdays and Sundays and I would have other masks for other schedules
and I could go through and I could generate
coordinated schedules for my
office occupancy, my lighting, my
my HVAC fan availability, anything that I want to do that's
associated with a particular occupancy type, I can have a coordinated schedule.
And if you're using formulas in Excel, though we have our
schedule here, because I'm using formulas, if I wanted to change this
heating temperature, if I wanted to change the temperature at which I'm
changing my thermostat, I can just change it here
and then to hide this so you can see it.
And everything else populates.
So if I change this number here
then my
yeah, so once I when I change
this number, everything updates. All I need to do now, because I already have the schedule
file definitions in EP3, all I need to do is resave my file as a CSV and all of those
values update. So you this is an extremely powerful tool.
It's much, much easier to validate than
using EMS or Python scripting within the energy plus runtime.
And it simulates a lot faster. I highly, highly recommend that
if you're doing any sort of complex modeling that you look at using this.
And it allows more universal programming language, which most of us understand Excel.
Yeah, so all of this, all of this was done with relatively simple
formulas. You know, it's just, it's a little bit of if then, you know, if one value is less than this value, then
a certain number, otherwise another number, it's pretty simple Excel programming.
And you end up with fantastic and high quality data.
All right, well, that that takes us to one o'clock. If people want to stick around, I wanted to just share
something that's really powerful that I've applied this to another software, but this works better is
when you want to evaluate, for example, chiller plants or different plants and you have a number of setups.
Question here, I'm going to finish my modeling tip here. It's pretty short.
And so you can set up just a simple room and you have a maximum load and maximum cooling and heating load.
And then you can base your load based on a fraction of that for the entire year.
And so that room or zone can be representative of an entire campus.
And then you run a chiller plant based off of that, since you have the zone that's representative of the entire load.
And you can compare various chiller plant options since you already know the hourly load for the building or campus.
Yeah. Okay, that makes sense. I think in energy class, we can do one better as far as plant loads is you can actually apply a load
directly. If you know what the load is and you have a schedule to represent it, you can apply that load directly to a loop.
So if you're trying to do, but you don't actually need any zones or spaces to simulate a plant and energy.
Right. So you can, you can, if you have the data for the built for the campus, you can simply apply the hourly loads and then evaluate your plants.
And you don't need to build a building.
Yes. Yeah. Okay. Yeah. And you could, and this, this would be a perfect, this would be a perfect application for that.
Another really good application for this is, and somebody brought this up earlier today is if you're calibrating a model, you may have some real time data on things like
Well, on all sorts of different things, but you can, you can create schedules based off of real time data for temperatures or
lighting power energy use, or maybe you have an actual occupancy schedule, whatever it is that you want when you have real data, it's much, much easier to get real data into this format than to go schedule compact
or any of the other schedule types that exist with an energy plus or any other modeling software. This one is the easiest.
So we had a comment come in that I think you can probably address a lot better than I can. And it's really useful.
I'm assuming you know Python is I also feel like Python could be used to generate this schedule quite easily and quickly use the the pandas library.
Yes, I am not as familiar with Python and pandas, but absolutely you can generate.
I'm, I'm very, I'm very familiar with Excel and I like the fact that I can visualize the data and look at it.
But what you need here is a as a comma separated file.
And you need to know what what column your data is in and how many rows to skip at the top and where your file is. So if you can do that with with Python and pandas absolutely go for it. That's fantastic.
Yeah, I'm my question there is, you wouldn't input the Python code directly into the energy plus model would you
What I interpreted from what you said, and maybe the participant who asked the question can clarify is that you would use Python and pandas to generate these custom schedules.
Okay, yes.
Yes, clarification was the script would output a CSV file. Yes.
Yes.
That's assuming that you know Python while
And you're like, Oh, I can do this with Python. Absolutely deal with Python.
You can if you're if you're quite good in Python, you can, you can also modify the internal runtime environment of energy plus using Python, and you can do things that break the laws of physics quite easily.
If you want to.
You can modify almost any variable internally with energy plus as it's simulating.
It does slow down the energy plus runtime but there are certain applications where it can be appropriate.
But I try to I try to avoid it because it it's much more difficult to validate and it's slower and it's not necessarily reusable in the same way it's generating a schedule is.
Okay, yeah, and that that's kind of I'm on the same page as you. I can do some Python, but I do like to see items in Excel.
And of course, you can still see the CSV, the last clarification just for me because, you know, we had to go through that quickly is the format in the first 23 rows here.
Is that reusable.
The format here.
Well, I'm just wondering if those in the first 23 rows here, if those numbers.
If we have to is energy plus reading that.
It's skipping it so where it says rows to skip at the top right here. 23. Yeah, it's going to ignore all of this.
But is energy plus reading the rows to skip line.
Yes, so it's not reading it here.
It's not reading it in this file. It's reading it in our.
Our schedule file definition here rose to skip at the top.
So, okay, okay, so that's just so that we remember what to type here.
So it's, it's a little bit more than that. And I'm glad that you asked, and I'm glad that people are sticking around to listen to this.
They really appreciate it.
I find it very useful to create my IDF definition right in the spreadsheet, because so there are a couple of things where right here, this is manually entered by heating set point right here.
And this is a formula that references my label that I'm using here.
So that when that I'm using the same name.
So when I, I'm looking at the schedule file in EP three, if I have any, like, one of the output variables that it's available and energy plus is the hourly output variable from a schedule, or time step output variable from a schedule and you can you can get it hourly
monthly, whatever you want. So if I do this, then the name of all of those variables related to the schedule is the same as what I have in my Excel spreadsheet.
This I've manually entered.
This is actually a programmatically generated, you can generate this file name and complete path with a with a program so I won't explain all of this here right now.
But when I when I save this file to the to the shared.
What is it?
When I share this to the forum, and you save it somewhere on your desktop, you will see that you might have to click into the file and click into the cell and press enter before it updates, but you will see that all of these values update to reflect
wherever you've saved your own file.
I see that.
Okay, that makes sense.
Yeah.
Yeah.
The column number right here.
I'm referencing the current column that I'm in.
And then I see it does not start with column zero.
It does. No, it does not start with column zero. It's 123 and then the row is the first row that there is data in it or, well, I'm actually going to change this row.
If you actually make it the label.
It's a little bit less confusing.
That's a little bit less confusing.
But now if I if I add another column here, all of this updates.
So if I'm if I'm adding a bunch of stuff, because maybe I'm doing another schedule, which
maybe this is a availability schedule. So maybe this is a
heating coil availability.
So I'm going to copy all this stuff.
Heating coil availability, but this is going to be on off.
And then maybe I want this to be
actually, I'm going to say
maybe we allow our heating coil to be on if it's less than 60 degrees Fahrenheit.
So now I can say
equals if this is less than this and I'm going to you hit F4.
So as I copy this formula, it stays in that particular.
It's continue is to reference this cell.
So if it's less than that, then it's going to be one otherwise zero.
And now I've copied that.
And we can see you just take a look that when we get warmer temperatures.
It's not the same.
It's not the same threshold. We've said it arbitrarily. I've said it a little bit different.
I could coordinate it with the reset temperature. But now I have just like that.
I have another custom schedule that is based on my outdoor air temperatures for this particular space.
And I have the schedule file definition and I've updated the schedule file definitions for these two right here.
So I would go in would delete the old schedule file definitions and I would and I would add.
I would re import all of these.
And then you one other thing universal schedule source for your file.
Yeah, I have a universal schedule source for my file. Exactly.
You do you would have to go through and delete the existing schedule files. If you if you delete them.
In EP three, if you delete an object and then you add another object with the same name as the original.
It will detect that it has the same name and and reference that one.
So if you delete the schedule file, you don't need to go back in and reassign the the heating and cooling set point temperature in your thermostat.
It should just it should just pick it up.
Yeah, especially if you're using relative directories.
So I'm saying if you copied this, and you had it in the same folder as the IDF, and you reuse this.
And it was still referencing custom schedules.csv.
But it was different from file to file.
Um,
I was talking about something a little bit different, but okay, let me address your concern and your questions.
No worries about that.
Two different examples. One shows this is a.
This is a relative directly directory. So energy plus will look for this schedule in the same directory as your simulation directory. So whatever you're selecting when you export to IDF.
It will be.
It will look for the file in the same directory. This is a global directory.
And I would recommend that you do this if you are trying to create a reusable set of files that you that you do a global directory.
But just be careful that if you move that file location, you're going to have a whole bunch of energy plus files that are going to be looking for the new file. So you do have to be a little bit careful about that.
My point was that if we.
So I'm going to copy this.
If we go into EP3.
And we have these two schedule file objects.
If I delete them.
They are actually deleted and I.
Haste.
I think I have to do it.
If I want to do them both at the same time.
I need to.
It was doing schedule file schedule file, heating set point, pulling set point. That's what I was getting in text. So I need to.
Make sure this is all in one line and then that is all another line.
Copy that.
And paste it in.
And I can just double check. Yes, it's one line and then another line. I can say paste.
And we'll take just a minute, but we can go in and just verify after this is pasted in that the.
Anytime you paste even a snippet, you're going to get these this import report and import warnings.
We may change how this happens internally when you paste just a little bit of text.
So it's a bit faster, but sometimes speed comes with.
Less error checking. So right now it's a little bit laggy, but there's a lot of error checking we can make it faster.
But at the cost of some error checking. But okay, so now if we go back to.
Schedule file, we have our two objects with the updated column numbers.
And if we go to our zone control thermostat.
Here, it's not doing it's not finding it. I will take a look at that. It is supposed to look for the same.
The item with the same name, but it did not end this.
This time. So that tends to happen in live presentations. Yeah.
So, okay, well, I have maybe I have one more question that I'll say for the forum.
Yep.
I appreciate everyone sticking around.
Absolutely. Yeah, I really appreciate that.
Wow, I'm pretty much everybody did stick around. I'm very impressed. I'm impressed.
It's a really useful topic. So, all right.
Any additional questions.
I'll be looking at the forum. Karen will be looking at the forum. And I'll be asking a question on the forum myself.
Yes. And so for homework, there, there is a tutorial that goes over some internal loads.
And I will link that and I will also provide this particular file for you to inspect and work with and play with.
And then tomorrow we are talking about some tips and tricks for checking quality control and troubleshooting or energy plus models.
And then we have a little break over the weekend and next week it's going to be a lot of HVAC and special topics. So thank you so much for first going over with us today.
I think that was super valuable and we'll see you all tomorrow.
Yes. Thanks everyone.