Skip to content

场景01:水库水位异常预警

当前阶段: 🔍 探索中 | 行业: 水利行业 | 关键词: 水位监测、防汛预警、应急响应 | 返回水利场景 →


一、需求探索

1.1 痛点时刻

具体场景:

凌晨3点,某水库上游突降暴雨,水位在1小时内从48米上升到50米。调度室值班人员正在处理其他事务,等发现水位异常时已经过去1小时,此时水位已达到51.5米,接近保证水位(55米)。

如果再晚发现30分钟,可能需要紧急泄洪,影响下游居民安全。调度员不知道:

  • 水位上升速度是否还在加快
  • 需要立即开闸泄洪还是继续观察
  • 应该通知哪些部门和人员

业务背景:

  • 水库规模:中型水库,库容5000万立方米,保护下游10万人口
  • 监测设备:水位计每5分钟上报一次数据
  • 汛期特点:5-9月为汛期,夜间降雨频繁,值班人员容易疲劳
  • 安全标准:警戒水位50米,保证水位55米,设计水位58米

1.2 核心痛点

问题1:发现滞后

  • 水位数据每5分钟上报,但调度员可能30分钟才看一次
  • 没有自动预警机制,依赖人工盯屏
  • 夜间值班人员少,容易漏看关键数据

问题2:判断困难

  • 不知道水位上升速度是否异常(正常上升 vs 快速上升)
  • 不知道按当前速度多久会达到保证水位
  • 不知道上游降雨情况和未来趋势

问题3:响应慢

  • 发现异常后,人工查找应急预案,耗时长
  • 人工通知相关部门,容易遗漏
  • 事后追溯困难,责任不清

1.3 业务规则(行业标准)

《水库大坝安全管理条例》相关要求:

  • 水库必须安装水位监测设备(第15条)
  • 水位超过警戒水位应立即报告(第18条)
  • 水位接近保证水位应启动应急预案(第19条)

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

  • 警戒水位规则:水位 > 50米 → 预警(黄色)
  • 保证水位规则:水位 > 55米 → 报警(橙色)
  • 设计水位规则:水位 > 58米 → 紧急(红色)
  • 快速上升规则:1小时内上升 > 2米 → 立即报警(无论当前水位)

成本测算:

  • 误报成本:启动应急预案,通知相关部门,人工成本约500元/次
  • 漏报成本:延误泄洪时机,可能造成溃坝,损失无法估量
  • 平衡点:宁可误报,不可漏报

二、方案设计

2.1 业务规则设计

规则1:水位阈值预警

接口签名:

typescript
function checkWaterLevelThreshold(
  currentLevel: number
): WaterLevelThreshold

数据模型:

typescript
interface WaterLevelThreshold {
  // 水位阈值
  warningLevel: number;    // 警戒水位(50米)
  guaranteeLevel: number;  // 保证水位(55米)
  designLevel: number;     // 设计水位(58米)

  // 预警级别
  alertLevel: 'normal' | 'warning' | 'alarm' | 'emergency';
}

业务规则:

  1. 正常状态:水位 ≤ 警戒水位 → normal
  2. 黄色预警:警戒水位 < 水位 ≤ 保证水位 → warning
  3. 橙色预警:保证水位 < 水位 ≤ 设计水位 → alarm
  4. 红色预警:水位 > 设计水位 → emergency

算法要求:

  • 阈值比较:简单数值比较
  • 复杂度:O(1)
  • 技术难点:阈值配置化,支持不同水库的不同阈值

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

接口签名:

typescript
function checkWaterLevelRiseRate(
  records: WaterLevelRecord[],
  guaranteeLevel: number
): WaterLevelRiseRate

数据模型:

typescript
interface WaterLevelRiseRate {
  // 时间窗口
  timeWindow: number;      // 时间窗口(秒)
  riseThreshold: number;   // 上升阈值(米)

  // 判定结果
  isRapidRise: boolean;    // 是否快速上升
  riseRate: number;        // 上升速度(米/小时)
  estimatedTime: number;   // 预计到达保证水位的时间(分钟)
}

业务规则:

  1. 时间窗口:获取指定时间窗口内的水位记录
  2. 上升速度计算:(最新水位 - 最早水位) / 时间差
  3. 快速上升判定:时间窗口内上升量 > 上升阈值 → 快速上升
  4. 到达时间预测:(保证水位 - 当前水位) / 上升速度

