模拟一般形状对象的空气动力学

计算科学 流体动力学 模拟 3d
2021-12-14 01:07:49

我正在尝试用 C++ 编写一个简单的物理模拟器,但我遇到了空气阻力问题。在网上冲浪时,我只发现空气垂直于该区域时非常基本的区域形状的阻力系数。然而,即使在模拟下落的平行六面体时,我发现这不足以描述下落体的运动,因为空气并不总是垂直于每个面。更准确地说,我能够计算物体每个面上的空气阻力,获得描述作用在身体上的力的 3D 矢量。

然而很明显,当这样的物体从空中落下时,即使是角动量也会被引入物体。我无法确定。

我正在考虑将气流描述为平行向量的矩阵,从而获得一个合力,作为每个向量撞击身体的效果的加权和。但是在这种情况下,我无法确定每个风矢量撞击身体表面的力。

由于空气阻力而获得物体旋转的最简单方法是什么?最好的方法是什么?

1个回答

正确的描述(因为你想写一些“基于物理”的东西)是通过 Navier-Stokes 方程来实现的,但是以 30fps 的实时精度来解决它们是不可能的。

我想一个合理的近似是假设身体只是简单地从空气中落下而不会对其产生干扰,但是空气会通过以下方式在身体的每个面上产生力:空气速度矢量的垂直分量产生法向力到您可能从文献中获得的面(假设一个矩形面,垂直流动,速度等于速度矢量的垂直分量);空气速度的切向分量会产生一个平行于面的阻力,该阻力与面的面积成正比,其大小将与空气的粘度成正比。您可能需要对这两个组件的两个比例因子进行一些调整,以使事物看起来很真实。