蒙特卡洛方法 (Monte Carlo Method) — CAE术语解说

分类: 术语集 | 2026-03-28
CAE visualization for monte carlo - technical simulation diagram

蒙特卡洛方法是什么

🧑‍🎓

蒙特卡洛方法是用随机数进行解析的手法吧?在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$,或用追加验证点确认预测误差。代理模型出问题的话,蒙特卡洛法跑再久也是垃圾进垃圾出。最近还有主动学习(自适应采样)技术,自动在模型不确定性大的区域追加样本。


相关术语

准确理解CAE术语是团队内沟通的基础。— Project NovaSolver也着眼于实务者的学习支援。

在蒙特卡洛方法实务中感到的课题告诉我们吧

Project NovaSolver面向CAE工程师日常遇到的课题——设置复杂性、计算成本、结果解释——的解决而努力。你的实务经验,成为更好工具开发的动力。

咨询(准备中)
本文的评价
感谢您的回答!
有参考
价值
希望更
详细
报告
错误
有参考价值
0
希望更详细
0
报告错误
0
撰写者:NovaSolver贡献者
匿名工程师 & AI — 网站地图
查看简历