Skip to content

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

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


一、需求探索

1.1 痛点时刻

具体场景:

某日下午,井下B区采煤面的瓦斯传感器显示浓度持续上升:

  • 初始浓度:0.3%(正常)
  • 中间浓度:0.45%(上升中)
  • 当前浓度:0.6%(超过预警线)

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

业务背景:

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

1.2 核心痛点

问题1:发现滞后

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

问题2:判断困难

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

问题3:响应慢

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

1.3 业务规则(行业标准)

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

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

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

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

成本测算:

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

二、方案设计

2.1 业务规则设计

规则1:绝对值预警规则

接口名称: checkConcentration

接口签名:

typescript
function checkConcentration(concentration: number): GasConcentrationAlert

数据模型:

typescript
interface GasConcentrationAlert {
  concentration: number;  // 当前浓度(%)
  level: 'NORMAL' | 'WARNING' | 'ALARM' | 'CRITICAL';
  action: string;  // 应采取的措施
}

业务规则:

  • concentration >= 1.0% → CRITICAL(立即停止作业,撤出人员,切断电源)
  • concentration >= 0.8% → ALARM(准备撤人,加强通风,停止爆破作业)
  • concentration >= 0.5% → WARNING(加强通风,增加监测频率,通知现场负责人)
  • concentration < 0.5% → NORMAL(正常作业)

算法要求:

  • 阈值判断采用分级策略
  • 阈值可配置,支持运营调整
  • 返回结果包含当前浓度、预警级别和建议措施

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

接口名称: checkRapidRise

接口签名:

typescript
function checkRapidRise(
  sensorData: SensorRecord[],
  timeWindow?: number
): RapidRiseAlert

参数说明:

  • sensorData: 传感器历史数据数组
  • timeWindow: 时间窗口(分钟),默认15分钟

数据模型:

typescript
interface RapidRiseAlert {
  startConcentration: number;  // 起始浓度
  endConcentration: number;    // 结束浓度
  duration: number;            // 时间窗口(分钟)
  riseAmount: number;          // 上升幅度
  isRapidRise: boolean;        // 是否快速上升
  severity: 'warning' | 'critical';
}

interface SensorRecord {
  id: string;
  sensorId: string;
  location: string;
  concentration: number;
  timestamp: Date;
  status: 'NORMAL' | 'FAULT';
}

业务规则:

  • 获取时间窗口内的数据(默认15分钟)
  • 计算上升幅度 = 结束浓度 - 起始浓度
  • 上升幅度 > 0.3% → 快速上升
  • 上升幅度 > 0.5% → 严重级别(critical)
  • 上升幅度 ≤ 0.5% → 警告级别(warning)

算法要求:

  • 时间窗口滑动计算
  • 数据量不足时返回非快速上升
  • 支持时间窗口和阈值配置

规则3:自动响应规则

数据模型:

typescript
interface AutoResponse {
  // 黄色预警(浓度 > 0.5%)
  warning: {
    alert: {
      channels: string[];  // ['调度室大屏', '现场负责人手机']
      message: string;
    };
    autoActions: string[];  // 自动执行的动作列表
  };

  // 红色报警(浓度 > 0.8% 或 快速上升)
  alarm: {
    alert: {
      channels: string[];  // ['调度室大屏', '现场负责人', '安全科长', '值班矿长']
      sound: string;
      message: string;
    };
    autoActions: string[];
  };

  // 强制撤离(浓度 > 1.0%)
  critical: {
    alert: {
      channels: string[];  // ['全矿广播', '所有管理人员']
      sound: string;
      message: string;
    };
    autoActions: string[];
  };
}

业务规则:

  • 黄色预警:推送到调度室和现场负责人,增加通风量和监测频率
  • 红色报警:推送到管理层,停止爆破作业,准备撤人
  • 强制撤离:全矿广播,切断电源,启动应急预案

算法要求:

  • 根据预警级别选择不同的推送通道
  • 支持多通道并发推送
  • 记录所有推送结果和确认状态

2.2 技术方案

技术架构

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

           数据存储(时序数据)

           可视化大屏 + 移动端

**核心技术点

1. 瓦斯传感器数据采集

  • 采集频率:正常模式和预警模式可配置
  • 数据格式:{ sensorId, location, concentration, timestamp }
  • 数据校验:排除异常值(如传感器故障导致的突变)

2. 时序数据存储

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

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. 规则引擎模块(复用生鲜场景,复杂度:低)
    3. 报警推送模块(复用生鲜场景,复杂度:低)
  • 技术风险:
    • 传感器设备兼容性
    • 数据采集稳定性
    • 规则引擎性能(需要实时监测200-500个传感器)
  • 性能要求:
    • 异常检测延迟要求低
    • 报警推送延迟要求低
    • 支持高并发数据采集

阶段三:迭代优化

  • 优化方向:根据实际使用反馈调整阈值、优化报警策略
  • 关键指标:误报率、漏报率、响应时长

四、开发资产

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'

业务规则:

  • value >= thresholds.critical → 'CRITICAL'
  • value >= thresholds.alarm → 'ALARM'
  • value >= thresholds.warning → 'WARNING'
  • value < thresholds.warning → 'NORMAL'

算法要求:

  • 阈值可配置
  • 支持多级阈值判断

2. 变化趋势预警规则

规则一:快速上升检测

接口签名:

typescript
function checkRapidRise(
  sensorData: SensorRecord[],
  timeWindow: number,
  riseThreshold: number
): boolean

参数说明:

  • sensorData: 传感器历史数据数组
  • timeWindow: 时间窗口(分钟)
  • riseThreshold: 上升阈值

业务规则:

  • 获取时间窗口内的数据
  • 计算上升幅度 = 结束值 - 起始值
  • 上升幅度 > 阈值 → 返回 true
  • 数据不足 → 返回 false

算法要求:

  • 时间窗口滑动计算
  • 支持时间窗口和阈值配置

3. 自动响应规则

规则一:分级报警

接口签名:

typescript
async function triggerAlert(
  level: 'WARNING' | 'ALARM' | 'CRITICAL',
  sensor: Sensor,
  details: any
): Promise<void>

参数说明:

  • level: 报警级别
  • sensor: 传感器信息
  • details: 报警详情

业务规则:

  • WARNING: 推送到现场负责人,执行基础应急措施
  • ALARM: 推送到管理层,执行高级应急措施
  • CRITICAL: 全矿广播,执行最高级应急措施

算法要求:

  • 根据级别选择推送通道
  • 支持多通道并发推送
  • 记录推送结果和确认状态

数据模型

传感器数据记录

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 辅助开发,快速、灵活、可靠