热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

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

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

定义升力和阻力

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

edac19f03f3d8daf22c2f2aa1f89aabb.png

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

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

用总应力计算升力和阻力

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

e0c72eb46a54b6e55826e32c20a82113.png

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

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

05efafcd46ba7122b921c58e965f79d8.png

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

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

05d3e5542ea204497a746860918eee89.png

分别计算压力和黏性力

有时,工程师可以通过分别查看压力和黏性力来获得对设计更深入的了解。对于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-方向。您可能需要根据模型的方向更改投影方向。

攻角修正

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

bcc69339dc5379c8bdd1820c7b0eae39.png

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

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

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

b23aad53b1040827bbdd498177d0b0fb.png

攻角为 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}

b04adfa4280a0719f38cfe575d0807a4.png

不同攻角下,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.



推荐阅读
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • 基于PgpoolII的PostgreSQL集群安装与配置教程
    本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
  • Skywalking系列博客1安装单机版 Skywalking的快速安装方法
    本文介绍了如何快速安装单机版的Skywalking,包括下载、环境需求和端口检查等步骤。同时提供了百度盘下载地址和查询端口是否被占用的命令。 ... [详细]
  • 电话号码的字母组合解题思路和代码示例
    本文介绍了力扣题目《电话号码的字母组合》的解题思路和代码示例。通过使用哈希表和递归求解的方法,可以将给定的电话号码转换为对应的字母组合。详细的解题思路和代码示例可以帮助读者更好地理解和实现该题目。 ... [详细]
  • 本文介绍了闭包的定义和运转机制,重点解释了闭包如何能够接触外部函数的作用域中的变量。通过词法作用域的查找规则,闭包可以访问外部函数的作用域。同时还提到了闭包的作用和影响。 ... [详细]
  • 本文介绍了解决Netty拆包粘包问题的一种方法——使用特殊结束符。在通讯过程中,客户端和服务器协商定义一个特殊的分隔符号,只要没有发送分隔符号,就代表一条数据没有结束。文章还提供了服务端的示例代码。 ... [详细]
  • 本文介绍了设计师伊振华受邀参与沈阳市智慧城市运行管理中心项目的整体设计,并以数字赋能和创新驱动高质量发展的理念,建设了集成、智慧、高效的一体化城市综合管理平台,促进了城市的数字化转型。该中心被称为当代城市的智能心脏,为沈阳市的智慧城市建设做出了重要贡献。 ... [详细]
  • C语言注释工具及快捷键,删除C语言注释工具的实现思路
    本文介绍了C语言中注释的两种方式以及注释的作用,提供了删除C语言注释的工具实现思路,并分享了C语言中注释的快捷键操作方法。 ... [详细]
  • c语言\n不换行,c语言printf不换行
    本文目录一览:1、C语言不换行输入2、c语言的 ... [详细]
  • 本文介绍了一种划分和计数油田地块的方法。根据给定的条件,通过遍历和DFS算法,将符合条件的地块标记为不符合条件的地块,并进行计数。同时,还介绍了如何判断点是否在给定范围内的方法。 ... [详细]
  • http:my.oschina.netleejun2005blog136820刚看到群里又有同学在说HTTP协议下的Get请求参数长度是有大小限制的,最大不能超过XX ... [详细]
  • 本文介绍了为什么要使用多进程处理TCP服务端,多进程的好处包括可靠性高和处理大量数据时速度快。然而,多进程不能共享进程空间,因此有一些变量不能共享。文章还提供了使用多进程实现TCP服务端的代码,并对代码进行了详细注释。 ... [详细]
author-avatar
不如藏拙_487
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有