Skip to content

场景02:瓦斯浓度异常预警

当前阶段: 🔍 探索中 | 行业: 矿山安全 | 关键词: 瓦斯监测、环境监测、异常预警 | 返回矿山场景 →


一、需求探索

1.1 痛点时刻

具体场景:

周二下午3点,井下B区采煤面的瓦斯传感器显示:

  • 14:45 → 0.3%(正常)
  • 14:52 → 0.45%(上升中)
  • 15:00 → 0.6%(超过预警线)

15分钟内,瓦斯浓度从0.3%上升到0.6%,上升幅度达0.3%。这是典型的瓦斯突出前兆,但调度室没有及时发现,直到15:05才注意到浓度已经超标。

业务背景:

  • 监测规模:井下布设200-500个瓦斯传感器,覆盖所有作业面
  • 监测频率:每分钟采集一次数据,实时上传到地面监控系统
  • 作业环境:采煤作业会扰动煤层,可能导致瓦斯突然涌出
  • 安全标准:《煤矿安全规程》规定瓦斯浓度 > 1.0%必须停止作业

1.2 核心痛点

问题1:发现滞后

  • 瓦斯浓度缓慢上升时,调度员可能不会注意
  • 只关注绝对值(是否超标),忽略变化趋势(快速上升)
  • 夜班或疲劳时,容易漏看监控数据

问题2:判断困难

  • 不知道是正常波动还是异常上升
  • 不知道是局部问题还是大面积问题
  • 不知道该立即撤人还是先加强通风

问题3:响应慢

  • 发现异常后,人工通知、人工决策、人工执行,耗时长
  • 应急预案在纸上,执行时容易遗漏步骤
  • 事后追溯困难,责任不清

1.3 业务规则(行业标准)

《煤矿安全规程》相关要求:

  • 采煤工作面瓦斯浓度 > 1.0% → 必须停止作业,撤出人员(第148条)
  • 瓦斯浓度 > 1.5% → 必须停电撤人(第149条)
  • 瓦斯监测系统应具备超限报警功能(第150条)

实际业务规则(基于行业调研):

  • 0.5%预警规则:瓦斯浓度 > 0.5% → 黄色预警,加强通风
  • 0.8%报警规则:瓦斯浓度 > 0.8% → 红色报警,准备撤人
  • 1.0%强制撤离:瓦斯浓度 > 1.0% → 立即停止作业,撤出人员
  • 快速上升规则:15分钟内上升 > 0.3% → 立即报警(可能是瓦斯突出前兆)

成本测算:

  • 误报成本:停止作业、撤出人员,损失产量约5000元/次
  • 漏报成本:瓦斯爆炸,可能造成重大伤亡(无法估量)
  • 平衡点:宁可误报,不可漏报

二、方案设计

2.1 业务规则设计

规则1:绝对值预警规则

typescript
// 瓦斯浓度绝对值判定
interface GasConcentrationAlert {
  // 判定条件
  concentration: number;  // 当前浓度(%)

  // 判定结果
  level: 'NORMAL' | 'WARNING' | 'ALARM' | 'CRITICAL';
  action: string;  // 应采取的措施
}

// 判定逻辑
function checkConcentration(concentration: number): GasConcentrationAlert {
  if (concentration >= 1.0) {
    return {
      concentration,
      level: 'CRITICAL',
      action: '立即停止作业,撤出人员,切断电源'
    };
  } else if (concentration >= 0.8) {
    return {
      concentration,
      level: 'ALARM',
      action: '准备撤人,加强通风,停止爆破作业'
    };
  } else if (concentration >= 0.5) {
    return {
      concentration,
      level: 'WARNING',
      action: '加强通风,增加监测频率,通知现场负责人'
    };
  } else {
    return {
      concentration,
      level: 'NORMAL',
      action: '正常作业'
    };
  }
}

规则2:快速上升预警规则

typescript
// 瓦斯浓度快速上升判定
interface RapidRiseAlert {
  // 判定条件
  startConcentration: number;  // 起始浓度
  endConcentration: number;    // 结束浓度
  duration: number;            // 时间窗口(分钟)
  riseAmount: number;          // 上升幅度

  // 判定结果
  isRapidRise: boolean;        // 是否快速上升
  severity: 'warning' | 'critical';
}

