2、中尺度气象模式(WRF)入门:WRF模型架构、网格嵌套技术、陆面过程参数化、边界层方案选择

各位好,我是老张。在风电行业摸爬滚打了十几年,今天咱们聊聊WRF模式。说实话,我刚入行那会儿,WRF还是个新鲜玩意儿,现在已经是风电选址的标配工具了。你想想看,一个风电场要运营20年,选址时要是把风资源算偏了,那损失可不是小数目。所以,搞懂WRF,就是给项目上了一份保险。

2.1 WRF模型架构:它到底是怎么工作的?

WRF的全称是Weather Research and Forecasting,说白了就是一个能模拟大气运动的大程序。它的架构,我习惯分成三块来看:

  • 前处理系统(WPS):负责把全球再分析数据(比如ERA5、FNL)处理成WRF能吃的格式。这一步很关键,数据源的质量直接决定模拟的成败。
  • 主求解器(ARW):这是核心引擎,负责解算大气运动方程。我个人习惯用ARW核心,它在风电领域应用最广。
  • 后处理系统:把WRF输出的原始数据转成我们需要的风场、温度场等。常用的工具有NCL、Python的xarray库。

核心逻辑:WRF本质上是在做「数值天气预报」——把大气分成一个个网格,在每个网格里解算物理方程。网格越密,结果越准,但计算量也越大。

这里我画了一张架构图,帮你理清关系:

WRF模型架构概览 前处理(WPS) geogrid.exe ungrib.exe metgrid.exe 主求解器(ARW) real.exe wrf.exe (核心计算) 后处理 NCL / Python 风场提取 可视化 数据流向:全球再分析数据 → 区域网格化 → 数值模拟 → 风场输出 关键输入参数 • 地形数据(SRTM、GTOPO30) • 土地利用类型(MODIS、USGS) • 初始场与边界场(ERA5、FNL、GFS)

2.2 网格嵌套技术:粗网格与细网格的配合

做风电选址,你不可能把整个中国都跑成1公里网格——那得算到猴年马月去。所以,WRF提供了网格嵌套技术。说白了,就是大范围用粗网格,感兴趣的区域用细网格。

我举个例子:你要在内蒙古某地建风电场。我会这样设置:

  • 母域(d01):覆盖整个内蒙古,分辨率27公里。这一步是为了捕捉大尺度天气系统。
  • 子域(d02):覆盖项目周边200公里,分辨率9公里。开始关注地形影响。
  • 子域(d03):覆盖场址周边50公里,分辨率3公里。这时候能看到山脊、河谷对风的影响了。

我的经验:嵌套比一般控制在3:1左右。比如27→9→3公里,或者9→3→1公里。比值太大,边界处理容易出问题。我曾经试过直接从27跳到3公里,结果在边界处出现了虚假的风速突变,排查了好几天才发现是嵌套设置的问题。

在namelist.wps里,嵌套设置长这样:

&share
 wrf_core = 'ARW',
 max_dom = 3,
 start_date = '2023-01-01_00:00:00',
 end_date   = '2023-01-31_00:00:00',
 interval_seconds = 21600
/

&geogrid
 parent_id         = 1,   1,   2,
 parent_grid_ratio = 1,   3,   3,
 i_parent_start    = 1,   30,  45,
 j_parent_start    = 1,   25,  40,
 e_we              = 100, 100, 100,
 e_sn              = 100, 100, 100,
 dx                = 27000,
 dy                = 27000,
 map_proj          = 'lambert',
 ref_lat           = 42.0,
 ref_lon           = 115.0,
/

这里要注意:parent_grid_ratio就是嵌套比,i_parent_startj_parent_start是子域在母域中的起始网格位置。嗯,这个坐标你得算准了,不然子域可能跑到母域外面去。

2.3 陆面过程参数化:地面怎么影响风?

很多人觉得风只跟大气有关,其实地面作用非常大。你想想看,同样风速,经过草地和经过森林,结果能差30%以上。这就是陆面过程要解决的问题。

WRF里常用的陆面方案有:

方案名称 适用场景 我的评价
Noah LSM 通用场景,风电项目首选 稳定可靠,我90%的项目都用它
Noah-MP 复杂地形、森林覆盖区 精度更高,但参数多,调起来费劲
RUC LSM 高分辨率、快速预报 计算快,但细节不如Noah
CLM4 科研用途,气候研究 太复杂,工程上用得少

避坑指南:我曾经在内蒙古草原项目上用了Noah-MP,结果发现土壤湿度参数没调好,导致夜间风速模拟偏差很大。后来换回Noah LSM,配合当地土壤观测数据校准,效果反而更好。所以,别盲目追求复杂方案,适合的才是最好的。

陆面过程的核心参数包括:

  • 地表粗糙度:直接影响近地面风速廓线。草原0.01-0.05米,森林0.5-2米。
  • 反照率:影响地表能量平衡,间接影响热力环流。
  • 土壤湿度:影响感热和潜热通量,对边界层发展很关键。

2.4 边界层方案选择:风从哪里来?

边界层方案,说白了就是决定「风在近地面怎么混合」的。这对风电选址太重要了——风机就在边界层里转呢。

WRF里主流的边界层方案:

  • YSU方案:非局地闭合,适合中性到不稳定层结。我早期项目常用,计算稳定。
  • MYJ方案:局地闭合,1.5阶湍流模型。适合稳定边界层,夜间风模拟更好。
  • ACM2方案:混合方案,兼顾局地和非局地。我个人觉得它最灵活,但参数多。
  • BouLac方案:法国开发的,适合复杂地形。我在山地项目上试过,效果不错。

选型建议:平原风电项目,YSU或MYJ就够用。山地、沿海等复杂地形,建议用ACM2或BouLac。我一般会跑两个方案做对比,选跟测风塔数据吻合度高的那个。

在namelist.input里设置边界层方案:

&physics
 bl_pbl_physics = 1, 1, 1,   ! 1=YSU, 2=MYJ, 7=ACM2, 12=BouLac
 sf_sfclay_physics = 1, 1, 1, ! 与PBL方案配套
/

这里有个坑:边界层方案必须和近地面层方案配套使用。比如YSU配MM5相似理论(sf_sfclay_physics=1),MYJ配Eta相似理论(sf_sfclay_physics=2)。混搭的话,模型会报错,或者给出离谱的结果。我刚开始学WRF时就犯过这个错,跑出来的风速剖面完全不对,还以为是地形数据的问题。

最后说一句:WRF入门不难,但用好需要积累。每个参数背后都有物理意义,别光看教程,多动手跑几个案例,慢慢就有感觉了。

我的小习惯:每次跑新项目,我都会先跑一个月的模拟,跟当地气象站数据对比。如果偏差超过15%,就回头检查参数设置。这一步虽然费时间,但能避免后期更大的麻烦。


公众号:蓝海资料掘金营,微信deep3321