Numerical Simulation of Explosion Disaster Based on GIS

1 Example of online simulation

    Example of online simulation

    

       Vapor Cloud Explosion (VCE) is an explosion caused by the rapid leakage of a large amount of gas or volatile liquid fuel, which mixes with the surrounding air to form a "premixed cloud" and is ignited in a limited space. When liquefied petroleum gas The tank body is destroyed by mechanical action, chemical action or thermal action, resulting in the rapid leakage of liquefied gas and the formation of an explosive mixed gas cloud with the surrounding air, which is detonated in the case of delayed ignition, and the destructive effect of VCE. VCE has an explosion shock wave , thermal radiation, and debris effects, among which the blast shock wave has the strongest destructive effect and the largest damage area. Common shock wave damage-destruction criteria include: overpressure criterion, impulse criterion, pressure-impulse criterion, etc. The evaluation in this paper adopts the overpressure criterion. Studies have shown that there are many main parameters affecting the behavior of VCE, mainly including: the type of leaked substance, storage method, leakage quantity, percentage of vaporized substance, possibility of gas cloud ignition, delay time before gas cloud ignition, and explosion efficiency and other parameters.

2 TNT equivalent model

    The TNT model converts the destructive effect of the material explosion into the destructive effect of the TNT explosion. Although the model has been studied extensively over the years, it is limited due to its own limitations. This method is now commonly used only for relatively simple simulations of vapor cloud explosions. The TNT model is used to calculate the equivalent amount of TNT through the formula, and then calculate the value for evaluation. The evaluation results can be used for hazard zoning, and can also be used to further calculate the degree of injury of people in the damage area, the degree of damage to objects within the damage range, and direct economic losses.

When an explosion occurs, it can be expressed by the mass of TNT explosive that releases the same energy, that is, the TNT equivalent. The calculation formula is:
WTNT =1.8·α·W·QV / QTNT
In the formula, WTNT—the TNT equivalent of substance A (kg);
α—efficiency factor of steam cloud explosion, taking 4%;
W—mass of substance A ( kg);
QV—is the calorific value of substance A (KJ/kg);
QTNT—is the explosion heat of TNT, which is 4520KJ/kg.
(1) Death radius R1
If people in this area lack protection, they are considered to suffer serious injuries or die without exception. The death radius is calculated according to the following formula:
R1=13.6×(WTNT/1000)0.37
(2) Serious injury radius If the personnel in the R2
area lack protection, most of them will suffer serious injuries, and very few people may die or be slightly injured.
The serious injury radius R2 is calculated according to the following formula:
R2=Z·(E/P0)1/3
ΔPS=0.137Z-3+0.119Z-2+0.269Z-1-0.019
ΔPS=44000/P0
where: P0=101300Pa, solution Get Z=1.099; E is the total energy of the explosion (J), E=WTNT×QTNT.
The serious injury radius R2 can be calculated.
(3) Minor injury radius R3
If the personnel in this area lack protection, most of them will suffer minor injuries, a few will be seriously injured or safe, and the possibility of death is extremely small.
The minor injury radius R3 is calculated according to the following formula:
R2=Z·(E/P0)1/3
ΔPS=0.137Z-3+0.119Z-2+0.269Z-1-0.019
ΔPS=17000/P0
Among them: P0=101300Pa, Z=1.96; E is the total energy of the explosion (J), E=WTNT×QTNT.
The minor injury radius R3 can be calculated.
When an explosion occurs, the shock wave generated by the explosion will cause harm to the human body.
(4) Explosion overpressure
Pi=3.9/Z1.85+0.5/Z
Pi is the explosion overpressure (MPa), where Z is the explosion characteristic length, and the calculation method is as follows:
Z=R/WTNT1/3
can be known from the above two formulas :
When a certain distance is known, the overpressure value under the distance can be obtained;
or when a certain overpressure value is known, the distance corresponding to the overpressure value can be obtained.
Different blast wave overpressures have different damages to the human body.

