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

# Errors using EMS on E+ to simulate dynamic insulation

Hello everyone.

My name is João Tiago Homem, and I am currently doing my master thesis on Dynamic Insulation. In the process, I am trying to simulate elements of insulation (on the walls) that offer a dynamic behavior rather than a static one, by means of:

1 - Changing its conductivity

2 - Adding/Removing a certain layer of insulation in the construction

3 - Changing its thickness

To do so, I am using EnergyManagementSystem (EMS) on EnergyPlus to achieve these changes throughout the simulation period.

Details of the model:

• BESTEST Case 600 (whereas the temperature setpoints are 20ºC and 27ºC)
• Heat Balance Algorithm: CondFD
• Timestep: 1 min

Action on EMS

For instance, I am trying to change the conductivity of the insulation of the walls, from High (0.08) to Low (0.04) whenever a certain condition is true:

• Sensors: T_in (Zone Mean Air Temperature), T_out (Site Outdoor Air Drybulb Temperature)

• Actuator: Surface, Construction State (on all walls: South, North, East and West)

• Program:

IF (T_in > 27 && T_out < T_in) || (T_in < 20 && T_out > T_in)

  Set Ins_ConstructSouth = Walls_HighCond
Set Ins_ConstructNorth = Walls_HighCond
Set Ins_ConstructWest = Walls_HighCond
Set Ins_ConstructEast = Walls_HighCond


ELSE

  Set Ins_ConstructSouth = Walls_LowCond
Set Ins_ConstructNorth = Walls_LowCond
Set Ins_ConstructWest = Walls_LowCond
Set Ins_ConstructEast = Walls_LowCond


Errors

Every time I run the simulation, I get this errors:

*** No node connection errors were found.

*** Beginning Simulation

* Severe * InitEMSControlledConstructions: EMS Construction State Actuator not valid.

* ~~~ * Construction named = WALLS_LOWCOND has number of finite difference nodes =5

* ~~~ * While construction named = WALLS_HIGHCOND has number of finite difference nodes =4

* ~~~ * This actuator is not allowed for surface name = SOUTHWALL, and the simulation continues without the override

* Severe * InitEMSControlledConstructions: EMS Construction State Actuator not valid.

* ~~~ * Construction named = WALLS_LOWCOND has number of finite difference nodes =5

* ~~~ * While construction named = WALLS_HIGHCONDhas number of finite difference nodes =4

* ~~~ * This actuator is not allowed for surface name = WESTWALL, and the simulation continues without the override

* Severe * InitEMSControlledConstructions: EMS Construction State Actuator not valid.

* ~~~ * Construction named = WALLS_LOWCOND has number of finite difference nodes =5

* ~~~ * While construction named = WALLS_HIGHCONDhas number of finite difference nodes =4

* ~~~ * This actuator is not allowed for surface name = NORTHWALL, and the simulation continues without the override

* Severe * InitEMSControlledConstructions: EMS Construction State Actuator not valid.

* ~~~ * Construction named = WALLS_LOWCOND has number of finite difference nodes =5

* ~~~ * While construction named = WALLS_HIGHCONDhas number of finite difference nodes =4

* ~~~ * This actuator is not allowed for surface name = EASTWALL, and the simulation continues without the override

If I do the same procedure changing the thickness instead of conductivity, I get the same errors. I already checked all the posts on the community regarding EMS or changeable U-value but they didn't help me finding the solution.

edit retag close merge delete

Sort by » oldest newest most voted

CondFD model is especially challenging with regard to changing constructions on the fly. CondFD allocates all kinds of data for the internal nodes into variable length arrays. There is no practical way to reallocate these arrays move the thermal history over to allow a change between constructions with a different number of nodes. That is why this error trap is there and it is documented in the EMS applicaton guide.

The easiest thing to do is to switch from CondFD to CTF.

If you really must use CondFD, then you might experiment with the input field called Space Discretization Constant in the HeatBalanceSettings:ConductionFiniteDifference object to see if there is a setting where both constructions come out with the same number of nodes. You can also drive the number of nodes by breaking up the input for material layers in the construction, for example in WALLS_HIGHCOND, split the insulation into two separate thinner layers and it might change to 5 nodes.

more

Thank you for the input @Archmage.

1 - I need to use CondFD because I need to use the temperatures inside the construction (CTF only assesses the heat balance regarding the outside and inside surface of the wall). This way I can plot the profile of the temperatures inside the wall.

2 - Moreover, I tried different combinations of the parameters in the HeatBalanceSettings:ConductionFiniteDifference object, but it always failed to equal the number of nodes in both surfaces. The thing is that I do not know what is the adequate criteria to define the changes on those parameters.

( 2016-05-01 09:57:57 -0500 )edit

3 - Finally, I broke the insulation layer on WALLS_HIGHCOND surface in two layers (each one of 5 cm).. and once more it failed to equal the number of nodes. Then I remember that from the literature review I did regarding these temperature nodes on CondFD, I saw that they also depend on the timestep of the simulation. So after having two layers, as you proposed, I tried changing the number of timesteps from 60 to 30 => Problem Solved (No Errors)

( 2016-05-01 09:58:17 -0500 )edit