Question-and-Answer Resource for the Building Energy Modeling Community
Get started with the Help page

# Numerical equations with EMS

Hello,

I am trying to write a subroutine that calculates the temperature of my storage medium at each timestep. I am trying to apply a finite difference model that solves N ODEs for each node, the model is very similar to that of WaterHeater:Stratified where the temperature update equation for each node is:

Tfinal= (Tinitial +b/a).exp(a.deltaT)-b/a

Does EMS allow this sort of formulations ?

My idea is to create a trend variable for the temperature at each node, but I dont understand how initialization works in EMS Any insights? Thank you

edit retag close merge delete

Sort by ยป oldest newest most voted

If I'm understanding correctly, you do not need to use a trend variable just to retrieve a variable's value from a previous timestep. Rather, just use an EnergyManagementSystem:GlobalVariable. For example:

EnergyManagementSystem:Program,
TemperatureCalculation,
SET Tfinal = Tinitial + 10,
SET Tinitial = Tfinal;


And then set Tinitial as a global EMS variable so that its value at the end of the previous timestep can be used in the program in the subsequent timestep.

If you need to set the initial value for Tinitial for the beginning of the simulation, you can do this by creating a second EMS program that sets it value (e.g., SET Tinitial = 50) and uses the BeginNewEnvironment and/or AfterNewEnvironmentWarmUpIsComplete` calling points (I forget which offhand).

more

Thank you very much this is really helpful!

( 2021-11-11 14:34:35 -0600 )edit

Please start posting anonymously - your entry will be published after you log in or create a new account.