// 判定逻辑
function checkRapidRise(
  sensorData: SensorRecord[],
  timeWindow: number = 15  // 默认15分钟
): RapidRiseAlert {
  // 获取时间窗口内的数据
  const now = new Date();
  const startTime = new Date(now.getTime() - timeWindow * 60 * 1000);
  const windowData = sensorData.filter(d => d.timestamp >= startTime);

  if (windowData.length < 2) {
    return { isRapidRise: false };
  }

  const startConcentration = windowData[0].concentration;
  const endConcentration = windowData[windowData.length - 1].concentration;
  const riseAmount = endConcentration - startConcentration;

  // 15分钟内上升 > 0.3% → 快速上升
  if (riseAmount > 0.3) {
    return {
      startConcentration,
      endConcentration,
      duration: timeWindow,
      riseAmount,
      isRapidRise: true,
      severity: riseAmount > 0.5 ? 'critical' : 'warning'
    };
  }

  return { isRapidRise: false };
}

规则3:自动响应规则

typescript
// 自动响应动作
interface AutoResponse {
  // 黄色预警(浓度 > 0.5%)
  warning: {
    alert: {
      channels: ['调度室大屏', '现场负责人手机'];
      message: 'B区采煤面瓦斯浓度0.6%,超过预警线';
    };
    autoActions: [
      '增加通风量',
      '增加监测频率(1分钟 → 30秒)',
      '通知现场负责人'
    ];
  };

  // 红色报警(浓度 > 0.8% 或 快速上升)
  alarm: {
    alert: {
      channels: ['调度室大屏', '现场负责人', '安全科长', '值班矿长'];
      sound: '高优先级报警音';
      message: 'B区采煤面瓦斯浓度0.9%,准备撤人';
    };
    autoActions: [
      '停止爆破作业',
      '加强通风',
      '准备撤人方案',
      '通知救护队待命'
    ];
  };

  // 强制撤离(浓度 > 1.0%)
  critical: {
    alert: {
      channels: ['全矿广播', '所有管理人员'];
      sound: '最高优先级报警音';
      message: 'B区采煤面瓦斯浓度1.2%,立即撤人';
    };
    autoActions: [
      '切断该区域电源',
      '启动应急广播',
      '通知所有人员撤离',
      '启动应急预案'
    ];
  };
}

2.2 技术方案

技术架构

瓦斯传感器 → 数据采集 → 规则引擎 → 报警推送

           数据存储(时序数据)

           可视化大屏 + 移动端

核心技术点

1. 瓦斯传感器数据采集

  • 采集频率:1次/分钟(正常)、1次/30秒(预警时)
  • 数据格式:{ sensorId, location, concentration, timestamp }
  • 数据校验:排除异常值(如传感器故障导致的突变)

2. 时序数据存储

  • 使用时序数据库(如InfluxDB)存储历史数据
  • 支持快速查询时间窗口内的数据
  • 支持数据聚合(如计算15分钟内的上升幅度)

3. 规则引擎

  • 实时监测:每分钟检查一次所有传感器数据
  • 双重判断:绝对值 + 变化趋势
  • 支持规则配置(阈值、时间窗口可调整)

4. 报警推送

  • 分级推送:黄色预警、红色报警、强制撤离
  • 多通道推送:大屏、手机APP、短信、广播
  • 推送确认:必须确认收到,否则持续推送

数据模型

typescript
// 传感器数据记录
interface SensorRecord {
  id: string;
  sensorId: string;           // 传感器ID
  location: string;           // 位置(如"B区采煤面")
  concentration: number;      // 瓦斯浓度(%)
  timestamp: Date;
  status: 'NORMAL' | 'FAULT'; // 传感器状态
}

// 预警事件记录
interface AlertEvent {
  id: string;
  sensorId: string;
  location: string;
  alertType: 'ABSOLUTE' | 'RAPID_RISE';  // 预警类型
  level: 'WARNING' | 'ALARM' | 'CRITICAL';
  detectedAt: Date;

  // 预警详情
  details: {
    concentration?: number;      // 当前浓度
    riseAmount?: number;         // 上升幅度
    duration?: number;           // 时间窗口
  };

  // 处置记录
  disposal: {
    confirmedBy: string;
    confirmedAt: Date;
    actions: string[];          // 采取的措施
    result: string;             // 处置结果
    resolvedAt: Date;
  };
}

三、AI辅助开发方案

3.1 技术迁移分析

复用已有资产:生鲜场景的"冷库温度监测"规则

相似点:

  • 都是基于传感器数据的环境监测
  • 都需要判断绝对值 + 变化趋势
  • 都需要分级预警 + 自动响应

差异点:

维度生鲜场景矿山场景
监测对象冷库温度瓦斯浓度
阈值判断> 8°C预警> 0.5%预警
变化趋势2小时上升 > 3°C15分钟上升 > 0.3%
响应动作检查制冷设备加强通风、撤人
数据采集5分钟/次1分钟/次

