在流体流动模拟中,评估流体作用在固体上的力通常很重要,例如机翼或汽车上的升力和阻力。工程师可以通过评估这些物体上的力来量化设计的效率和空气动力学性能。今天,我们将讨论在 COMSOL Multiphysics 中计算升力和阻力的不同方法。

定义升力和阻力

当流体流过一个物体时,它会在物体表面施加一个力。如下图所示,垂直于流动方向的分力称为升力。平行于流动方向的分力称为曳力。为简单起见,我们假设流向与模型的坐标系对齐。稍后,我们将向您展示如何计算与模型坐标系不对齐的方向上的升力和阻力。

流体流过物体时升力和阻力分量的示意图。

升力和阻力有两个不同的来源——压力和黏性力。压力 通常称为压力梯度力,是由于表面压差而产生的力。黏性力 是由于摩擦力产生的力,作用于流体的相反方向。压力和黏滞力的大小有很大的不同,这取决于流体的类型。例如,行驶的汽车周围的气流通常是由压力控制的。

用总应力计算升力和阻力

在 COMSOL Multiphysics 中可以对所有内部变量进行访问,并通过边界积分轻松计算表面力。在这里,我们将演示如何计算 Ahmed 体上的阻力。您可以从我们的案例库中下载这个模型。

Ahmed 体上方气流的模拟。表面图显示了压力分布,流线的颜色表示速度大小。Ahmed 体后面的箭头表面显示了尾流区的环流。

根据物理原理,有几种方法可以计算阻力。最直接的方法是在计算每个方向上的积分总应力——包括压力和黏性力的贡献。为此,我们首先需要在“派生值”节点下定义一个表面积分运算符,如下所示。

提示:另外,您也可以在组件耦合中使用边界探针或积分算子定义这种积分。不同之处在于,可以在模拟过程中使用在物理设置中定义的操作。例如,在优化研究中使用边界探针作为目标或约束来计算阻力。

接下来,我们可以选择边界来执行积分。在这个例子中,我们选择了物体上的所有边界。此模型中的升力位于 y-方向。我们可以输入表达式:spf.T_stressy,表示 y-方向上的总应力。

分别计算压力和黏性力

有时,工程师可以通过分别查看压力和黏性力来获得对设计更深入的了解。对于y-方向的黏性应力,COMSOL Multiphysics 提供了预定义的变量,spf.K_stressy。我们可以很容易地通过积分黏性应力来估算黏性力。

压力如何计算呢?压力由变量表示 p,是一个标量。为了向阻力的方向投射,需要用压力乘以表面法向量 spf.nymesh 的 y-分量。因此,我们可以通过积分 spf.nymesh*p 来评估表面上的压力。

在一些特殊的使用了壁函数的湍流中,使用摩擦速度 spf.u_tau 计算黏性力更加准精确。在 COMSOL Multiphysics 中,k-ε 和 k-ω 湍流模型使用壁函数。

如果需要了解更多关于 COMSOL Multiphysics 湍流模型的信息,请阅读我们的博客文章”我应该为我的 CFD 应用选择哪种湍流模型?“.

我们可以通过以下方法获得壁的局部剪应力:

u_\tau = \sqrt{\frac{\tau_w}{\rho}}

因此,局部剪应力在y-方向表示为:

\tau_{w_{y}} = \rho~u_\tau^2~\frac{u^T_y}{u^T}

其中,u^T 是壁的切向速度。我们可以进一步重新将 u^T 写作 u_\tau*u^+,其中 u^+ 是切向无量纲速度。

不需要在推导上花费太多精力,我们可以把前面的方程转换成 COMSOL 变量。我们可以使用下列表达式: spf.rho*spf.u_tau*spf.u_tangy/spf.uPlus 积分阻力方向上的局部壁面剪应力(y-方向)。在这个表达式中,spf.rho 是流体的密度,spf.u_tangy 是壁在 y-方向上的速度,spf.uPlus 是切向无量纲速度。

