首页/文章/ 详情

应用案例 | 电动车热模型在整车性能和驾驶循环分析中的发展和应用

20小时前浏览13


应用案例 | 电动车热模型在整车性能和驾驶循环分析中的发展和应用

来源:艾迪捷
科普
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2025-09-08
最近编辑:20小时前
艾迪捷
MBD CAE解决方案专家
获赞 2粉丝 1文章 309课程 0
点赞
收藏
作者推荐

Ansys Fluent边界条件自定义设置(二) ——Fluent Expressions(上)

IDAJ中国 来自:IDAJ中国Ansys技术团队 徐淑君更多资料/视频:产品专栏/Ansys随着仿真工况的日益复杂,在数值模拟中经常会遇到一些无法在界面上直接赋值的边界条件,比如按一定空间位置排列,随时间变化,或和某个变量相关等等。越来越多的工程师希望对边界条件进行自定义设置。Ansys Fluent中有以下几种自定义边界条件的方法:- 利用profile文件赋值- 采用Fluent Expressions定义- 编写UDF今天,我们来了解一下如何采用Fluent Expressions定义边界条件。从2019版本开始,Fluent中加入了和CFX中的表达式功能类似的“Fluent Expression Language”(表达式语言)。它是一种基于Python的解释型的声明式语言,是由数值、变量、运算符、函数组成的可以返回一定值的字符串,例如,Vmax*(5.0*exp(-t-0.3 [s]/2.8 [s]))。表达式可以指定与时间、迭代步、位置、求解变量相关的复杂的边界条件和源项,基于时间和迭代步指定不同的模型和求解器设置。同一个表达式对Windows和Linux都适用。表达式可以取代部分UDF、Scheme、Journal的功能,虽然不能完全取代,但比UDF、scheme更加易学易用,是非常值得学习的一个功能。 表达式的值可以是实数,整数,布尔值或数量。数量是具有量纲的实数。数量格式为<number> [<unit>],例如2324.0 [Pa kg ^ -3 s]。表达式的计算结果可以是实数,布尔值,实数场或布尔值场。例如,2 * StaticPressure在一个区域上计算时,会返回real field(实数场);而average(2 * StaticPressure,[“ inlet”])返回的是一个实数值。表达式包含很多运算符和函数,如下表所示。描述函数运算符+, -, *, /, ** (power), ^ (power), >, >=, <, <=, ==, !=传统AND(<expr>, <expr>, …)IF(<cond>, <true_value>, <false_value>)NOT(<expr>)OR(<expr>, <expr>, …)XOR(<expr>)双曲线acosh(<expr>)asinh(<expr>)atanh(<expr>)cosh(<expr>)sinh(<expr>)tanh(<expr>)数学abs(<expr>)*besselJ(n**, <expr>)*besselY(n**, <expr>)ceil(<expr>)exp(<expr>)floor(<expr>)gradient(<expr>)log(<expr>)log10(<expr>)max(<expr>, <expr>, …)min(<expr>,<expr>, …)mod(<expr>, <expr>)normalize(<expr>,[<location>,…])round(<expr>)sqrt(<expr>)step(<expr>)trunc(<expr>)*besselJ 是第一类贝塞尔函数,besselY 是第二类贝塞尔函数。**n 必须是“double”类型的常量。归约Area([<location>, <location>, …])AreaAve(Field, ['location'])AreaInt(Field, ['location'])*Average(<expr>, [<location>, <location>, …], Weight= <None| 'Area'| 'Volume'| 'Mass'| 'MassFlowRate'| 'AbsMassFlowRate'>)Centroid(['location'])Count(['location'])CountIf(Boolean_Expr, ['location'])Force (['location'], …)MassAve(Field,['location'])MassFlow(['location'])MassFlowAve(Field, ['location'])MassFlowAveAbs(Field, ['location'])MassFlowInt(Field, ['inelt1'], ['inlet2'])MassInt(Field, ['location'])Maximum(<expr>, [<location>, <location>, …])Minimum(<expr>, [<location>, <location>, …])Moment(<point>, ['location'])PressureForce(['location'], …)*Sum(<expr>, [<location>, <location>, …], Weight= <None| 'Area'| 'Volume'| 'Mass'| 'MassFlowRate'| 'AbsMassFlowRate'>)SumIf( Field, Boolean_Expr, ['location'], Weight=[Weight])ViscousForce([<location>, <location>, …])Volume([<location>, <location>, …])VolumeAve(Field, ['location'])VolumeInt(Field, ['location'])三角acos(<expr>)asin(<expr>)atan(<expr>)atan2(<expr>, <expr>)cos(<expr>)sin(<expr>)tan(<expr>)矢量cross(<expr>, <expr>)dot <vector1>, <vector2>)unitVector(<x>, <y>, <z>)<vector>.dirvector(<x>, <y>, <z>, ["unit"]) 不要在单个表达式中使用多个比较运算符,因为该运算将无法 正常工作。 例如,400 [K]> StaticTemperature> 300 [K]将不起作用。要完成此表达式,请使用AND(StaticTemperature> 300 [K],StaticTemperature <400 [K])。 表达式的数据主要来源有场变量、求解变量、科学常数、别名(Aliases)、profiles。Fluent 后处理场变量的子集可用于表达式。求解变量有当前时间Time、当前时间步Timestep、当前时间步长DeltaTime 和全局迭代次数Iteration。科学常数,如下表所示。变量描述值PI圆周率Pi3.14159265358979323846e自然对数的底数e2.71828182845904523536R气体常数8.314472 [J K^-1 mol^-1]avogadro阿伏伽德罗常数6.02214199e23 [mol^-1]boltzmann玻尔兹曼常数1.3806503 [J K^-1]clight光速2.99792458e8 [m s^-1]echarge电子电荷1.60217653e-19 [A s]g重力加速度9.8066502 [m s^-2]planck普朗克常数6.62606876e-34 [J s]stephan斯蒂芬-玻尔兹曼常数5.670400e-08 [W m^-2 K^-2]mupermo磁导率4.0*PI*1.0e-7 [N A^-2]epspermo介电常数1./(clight*clight*mupermo) 利用别名可以引用一些常用的参数,如下表所示。别名变量xPosition.xyPosition.yzPosition.zuVelocity.xvVelocity.ywVelocity.ztTime**在稳态下,时间评估为 0,除非案例在瞬态中运行,然后切换到稳态,在这种情况下,它将评估为瞬态运行的最晚时间。dtDeltaTime**在稳态下,增量时间评估为 0,除非案例在瞬态运行,然后切换到稳态,在这种情况下,它将评估为瞬态运行的最新增量时间。iterGlobal iteration countTStaticTemperaturePStaticPressuremfMassFractionAmagFaceAreaMagnitudevolCellVolumemassCellVolume*Density 可以在表达式中使用profile来指定边界和单元区域条件,用于后处理和归约操作。profile是可以导入到 Fluent 中的表格数据,除了一个或多个因变量列之外,通常还包含 X、Y 和 Z 列(对于空间profile)或时间(对于瞬态profile)。在表达式中使用profile之前,您必须加载一个或多个profile。profile表达式需要以下输入:profile(‘<profile-name>’, ‘<field-name>’, frame=‘<reference-frame-name>’)(reference frame参数仅适用于空间profile)。定义profile表达式后,您可以为所需的边界条件或单元域条件字段选择它。profile表达式示例如图1。图1 profile表达式 来源:艾迪捷

未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习计划 福利任务
下载APP
联系我们
帮助与反馈