算法要求:

  • 时间序列分析:需要处理时间窗口内的数据
  • 线性预测:基于当前上升速度预测到达时间
  • 复杂度:O(n),n为时间窗口内的记录数
  • 技术难点:
    • 数据缺失处理(传感器故障)
    • 异常值过滤(传感器误报)
    • 上升速度波动平滑处理

规则3:自动响应规则

接口签名:

typescript
function triggerAutoResponse(
  alertLevel: 'warning' | 'alarm' | 'emergency' | 'rapidRise',
  context: AlertContext
): AutoResponse

数据模型:

typescript
interface AutoResponse {
  // 报警配置
  alert: {
    channels: string[];     // 推送渠道
    sound: string;          // 报警音
    message: string;        // 报警消息
  };

  // 自动动作
  actions: string[];        // 需要执行的动作列表
}

interface AlertContext {
  reservoirId: string;
  currentLevel: number;
  riseRate?: number;
  estimatedTime?: number;
}

业务规则:

  1. 黄色预警(警戒水位):

    • 推送渠道:调度室大屏、值班人员手机
    • 自动动作:加密监测频率、通知防汛办、准备泄洪预案
  2. 橙色预警(保证水位):

    • 推送渠道:调度室大屏、值班人员手机、防汛办主任手机
    • 自动动作:启动应急预案、通知下游乡镇、调度闸门
  3. 红色预警(设计水位):

    • 推送渠道:所有相关人员、应急广播
    • 自动动作:立即泄洪、通知居民转移、上报上级
  4. 快速上升预警:

    • 推送渠道:值班人员、防汛办主任
    • 自动动作:查看上游降雨、提前准备泄洪

技术难点:

  • 多渠道推送协调(APP、短信、语音、广播)
  • 推送确认机制(重要预警必须确认)
  • 推送失败重试策略
  • 动作执行状态跟踪

2.2 技术方案

技术架构

水位计 → 数据采集 → 规则引擎 → 报警推送

      数据存储(时序数据)

      可视化大屏 + 移动端

核心技术点

1. 水位数据采集

  • 采集频率:正常模式 vs 预警模式(频率动态调整)
  • 数据格式:{ reservoirId, level, timestamp, sensorStatus }
  • 数据校验:异常值过滤(传感器故障检测)

2. 水位异常检测

  • 实时监测:事件驱动架构,数据到达即检查
  • 阈值判定:多级阈值比较
  • 趋势判定:时间窗口内的上升速度计算

3. 规则引擎

  • 多规则并行:阈值规则 + 上升速度规则同时判断
  • 规则配置化:阈值、时间窗口可动态调整
  • 规则测试:支持模拟数据验证

4. 报警推送

  • 多通道协调:大屏、APP、短信、语音、广播
  • 分级推送:根据预警级别推送不同人员
  • 推送确认:重要预警需确认机制

复杂度评估:

  • 数据采集:低复杂度,标准传感器接口
  • 异常检测:中等复杂度,需要时间序列分析
  • 规则引擎:中等复杂度,多规则协调
  • 报警推送:高复杂度,多渠道协调和确认机制

技术难点:

  1. 传感器数据可靠性(故障检测、数据补偿)
  2. 实时性要求(秒级响应)
  3. 误报控制(避免频繁误报)
  4. 多渠道推送协调(确保消息送达)

关键依赖:

  • 时序数据库(存储水位历史数据)
  • 消息队列(异步推送)
  • 规则引擎框架(支持动态规则配置)
  • 多渠道推送服务(短信、语音、APP)

数据模型

typescript
// 水位记录
interface WaterLevelRecord {
  id: string;
  reservoirId: string;        // 水库ID
  reservoirName: string;      // 水库名称
  level: number;              // 水位(米)
  timestamp: Date;            // 采集时间
  sensorStatus: 'normal' | 'abnormal';  // 传感器状态
}

