3d door swing - pressure difference

260 views
Skip to first unread message

Shisha Gamrah

unread,
Mar 30, 2023, 7:59:58 PM3/30/23
to FDS and Smokeview Discussions
I am looking to model a 3d door swing that rotates at a certain angle based on the pressure difference acting on the door due to an extract system with door swing inside a corridor. I thought of modelling several rotated doors and them activating each based on a pressure difference value, however couldn't complete this in the controls of pyrosim. Also, was wondering if I can specify a custom control that rotates the door based on the calculated pressure difference. Either of the two ways if possible within pyrosim would be helpful.

dr_jfloyd

unread,
Mar 31, 2023, 5:59:30 AM3/31/23
to FDS and Smokeview Discussions
I think the approach of several doors is the way to go. Each door could be controlled by a CUSTOM function where the ramp defines the pressure range for each door position.  If you can't figure out how to do this via the controls in Pyrosim you could always just edit the FDS file by hand and add the functions.

Shisha Gamrah

unread,
Mar 31, 2023, 6:26:39 PM3/31/23
to FDS and Smokeview Discussions
Hi, thanks for your help. If I use a ramp I can only use one measuring device, however I want the pressure difference between two gas phase devices. So I added this to the additional records, this creates a ctrl id that subtracts two gas phase devices and stores the value as a devc id, however when I use the input id as the name of the devc id in the last line I recieve an error.


&DEVC XYZ = 0.50,0.5,0.50,QUANTITY='PRESSURE',ID='p_up 0.1'/


&DEVC XYZ = 1.50,0.5,0.50,QUANTITY='PRESSURE',ID='p_down 0.1'/
&CTRL ID='F1', FUNCTION_TYPE='SUBTRACT', INPUT_ID='p_up 0.1','p_down 0.1'/

&DEVC ID='F1', QUANTITY='CONTROL VALUE', CTRL_ID='F1', XYZ=0.0000000E000,0.0000000E000,0.0000000E000, UNITS='Pa'/

&CTRL ID='thermostat', FUNCTION_TYPE='DEADBAND', INPUT_ID='F1',
ON_BOUND='LOWER', SETPOINT=23.,27., LATCH=F/

dr_jfloyd

unread,
Mar 31, 2023, 7:13:39 PM3/31/23
to FDS and Smokeview Discussions
What is the error?

DEADBAND may not be what you want.  This will be true as the pressure increases beyond 23 but stays below 27. If the pressure drops below 27 it will not become true again unless it drops below 23 and then rises above 23.  

Shisha Gamrah

unread,
Apr 1, 2023, 9:11:18 AM4/1/23
to FDS and Smokeview Discussions
Oh I see. The error is , CTRL 4 input 1 is the ID for both a DEVC and a CTRL. So I want to use the math function that subtracts the two gas phases devices but the system doesn't read it as a device

Shisha Gamrah

unread,
Apr 1, 2023, 9:36:01 AM4/1/23
to FDS and Smokeview Discussions
So it doesn't allow me to use the devc f1 that used a subtract function as an input

dr_jfloyd

unread,
Apr 1, 2023, 6:16:40 PM4/1/23
to FDS and Smokeview Discussions
INPUT_ID on CTRL looks for both DEVC and CTRL. If you have two items with the same name, FDS can't possibly know which one you mean to use. Just make sure your names are unique.

From the User's Guide:

INPUT_ID A list of DEVC or CTRL IDs that are the inputs to the control function. Up to forty inputs can be
specified. If a DEVC or CTRL is being used as an INPUT_ID for a control function, then it must have a
unique ID over both devices and control functions. Additionally, a control function cannot be used as
an input for itself.

Shisha Gamrah

unread,
Apr 2, 2023, 3:53:01 PM4/2/23
to FDS and Smokeview Discussions
Thanks alot now that I've changed the name the device can be used as input. 
Now I am stuck with the ramp how to define the ramp that uses the value from pressure drop device. So at t=330s, I will have this door activated. then if the pressure drop goes beyond 60 Pa this door will turn off and then another door will activate.

dr_jfloyd

