Skip to content

7.1 天气建模概述

阅读提示: 本章基于 Primavera Risk Analysis Weather Modeling 模块编写。菜单、按钮、字段名保留英文原文。

天气是所有户外工程的天然敌人。本章教你如何把「老天爷的事」量化成工期分布,让风险分析不再「看天吃饭」。


为什么天气建模对项目至关重要

在一个确定性进度计划中,你知道某个任务发生在 7 月,也知道 7 月是雨季——但你无法回答一个关键问题:如果项目因其他风险延误,这个任务推迟到了 10 月,它会受到多大的天气影响?

这就是传统计划的盲区。工期分析中的天气问题比想象中复杂得多:

  • 时序不确定性:当任务的开始时间因风险和不确定性而漂移时,它遇到的天气条件也完全不同
  • 季节性变化:12 月在南海遇见台风概率 5%,8 月却高达 40%——同一个任务,两个月执行,风险差距可达 8 倍
  • 累计效应:一个项目可能经历多个天气事件,每个事件单独看影响不大,但加起来可能就是几个月的工期

PRA 的天气建模模块专门解决这个问题——它将天气条件定义为随季节变化的概率分布,然后在蒙特卡洛模拟中与任务的时间节点正确结合,精确量化「天气」这个变量的工期影响。


PRA 天气建模的工作原理

PRA 天气建模的核心逻辑可以分为三层:

第一层:历史天气数据 → 概率曲线

项目团队基于历史气象数据(国家气象局、项目所在地观测站、行业经验等),对每个时段(通常以月为单位)评估天气的发生概率和影响程度,将其转化为 PRA 能理解的三点估算(最小/最可能/最大)。

第二层:两种天气模型

PRA 提供了两种截然不同的天气建模方式:

模型类型适用场景数据定义方式
Weather Events (天气事件)离散停工天气(台风、暴雨、暴风雪)按月定义发生概率 + 停工天数的三点估算
Weather Windows (天气窗口)连续停工窗口(冬季封冻、雨季、融雪期)定义停工窗口开始与结束日期的三点估算

Weather Events 又分为两种情况:

  • 概率 = 100%:该时段确定会有停工,但停工天数不确定(如「每年 7 月一定有雨天,只是多少天不确定」)
  • 概率 < 100%:该时段可能发生也可能不发生天气事件(如「8 月可能有台风,概率 40%,一旦发生停工 3-5 天」)

图:天气事件日历中的概率与停工天数设置

第三层:蒙特卡洛模拟中的天气采样

在每次模拟迭代中,PRA 会根据天气日历的定义随机采样:

  • 对于 Weather Events:决定该事件是否发生、发生在时段内的哪天、持续多长时间
  • 对于 Weather Windows:决定窗口的开始日期和结束日期

然后将这些停工时间与任务的时间节点叠加——任务先受其他风险和工期不确定性的影响,再受天气影响


关键概念

天气日历 (Weather Calendar)

天气日历是 PRA 中定义天气风险的基本单位。一个项目可以有多个天气日历——例如分别为「南海台风」、「北方冬季低温」、「西南暴雨」创建不同的日历,然后灵活组合分配给不同任务。

季节性模式 (Seasonal Patterns)

天气日历的数据按月度定义,每个月的概率和影响可以不同。这意味着你可以精确反映台风季(6-10 月概率高)和旱季(11-4 月概率低)的季节性变化。

天气资源的底层机制

一旦定义了天气日历,PRA 会自动创建一个同名的资源和一个同名的日历。任务被分配天气日历后,该天气资源就关联到该任务上。因为「任务只能在所有资源都可工作的那天执行」,所以天气停工时间会被强制执行。


创建天气日历的基本步骤

导航到:Risk | Weather Modeling

  1. 勾选 Add weather modeling to this plan
  2. 选择 Weather EventsWeather Windows 选项卡
  3. 点击 Add New Event CalendarAdd New Window Calendar
  4. 命名日历并设定覆盖的时间范围
  5. 逐月(或逐时段)填入概率和工期估算数据
  6. 切换到 Assign to Tasks 选项卡,将天气日历分配给受影响的各任务
  7. 运行风险分析:Risk | Run Risk Analysis | Analyze | Step

蓝色竖线在甘特图上代表天气停工时间。你可以用 Step 逐步查看每次迭代中天气如何影响各个任务。

图:甘特图上的蓝色竖线标记天气停工时间


设置天气数据导入/导出

Excel 批量导入/导出

天气数据量通常很大——涉及多个月份、多个日历、不同的概率和天数。PRA 支持通过 Excel 进行批量操作:

步骤操作
1创建天气日历后,点击 Export All Weather Data
2在 Excel 中编辑数据(可利用 Excel 的填充功能自动扩展月份)
3保存后,回到 PRA 点击 Import All Weather Data

你还可以对各单独的 Weather Event 或 Weather Window 日历单独导入/导出数据,使用对话框中的 Import Event Period DataImport Window Data 按钮。

