第二章 大气运动方程组:从物理定律到数值预报的基石
各位同学,今天我们来聊聊大气运动方程组。说实话,这是整个数值预报最核心的部分,也是我当年啃得最久的一块硬骨头。你想想看,我们要用计算机模拟大气,总得先把大气运动的规律用数学写出来吧?这就是方程组要做的事。
大气运动方程组,说白了就是四个方程:连续方程、运动方程、热力学方程、水汽方程。它们分别描述了大气质量守恒、动量守恒、能量守恒和水汽守恒。嗯,听起来像物理课本?没错,数值预报的根就在物理里。
2.1 连续方程:质量守恒的数学表达
连续方程讲的是质量守恒。大气不会凭空产生,也不会凭空消失。我刚开始学的时候,总觉得这方程太简单了,不就是质量守恒嘛。后来做项目才发现,连续方程在数值预报里是个大坑——处理不好,模式就会「漏气」或者「多气」。
连续方程的一般形式是:
∂ρ/∂t + ∇·(ρV) = 0
其中ρ是空气密度,V是风速矢量。这个方程告诉我们:某个体积内密度的变化,等于流入流出该体积的质量通量之差。
关键理解:连续方程是诊断方程还是预报方程?这取决于你用什么变量。如果用密度ρ,它就是预报方程;如果用散度,它就是诊断方程。我在WRF模式里调试时,经常用连续方程检查质量守恒是否被破坏。
实际应用中,我们经常做简化。比如对于不可压缩流体(密度变化可忽略),连续方程就变成了:
∇·V = 0
说白了就是风速的散度为零。这个简化在边界层里不太准,但在自由大气中还算靠谱。
2.2 运动方程:牛顿第二定律在大气中的体现
运动方程,也叫纳维-斯托克斯方程在大气中的简化形式。它描述的是空气微团的加速度与所受合力的关系。你想想看,空气受到哪些力?气压梯度力、科里奥利力、重力、摩擦力……
在笛卡尔坐标系中,运动方程可以写成:
du/dt = -1/ρ · ∂p/∂x + fv + Fx
dv/dt = -1/ρ · ∂p/∂y - fu + Fy
dw/dt = -1/ρ · ∂p/∂z - g + Fz
其中u、v、w是三个方向的风速分量,f是科里奥利参数,g是重力加速度,Fx、Fy、Fz是摩擦力项。
我的经验:运动方程里最容易搞混的是科里奥利力的符号。我建议你记住一个口诀:北半球,运动方向右侧偏。这样符号就不会错了。我曾经在代码里把科里奥利力的符号写反了,结果预报出来的台风路径偏了500公里……
运动方程的简化有很多种。最经典的是地转平衡:
-1/ρ · ∂p/∂x + fv = 0
-1/ρ · ∂p/∂y - fu = 0
地转平衡说的是气压梯度力和科里奥利力相互平衡。实际大气中,中纬度大尺度运动基本满足地转平衡。但到了赤道附近,科里奥利力很小,地转平衡就不成立了。
2.3 热力学方程:能量守恒的数学形式
热力学方程描述的是大气温度的变化。它本质上就是热力学第一定律——能量守恒。大气中的能量变化,主要来自辐射加热、潜热释放、以及空气的压缩膨胀。
热力学方程的一种常见形式是:
dT/dt = (1/cp) · (dQ/dt) + (1/ρcp) · dp/dt
其中T是温度,cp是定压比热,dQ/dt是非绝热加热率。这个方程看着简单,但实际应用时,非绝热加热项的处理非常复杂。
注意:热力学方程中的非绝热加热项,包括太阳辐射、长波辐射、潜热释放、感热通量等。这些过程的参数化方案,往往是模式误差的主要来源。我在做青藏高原地区的预报时,发现辐射参数化方案对温度预报影响巨大。
实际预报中,我们经常用位温θ来代替温度T。位温的定义是:
θ = T · (p0/p)^(R/cp)
位温的好处是,在干绝热过程中位温守恒。这样热力学方程就简化成了:
dθ/dt = (θ/cpT) · (dQ/dt)
嗯,是不是清爽多了?
2.4 水汽方程:水循环的数学描述
水汽方程描述的是大气中水汽含量的变化。水汽是天气预报的关键变量——没有水汽,就没有云,没有降水。水汽方程的形式是:
dq/dt = S_q
其中q是比湿(单位质量空气中水汽的质量),S_q是水汽的源汇项,包括蒸发、凝结、降水等过程。
水汽方程看起来简单,但实际处理起来非常棘手。为什么?因为水汽的相变过程涉及大量次网格过程,比如云滴的碰并、冰晶的凝华等等。这些过程都需要参数化。
避坑指南:我曾经在调试一个区域模式时,发现预报的降水量总是偏大。查了三天,最后发现是水汽方程中的垂直通量项处理有问题——模式把边界层的水汽过度向上输送了。所以,水汽方程的垂直离散化一定要小心。
2.5 方程的简化与尺度分析
大气运动方程组有七个方程(三个运动方程、连续方程、热力学方程、水汽方程、状态方程),七个未知数(u、v、w、p、ρ、T、q)。理论上可以求解,但直接求解计算量太大,而且很多项在实际大气中量级很小。
尺度分析就是用来判断哪些项可以忽略的。说白了,就是比较各项的大小,把小的扔掉。
| 运动类型 | 水平尺度 | 垂直尺度 | 时间尺度 | 适用简化 |
|---|---|---|---|---|
| 大尺度(天气尺度) | ~1000 km | ~10 km | ~1天 | 静力平衡、地转平衡 |
| 中尺度 | ~100 km | ~10 km | ~几小时 | 静力平衡(部分)、非地转 |
| 小尺度(对流尺度) | ~10 km | ~10 km | ~1小时 | 非静力、非地转 |
最经典的简化是静力平衡近似:
∂p/∂z = -ρg
静力平衡说的是气压随高度的变化只由重力决定。对于水平尺度大于10公里的运动,静力平衡的误差通常小于1%。但对于强对流、龙卷风等小尺度系统,静力平衡就不成立了。
我的建议:做尺度分析时,不要机械地套公式。要结合你研究的具体问题来判断。比如做台风预报,虽然台风是大尺度系统,但眼墙区的对流运动是非静力的。我一般会先做量级估计,再决定用哪种简化方案。
另一个重要的简化是Boussinesq近似。它假设密度变化只出现在浮力项中,其他项中的密度视为常数。这个近似在海洋和浅层大气中很常用。
好了,大气运动方程组的基本框架就是这样。记住,这些方程不是孤立的,它们通过密度、温度、水汽等变量相互耦合。实际数值预报中,我们就是在求解这个耦合方程组。下一节,我们会讨论如何把这些连续方程离散化,变成计算机能算的形式。
公众号:蓝海资料掘金营,微信deep3321