下面的表格总结了用于计算每个力的表达式。

无壁函数的流体流动

有壁函数的湍流

压力

spf.nymesh*p

spf.nymesh*p

黏性力

-spf.K_stressy

spf.rho*spf.u_tau*spf.u_tangy/spf.uPlus

总力

-spf.T_stressy

spf.nymesh*p + spf.rho*spf.u_tau*spf.u_tangy/spf.uPlus

注意:在这个例子中,阻力在 y-方向。您可能需要根据模型的方向更改投影方向。

攻角修正

通常,几何形状可能与流动方向不完全一致。几何中心参考线和引入流之间的角度称为攻角 (通常用希腊字母表示)。在航空航天工程中,经常使用攻角,因为它是翼型弦线和自由流方向之间的角度。下图显示了升力、阻力和机翼攻角之间的关系。

图翼上的升力、阻力和攻角的示意图。

以2D NACA 0012 型机翼为例,我们将向您展示如何用攻角修正来计算升力。这个模型可以在 COMSOL 案例库中找到。

有两种方法可以改变模型的攻角。我们可以旋转几何图形本身,也可以保持几何图形不变,但需要修改入口处的流向。在这里,我们将使用第二种方法。调整进气道边界条件的速度场要简单得多,因为我们不需要为每个攻角重新计算模型。如下图所示,翼型是固定的,而流线显示了由于调整进气速度方向而产生的攻角下的气流。

攻角为 14° 时,通过 NACA 0012 型机翼的气流模拟。表面图显示了速度大小以及流线(以黑色显示)。

这个示例使用了 SST 湍流模型,这个模型不使用壁函数。因此,我们将使用总应力来计算升力。在攻角为 0° 时,升力 -spf.T_stressy 很简单。如果攻角不为零,我们可以用下面的表达式把力投射到升力方向上: spf.T_stressx*sin(alpha*pi/180)-spf.T_stressy*cos(alpha*pi/180)。这里,α 代表攻角,单位为度。

升力或阻力系数如何计算呢?

你也可能对升力和阻力的无量纲形式——升力系数和阻力系数感兴趣。为了验证实验数据或者比较不同的设计,通常更容易使用系数来代替尺寸力。二维的升力系数定义为:

既然我们已经计算了空间升力,就可以使用动态压力和弦长简单地将力无量纲化。利用无量纲的升力系数,我们可以将模拟结果与实验数据进行比较(参考文献1).

注:在三维模拟中,升力系数是按面积而不是按长度无量纲化的: C_L = \frac{L}{\frac{1}{2} \rho u^2_\infty A}

不同攻角下,NACA 0012 机翼升力系数的模拟结果和实验数据的比较图。

如上图所示,在本模拟使用的攻角值范围内,计算结果和实验结果之间没有明显的差异。实验结果继续朝向机翼失速的攻角方向发展。

结束语

在这篇博客文章中,我们探索了计算 Ahmed 体和 NACA 0012 机翼升力和阻力的方法。我们演示了如何计算压力和黏性力,同时还研究了在湍流模型中使用壁函数的特殊情况。

我们在这里介绍的方法当然不限于这些特定的模拟。您可以计算任何边界或表面上的力,从而通过多物理场模拟获得对设计的理解。使用优化模块,您可以通过更进一步的分析,优化升力或阻力。

参考文献

C.L. Ladson, “Effects of Independent Variation of Mach and Reynolds Numbers on the Low-Speed Aerodynamic Characteristics of the NACA 0012 Airfoil Section,” NASA TM 4074, 1988.

