基于机器学习的CFD模型降阶

2024-06-14 20:52
文章标签 学习 模型 机器 cfd 降阶

本文主要是介绍基于机器学习的CFD模型降阶,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

降阶模型 ROM

图片

降阶模型ROM(Reduced Order Models)是一种对高保真度静态或动态模型的简化方法。模型降阶在保留了模型的基本特性与主导效应的同时,大大减少复杂模型的CPU计算时间及存储空间。 

ROM的用途:

  • 加速大规模系统的仿真速度

  • 将ROM运行在硬件在环环境

  • 数字孪生 Digital twins

降阶方法:

  • 静态:曲线、曲面拟合,查表法

图片

  • 动态: 通过一个高保真度模型来生成样本,机器学习算法训练样本模型

图片

romAI 介绍

romAI是集成在 Altair 系统控制模块Activate和可视化编程模块Compose的模型降阶工具,用于加速大模型的预测,系统集成和实时控制。 

romAI基于多层感知机技术Multilayer Perceptron (MLP),因此,从本质上讲,它在内部生成输入和输出之间的映射。这种映射的质量将取决于一些因素,例如训练样本的质量和数量,超参数的选择(神经网络隐藏层数或激活函数等等),以及可用于训练样本的时间。

图片

romAI基于数据驱动,给定一个任意物理问题,使用任意软件建模。使用过程非常简单:首先,读入训练样本*csv,样本由输入、输出和系统状态组成。样本可以来自仿真结果或实验测试。然后根据这些数据和选定的超参数训练神经网络。训练好的ROM可以应用于Activate进行系统级仿真, 或通过FMI接口部署在其他的系统。

romAI 使用流程

图片

案例1:CFD管路模型降阶

打开Activate模块,在Demo Browser目录下找到 romAI → nolinear → cfd_heated_pipe,这是一个简单的CFD管路加热模型,包含了一个输入变量:固体的发热功率Pel;一个输出变量:管路出口空气温度Tout;以及一个状态变量:固体的表面温度The

图片

Activate中的CFD模型降阶例题

训练样本的数据来自AcuSolve的三维瞬态CFD仿真,CFD模型的时间步长为0.01秒,物理时间32秒,迭代3200步。

图片

训练样本

图片

CFD输入:固体发热功率

图片

CFD输出:固体温度

图片

CFD输出:出口空气温度

romAI完成降阶后,再用一组新的数据进行验证

图片

验证新数据:发热功率曲线

图片

出口空气温度预测

案例2:电磁阀CFD模型降阶

电磁阀是一个简单的开/关阀。它是两个基本功能单元的组合:电磁铁和包含一个或多个孔的阀体。当电磁阀通电或断电时,流经孔口的流量由阀芯的运动控制。

图片

电磁阀原理

图片

电磁阀受力分析

查表法生成静态ROM

训练样本来自AcuSolve的12个稳态工况,流量:0.225kg/s, 0.5 kg/s, 0.7 kg/s;阀门开度:1mm, 2 mm, 3 mm, 4 mm

图片

CFD计算参数表

图片

CFD结果:不同阀门开度下,流量-压差曲线

图片

CFD结果:不同阀门开度下,液力-压差曲线

图片

AcuSolve阀门稳态流场

图片

Activate的阀门系统建模

动态ROM

  • 训练样本来自acuSolve的的4个瞬态工况:入口压力=2bar,4bar; 阀门开启时间10毫秒,100毫秒。

  • romAI的3个输入参数:阀芯位置,运动速度,上下游压差;1个输出变量:流量和阀芯的液力;1个状态参数:流量

图片

romAI参数定义

图片

动态ROM的输入,输出和状态参数

图片

瞬态CFD动画:入口2bar, 阀门开启100毫秒

图片

瞬态CFD监测变量曲线

验证工况:入口压力3bar,阀门50毫秒开启时间。动态ROM预测精度最大误差<10%

图片

红色-CFD仿真数据

蓝色-romAI预测数据

图片

阀门动态ROM用于Activate系统仿真

案例3:电池包CFD模型降阶

  • 训练样本来自AcuSolve的3个瞬态工况

  • romAI的2个输入参数:电流,对流换热系数;3个输出参数和状态变量:监测点的温度