数据来源建议

  • 中国气象局历史观测数据(温度、降水、风速等)
  • 项目所在地近 10 年的极端天气记录
  • 行业规范中对不可施工天气的定义(如《建筑工程冬期施工规程》JGJ/T 104)
  • 项目所在地施工日志中的实际停工记录

防止任务被天气拆分

当一个任务遇到长时间的天气窗口(如整个冬季封冻期),你通常不希望任务被「打断」——而是让它推迟到窗口结束后再完整执行。

Risk | Weather Modeling | Assign to Tasks 选项卡中,选中目标任务,勾选 Prevent task duration from splitting across its task calendar

这样,如果任务计划在窗口前开始但在窗口内结束,PRA 会自动将其开始日期推迟到窗口之后。

图:Weather Window 中任务被冬季窗口中断的甘特图显示


分配天气日历到任务

创建天气日历后,需要定义哪些任务受其影响:

  1. Risk | Weather Modeling
  2. 切换到 Assign to Tasks 选项卡
  3. 左侧选中受影响的任务(可用 Find 搜索)
  4. 右侧选择对应的天气日历
  5. 勾选适用的 Weather Event Calendars 和 Weather Window Calendars
  6. 一个任务可被多个天气日历影响(叠加处理)
  7. 重复此过程为其他任务分配
  8. 点击 Close

运行风险分析

完成设置后,运行分析:Risk | Run Risk Analysis | Analyze | Step

  • 逐步查看(Step)可直观观察每次迭代中天气如何影响各任务
  • 蓝色竖线在甘特图上标记天气停工
  • 完成分析后查看标准风险结果

高级细节:天气日历的底层机制

天气日历如何维护

定义天气日历后,PRA 自动为每个天气日历创建:

  • 一个同名的资源(无成本,使用同名的日历)
  • 一个同名的日历(确定性地无停工时间,非工作时间在每次模拟迭代中动态添加)

任务通过资源关联的方式受天气影响——因为任务只能在所有资源均可工作的日期执行。

模拟中的采样方式

每次迭代中:

  • Weather Events 日历:PRA 决定事件是否发生、何时发生、持续多久
  • Weather Windows 日历:PRA 随机采样窗口的开始和结束日期
  • Prevent splitting:已勾选的任务若计划横跨天气窗口,将被设置约束日期延迟到窗口之后

实战案例:海上风电项目冬季季风建模

案例:某海上风电项目 — 冬季季风对吊装窗口的影响

项目背景

闽南外海某海上风电场,规划安装 62 台 8MW 风机,总装机容量 496MW。风机安装采用自升式安装船(JUV),关键路径上单台风机吊装需连续 3 天好天气窗口(风速 < 8m/s,浪高 < 1.5m)。项目吊装期跨越两个冬季。

问题分析

  1. 冬季(11 月 - 次年 3 月)东北季风盛行,平均风速 10m/s+,可作业窗口大幅缩小
  2. 吊装船日租金 ¥280 万,每多停工一天都是巨大损失
  3. 22 台风机必须赶在次年台风季(6 月)前完成吊装,否则台风风险叠加

建模过程

基于闽南海域近 15 年波浪和风速观测数据,建立 Weather Events 日历,按月度定义吊装可作业天数的三点估算:

月份概率最少停工天数最可能停工天数最大停工天数
11 月100%81216
12 月100%121622
1 月100%152026
2 月100%121622
3 月100%81218

每个月的概率设为 100%(冬季一定有季风),但停工天数在三点估算范围内随机采样。

分析结果

  • 确定性计划:22 台风机吊装需 132 天(平均 6 天/台)
  • P50 模拟:冬季停工共 82 天,实际吊装期延长至 214 天,必须推迟至 7 月底
  • P80 模拟:冬季停工高达 110 天,吊装期延至 242 天,且与台风季重叠,额外增加台风停工概率
  • P50 下,吊装船因停工造成的租金损失约 ¥2.3 亿(82 天 × ¥280 万/天)

决策与总结

项目经理根据分析结果做了两个关键决策:一是增加一台辅助安装船在冬季前抢装 8 台,将冬季吊装数量压到 14 台;二是在合同中与船东约定「非作业日减租金」条款(停工日租金降至 ¥100 万)。最终项目按期完成,吊装船租金总额比原计划仅超出 ¥4000 万,远低于最初估计的 ¥2.3 亿。

一句话启示:天气不是不可控的——不可控的是不做天气建模就去投标。


本章小结

要点一句话
天气模型类型Weather Events(离散停工)vs Weather Windows(连续停工窗口)
概率 100%事件一定发生,但停工天数不确定
概率 < 100%事件可能发生也可能不发生
天气日历天气风险的基本单位,可多日历组合使用
数据导入支持 Excel 批量导入/导出,可利用填充功能自动扩展
任务防拆分勾选 Prevent splitting 可让任务推迟而非中断
底层机制天气日历通过自动创建资源+日历实现,保证天气停工强制执行

英文原版内容版权归 Oracle Corporation 所有。中文翻译、案例、习题由 计划工程师 独立创作。

广告位 · 合作联系