3 TNO multi-energy method

     The TNO multi-energy method is a common method for simulating and predicting steam cloud explosions. It was proposed and gradually improved by the TNO laboratory in the Netherlands in 1985 on the basis of a large number of experiments and numerical studies. The TNO multi-energy method belongs to the -dimensional numerical model. Improvements are made on the basis of the TNO model, which comprehensively considers various factors such as turbulence acceleration, local constraints, and gas sparks. It is a principle and method model for analyzing steam (cloud explosion). , then calculate the vapor cloud explosion under different combustion velocities, and obtain a group of explosion intensity curves through a large number of experimental results verification and correction, which are relatively close to the facts. The calculation steps of the multi-energy method generally include: 1. identify potential strong explosive sub-sources: 2. determine The energy of the sub-source: ③ determine the initial explosion intensity: ④ determine the damage radius".

 The following is a reference for solving the equation in Python ( 2021-07-31_0.137 0.119 death radius_psxhh's blog-CSDN blog ):

# 蒸汽云爆炸模型:参数为爆炸物质量(kg)、爆照物的燃烧热(kj/kg),某个距离(m,求超压值,可填0至多个距离)
# 返回值为tnt当量,辐射损伤范围,冲击波损伤范围,某个距离的超压值(若用户输入)
# auth:hui mail:[email protected]
def model_ace( wf, qf, *distance):
    wtnt = 1.8 * 0.04 * wf * qf / 4520
    # 热辐射死亡半径、重伤半径、轻伤半径(m)
    def thermal_rad(wtnt):
        rad_death = 13.6 * (wtnt / 1000) ** 0.37
        rad_severe_wound = 1.089 * ((wtnt * 4520 * 1000 / 101300) ** (1 / 3))
        rad_slight_wound = 1.957 * ((wtnt * 4520 * 1000 / 101300) ** (1 / 3))
        return round(wtnt, 2), round(rad_death, 2), round(rad_severe_wound,2), round(
            rad_slight_wound, 2)
    # 炮炸冲击波伤害距离
    def shock_wave_rad(wtnt):
        solution = []
        # 二分法迭代
        def dichotomy(pi, left, right):
            def dic(dis):
                z = dis / wtnt ** (1 / 3)
                return 3.9 / z ** 1.85 + 0.5 / z - pi
            mid = 0.5 * (left + right)
            if right - left > 0.0001:
                if dic(left) * dic(mid) < 0:
                    solution.append('1')
                    return dichotomy(pi, left, mid)
                else:
                    return dichotomy(pi, mid, right)
            else:
                # 判断有无解
                if len(solution) != 0:
                    return mid
                else:
                    print('unsolvable')
        # 大于r1大部分人死亡距离;r1-r2内脏严重损伤或死亡;r2-r3人员严重伤害;r3-r4人员轻微伤害
        r1 = dichotomy(0.1, 0.001, 10 ** 10)
        r2 = dichotomy(0.05, 0.001, 10 ** 10)
        r3 = dichotomy(0.03, 0.001, 10 ** 10)
        r4 = dichotomy(0.02, 0.001, 10 ** 10)
        # 判断用户是否输入某个距离,求爆炸超压
        if len(distance) != 0:
            pi = []
            for i in distance:
                # 爆炸特征长度
                z = i / (wtnt) ** (1 / 3)
                # 爆炸超压峰值
                result = 3.9 / z ** 1.85 + 0.5 / z
                result = round(result, 3)
                pi.append(result)
            return round(r1, 2), round(r2, 2), round(r3, 2), round(r4,2), pi
        else:
            return round(r1, 2), round(r2, 2), round(r3, 2), round(r4,2)
    r_th=thermal_rad(wtnt)
    r_sh=shock_wave_rad(wtnt)
    return r_th,r_sh
package com.planet.engine.bang.param;

import lombok.Data;

/**
 * 业务参数
 */
@Data
public class BangBusParam {
    /**
     * 储物体积,m3
     */
    private double volume = 100D;

    /**
     * 储物密度,kg/m3
     */
    private double density = 450D;

    /**
     * 充装系数
     */
    private double fillingRatio = 0.9D;

    /**
     * TNT爆炸热,kj/kg
     */
    private double hTnt = 4520D;

    /**
     * 目标材料爆炸热,kj/kg
     */
    private double hChem = 55600D;

    /**
     * 死亡半径超压,Pa
     */
    private double ps0 = 100000D;

    /**
     * 重伤半径超压,Pa
     */
    private double ps1 = 44000D;

    /**
     * 轻伤半径超压,Pa
     */
    private double ps2 = 17000D;

    /**
     * 财产损失半径超压,Pa
     */
    private double ps3 = 13800D;
}

Guess you like

Origin blog.csdn.net/coree6300/article/details/130473509