怎样计算机翼升力大小,如何计算升力和阻力?相关推荐

  1. 计算 java_两种计算Java对象大小的方法(转)

    原文:http://blog.csdn.net/iter_zc/article/details/41822719 另一篇类似文章:http://www.cnblogs.com/magialmoon/p ...

  2. C语言 计算结构体大小

    本文主要参考:结构体内存对齐(如何计算结构体的大小) 前言 数组是相同类型的元素的集合,只要会计算单个元素的大小,整个数组所占空间等于基础元素大小乘上元素的个数. 结构体中的成员可以是不同的数据类型, ...

  3. Oracle如何精确计算row的大小

    第一步:计算整个Block Header的大小         数据块头部所需要的空间大小由以下公式计算:         Space after headers (hsize) = DB_BLOCK ...

  4. 聊聊JVM(三)两种计算Java对象大小的方法

    普通对象的结构如下,按64位机器的长度计算 1. 对象头(_mark), 8个字节 2. Oop指针,如果是32G内存以下的,默认开启对象指针压缩,4个字节 3. 数据区 4.Padding(内存对齐 ...

  5. php 计算 目录大小,php计算整个目录大小的方法

    本文实例讲述了php计算整个目录大小的方法.分享给大家供大家参考.具体实现方法如下: /** * Calculate the full size of a directory * * @author ...

  6. Python 计算文件夹大小、文件大小

    1.获取文件夹的文件 import os pathvar=r'D:\pycharm project\day17' lst=os.listdir(pathvar) print(lst) 2.计算文件的大 ...

  7. 截取字符串,计算字符串字节大小,选择文件夹,上传文件

    获取(.)点前一个字符 string s = "123_u.jpg"; string strKzm = s.Substring(s.LastIndexOf("." ...

  8. 硬盘整数分区大小计算,整数分区大小计算公式

    硬盘整数分区大小计算,整数分区大小计算公式 硬盘分区计算] 现在的大容量硬盘越来越多,所以硬盘的分区就显得很重要了.怎样才能做到更精确的分区容量呢?这里分区计算存在误差,既不是标准的 1024 也不是 ...

  9. LeetCode 952. 按公因数计算最大组件大小

    952. 按公因数计算最大组件大小 [质因数+并查集]一开始我想的是两两用gcd查公因数,如果不是1就用并查集合并,但是复杂度O(n * n * gcd),O(gcd) = O(logm),所以显然是 ...

最新文章

  1. sql列转行函数oracle,SQL列转行
  2. php未登录跳到登陆页面,vue实现未登录跳转到登录页面的方法
  3. 网易有毛病,我的账号被锁了,去解锁时候又几把提示不成功,浪费劳资感情啊
  4. Flutter 制作漂亮的登录表单
  5. c语言 字符串 url,如何对URL字符串进行百分号编码
  6. 使用uuid作为数据库主键,被技术总监怼了!
  7. 14.图像透视——人类视觉,平行线测验,其他模型,乐趣与角度_4
  8. linux major头文件_Linux的字符设备
  9. 算法-查找数组两个数据相加等于目标值
  10. LINE: 在windows上运行原生linux程序 (2) : demo完成
  11. js中的字符串替换replace操作
  12. UC桌面 测试版本发布
  13. linux opessl下载_linux安装openssl
  14. 如何在Windows下使用DOS命令进入MySQL数据库?
  15. 微信调支付宝支付常见问题
  16. 基于matlab的齿轮,基于matlab的故障齿轮分析.doc
  17. 顾客信息表mysql_Qt5.5.0使用mysql编撰小软件源码讲解-顾客信息登记表_mysql
  18. 区块链改进身份和访问管理技术(IAM)的10种方式
  19. 文件上传漏洞的小总结
  20. addEventListener 的event事件列表

热门文章

  1. 力矩电机控制基本原理
  2. jk触发器上升沿怎么看_jk触发器波形图_jk触发器波形图怎么画
  3. 大学生电子设计大赛(内容有点多,细细看看,应该会有收获)
  4. 降压式变换电路(Buck电路)详解
  5. intellij idea 创建web 项目
  6. 把Sqlite当嵌入式KV数据库用
  7. 2021-3-29 【PTA】【天梯赛】【25分】
  8. Hibernate注解实现一对一关联
  9. 过滤器:管道过滤器技术特点及性能分析
  10. KNN(四)--FLANN库介绍及其应用