unread,
Apr 2, 2023, 5:07:13 PM4/2/23
to FDS and Smokeview Discussions
Ever door position has its own RAMP, and you define the RAMPs so only one position is active at a time.

If you had a position you wanted to activate from 30 to 40 Pa your RAMP could look like:

&RAMP ID='myramp',T=29.9,F=-1/
&RAMP ID='myramp',T=30.1,F=-1/
&RAMP ID='myramp ',T=39.9,F=-1/
&RAMP ID='myramp ',T=40.1,F=-1/

The RAMP changes sign at 30 and 40 Pa which would cause a state change.  









Shisha Gamrah

unread,
Apr 2, 2023, 6:07:24 PM4/2/23
to FDS and Smokeview Discussions
Really thanks alot, it works now. Just one thing if this door is initially linked to a timed control that lets the door activated then deactivated, then activated at 332 secs. Then after 332 secs I want my ramp linked to the ctrl of the pressure drop to take place, how can I let it start from 332s. 
This is ctrl for the door time until 332s 
&RAMP ID='2nd gap_RAMP', T=310.375, F=-1.0/
&RAMP ID='2nd gap_RAMP', T=310.625, F=1.0/
&RAMP ID='2nd gap_RAMP', T=310.875, F=1.0/
&RAMP ID='2nd gap_RAMP', T=311.125, F=-1.0/
&RAMP ID='2nd gap_RAMP', T=331.875, F=-1.0/
&RAMP ID='2nd gap_RAMP', T=332.125, F=1.0/
&CTRL ID='2nd gap', FUNCTION_TYPE='CUSTOM', RAMP_ID='2nd gap_RAMP', LATCH=.FALSE., INPUT_ID='TIME'/
&DEVC ID='TIME', QUANTITY='TIME', XYZ=0.0,0.0,0.0/

and this is the ctrl that links to the pressure drop
&CTRL ID='cycling timer', FUNCTION_TYPE='CUSTOM', INPUT_ID='FS 0.1', RAMP_ID='myramp' /
&RAMP ID='myramp',T=29.9,F=-1/
&RAMP ID='myramp',T=30.1,F=1/
&RAMP ID='myramp ',T=39.9,F=1/
&RAMP ID='myramp ',T=40.1,F=-1/ 

dr_jfloyd

unread,
Apr 2, 2023, 6:21:03 PM4/2/23
to FDS and Smokeview Discussions
You coud have a timer for 332 s and then require that the pressure ramp and the timer be true for the pressure ramp to operate. Then you could do then or that function with the timed control function. The result is open if either the time control function says it is open or the time is beyond 332 and the pressure ramp says it is open.

Shisha Gamrah

unread,
Apr 3, 2023, 5:00:22 AM4/3/23
to FDS and Smokeview Discussions
Thanks for the help. I just tried to go through thr user manual to find a similar example to link 2 ctrls or how to use then or that function but couldn’t figure it out.  CAn you give me an example on how to set this up.

Shisha Gamrah

unread,
Apr 3, 2023, 6:08:04 AM4/3/23
to fds...@googlegroups.com
I am sorry where can I find this in the fds guide to use the then or that function as I am struggling to link both ctrls
--
You received this message because you are subscribed to a topic in the Google Groups "FDS and Smokeview Discussions" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/fds-smv/fxJ1DFUkWjM/unsubscribe.
To unsubscribe from this group and all its topics, send an email to fds-smv+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/fds-smv/e7af9d9d-add4-4baa-9edb-7f8c17b29a87n%40googlegroups.com.

dr_jfloyd

unread,
Apr 3, 2023, 6:20:17 AM4/3/23
to FDS and Smokeview Discussions
ANY or ALL are the FDS FUNCTION_TYPEs for the Boolean 'OR' and 'AND'.  Sections 20.5.9 and 20.5.10 show examples of combining control functions.

To unsubscribe from this group and all its topics, send an email to fds-smv+u...@googlegroups.com.
Message has been deleted
Message has been deleted

Shisha Gamrah

unread,
Apr 3, 2023, 10:33:18 AM4/3/23
to FDS and Smokeview Discussions
When I type the below code in pyrosim additional records I recieve this error, only enter records of type devc and ramp. you may additional specify devc records if quantity is time.

