用python计算空气动力和力矩

问题描述 投票:0回答:1

我想知道如何使用与 Python 集成来计算机翼表面上的空气动力(Fx、Fy、Fz)和力矩,*.CSV 文件中的数据示例如下:

Fx

X_坐标 Y_坐标 Z_坐标 压力 X_法线 Y_法线 Z_法线
2.34979 0 5.01509 0.989625 -0.981281 0.188252 -0.0406009
2.3516 0 5.07262 0.979072 -0.978972 0.188853 0.0771268
2.35503 0 4.95777 0.984588 -0.971282 0.180498 -0.155022
2.36013 0 5.12954 0.954055 -0.963974 0.183935 0.192153
2.36676 0 4.90141 0.964809 -0.950169 0.16695 -0.26326
2.37934 0.150177 4.99971 0.971161 -0.940029 0.337158 -0.0516759
2.38006 0.151914 5.06327 0.963597 -0.939053 0.338328 0.0609358
2.37493 0 5.18517 0.919066 -0.938548 0.175529 0.297181
2.38563 0.147054 4.93709 0.96491 -0.93166 0.326119 -0.160173

我知道如何使用 Tecplot 360 (link) 和 Paraview 来做到这一点,但如果有人能帮助我用 Python 做同样的事情,我将不胜感激。谢谢。

python math aero
1个回答
0
投票

使用 python,这非常简单和优雅:

import pandas as pd
import numpy as np

# Your csv file
df = pd.read_csv('Cartel1.csv', sep=';')

# Compute the forces in every direction
df['Fx'] = df['Pressure'] * df['X_normals']
df['Fy'] = df['Pressure'] * df['Y_normals']
df['Fz'] = df['Pressure'] * df['Z_normals']

# Resultant force
df['F_total'] = np.sqrt(df['Fx']**2 + df['Fy']**2 + df['Fz']**2)

# Compute the moments around every axes
df['Mx'] = df['Y_coordinate'] * df['Fz'] - df['Z_coordinate'] * df['Fy']
df['My'] = df['Z_coordinate'] * df['Fx'] - df['X_coordinate'] * df['Fz']
df['Mz'] = df['X_coordinate'] * df['Fy'] - df['Y_coordinate'] * df['Fx']

# Magnitude of the resultant moment
df['M_total'] = np.sqrt(df['Mx']**2 + df['My']**2 + df['Mz']**2)

print(df)
© www.soinside.com 2019 - 2024. All rights reserved.