技术复用度:80%

  • 规则引擎逻辑:100%复用(绝对值 + 变化趋势)
  • 报警推送逻辑:100%复用
  • 数据采集层:需要适配瓦斯传感器(20%新开发)

3.2 Cursor Skill设计

Skill名称: environment-monitoring-alert.md

Skill内容: (见下一节"开发资产")

3.3 PROMPT模板

PROMPT 1:生成环境监测代码

你是一个业务逻辑开发专家。请根据以下业务规则,生成环境监测异常预警的代码。

## 业务场景
矿山井下瓦斯浓度监测,需要实时判断绝对值是否超标,以及是否快速上升。

## 业务规则
1. 绝对值判断:
   - > 0.5%:黄色预警,加强通风
   - > 0.8%:红色报警,准备撤人
   - > 1.0%:强制撤离,切断电源

2. 变化趋势判断:
   - 15分钟内上升 > 0.3%:立即报警(可能是瓦斯突出前兆)

3. 自动响应:
   - 黄色预警:通知现场负责人,增加监测频率
   - 红色报警:通知管理层,停止爆破作业
   - 强制撤离:启动应急广播,切断电源

## 数据模型
- SensorRecord:传感器数据记录(sensorId, concentration, timestamp)
- AlertEvent:预警事件记录(alertType, level, details, disposal)

## 技术要求
- 使用TypeScript
- 实时监测(每分钟检查一次)
- 支持规则配置(阈值、时间窗口可调整)
- 记录所有预警事件和处置过程

请生成完整的代码实现。

PROMPT 2:生成分级报警逻辑

你是一个业务逻辑开发专家。请根据以下业务规则,生成分级报警推送的代码。

## 业务场景
瓦斯浓度异常需要分级推送报警,不同级别推送给不同的人员。

## 业务规则
1. 黄色预警(浓度 > 0.5%):
   - 推送到:调度室大屏、现场负责人
   - 推送内容:当前浓度、位置、建议措施

2. 红色报警(浓度 > 0.8% 或 快速上升):
   - 推送到:调度室、现场负责人、安全科长、值班矿长
   - 推送内容:当前浓度、上升趋势、应急措施

3. 强制撤离(浓度 > 1.0%):
   - 推送到:全矿广播、所有管理人员
   - 触发:启动应急预案、切断电源

## 技术要求
- 支持多通道推送(APP、短信、广播)
- 推送确认机制(必须确认收到)
- 推送失败重试(最多3次)

请生成完整的代码实现。

3.4 开发周期预估

基于已有资产(生鲜场景):

  • 原型验证:1-2天

    • Day 1:适配瓦斯传感器数据,复用规则引擎
    • Day 2:调整阈值和报警逻辑,测试异常场景
  • 首版上线:3-5天

    • Day 3-4:完善处置流程、数据记录
    • Day 5:对接监控系统、测试、部署上线
  • 迭代优化:根据实际使用反馈调整阈值、优化报警策略


四、开发资产

4.1 Cursor Skill

文件名: environment-monitoring-alert.md

内容:

markdown
# 环境监测异常预警规则

## 业务场景
矿山、冷链、化工等场景中,需要实时监测环境参数(如瓦斯浓度、温度、湿度),发现异常时自动报警。

## 核心业务规则

### 1. 绝对值预警规则