图片

AcuSolve电池包液冷模型

图片

电池包的动态ROM

图片

蓝色-CFD仿真数据

红色-romAI预测数据

电池动态ROM部署在Activate的新能源车系统仿真模型:

图片

案例4:齿轮箱CFD模型降阶

训练样本来自nanoFluidX( 基于SPH算法)齿轮箱搅油模型,共计算5个瞬态工况作为训练样本和一个瞬态工况作为验证样本。每个工况须采用2块GPU计算8小时。

romAI的2个输入参数:输入轴转速和润滑油体积;1个输出参数和状态变量:齿轮表面的平均对流换热系数HTC。

图片

nanoFluidX仿真生成训练样本

图片

齿轮箱搅油瞬态动画

图片

nanoFluidX 模型工况参数表

图片

5个训练样本

齿轮箱动态ROM的精度验证

图片

图片

图片

图片

图片

图片

蓝色-CFD仿真数据

红色-romAI预测数据

齿轮箱动态ROM应用于Activate热系统仿真,快速预测不同运行工况下的齿轮箱温度。

图片

案例5:挖土机离散元EDEM模型降阶

挖掘机的仿真采用了4个求解器的耦合:

  • 离散元模块EDEM,模拟颗粒(石块);

  • 多体动力学MotionSolve,模拟挖斗、机械臂和车辆的运动;

  • 固体力学模块OptiStruct,模拟铲车臂的应力应变;

  • 系统控制模块Activate,模型降阶和耦合控制。

共计算5个工况作为romAI的训练样本: 

  • 6个输入参数

    图片

    :挖斗的水平位移,垂直位移,角度,以及水平速度,垂直速度,角速度;

  • 4个输出参数: 

    图片

  • 挖斗在XYZ方向的受力和挖斗内颗粒的总质量; 

  • 1个状态变量

    图片

     :挖斗内的颗粒总质量。

romAI的训练样本:

图片

图片

图片

动态ROM的精度验证

图片

红色-EDEM耦合仿真数据

蓝色-romAI预测数据

Activate部署动态ROM进行耦合仿真

图片

动态ROM作为EDEM求解器的代理模型参与耦合仿真

通过模型降阶,EDEM耦合仿真效率提升了34倍。

图片

EDEM挖掘过程仿真

液压力分析对比,动态ROM的最大误差<1.4%

图片

左(动态ROM),右(耦合仿真)

挖斗臂的受力分析对比,动态ROM的最大误差<1.3%。

图片

上(动态ROM),下(耦合仿真)

总 结

  • romAI无需采用传统的DOE方法,采用较少的训练样本即可预测模型的整个运行工况区间。这对计算资源消耗大的CFD仿真有工程实用价值。

  • romAI目前并不生成2D/3D云图,可以用于模型多工况的降阶。但如果系统设计发生了变化(比如冷却系统的风扇从轴流变成了离心),需要重新生成样本,和训练样本。

  • 训练样本的数据最好能覆盖整个运行工况的极大/小值的范围,虽然romAI可以预测样本范围外的工况,但是那些未知区域如果也呈现高度非线性,预测可能产生偏差。

  • 对于高度非线性的系统,动态ROM精度有可能不太理想。这是因为在估计一种状态时,一个非常小的误差,通常与其他状态耦合,随着时间的推移,很容易导致解的背离,我们需要更多的输入“形状”。永远记住,我们从数据中学习非线性!


若您对数据分析以及人工智能感兴趣,欢迎与我们一起站在全球视野关注人工智能的发展,与Forrester 、德勤、麦肯锡等全球知名企业共探AI如何加速工业变革,共享众多优秀行业案例,开启AI人工智能全球新视野!!

共同参与6月20日由Altair主办的面向工程师的全球线上人工智能会议“AI for Engineers”。

点击立即免费报名

(注:现在注册参会,即可于会后第一时间获得Altair全球100个客户案例资料)


关于 Altair RapidMiner

