跳转到内容

工程师用火灾模拟/FDS/设备和控制逻辑

来自维基教科书,开放的书籍,开放的世界

设备和控制逻辑

[编辑 | 编辑源代码]

第五,通过 PROP、DEVC、CTRL 名单组引入一些控制逻辑和自动化。

设备可用于控制各种操作,例如创建和移除障碍物,或激活和停用风机和通风口。

设备、DEVC 和 PROP

[编辑 | 编辑源代码]

从 FDS 的角度来看,洒水器、烟雾探测器、热通量计、定时器、热电偶等都是根据分配给它们的属性以特定方式运行的设备。

所有设备都通过 DEVC 名单组指定。与设备相关的各种参数可以分组并在 PROP 名单组中输入。

每条 PROP 行都由一个唯一的 ID 标识,并由具有相同属性的 DEVC 行调用。例如,这些行

 &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' /

定义了一组相同型号的热探测器。

每个设备都有一个关联的 QUANTITY。当 QUANTITY 值超过或低于预定的阈值时,设备会被激活或停用,并将状态从 .FALSE. 更改为 .TRUE. 或反之。

阈值可以像一个数字 SETPOINT 那样简单,也可以是激活算法的结果。例如,洒水器、热探测器和烟雾探测器...使用激活算法...

下表总结了一些 DEVC 参数

参数 类型 描述 单位 默认值
ID 字符串 标识符
QUANTITY 字符串 要输出的量的名称
XB(6) 实数 测量体积、表面或段
XYZ(3) 实数 测量点
IOR 整数 方向索引
ORIENTATION(3) 实数 方向向量 0,0,-1
PROP_ID 字符串 关联的 PROP 行
SETPOINT 实数 设备改变状态的值
TRIP_DETECTION 整数 第一次状态改变时的导数符号 1
INITIAL_STATE 逻辑 设备的初始状态 .FALSE.
LATCH 逻辑 设备不能多次改变状态 .TRUE.

有关 PROP 参数的详细描述,请参见 [FDS5 用户指南]。

设备示例

[编辑 | 编辑源代码]

在以下段落中,列出了一些示例设备。

定时器

[编辑 | 编辑源代码]

最简单的设备示例只是一个定时器

 &DEVC XYZ=1.2,3.4,5.6, ID='my timer',
     QUANTITY='TIME', SETPOINT=30. /

当模拟时间超过 30 秒时,它会将状态从 .FALSE. 更改为 .TRUE.。

温度计

[编辑 | 编辑源代码]

以下是一个温度计

 &DEVC XYZ=1.2,3.4,5.6, ID='my thermometer',
     QUANTITY='TEMPERATURE', SETPOINT=60. /

当 (1.2,3.4,5.6) 点的温度超过 60 摄氏度时,它会改变状态。

烟雾探测器

[编辑 | 编辑源代码]

烟雾探测器在输入文件中定义,条目类似于

 &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 /

SD_29 烟雾探测器具有以下属性

• LENGTH 是 Heskestad 模型中单参数的特征长度,默认为 1.8 米。

• ACTIVATION_OBSCURATION 阈值可以根据制造商提供的价值设置。默认设置是 3.28%/米。

烟雾探测器会根据特定的激活算法改变状态。

光束烟雾探测器

[编辑 | 编辑源代码]

光束探测器由以下定义

 &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 /

B_4 光束探测器具有以下属性

• SETPOINT 是探测器激活时的总遮挡百分比。

• XB 指定光束覆盖的段。两个端点必须位于同一个网格中。

光束探测器会根据特定的激活算法改变状态。

洒水器和热探测器

[编辑 | 编辑源代码]

这是一个非常简单的洒水器示例

 &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' /

洒水器,称为 S_60,位于由 XYZ 给出的空间点。它是一个 acme spk 型洒水器,其属性在 PROP 行中给出

• RTI 是响应时间指数,单位为米1/21/2

• ACTIVATION_TEMPERATURE 是连接激活温度,单位为摄氏度。

• FLOW_RATE 是释放水的流速,单位为升/分钟。

• PART_ID 指的是由 PART 名单组定义的水滴的属性。

本示例定义了一个热探测器,它基本上使用与洒水器相同的激活算法,但没有水喷洒

 &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 /

基本控制逻辑

[编辑 | 编辑源代码]

在许多火灾场景中,门或窗户的打开或关闭会导致火灾进程发生戏剧性的变化。有时这些操作是故意进行的,有时是火灾造成的。在 FDS 计算的框架内,这些操作由创建或移除固体障碍物,或打开或关闭通风口来表示。

设备状态的变化可用于触发操作的发生,例如激活和停用障碍物、边界条件和孔。例如,设备状态的变化可以创建或移除障碍物,打开或关闭燃烧器、通风机和风机。

例如,在以下几行中

 &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' /

DEVC 创建了一个名为 my timer 的定时器。OBST 的存在依赖于 DEVC,这要归功于 DEVC_ID='my timer' 参数。当模拟开始时,定时器具有 .FALSE. 的初始状态,因此 OBST 未被激活,并且不会阻碍流动域。然后在 30 秒后,定时器将其状态更改为 .TRUE.,OBST 被激活并开始运行。

以下参数决定了设备如何控制某事物

• SETPOINT 是设备改变状态的值。对于检测类型的设备(热探测器或烟雾探测器),此值是从设备的激活算法计算得出的,无需在 DEVC 行上指定。

• TRIP_DIRECTION,正整数表示当设备的值超过 SETPOINT 时设备将改变状态,负整数表示当设备的值低于 SETPOINT 时设备将改变状态。

• LATCH,如果此逻辑值为 .TRUE.,则设备只改变一次状态。否则它可以改变多次状态。

• INITIAL_STATE,此逻辑值是设备的初始状态。

要移除然后在同一位置重新创建障碍物,请使用两行代码,因为代码只是将其视为两个不同的障碍物

 &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' /

最后一个示例

 &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' /

当热探测器的激活算法达成共识时,孔就会被创建。请注意,用于 HOLE 的 DEVC 不应与其他任何东西一起使用,除了额外的 HOLE 行。

当一个 HOLE 被禁用时,要切割的障碍物可以与原始障碍物具有不同的颜色和透明度:只需在 HOLE 行上设置 COLOR 和 TRANSPARENCY 值。当 HOLE 被激活时,空隙被创建并且指定的颜色消失。

同样,VENT 的激活也可以由 DEVC 状态控制。例如,要使用我的计时器设备控制燃烧器,请执行以下操作

 &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' /

请注意,在 30 秒时,VENT 被激活,燃烧器边界条件开启。指定的 t2 斜坡从 30 秒开始,到 150 秒结束,此时 HRRPUA 达到其最大值 4000 kW m−2

请注意,不应该激活或禁用 MIRROR 或 OPEN VENT。这种限制的原因是压力突然变化会导致数值不稳定。

高级控制逻辑

[编辑 | 编辑源代码]

如果您希望使用比单个设备及其 SETPOINT 更复杂的逻辑来控制 FDS 对象,可以使用 CTRL 名单组来指定控制函数。

控制函数将一个或多个设备和控制函数的输出作为输入。通过这种方式,可以通过使函数成为其他函数的函数来模拟复杂的行为。对于大多数控制函数类型,设备和控制函数的逻辑值输出以及它们上次更改状态的时间被用作输入。

对于可以为其指定 DEVC_ID 的任何对象(例如 OBST 或 VENT),可以改为指定 CTRL_ID。

有关此主题的更广泛讨论,请参见 [FDS5 用户指南]。

华夏公益教科书