CFD与机器学习基本概念入门
-
李老师,问了下gpt的回复:
将监督学习、无监督学习和强化学习这三种主要的机器学习方法与计算流体力学(CFD)结合,可以实现不同的目标和改进。以下是各自如何与CFD结合的一些思路:
1. 监督学习
监督学习是通过输入输出映射关系来训练模型的方法,需要有标签的数据集。
- 参数预测:可以用于根据输入条件如速度、压力等预测流体流动的结果,例如温度分布、应力分布等。
- 代理模型:建立CFD仿真结果的代理模型,即快速而粗糙的模型,来近似模拟复杂的CFD模型,可以大幅减少仿真时间。
- 数据同化:用于整合实验数据和模拟数据,监督学习方法可以用来校准模拟模型以提高其预测能力。
2. 无监督学习
无监督学习不需要标签数据,主要用于发现数据之间的关系和结构。
- 流动模式识别:可以用于从复杂的流场数据中识别和归类流动结构或模式,如涡量检测。
- 降维分析:对高维度的CFD数据进行降维,发现数据的主要变化趋势,便于可视化和进一步分析。
- 聚类分析:可以将流场数据的不同状态进行聚类,用于研究流体行为的不同阶段。
3. 强化学习
强化学习是对智能体采取行动在环境中获得最大奖励的问题,适用于决策过程。
- 优化控制:例如,在设计流体动力控制系统时,强化学习可以用来找到最佳操作策略,如在航空中的飞行路径优化。
- 实时仿真调整:在与实验数据联合仿真的场景中,可以使用强化学习实时调整边界条件或模拟参数,以提升模拟的精确度。
4. 综合应用
- 多学习模型集成:可以综合使用监督学习、无监督学习和强化学习的方法对复杂的CFD问题进行分析,比如先用无监督学习进行模式识别,然后用监督学习构建相应的响应模型,最后通过强化学习进行控制策略的优化。
-
相关资料:
- 综述《Brunton S L, Noack B R, Koumoutsakos P. Machine learning for fluid mechanics[J]. Annual review of fluid mechanics, 2020,52:477-508.》,Steven L. Brunton 的youtube对应视频:Machine Learning for Fluid Mechanics,B站有人搬运:https://space.bilibili.com/426717813
- Steven L. Brunton 的开源书籍《Machine Learning, Dynamical Systems and Control》,网站是 https://databookuw.com/ ,有对应翻译中文版《数据驱动的科学和工程》出版
-
贡献点我们非常初级的尝试,主要还是希望这个帖子别沉了。机器学习挺重要,真的很有用,就当抛砖引玉吧。
1、我们是做的这种,但这应该是比较低级的应用场景,不解决太多实质问题。
为什么这么说?我们放了几个风流模拟出来的结果进行训练,然后给一个新的地形可以出一个结果。但这个结果用一个新的CFD也可以算出来,更重要的是:用于训练的CFD结果不一定是对的,这个不对的程度不清楚是否会被机器学习的过程放大;训练所消耗的算力相比于单个CFD来说是量级的放大,工程应用上真说不好谁更有性价比。
我看过不少其他人做的CFD+机器学习,更多的是效率提升(也可能我更关注这部分)。比如涉及到非牛顿流体的,可以加速粘性和切变在求解中需要的迭代;涉及燃烧的,因为化学反应只在很薄的物理空间上进行,传统的并行方式会导致大部分CPU总是在等待少部分CPU的结果,机器学习可以优化。
当然了还有基于CFD结果进行优化设计的,这部分有很多和机器学习相关的工作,应用也很广泛。还有间接相关的,比如采用机器学习做风速的垂直外推,然后送到CFD里面再做风流模拟。
2、没做过,但这个应该也可以。
3、我觉得这个不是哦,其实机器学习怎么和CFD结合还不清楚呢,看需求和应用场景。
4、是的,要跑很多次CFD,所以算力消耗很大。
-
还有一类机器学习模型叫做PINNS(Physics-informed neural networks ), 模型把PDE嵌入了模型求解,所以要求的基本数据库也就变的更小了,最近有的用来做湍流这些,感觉还是比较有意思的。列了一些最近遇到的参考文献,抛砖引玉:
Raissi, M., Perdikaris, P., & Karniadakis, G. (2017). Physics Informed Deep Learning (Part I): Data-driven Solutions of Nonlinear Partial Differential Equations.
Eivazi, H., Tahani, M., Schlatter, P., & Vinuesa, R. (2022). Physics-informed neural networks for solving Reynolds-averaged Navier-Stokes equations. Physics of Fluids, 34. https://doi.org/10.1063/5.0095270
He, Q., & Tartakovsky, A. (2021). Physics‐Informed Neural Network Method for Forward and Backward Advection‐Dispersion Equations. Water Resources Research, 57. https://doi.org/10.1029/2020WR029479
-
最近在网上看到这一份Philippe Spalart的讲座ppt,大致体会下来感觉是表达对AI的不信任。
https://turbmodels.larc.nasa.gov/Turb-prs2022/Slide_presentations/Day_1/03_Spalart_invitedtalk_1.pdf
李老师有空的话可以带大家总结一下这份ppt -
@allanZhong 材料非常好,我看看
-
@allanZhong 马上推!Spalart大佬确实霸气。硬怼机器学习!
针对我的问题:
CFD+机器学习大体的思路是不是这样:
是的。是一种监督学习。
CFD+机器学习能否出瞬态的结果?
可以,监督学习出瞬态结果很难。但是可以建立代理模型。
PINN也可以出瞬态结果。我看他们有人用OpenFOAM+pytorch,这两个都是开源软件并且源代码已经提供,那做CFD+机器学习还需要研究别的东西么?还是说直接把OpenFOAM+pytorch搞起来就完成90%的工作了?
需要定义输入层以及输出层。主要是替代模型的关系。
PINN需要自己植入方程。如果说需要通过CFD设置10个边界条件,得到10个最终稳定的流场结果然后把这个当做训练数据的话,那岂不是需要CFD算很多次?
是的。监督学习是这样。强化学习也是这样。数据驱动类模型大多都这样。
PINN不需要。