场景01:废气排放超标预警
当前阶段: 🔍 探索中 | 行业: 环保监测 | 关键词: 废气监测、环境监测、异常预警 | 返回环保场景 →
一、需求探索
1.1 痛点时刻
具体场景:
凌晨3点,某化工厂2号废气排放口的SO2浓度监测数据显示:
- 02:30 → 80mg/m³(接近预警线)
- 02:45 → 120mg/m³(超标)
- 03:00 → 150mg/m³(严重超标)
30分钟内,SO2浓度从80mg/m³快速上升到150mg/m³,超过国家标准(100mg/m³)50%。但环保监控室值班人员未及时发现,直到03:15才注意到浓度已经严重超标。
业务背景:
- 监测规模:化工厂有5-20个废气排放口,每个排放口监测SO2、NOx、颗粒物等多项指标
- 监测频率:每分钟采集一次数据,实时上传到环保监控平台
- 排放标准:《大气污染物综合排放标准》规定SO2排放浓度 ≤ 100mg/m³
- 监管要求:超标排放将面临环保部门处罚,严重超标可能被责令停产整改
1.2 核心痛点
问题1:发现滞后
- 废气浓度缓慢上升时,值班人员可能不会注意
- 只关注绝对值(是否超标),忽略变化趋势(快速上升)
- 夜班或疲劳时,容易漏看监控数据
问题2:判断困难
- 不知道是正常波动还是异常上升
- 不知道是设备故障还是工艺问题
- 不知道该立即停产还是先调整工艺参数
问题3:响应慢
- 发现异常后,人工通知、人工决策、人工执行,耗时长
- 应急预案在纸上,执行时容易遗漏步骤
- 事后追溯困难,责任不清
1.3 业务规则(行业标准)
《大气污染物综合排放标准》相关要求:
- SO2排放浓度 ≤ 100mg/m³(二级标准)
- NOx排放浓度 ≤ 240mg/m³
- 颗粒物排放浓度 ≤ 120mg/m³
实际业务规则(基于行业调研):
- 80%预警规则:SO2浓度 > 80mg/m³(80%标准值)→ 黄色预警,检查设备
- 100%报警规则:SO2浓度 > 100mg/m³(国家标准)→ 红色报警,调整工艺
- 快速上升规则:30分钟内上升 > 50mg/m³ → 立即报警(可能是设备故障)
- 150%紧急规则:SO2浓度 > 150mg/m³ → 紧急,启动应急处置
成本测算:
- 超标成本:环保处罚10-100万元/次,停产整改损失更大
- 预警成本:系统开发 + 运维,约8万元/年
- 投资回报:避免一次超标处罚,即可收回成本
二、方案设计
2.1 业务规则设计
规则1:绝对值预警规则
typescript
// 废气浓度绝对值判定
interface EmissionAlert {
// 判定条件
concentration: number; // 当前浓度(mg/m³)
pollutant: 'SO2' | 'NOx' | 'PM'; // 污染物类型
// 判定结果
level: 'NORMAL' | 'WARNING' | 'ALARM' | 'CRITICAL';
action: string; // 应采取的措施
}
// 判定逻辑(以SO2为例)
function checkConcentration(concentration: number): EmissionAlert {
if (concentration >= 150) {
return {
concentration,
pollutant: 'SO2',
level: 'CRITICAL',
action: '立即启动应急处置,停止相关生产线,排查设备故障'
};
} else if (concentration >= 100) {
return {
concentration,
pollutant: 'SO2',
level: 'ALARM',
action: '调整工艺参数,增加脱硫效率,通知环保科长'
};
} else if (concentration >= 80) {
return {
concentration,
pollutant: 'SO2',
level: 'WARNING',
action: '检查脱硫设备运行状态,增加监测频率'
};
} else {
return {
concentration,
pollutant: 'SO2',
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 = 30 // 默认30分钟
): 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;
// 30分钟内上升 > 50mg/m³ → 快速上升
if (riseAmount > 50) {
return {
startConcentration,
endConcentration,
duration: timeWindow,
riseAmount,
isRapidRise: true,
severity: riseAmount > 80 ? 'critical' : 'warning'
};
}
return { isRapidRise: false };
}规则3:自动响应规则
typescript
// 自动响应动作
interface AutoResponse {
// 黄色预警(浓度 > 80mg/m³)
warning: {
alert: {
channels: ['环保监控室大屏', '环保专员手机'];
message: '2号排放口SO2浓度85mg/m³,接近标准值';
};
autoActions: [
'检查脱硫设备运行状态',
'增加监测频率(1分钟 → 30秒)',
'通知环保专员'
];
};
// 红色报警(浓度 > 100mg/m³ 或 快速上升)
alarm: {
alert: {
channels: ['环保监控室', '环保专员', '环保科长', '值班厂长'];
sound: '高优先级报警音';
message: '2号排放口SO2浓度120mg/m³,超过国家标准';
};
autoActions: [
'调整工艺参数',
'增加脱硫剂投放量',
'通知环保科长',
'记录超标事件'
];
};
// 紧急处置(浓度 > 150mg/m³)
critical: {
alert: {
channels: ['全厂广播', '所有管理人员'];
sound: '最高优先级报警音';
message: '2号排放口SO2浓度160mg/m³,严重超标,启动应急预案';
};
autoActions: [
'停止相关生产线',
'启动应急处置预案',
'通知环保部门',
'排查设备故障'
];
};
}2.2 技术方案
技术架构
废气传感器 → 数据采集 → 规则引擎 → 报警推送
↓
数据存储(时序数据)
↓
可视化大屏 + 移动端核心技术点
1. 废气传感器数据采集
- 采集频率:1次/分钟(正常)、1次/30秒(预警时)
- 数据格式:
{ sensorId, location, pollutant, concentration, timestamp } - 数据校验:排除异常值(如传感器故障导致的突变)
2. 时序数据存储
- 使用时序数据库(如InfluxDB)存储历史数据
- 支持快速查询时间窗口内的数据
- 支持数据聚合(如计算30分钟内的上升幅度)
3. 规则引擎
- 实时监测:每分钟检查一次所有传感器数据
- 双重判断:绝对值 + 变化趋势
- 支持规则配置(阈值、时间窗口可调整)
4. 报警推送
- 分级推送:黄色预警、红色报警、紧急处置
- 多通道推送:大屏、手机APP、短信、广播
- 推送确认:必须确认收到,否则持续推送
数据模型
typescript
// 传感器数据记录
interface SensorRecord {
id: string;
sensorId: string; // 传感器ID
location: string; // 位置(如"2号排放口")
pollutant: 'SO2' | 'NOx' | 'PM'; // 污染物类型
concentration: number; // 浓度(mg/m³)
timestamp: Date;
status: 'NORMAL' | 'FAULT'; // 传感器状态
}
// 预警事件记录
interface AlertEvent {
id: string;
sensorId: string;
location: string;
pollutant: 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 技术迁移分析
复用已有资产:矿山场景的"瓦斯浓度监测"规则
相似点:
- 都是基于传感器数据的环境监测
- 都需要判断绝对值 + 变化趋势
- 都需要分级预警 + 自动响应
差异点:
| 维度 | 矿山场景 | 环保场景 |
|---|---|---|
| 监测对象 | 瓦斯浓度 | 废气浓度(SO2/NOx/PM) |
| 阈值判断 | > 0.5%预警 | > 80mg/m³预警 |
| 变化趋势 | 15分钟上升 > 0.3% | 30分钟上升 > 50mg/m³ |
| 响应动作 | 加强通风、撤人 | 调整工艺、停产 |
| 数据采集 | 1分钟/次 | 1分钟/次 |
技术复用度:85%
- 规则引擎逻辑:100%复用(绝对值 + 变化趋势)
- 报警推送逻辑:100%复用
- 数据采集层:需要适配废气传感器(15%新开发)
3.2 Cursor Skill设计
Skill名称: environment-monitoring-alert.md
Skill内容: 复用矿山场景的环境监测规则,调整阈值和污染物类型
3.3 PROMPT模板
PROMPT 1:生成废气监测代码
你是一个业务逻辑开发专家。请根据以下业务规则,生成废气排放监测预警的代码。
## 业务场景
化工厂废气排放口SO2浓度监测,需要实时判断绝对值是否超标,以及是否快速上升。
## 业务规则
1. 绝对值判断:
- > 80mg/m³:黄色预警,检查设备
- > 100mg/m³:红色报警,调整工艺
- > 150mg/m³:紧急,启动应急处置
2. 变化趋势判断:
- 30分钟内上升 > 50mg/m³:立即报警(可能是设备故障)
3. 自动响应:
- 黄色预警:通知环保专员,增加监测频率
- 红色报警:通知管理层,调整工艺参数
- 紧急处置:停止生产,启动应急预案
## 数据模型
- SensorRecord:传感器数据记录(sensorId, pollutant, concentration, timestamp)
- AlertEvent:预警事件记录(alertType, level, details, disposal)
## 技术要求
- 使用TypeScript
- 实时监测(每分钟检查一次)
- 支持规则配置(阈值、时间窗口可调整)
- 记录所有预警事件和处置过程
请生成完整的代码实现。PROMPT 2:生成分级报警逻辑
你是一个业务逻辑开发专家。请根据以下业务规则,生成分级报警推送的代码。
## 业务场景
废气浓度异常需要分级推送报警,不同级别推送给不同的人员。
## 业务规则
1. 黄色预警(浓度 > 80mg/m³):
- 推送到:环保监控室大屏、环保专员
- 推送内容:当前浓度、位置、建议措施
2. 红色报警(浓度 > 100mg/m³ 或 快速上升):
- 推送到:监控室、环保专员、环保科长、值班厂长
- 推送内容:当前浓度、上升趋势、应急措施
3. 紧急处置(浓度 > 150mg/m³):
- 推送到:全厂广播、所有管理人员
- 触发:启动应急预案、停止生产
## 技术要求
- 支持多通道推送(APP、短信、广播)
- 推送确认机制(必须确认收到)
- 推送失败重试(最多3次)
请生成完整的代码实现。3.4 开发周期预估
基于已有资产(矿山场景):
原型验证:1-2天
- Day 1:适配废气传感器数据,复用规则引擎
- Day 2:调整阈值和报警逻辑,测试异常场景
首版上线:5-7天
- Day 3-4:完善处置流程、数据记录
- Day 5-6:对接环保监控系统、测试
- Day 7:部署上线
迭代优化:根据实际使用反馈调整阈值、优化报警策略
四、开发资产
4.1 Cursor Skill
文件名: environment-monitoring-alert.md
内容: 复用矿山场景的环境监测规则(见矿山场景文档)
4.2 技术迁移说明
可复用的已有资产:
矿山场景:瓦斯浓度监测规则
- 复用:规则引擎框架(绝对值 + 变化趋势)、报警推送逻辑
- 调整:瓦斯浓度 → 废气浓度,阈值调整
- 复用度:85%
电力场景:变压器温度监测规则
- 复用:时序数据存储、趋势分析
- 调整:温度 → 浓度
- 复用度:75%
需要新开发的部分:
- 废气传感器数据采集接口(15%)
- 多污染物类型支持(SO2/NOx/PM)
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 EMISSION_ALERT_CONFIG = {
SO2: {
thresholds: {
warning: 80, // 黄色预警
alarm: 100, // 红色报警
critical: 150 // 紧急处置
},
rapidRise: {
timeWindow: 30, // 时间窗口(分钟)
threshold: 50 // 上升阈值
}
},
NOx: {
thresholds: {
warning: 192, // 80% * 240
alarm: 240,
critical: 360
}
}
};步骤4:测试验证
bash
# 运行测试
npm test
# 模拟异常场景
npm run simulate:emission-alert五、下一步行动
如果您对这个场景感兴趣
- 快速验证:我们可以用1-2天时间,基于模拟数据做原型演示
- 技术对接:提供传感器接口文档,评估对接工作量
- 成本预估:根据排放口数量、监测指标,给出详细报价
相关场景
- 场景02:污水处理设施巡检漏检 - 计划任务类场景
- 矿山场景:瓦斯浓度预警 - 相似的环境监测场景