&RAMP ID='2nd gap_RAMP', T=310.375, F=-1.0/
&RAMP ID='2nd gap_RAMP', T=310.625, F=1.0/
&RAMP ID='2nd gap_RAMP', T=310.875, F=1.0/
&RAMP ID='2nd gap_RAMP', T=311.125, F=-1.0/
&RAMP ID='2nd gap_RAMP', T=331.875, F=-1.0/
&RAMP ID='2nd gap_RAMP', T=332.125, F=1.0/
&CTRL ID='2nd gap', FUNCTION_TYPE='CUSTOM', RAMP_ID='2nd gap_RAMP', LATCH=.FALSE., INPUT_ID='TIME'/
&DEVC ID='TIME', QUANTITY='TIME', XYZ=0.0,0.0,0.0/

&DEVC ID='F1', QUANTITY='CONTROL VALUE', CTRL_ID='F1', XYZ=0.0000000E000,0.0000000E000,0.0000000E000, UNITS='Pa'/
&CTRL ID='cycling timer', FUNCTION_TYPE='CUSTOM', INPUT_ID='F1', RAMP_ID='myramp' /

&RAMP ID='myramp',T=29.9,F=-1/
&RAMP ID='myramp',T=30.1,F=1/
&RAMP ID='myramp ',T=39.9,F=1/
&RAMP ID='myramp ',T=40.1,F=-1/

&CTRL ID='SOD', FUNCTION_TYPE='ALL', INPUT_ID='2nd gap','cycling timer' /

dr_jfloyd

unread,
Apr 3, 2023, 10:38:09 AM4/3/23
to FDS and Smokeview Discussions
Pyrosim issues should be directed towards Thunderhead Engineering's technical support. 

You can always edit the fds file outside of Pyrosim.

Shisha Gamrah

unread,
Apr 4, 2023, 5:59:02 PM4/4/23
to FDS and Smokeview Discussions
I am trying to put this code in the fds file but when I run I recieve this error.
 only enter records of type devc and ramp. you may additional specify devc records if quantity is time.
Is there something wrong with the code, just need to fix this step

&RAMP ID='2nd gap_RAMP', T=310.375, F=-1.0/
&RAMP ID='2nd gap_RAMP', T=310.625, F=1.0/
&RAMP ID='2nd gap_RAMP', T=310.875, F=1.0/
&RAMP ID='2nd gap_RAMP', T=311.125, F=-1.0/
&RAMP ID='2nd gap_RAMP', T=331.875, F=-1.0/
&RAMP ID='2nd gap_RAMP', T=332.125, F=1.0/
&CTRL ID='2nd gap', FUNCTION_TYPE='CUSTOM', RAMP_ID='2nd gap_RAMP', LATCH=.FALSE., INPUT_ID='TIME'/
&DEVC ID='TIME', QUANTITY='TIME', XYZ=0.0,0.0,0.0/

&DEVC ID='F1', QUANTITY='CONTROL VALUE', CTRL_ID='F1', XYZ=0.0000000E000,0.0000000E000,0.0000000E000, UNITS='Pa'/
&CTRL ID='cycling timer', FUNCTION_TYPE='CUSTOM', INPUT_ID='F1', RAMP_ID='myramp' /

&RAMP ID='myramp',T=29.9,F=-1/
&RAMP ID='myramp',T=30.1,F=1/
&RAMP ID='myramp ',T=39.9,F=1/
&RAMP ID='myramp ',T=40.1,F=-1/

&CTRL ID='SOD', FUNCTION_TYPE='ALL', INPUT_ID='2nd gap','cycling timer' /

dr_jfloyd

unread,
Apr 5, 2023, 7:16:41 AM4/5/23
to FDS and Smokeview Discussions
Is that the exact text of the error message?

Your F1 device is trying to output CTRL_ID='F1' and that is not defined in what you have attached. I get that as an error message if I paste in the lines you gave into an input file.



Shisha Gamrah

unread,
Apr 5, 2023, 10:16:11 AM4/5/23
to FDS and Smokeview Discussions

I've tried to play with the code it works now, but I am not getting what I am expecting, can you please guide me to output what I expect.