// 预警事件记录
interface AlertEvent {
  id: string;
  reservoirId: string;
  reservoirName: string;
  alertType: 'THRESHOLD' | 'RAPID_RISE';  // 预警类型
  alertLevel: 'warning' | 'alarm' | 'emergency';  // 预警级别
  detectedAt: Date;           // 检测到异常的时间
  currentLevel: number;       // 当前水位
  riseRate?: number;          // 上升速度(米/小时)
  estimatedTime?: number;     // 预计到达保证水位的时间(分钟)
  status: 'PENDING' | 'CONFIRMED' | 'RESOLVED';

  // 处置记录
  disposal: {
    confirmedBy: string;      // 确认人
    confirmedAt: Date;
    actions: string[];        // 处置措施
    result: string;           // 处置结果
    resolvedAt: Date;
  };
}

三、AI辅助开发方案

3.1 技术迁移分析

复用已有资产:矿山场景的"环境监测异常预警"规则

相似点:

  • 都是基于传感器数据的异常监测
  • 都需要实时判断 + 自动报警
  • 都需要分级预警 + 升级机制

差异点:

维度矿山场景(瓦斯监测)水利场景(水位监测)
监测对象瓦斯浓度水位高度
异常判断浓度 > 阈值水位 > 阈值 OR 上升速度 > 阈值
预警级别2级(预警、报警)4级(正常、黄色、橙色、红色)
响应动作停止作业、人员撤离加密监测、准备泄洪、紧急泄洪

技术复用度:85%

  • 规则引擎逻辑:100%复用
  • 报警推送逻辑:100%复用
  • 异常判断逻辑:需要增加"上升速度"判断(15%新开发)

3.2 Cursor Skill设计

Skill名称: environment-monitoring-alert.md(已存在,可直接复用)

复用说明:

  • 矿山场景的"环境监测异常预警"规则可以直接应用到水位监测
  • 只需调整监测对象(瓦斯浓度 → 水位)和阈值配置
  • 增加"上升速度"判断逻辑

3.3 PROMPT模板

PROMPT 1:生成水位异常检测代码

你是一个业务逻辑开发专家。请根据以下业务规则,生成水位异常检测的代码。

## 业务场景
水库水位监测,当水位超过警戒线或短时间内快速上升时,需要自动报警并启动应急响应。

## 业务规则
1. 阈值预警:
   - 水位 > 50米(警戒水位)→ 黄色预警
   - 水位 > 55米(保证水位)→ 橙色预警
   - 水位 > 58米(设计水位)→ 红色预警

2. 快速上升预警:
   - 1小时内上升 > 2米 → 立即报警(无论当前水位)
   - 计算预计到达保证水位的时间

3. 自动响应:
   - 黄色预警:通知值班人员,加密监测频率
   - 橙色预警:启动应急预案,通知下游乡镇
   - 红色预警:立即泄洪,通知居民转移
   - 快速上升:提前准备泄洪预案

## 数据模型
- WaterLevelRecord:水位记录(reservoirId, level, timestamp)
- AlertEvent:预警事件记录(alertType, alertLevel, currentLevel, status)

## 技术要求
- 使用TypeScript
- 实时监测(每次收到数据立即检查)
- 支持规则配置(阈值可调整)
- 记录所有预警事件和处置过程

请参考 environment-monitoring-alert.md 中的规则,基于以上规范生成实现。

PROMPT 2:生成分级报警推送逻辑

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

## 业务场景
水位异常需要根据预警级别推送给不同人员,并触发不同的应急响应动作。

## 业务规则
1. 黄色预警(警戒水位):
   - 推送到:调度室大屏、值班人员手机
   - 动作:加密监测频率、通知防汛办、准备泄洪预案

2. 橙色预警(保证水位):
   - 推送到:调度室大屏、值班人员手机、防汛办主任手机
   - 动作:启动应急预案、通知下游乡镇、调度闸门

3. 红色预警(设计水位):
   - 推送到:所有相关人员、应急广播
   - 动作:立即泄洪、通知居民转移、上报上级

4. 快速上升预警:
   - 推送到:值班人员、防汛办主任
   - 动作:查看上游降雨、提前准备泄洪

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

请基于以上规范生成代码。

3.4 开发复杂度评估

基于已有资产(矿山场景):

原型验证阶段:

  • 复用规则引擎,调整监测对象和阈值
  • 增加"上升速度"判断,测试预警场景
  • 复杂度:低,主要是配置调整

