Fire Simulation for Engineers/FDS/Devices and Control Logic
Devices and control logic
editFifth, some control logic and automation is introduced via PROP, DEVC, CTRL namelist groups.
Devices can be used to control various actions, like creating and removing obstructions, or activating and deactivating fans and vents.
Devices, DEVC and PROP
editFrom the point of view of FDS, sprinklers, smoke detectors, heat flux gauges, timers, thermocouples, etc., are devices that operate in specific ways depending on the properties assigned to them.
All devices are designated via the DEVC namelist group. The various parameters associated to devices can be grouped and entered in a PROP namelist group.
Each PROP line is identified by a unique ID, and it is invoked by the DEVC lines that share the same properties. For example, these lines:
&PROP ID='acme heat detector', QUANTITY='LINK TEMPERATURE', ACTIVATION_TEMPERATURE=74. / &DEVC ID='heat detector 1', XYZ=22.88,19.76,7.46, PROP_ID='acme heat detector' / &DEVC ID='heat detector 2', XYZ=27.88,19.76,7.46, PROP_ID='acme heat detector' / &DEVC ID='heat detector 3', XYZ=32.88,19.76,7.46, PROP_ID='acme heat detector' /
define a group of heat detectors of the same model.
Every device has an associated QUANTITY. When the QUANTITY value passes above, or below, a prescribed threshold the device is activated or deactivated, and changes its state from .FALSE. to .TRUE. or the other way back.
The threshold can be as simple as a numeric SETPOINT or can be the result of an activation algorithm. For example, an activation algorithm is used for sprinklers, heat and smoke detectors...
The following table summarizes some DEVC parameters:
Parameter | Type | Description | Unit | Default |
---|---|---|---|---|
ID | String | Identifier | ||
QUANTITY | String | Name of quantity to output | ||
XB(6) | Real | Volume, face or segment of measurement | m | |
XYZ(3) | Real | Point of measurement | m | |
IOR | Integer | Index of orientation | ||
ORIENTATION(3) | Real | Direction vector | 0,0,-1 | |
PROP_ID | String | Associated PROP line | ||
SETPOINT | Real | Value at which device changes state | ||
TRIP_DETECTION | Integer | Sign of derivative at first state change | 1 | |
INITIAL_STATE | Logical | Initial state of device | .FALSE. | |
LATCH | Logical | Device cannot change state multiple times | .TRUE. |
See [FDS5 user's guide] for a detailed description of PROP parameters.
Examples of devices
editIn the following paragraphs some sample devices are listed.
Timer
editThe simplest example of device is just a timer:
&DEVC XYZ=1.2,3.4,5.6, ID='my timer', QUANTITY='TIME', SETPOINT=30. /
It changes its state from .FALSE. to .TRUE. when the simulation time increases past 30 s.
Thermometer
editThe following is a thermometer:
&DEVC XYZ=1.2,3.4,5.6, ID='my thermometer', QUANTITY='TEMPERATURE', SETPOINT=60. /
It changes its state when the temperature at point (1.2,3.4,5.6) increases past 60 °C.
Smoke detector
editA smoke detector is defined in the input file with an entry similar to:
&PROP ID='acme smoke detector', QUANTITY='CHAMBER OBSCURATION', LENGTH=1.8, ACTIVATION_OBSCURATION=3.28 / &DEVC ID='SD_29', PROP_ID='acme smoke detector', XYZ=2.3,4.6,3.4 /
The SD_29 smoke detector has the following properties:
• LENGTH is the characteristic length for the single parameter in Heskestad model and defaults to 1.8 m.
• ACTIVATION_OBSCURATION threshold can be set according to the value provided by the manufacturer. The default setting is 3.28%/m.
The smoke detector changes its state following the specific activation algorithm.
Beam smoke detector
editA beam detector is defined by:
&PROP ID='acme beam', QUANTITY='PATH OBSCURATION', SETPOINT=0.33 / &DEVC ID='B_4', PROP_ID='acme beam', XB=1.0,1.1,0.0,5.0,0.0,3.0 /
The B_4 beam detector has the following properties:
• SETPOINT is the total % obscuration at which the detector activates.
• XB specifies the segment covered by the beam. The two endpoints must lie in the same mesh.
The beam detector changes its state following the specific activation algorithm.
Sprinkler and heat detector
editHere is a very simple example of a sprinkler:
&PART ID='water drops', WATER=.TRUE. / &PROP ID='acme spk', QUANTITY='SPRINKLER LINK TEMPERATURE', RTI=148., ACTIVATION_TEMPERATURE=74., PART_ID='water drops', FLOW_RATE=189.3 / &DEVC ID='S_60', XYZ=22.88,19.76,7.46, PROP_ID='acme spk' /
A sprinkler, known as S_60, is located at a point in space given by XYZ. It is an acme spk type sprinkler, whose properties are given on the PROP line:
• RTI is the Response Time Index in units of m1/2s1/2.
• ACTIVATION_TEMPERATURE is the link activation temperature in °C.
• FLOW_RATE is the flow rate of released water expressed in units of l/min.
• PART_ID refers the properties of the droplets water drops, defined by a PART namelist group.
This example defines a heat detector, which uses essentially the same activation algorithm as a sprinkler, without the water spray:
&PROP ID='acme heat', QUANTITY='LINK TEMPERATURE', RTI=132., ACTIVATION_TEMPERATURE=74. / &DEVC ID='HD_66', PROP_ID='acme heat', XYZ=2.3,4.6,3.4 /
Basic control logic
editIn many fire scenarios, the opening or closing of a door or window can lead to dramatic changes in the course of the fire. Sometimes these actions are taken intentionally, sometimes as a result of the fire. Within the framework of an FDS calculation, these actions are represented by the creation or removal of solid obstacles, or the opening or closing of vents.
The change of state of a device can be used to trigger an action to occur, like activating and deactivating obstructions, boundary conditions and holes. For example, devices change of state can create or remove obstructions, switch on or off burners, ventilators and fans.
For example, in the lines:
&DEVC XYZ=1.2,3.4,5.6, ID='my timer', QUANTITY='TIME', SETPOINT=30. / &OBST XB=2.3,4.5,1.3,4.8,0.0,9.2, SURF_ID='brick wall', DEVC_ID='my timer' /
the DEVC creates a timer named my timer. The OBST existence depends on the DEVC, thanks to the DEVC_ID='my timer' parameter. When the simulation starts the timer has a .FALSE. initial state, thus the OBST is not activated and does not obstacle the flow domain. Then at 30 seconds the timer changes its state to .TRUE., the OBST is activated and comes to life.
The following parameters dictate how a device will control something:
• SETPOINT is the value of the device at which its state changes. For a detection type of device (heat or smoke detectors) this value is calculated from the device’s activation algorithm and need not be specified on the DEVC line.
• TRIP_DIRECTION, a positive integer means the device will change state when its value increases past the SETPOINT and a negative integer means the device will change state when its value decreases past the SETPOINT.
• LATCH, if this logical value is set to .TRUE. the device will only change state once. Otherwise it can change its state several times.
• INITIAL_STATE, this logical value is the initial state of the device.
To remove and then re-create an obstruction in the same place, use two lines since the code simply sees this as two different obstructions:
&DEVC XYZ=1.2,3.4,5.6, ID='timer1', QUANTITY='TIME', SETPOINT=30., INITIAL_STATE=.TRUE. / &DEVC XYZ=1.2,3.4,5.6, ID='timer2', QUANTITY='TIME', SETPOINT=60., INITIAL_STATE=.FALSE. / &OBST XB=2.3,4.5,1.3,4.8,0.0,9.2, SURF_ID='brick wall', DEVC_ID='timer1' / &OBST XB=2.3,4.5,1.3,4.8,0.0,9.2, SURF_ID='brick wall', DEVC_ID='timer2' /
A last example:
&PROP ID='acme heat', QUANTITY='LINK TEMPERATURE', RTI=132., ACTIVATION_TEMPERATURE=74. / &DEVC ID='HD_66', PROP_ID='acme heat', XYZ=2.3,4.6,3.4 / &HOLE XB=2.3,4.5,1.3,4.8,0.0,9.2, DEVC_ID='HD_66' /
the hole is created when the activation algorithm of the heat detector gives the consensus. Note that a DEVC that is being used for a HOLE should not be used for anything else other than additional HOLE lines.
When a HOLE is deactivated, the obstruction to be cut out can have a different color and transparency than the original obstruction: just set the COLOR and a TRANSPARENCY value on the HOLE line. When the HOLE becomes activated, the void is created and the prescribed color disappears.
Also VENT activation can be controlled by DEVC state. For example, to control a burner with the device my timer, do the following:
&DEVC XYZ=1.2,3.4,5.6, ID='my timer', QUANTITY='TIME', SETPOINT=30. / &SURF ID='burner', HRRPUA=4000., TAU_Q=-120 / &VENT XB=0.6,1.0,0.3,0.7,0.0,0.0, SURF_ID='burner', DEVC_ID='my timer' /
Note that at 30 s, the VENT is activated and the burner boundary condition turns on. The prescribed t2 ramp begins at 30 s and ends at 150 s, when HRRPUA reaches its maximum of 4000 kW m−2.
Note that a MIRROR or OPEN VENT should not be activated or deactivated. The reason for this restriction is that abrupt changes in pressure can cause numerical instabilities.
Advanced control logic
editIf you desire to control FDS objects using more complex logic than can be provided by the use of a single device and its SETPOINT, control functions can be specified using the CTRL namelist group.
A control function take as input the outputs of one or more devices and control functions. In this manner, complicated behaviors can be simulated by making functions of other functions. For most of the control function types, the logical value output of the devices and control functions and the time they last changed state are used as the inputs.
For any object that a DEVC_ID can be specified for (such as OBST or VENT), a CTRL_ID can be specified instead.
See [FDS5 user's guide] for broader discussion of the topic.