so the below is the door that is meant to be connected by pressure ramp and timer. This door activates at 310.5, deactivates at 311, then reactivates at 332. After 332s I want this door be available based on the pressure ramp range 0 to 30. Then there is another pressure ramp for another door, that is not initially activated, however it activates for a range of 30 to 50 pa, and the code is presented after the spacing (I want this door to also activate or deactivate based on the pressure ramp and for time greater than 332s. What happens is that both doors stay activated. 
&RAMP ID='2nd gap_RAMP', T=310.375, F=-1.0/
&RAMP ID='2nd gap_RAMP', T=310.625, F=1.0/
&RAMP ID='2nd gap_RAMP', T=310.875, F=1.0/
&RAMP ID='2nd gap_RAMP', T=311.125, F=-1.0/
&RAMP ID='2nd gap_RAMP', T=331.875, F=-1.0/
&RAMP ID='2nd gap_RAMP', T=332.125, F=1.0/
&CTRL ID='2nd gap', FUNCTION_TYPE='CUSTOM', RAMP_ID='2nd gap_RAMP', LATCH=.FALSE., INPUT_ID='TIME'/
&DEVC ID='TIME', QUANTITY='TIME', XYZ=0.0,0.0,0.0/
&CTRL ID='FD1', FUNCTION_TYPE='SUBTRACT', INPUT_ID='p_up 0.1','p_down 0.1'/
&DEVC ID='F1', QUANTITY='CONTROL VALUE', CTRL_ID='FD1', XYZ=0.0000000E000,0.0000000E000,0.0000000E000, UNITS='Pa'/

&CTRL ID='cycling timer', FUNCTION_TYPE='CUSTOM', INPUT_ID='F1', RAMP_ID='myramp' /
&RAMP ID='myramp',T=0.1,F=-1/
&RAMP ID='myramp',T=1.1,F=1/
&RAMP ID='myramp ',T=29.9,F=1/
&RAMP ID='myramp ',T=30.1,F=-1/

&CTRL ID='SOD', FUNCTION_TYPE='ALL', INPUT_ID='2nd gap','cycling timer' /

(2nd door - Want to activate this after 332s if pressure range is 30 to 50)
&CTRL ID='FD1', FUNCTION_TYPE='SUBTRACT', INPUT_ID='p_up 0.1','p_down 0.1'/
&DEVC ID='F1', QUANTITY='CONTROL VALUE', CTRL_ID='FD1', XYZ=0.0000000E000,0.0000000E000,0.0000000E000, UNITS='Pa'/
&CTRL ID='cycling time', FUNCTION_TYPE='CUSTOM', INPUT_ID='F1', RAMP_ID='myram' /
&RAMP ID='myram',T=30.2,F=-1/
&RAMP ID='myram',T=31.2,F=1/
&RAMP ID='myram ',T=49.9,F=1/
&RAMP ID='myram ',T=50.1,F=-1/ 

dr_jfloyd

unread,
Apr 6, 2023, 7:45:44 AM4/6/23
to FDS and Smokeview Discussions
For door 1 I am interpretting the behavior you have described as the door is open if from 310.50 to 311 and then after that it is open based on pressure. In that case:

-Add a setpoint to your time device at 332 s. This will give you a function that becomes TRUE and 332 s.
-Use an ALL function connecting the time device and the pressure ramp function. That way the pressure won't control anything unless the time is greater than 332 s. 
-Take your time ramp for the door and remove the last line to make the time ramp FALSE at 332 s. After 332 we only want the pressure to give true or false.
-Use an ANY function to connect the ALL function and the time ramp. Now you have a function that is true or false using time up to 332 s when it switches to true or false based on pressure. Use this function for the door.

See if these suggestions for door 1 help you figure out door 2.

Shisha Gamrah

unread,
Apr 8, 2023, 11:23:27 AM4/8/23
to FDS and Smokeview Discussions
The pressure ramp function works fine for the other doors as they get activated based on the pressure range, however for the door that is activated at 332s there is a still a problem that it stays activated even if pressure range goes beyond its specified range. So this is the code I used and the main problem is the door stays activated even if pressure range is greatern than 0 to 30 pa. 

&RAMP ID='2nd gap_RAMP', T=310.625, F=1.0/
&RAMP ID='2nd gap_RAMP', T=310.875, F=1.0/
&RAMP ID='2nd gap_RAMP', T=311.125, F=-1.0/
&RAMP ID='2nd gap_RAMP', T=331.875, F=-1.0/

&CTRL ID='2nd gap', FUNCTION_TYPE='CUSTOM', RAMP_ID='2nd gap_RAMP', LATCH=.FALSE., INPUT_ID='TIME'/
&DEVC ID='TIME', QUANTITY='TIME', SETPOINT=332, XYZ=0.0,0.0,0.0/


&CTRL ID='FD1', FUNCTION_TYPE='SUBTRACT', INPUT_ID='p_up 0.1','p_down 0.1'/
&DEVC ID='F1', QUANTITY='CONTROL VALUE', CTRL_ID='FD1', XYZ=0.0000000E000,0.0000000E000,0.0000000E000, UNITS='Pa'/
&CTRL ID='cycling timer', FUNCTION_TYPE='CUSTOM', INPUT_ID='F1', RAMP_ID='myramp' /
&RAMP ID='myramp',T=0.1,F=-1/
&RAMP ID='myramp',T=1.1,F=1/
&RAMP ID='myramp ',T=29.9,F=1/
&RAMP ID='myramp ',T=30.1,F=-1/

&CTRL ID='twogaptimepreram', FUNCTION_TYPE='ALL', INPUT_ID='TIME','cycling timer' /

&CTRL ID='SOD', FUNCTION_TYPE='ANY', INPUT_ID='twogaptimepreram','2nd gap' /

dr_jfloyd

unread,
Apr 8, 2023, 8:47:00 PM4/8/23
to FDS and Smokeview Discussions
Try adding LATCH=F to cycling timer.  The default value of LATCH is T.

Shisha Gamrah

unread,
Apr 9, 2023, 9:24:24 PM4/9/23
to FDS and Smokeview Discussions
I have added it to the code but still the problem happens. I have even removed some lines of the code and just activate the door based on the pressure ramp after 332 seconds, and it gets activated after 332 seconds however it stays activated beyond the pressure range, while the other door get activated in the correct pressure range. Is it something with the signs of the ramp that keeps it activated beyond 30 pa. However using these signs for the other doors works fine. Or is it the software not reading the all function and using only the times function as it works fine and the door gets activated after 332s however it stays activated out of pressure range.  

&DEVC ID='TIMESS', QUANTITY='TIME', SETPOINT=332, XYZ=0.0,0.0,0.0/


&CTRL ID='FD1', FUNCTION_TYPE='SUBTRACT', INPUT_ID='p_up 0.1','p_down 0.1'/
&DEVC ID='F1', QUANTITY='CONTROL VALUE', CTRL_ID='FD1', XYZ=0.0000000E000,0.0000000E000,0.0000000E000, UNITS='Pa'/
&CTRL ID='cycling timer', FUNCTION_TYPE='CUSTOM', INPUT_ID='F1', RAMP_ID='myrampss', Latch=F /
&RAMP ID='myrampss',T=1,F=-1/
&RAMP ID='myrampss',T=2,F=1/
&RAMP ID='myrampss ',T=29,F=1/
&RAMP ID='myrampss ',T=30,F=-1/

&CTRL ID='twogaptimepreram', FUNCTION_TYPE='ALL', INPUT_ID='TIMESS','cycling timer' /

dr_jfloyd

unread,
Apr 11, 2023, 6:12:52 AM4/11/23
to FDS and Smokeview Discussions
You also need LATCH=F on the last control function. 

Shisha Gamrah

unread,
Apr 11, 2023, 5:24:37 PM4/11/23
to FDS and Smokeview Discussions
Thanks Dr Floyd. Now its working. Thanks for all the help

Jane Gilden

unread,
Apr 22, 2023, 3:26:53 AM4/22/23
to FDS and Smokeview Discussions
Can you please share the Pyrosim file?
Reply all
Reply to author
Forward
0 new messages