首版上线阶段:

  • 完善报警推送逻辑,对接水位监测设备
  • 测试各级预警场景
  • 部署上线
  • 复杂度:中等,需要设备对接和多场景测试

技术难点:

  1. 水位传感器数据可靠性保障
  2. 上升速度计算的准确性(数据平滑处理)
  3. 多渠道推送的协调和确认机制
  4. 误报率控制

关键依赖:

  • 水位监测设备接口
  • 时序数据库(存储历史数据)
  • 消息推送服务(短信、语音、APP)
  • 规则引擎框架

四、开发资产

4.1 Cursor Skill

文件名: environment-monitoring-alert.md(已存在)

复用说明: 矿山场景的"环境监测异常预警"规则可以直接应用到水位监测,只需调整以下配置:

typescript
// 监测对象配置
const MONITORING_CONFIG = {
  // 矿山场景:瓦斯浓度
  mining: {
    metric: 'gasConcentration',
    unit: '%',
    thresholds: [0.5, 1.0, 1.5]  // 预警、报警、紧急
  },

  // 水利场景:水位
  waterConservancy: {
    metric: 'waterLevel',
    unit: 'm',
    thresholds: [50, 55, 58],  // 警戒、保证、设计
    riseRateThreshold: 2,      // 1小时上升2米
    riseRateWindow: 3600       // 时间窗口(秒)
  }
};

4.2 技术迁移说明

可复用的已有资产:

  1. 矿山场景:环境监测异常预警规则

    • 复用:规则引擎框架、报警推送逻辑、分级预警机制
    • 调整:监测对象(瓦斯浓度 → 水位)、阈值配置
    • 新增:上升速度判断逻辑
    • 复用度:85%
  2. 医废场景:超期预警规则

    • 复用:时间窗口判断、升级机制
    • 调整:时间窗口(46/47/48小时 → 1小时)
    • 复用度:70%

需要新开发的部分:

  • 上升速度计算逻辑(10%)
  • 预计到达时间计算(5%)

4.3 实施指南

步骤1:准备环境

bash
# 安装依赖
npm install

# 配置水位监测设备接口
# 编辑 config/water-level-config.json

步骤2:使用Cursor Skill

1. 确认 environment-monitoring-alert.md 已存在于 .cursor/rules/
2. 在Cursor中告诉AI:
   "参考 environment-monitoring-alert.md 中的业务规则,
   实现水位异常监测功能。监测对象是水位,阈值为50/55/58米,
   并增加快速上升预警(时间窗口内上升超过阈值)。"
3. AI会基于规则生成代码

步骤3:调整配置

typescript
// config/alert-rules.ts
export const WATER_LEVEL_CONFIG = {
  warningLevel: 50,          // 警戒水位(米)
  guaranteeLevel: 55,        // 保证水位(米)
  designLevel: 58,           // 设计水位(米)
  riseRateThreshold: 2,      // 上升速度阈值(米/小时)
  riseRateWindow: 3600,      // 时间窗口(秒)
  monitoringInterval: 300,   // 正常监测间隔(秒)
  alertInterval: 60,         // 预警时监测间隔(秒)
};

步骤4:测试验证

bash
# 运行测试
npm test

# 模拟水位上升场景
npm run simulate:water-level-rise

复杂度评估:

  • 环境准备:低复杂度
  • Skill使用:低复杂度,主要是配置调整
  • 配置调整:低复杂度
  • 测试验证:中等复杂度,需要模拟多种场景

关键注意事项:

  1. 确保水位监测设备接口稳定可靠
  2. 时序数据库性能优化(大量历史数据)
  3. 推送渠道测试(确保消息送达)
  4. 误报率监控和调优

五、下一步行动

如果您对这个场景感兴趣

  1. 快速验证:基于模拟数据做原型演示
  2. 技术对接:提供水位监测设备接口文档,评估对接工作量
  3. 成本预估:根据水库数量、监测点数量,给出详细报价

复杂度评估:

  • 原型验证:低复杂度,主要是规则配置
  • 技术对接:中等复杂度,取决于设备接口标准化程度
  • 生产部署:中高复杂度,需要考虑高可用、实时性、误报控制

相关场景

相关资产


← 返回水利场景 | 联系合作 →

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