Discrepancies when using EMS to assign Construction:ComplexFenestrationState compared to assigning by construction name
Hi
I have set up a EMS that switches between several Construction:ComplexFenestrationState, in order to model dynamic solar shading (drawing inspiration from the example file ThermochromicWindow.idf). To test the validity of the EMS approach I have created a simple comparison:
idf 1) Assigns ONE Construction:ComplexFenestrationState to all windows in the model by Construction Name.
idf 2) Assigns ONE Construction:ComplexFenestrationState to all windows in the model by a EMS that overides the existing constructions.
(all the relevant objects are at the bottom of the files)
This should in my mind produce the excact same results, however there are some big differences in the output. Does anybody have an idea as to why?
Cheers
+++++ Update +++++
@vidanovic thank you for your reply - tried running the same .idf files only changing the window construction Construction:ComplexFenestrationState named "CFS_Window" with the simple window construction. This yielded exactly the same result for the two files (named "..._simpleWindowConstruction"):
Also in the same link two files called "..._newCFSconstruction" which employs a different Construction:ComplexFenestrationState than the original files. They also result in discrepancies.
This makes me think that the problem lies in using EMS with Construction:ComplexFenestrationState
@Aaron Boranian thank you for your reply. I have used the same approach for EMS as seen in the example file "EMSThermochromicWindow.idf". As stated in the input/output reference it should be possible to use EMS and Construction:ComplexFenestrationState together:
Has there been any update? I have the same problem: changing the CFS in EMS in order to simulate different slat angles. But the CFS_Glz are not listed, only Building Constructions like walls and roof.
Any solution would be helpfull.
Maybe the example listed in the dropbox link in this discussion could help.
Thanks for answering that fast. Yes, I have already been working with your shared file. In order to understand how it works, it was very helpful, thanks for sharing! But I recognized that the same problem appeared in your file (CFS cannot be chosen in ConIndexVar). I&O Reference says it's possible but I cannot solve this problem. Have you found any solution to fix this and make it work?
Can you explain what you mean by 'CFS cannot be chosen in ConIndexVar' and how you come across this problem (and error message)? With my exmample I do not get the fatal error that Aaron Baronian mentions. Maybe this has since been updated?
Well I'm quite new to EP and I am not sure how to switch the CFS as you and Aaron did. Your file works without errors on my laptop, too. But I am not really able to analyse the parts which are responsible for the switching of the CFS. I hope I am not asking too much, but would it be possible to delete all the CFS and EMS parts which are not related to the switching of the two CFS's you mentioned? This would really help me. I am working on a project for a shading device manufacturer who wants to evaluate his products and I have decided to give him a solution with EP.
By ''CFS cannot be chosen in ConIndexVar'' I mean that I can only choose constructions but not the Construction:CFS objects. This is actually the only thing I don't understand.
I simplified my example to some extent. See the LINK. Now there's just two construction states being used and the states are set within a single EMS program. The simple EMS program starts with closed blinds and than switches to glazing only at solar noon. The IDF still contains ~20 construction states that are not being used. I don't have time to take these out but if you follow the referencing you should see what is actually being used (CFS_tAvtb_400 and CFS_tAvtb_90) and remove the rest.
Maybe this helps: EnergyPlus references constructions assigned to surfaces internally using numbers (and not the construction names). You therefore SET the actuator to a number (construction state index) that represents your construction. Using 'Energy...:ConstructionIndexVariable' you request the number that is assigned to a partcular construction in your idf and assign this to an EMS variable. You then SET the actuator to that EMS variable (so it takes that number). The actuator then changes the number (representing the construction) of the surface that the actuator is assigned to.