蒙特卡洛方法 (Monte Carlo Method) — CAE术语解说
蒙特卡洛方法是什么
蒙特卡洛方法是用随机数进行解析的手法吧?在CAE中什么时候用呢?
大体上有三种用法。第一个是不确定性传播(Uncertainty Propagation),当材料物性和荷载条件存在分散时,求输出的统计分布。第二个是可靠性分析,评估破坏概率和安全系数的分布。第三个是放射传热的视角系数计算,通过光线跟踪求解复杂形状的面间辐射。
用途挺广的呢。那蒙特卡洛方法的基本思想是什么呢?
简单说,就是"不知道答案的积分或期望值,可以用随机抽样的平均值来近似"这个思想。比如求圆的面积,在正方形中随机打点,看圆内的点占多少比例——这个有名的实验就是蒙特卡洛方法的本质。名字的来源是摩纳哥的蒙特卡洛赌场,因为"掷骰子多次"的意象很符合。
基本原理
蒙特卡洛方法将要求的量 $I$ 表示为期望值,使用独立同分布的随机数样本 $x_1, x_2, \ldots, x_N$ 进行近似。
$$I = \mathbb{E}[f(X)] = \int f(x)\, p(x)\, dx \approx \hat{I}_N = \frac{1}{N}\sum_{i=1}^{N} f(x_i)$$根据大数法则,当 $N \to \infty$ 时保证 $\hat{I}_N \to I$ 。这就是蒙特卡洛估计的理论基础。
收敛速度和误差
需要多少个采样点呢?随便1000个就够吗?
简单蒙特卡洛法的收敛速度是 $O(1/\sqrt{N})$,所以要将有效数字增加1位,需要将采样数增加100倍。比如要让标准误差不超过1%,得准备大约 $N = 10{,}000$ 才行。
估计量 $\hat{I}_N$ 的标准误差用下式评估。
$$\text{SE} = \frac{\sigma}{\sqrt{N}}, \quad \sigma^2 = \text{Var}[f(X)]$$这个 $1/\sqrt{N}$ 的收敛速度不依赖问题的维数,这是最大的优点。有限元法的网格收敛会受维度诅咒困扰,但蒙特卡洛法在100维的输入空间中也能保持同样的收敛速度。在高维积分问题上,FEM或FVM都无法应用的场景,蒙特卡洛法能派上用场。
CAE中的应用领域
不确定性传播 (Uncertainty Propagation)
不确定性传播具体在什么场景用呢?
比如汽车车身结构解析。板厚的制造公差是±0.05mm、杨氏模量的批次间变化是±3%、焊接位置精度±1mm这样。普通的FEM解析只能输入一个代表值,但用蒙特卡洛法把各参数作为概率分布(正态分布或均匀分布)输入,运行数百次FEM。这样就能得到"最大应力的95百分位数"或"刚度的变异系数"这样的结果。
这样的话"这个设计最坏情况下能到什么程度"就能知道了。但FEM运行数百次,计算成本没问题吗?
这是实务中最大的瓶颈。解决办法是用应答曲面法(RSM)或克里格法等代理模型,对代理模型应用蒙特卡洛法。原计算只运行数十至数百次来构建代理模型,然后对代理模型进行10万次采样。这样的思路。
可靠性分析 (Reliability Analysis)
可靠性分析和不确定性传播看起来很像,区别在哪儿呢?
不确定性传播想知道的是"输出的统计分布全体",而可靠性分析关注的是"破坏的概率"这一个数值。定义限界状态函数 $g(\mathbf{x})$,求 $g(\mathbf{x}) \leq 0$ 的概率,即破坏概率 $P_f$。
$$P_f = P[g(\mathbf{X}) \leq 0] = \int_{g(\mathbf{x}) \leq 0} p(\mathbf{x})\, d\mathbf{x} \approx \frac{1}{N}\sum_{i=1}^{N} \mathbf{1}[g(\mathbf{x}_i) \leq 0]$$
破坏概率是 $10^{-6}$ 这样极小的值的话,需要采样100万次以上吧?太现实了……
你想得很周到。简单蒙特卡洛法要以变异系数10%的精度推定 $P_f = 10^{-6}$,需要 $N \approx 10^8$ 次。所以实务上用重点采样(Importance Sampling)这种技术,对破坏区域附近集中采样。或者先用FORM/SORM这样的近似手法找出最危险的点(设计点),然后在其周边用蒙特卡洛法的"子集模拟"。在航空航天或原子能这样 $P_f < 10^{-7}$ 的场景必需的技术。
汽车业界怎么用呢?
6σ设计的组合是典型例子。要实现6σ品质(百万个中不良3.4个),必须考虑变化的设计。用蒙特卡洛法求FEM结果的分布,确认在6σ的尾端也不会NG。冲压成型中板厚、摩擦系数、毛坯位置的变化,评估开裂或褶皱发生的概率,这就是典型应用。
放射传热 (Radiation Heat Transfer)
放射传热中用蒙特卡洛法是什么意思?和FEM、FVM完全是不同的方法吧?
完全不同。把辐射能离散化成多条光线(射线),随机跟踪各光线的射出方向、反射、吸收。从面A沿随机方向射出光线,到达面B的光线比例,就是视角系数 $F_{A \to B}$ 的估计值。
$$F_{A \to B} \approx \frac{\text{到达面B的光线数}}{\text{从面A射出的全部光线数}}$$
啊,像光线跟踪一样。什么场景特别有效?
人造卫星的热设计是代表例。太空中没有对流,辐射占主导,太阳能电池板和散热器等复杂形状间的视角系数需要精确求解。解析解只存在平行平板、同轴圆盘这样简单的形状,实际卫星形状下蒙特卡洛法是事实上的标准手法。Thermal Desktop之类的航天热解析软件在内部就用这个手法。
有参与性介质(气体辐射)的场合怎么办?炉子里面的话气体自己也辐射吧?
好问题。有参与性介质时,光线在介质中进行时按吸收系数 $\kappa$ 的规律随机判断被吸收还是散射。根据比尔定律 $\tau = e^{-\kappa s}$ 对光路长 $s$ 采样。和离散坐标法或P1近似比起来计算成本高,但波长依存性和非灰气体的处理很自然,蒙特卡洛法在这方面很强。
采样策略
方差降低技术
有加快收敛的技巧吗?之前说 $1/\sqrt{N}$ 呢,能改进这个就很好了。
方差降低技术(Variance Reduction Techniques)有好几种。给你介绍实务中常用的。
| 手法 | 概要 | 收敛速度改进 | 适用场景 |
|---|---|---|---|
| 简单随机 | 用伪随机数独立采样 | $O(1/\sqrt{N})$(基准) | 原型验证、小规模问题 |
| 拉丁超立方体 (LHS) | 各变量范围分层等分 | $O(1/N)$(视情况) | 实验设计、代理模型构建 |
| Sobol序列 | 低差异序列的准随机数 | $O((\log N)^d / N)$ | 高维数值积分 |
| 重点采样 | 在关心区域集中密度 | 问题依赖,大幅改进 | 可靠性分析的稀有事件推定 |
| 对照变量法 | 用负相关变量互相抵消 | 最多50%方差降低 | 有对称性的问题 |
拉丁超立方体抽样在实务中经常听到。和普通随机数有什么大区别?
简单随机会偶然造成采样集中和空白区域。LHS是各变量范围N等分,各层必须各取1点,输入空间才能均匀覆盖。比如FEM不确定性解析只能算50次,LHS的话50个样本也能相当均匀地探索输入空间。Ansys Workbench的"Design of Experiments"或OptiStruct的稳健设计都标配支持。
Sobol序列没怎么听说过,和LHS怎么取舍呢?
Sobol序列属于"准蒙特卡洛法"。用的不是随机数,而是提前设计好的低差异序列,空间覆盖效率非常高。LHS需要事先决定样本数N,但Sobol可以随时追加样本还保持均匀性。不过LHS实现更简单,商用软件支持也更多,所以先从LHS开始,不够的话再考虑Sobol比较好。
代理模型联合使用
之前提到过代理模型,能说一下具体工作流程吗?
典型工作流是这样的。首先定义输入变量(板厚、材料常数、荷载等)的概率分布。然后用LHS生成50~200个采样点,分别运行FEM。用得到的输入输出数据,构建克里格法或多项式混沌展开(PCE)的代理模型。最后对这个代理模型进行10万~100万次蒙特卡洛采样,求输出的统计量或破坏概率。代理模型的评估是微秒级,100万次也用秒级完成。
明白了,重计算少做,代理模型多采样。思路很合理。代理模型精度怎么保证?
一定要验证代理模型精度。用LOOCV(留一交叉验证)确认 $R^2 > 0.95$,或用追加验证点确认预测误差。代理模型出问题的话,蒙特卡洛法跑再久也是垃圾进垃圾出。最近还有主动学习(自适应采样)技术,自动在模型不确定性大的区域追加样本。
相关术语
- 不确定性的量化 (Uncertainty Quantification)
- 可靠性分析 (Reliability Analysis)
- 拉丁超立方体抽样 (Latin Hypercube Sampling)
- 应答曲面法 (Response Surface Method)
- 代理模型 (Surrogate Model)
- 蒙特卡洛辐射 (Monte Carlo Radiation)
- 视角系数 (View Factor)
- 实验设计 (Design of Experiments)
- FORM (一阶可靠度法)
准确理解CAE术语是团队内沟通的基础。— Project NovaSolver也着眼于实务者的学习支援。
在蒙特卡洛方法实务中感到的课题告诉我们吧
Project NovaSolver面向CAE工程师日常遇到的课题——设置复杂性、计算成本、结果解释——的解决而努力。你的实务经验,成为更好工具开发的动力。
咨询(准备中)相关话题
价值
详细
错误