Altair RapidMiner 数据分析与人工智能平台,是 Altair 澳汰尔公司旗下仿真、HPC 和数据分析三块主营业务中的解决方案,它在数据分析领域最早实现将自动化数据科学、文本分析、自动特征工程和深度学习等多种功能同时集成的一站式数据分析平台,帮助用户解决从数据清洗、准备、数据科学建模到模型管理和部署,同时又支持数据和流数据的实时分析可视化的数据分析平台。

欲了解更多信息,欢迎关注公众号:Altair RapidMiner

这篇关于基于机器学习的CFD模型降阶的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/1061485

相关文章

Java的IO模型、Netty原理解析

《Java的IO模型、Netty原理解析》Java的I/O是以流的方式进行数据输入输出的,Java的类库涉及很多领域的IO内容:标准的输入输出,文件的操作、网络上的数据传输流、字符串流、对象流等,这篇... 目录1.什么是IO2.同步与异步、阻塞与非阻塞3.三种IO模型BIO(blocking I/O)NI

基于Flask框架添加多个AI模型的API并进行交互

《基于Flask框架添加多个AI模型的API并进行交互》:本文主要介绍如何基于Flask框架开发AI模型API管理系统,允许用户添加、删除不同AI模型的API密钥,感兴趣的可以了解下... 目录1. 概述2. 后端代码说明2.1 依赖库导入2.2 应用初始化2.3 API 存储字典2.4 路由函数2.5 应

Java进阶学习之如何开启远程调式

《Java进阶学习之如何开启远程调式》Java开发中的远程调试是一项至关重要的技能,特别是在处理生产环境的问题或者协作开发时,:本文主要介绍Java进阶学习之如何开启远程调式的相关资料,需要的朋友... 目录概述Java远程调试的开启与底层原理开启Java远程调试底层原理JVM参数总结&nbsMbKKXJx

C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)

《C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)》本文主要介绍了C#集成DeepSeek模型实现AI私有化的方法,包括搭建基础环境,如安装Ollama和下载DeepS... 目录前言搭建基础环境1、安装 Ollama2、下载 DeepSeek R1 模型客户端 ChatBo

SpringBoot快速接入OpenAI大模型的方法(JDK8)

《SpringBoot快速接入OpenAI大模型的方法(JDK8)》本文介绍了如何使用AI4J快速接入OpenAI大模型,并展示了如何实现流式与非流式的输出,以及对函数调用的使用,AI4J支持JDK8... 目录使用AI4J快速接入OpenAI大模型介绍AI4J-github快速使用创建SpringBoot

0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型的操作流程

《0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeekR1模型的操作流程》DeepSeekR1模型凭借其强大的自然语言处理能力,在未来具有广阔的应用前景,有望在多个领域发... 目录0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型,3步搞定一个应

Deepseek R1模型本地化部署+API接口调用详细教程(释放AI生产力)

《DeepseekR1模型本地化部署+API接口调用详细教程(释放AI生产力)》本文介绍了本地部署DeepSeekR1模型和通过API调用将其集成到VSCode中的过程,作者详细步骤展示了如何下载和... 目录前言一、deepseek R1模型与chatGPT o1系列模型对比二、本地部署步骤1.安装oll

Java深度学习库DJL实现Python的NumPy方式

《Java深度学习库DJL实现Python的NumPy方式》本文介绍了DJL库的背景和基本功能,包括NDArray的创建、数学运算、数据获取和设置等,同时,还展示了如何使用NDArray进行数据预处理... 目录1 NDArray 的背景介绍1.1 架构2 JavaDJL使用2.1 安装DJL2.2 基本操

Spring AI Alibaba接入大模型时的依赖问题小结

《SpringAIAlibaba接入大模型时的依赖问题小结》文章介绍了如何在pom.xml文件中配置SpringAIAlibaba依赖,并提供了一个示例pom.xml文件,同时,建议将Maven仓... 目录(一)pom.XML文件:(二)application.yml配置文件(一)pom.xml文件:首

如何在本地部署 DeepSeek Janus Pro 文生图大模型

《如何在本地部署DeepSeekJanusPro文生图大模型》DeepSeekJanusPro模型在本地成功部署,支持图片理解和文生图功能,通过Gradio界面进行交互,展示了其强大的多模态处... 目录什么是 Janus Pro1. 安装 conda2. 创建 python 虚拟环境3. 克隆 janus