**规则一:阈值判断**
```typescript
// 判断环境参数是否超过阈值
function checkThreshold(
  value: number,
  thresholds: { warning: number; alarm: number; critical: number }
): 'NORMAL' | 'WARNING' | 'ALARM' | 'CRITICAL' {
  if (value >= thresholds.critical) {
    return 'CRITICAL';
  } else if (value >= thresholds.alarm) {
    return 'ALARM';
  } else if (value >= thresholds.warning) {
    return 'WARNING';
  } else {
    return 'NORMAL';
  }
}

2. 变化趋势预警规则

规则一:快速上升检测

typescript
// 检测环境参数是否快速上升
function checkRapidRise(
  sensorData: SensorRecord[],
  timeWindow: number,  // 时间窗口(分钟)
  riseThreshold: number  // 上升阈值
): boolean {
  const now = new Date();
  const startTime = new Date(now.getTime() - timeWindow * 60 * 1000);
  const windowData = sensorData.filter(d => d.timestamp >= startTime);

  if (windowData.length < 2) {
    return false;
  }

  const startValue = windowData[0].value;
  const endValue = windowData[windowData.length - 1].value;
  const riseAmount = endValue - startValue;

  return riseAmount > riseThreshold;
}

3. 自动响应规则

规则一:分级报警

typescript
async function triggerAlert(
  level: 'WARNING' | 'ALARM' | 'CRITICAL',
  sensor: Sensor,
  details: any
) {
  const alertConfig = {
    WARNING: {
      channels: ['大屏', '现场负责人'],
      priority: 'MEDIUM',
      actions: ['增加监测频率', '通知现场负责人']
    },
    ALARM: {
      channels: ['大屏', '现场负责人', '管理层'],
      priority: 'HIGH',
      actions: ['停止相关作业', '启动应急预案']
    },
    CRITICAL: {
      channels: ['全矿广播', '所有管理人员'],
      priority: 'CRITICAL',
      actions: ['立即撤人', '切断电源', '启动应急预案']
    }
  };

  const config = alertConfig[level];

  await alertService.push({
    channels: config.channels,
    priority: config.priority,
    message: `${sensor.location}环境异常:${details.message}`,
    data: {
      sensor,
      details,
      suggestedActions: config.actions
    }
  });
}

数据模型

传感器数据记录

typescript
interface SensorRecord {
  id: string;
  sensorId: string;
  location: string;
  value: number;              // 监测值
  unit: string;               // 单位
  timestamp: Date;
  status: 'NORMAL' | 'FAULT';
}

预警事件记录

typescript
interface AlertEvent {
  id: string;
  sensorId: string;
  location: string;
  alertType: 'ABSOLUTE' | 'RAPID_RISE';
  level: 'WARNING' | 'ALARM' | 'CRITICAL';
  detectedAt: Date;
  details: {
    value?: number;
    riseAmount?: number;
    duration?: number;
  };
  disposal: {
    confirmedBy: string;
    confirmedAt: Date;
    actions: string[];
    result: string;
    resolvedAt: Date;
  };
}

关键处理流程

  1. 实时监测 → 每分钟检查所有传感器数据
  2. 双重判断 → 绝对值 + 变化趋势
  3. 分级报警 → 根据严重程度推送给不同人员
  4. 自动响应 → 触发预设的应急措施
  5. 处置闭环 → 记录处置过程 + 自动归档

开发注意事项

  1. 阈值可配置:不要硬编码阈值,支持运营人员配置
  2. 数据校验:排除传感器故障导致的异常值
  3. 推送确认:必须确认收到,否则持续推送
  4. 数据留痕:所有预警事件和处置过程必须记录

相似场景复用

这个规则可以复用到:

  • 冷链物流:冷库温度监测
  • 化工厂:有毒气体浓度监测
  • 数据中心:机房温湿度监测
  • 医院:手术室温湿度监测

### 4.2 技术迁移说明

**可复用的已有资产:**

1. **生鲜场景:冷库温度监测规则**
   - 复用:规则引擎框架(绝对值 + 变化趋势)、报警推送逻辑
   - 调整:温度 → 瓦斯浓度,阈值调整
   - 复用度:80%

2. **医废场景:超期预警规则**
   - 复用:时间窗口判断、分级报警
   - 调整:时间窗口(46/47/48小时 → 15分钟)
   - 复用度:70%

**需要新开发的部分:**
- 瓦斯传感器数据采集接口(20%)
- 应急广播系统对接(井下广播)

### 4.3 实施指南

**步骤1:准备环境**
```bash
# 安装依赖
npm install

# 配置传感器接口
# 编辑 config/sensor-config.json

步骤2:使用Cursor Skill

1. 将 environment-monitoring-alert.md 保存到 .cursor/rules/
2. 在Cursor中告诉AI:
   "参考 environment-monitoring-alert.md 中的业务规则,
   实现瓦斯浓度监测预警功能"
3. AI会基于规则生成代码

步骤3:调整配置

typescript
// config/alert-rules.ts
export const GAS_ALERT_CONFIG = {
  thresholds: {
    warning: 0.5,    // 黄色预警
    alarm: 0.8,      // 红色报警
    critical: 1.0    // 强制撤离
  },
  rapidRise: {
    timeWindow: 15,  // 时间窗口(分钟)
    threshold: 0.3   // 上升阈值
  }
};

步骤4:测试验证

bash
# 运行测试
npm test

# 模拟异常场景
npm run simulate:gas-alert

五、下一步行动

如果您对这个场景感兴趣

  1. 快速验证:我们可以用1-2天时间,基于模拟数据做原型演示
  2. 技术对接:提供传感器接口文档,评估对接工作量
  3. 成本预估:根据传感器数量、监测点位,给出详细报价

相关场景

相关资产


← 返回矿山场景 | 联系合作 →

基于 AI 辅助开发,快速、灵活、可靠