xfoil的精简版编译后的python模块
xfoil的Python项目详细描述
一般
这是xfoil的精简版,以python模块的形式呈现。这个包裹有什么独特之处 w.r.t.还有许多其他允许xfoil的接口,这是python代码直接与 已编译的Fortran库。这种方法避免了将-/输出文件读/写到磁盘并与 xfoil可执行文件。消除对恒定磁盘I/O操作的需求可以显著加快并行速度 尤其是框架,使这种方法具有明显的优势。
构建和安装python模块
如果您使用的是带有python 3.6的windows机器(64位),那么安装xfoil是一个简单的运行问题:
pip install xfoil
如果您使用不同类型的机器,或者使用不同版本的python,则必须确保 软件已安装在系统上,以便成功生成包。首先,模块的目标 Python3,不支持Python2。因此,请确保python 3环境已安装并可用。 此外,C和Fortran的工作编译器必须安装在路径上。在windows上,构建和 安装只测试了mingw,使用gcc和gfortran。
然后,安装xfoil应该和运行xfoil一样简单
pip install .
从下载的存储库的根目录。
在windows上,您可能必须强制系统使用mingw。为此,请在中创建名为distutils.cfg
的文件
PYTHONPATH\Lib\distutils
包含以下内容:
[build]compiler=mingw32
如果无法为python环境创建此文件,则可以在中创建名为setup.cfg
的文件
内容相同的回购协议的根。也可以在调用mingw时直接强制使用mingw
pip
呼叫:
pip install --global-option build_ext --global-option --compiler=mingw32 .
使用模块
所有xfoil操作都使用XFoil
类执行。所以使用这个模块的第一步是创建
此类的实例:
>>> fromxfoilimportXFoil>>> xf=XFoil()
如果这不会产生任何错误,则安装应正常运行。
对称NACA0012翼型作为一个测试案例。它可以像这样加载到xfoil库中:
>>> fromxfoil.testimportnaca0012>>> xf.airfoil=naca0012 Number of input coordinate points: 160 Counterclockwise ordering Max thickness = 0.120008 at x = 0.308 Max camber = 0.000000 at x = 0.033 LE x,y = -0.00000 0.00000 | Chord = 1.00000 TE x,y = 1.00000 0.00000 | Current airfoil nodes set from buffer airfoil nodes ( 160 )
一旦机翼成功加载,就可以进行分析。我们来分析它的一系列攻角,在 雷诺数一百万。让我们将迭代的最大次数限制为40(默认为20)。 对于攻角范围,我们将从-20度到20度,步长为0.5度:
>>> xf.Re=1e6>>> xf.max_iter=40>>> a,cl,cd,cm=xf.aseq(-20,20,0.5)
xfoil库应该产生大量的输出,这对于那些使用过原始xfoil的用户来说应该很熟悉
申请之前。最后的结果是攻角列表,a
,以及相应的升力系数,cl
,
阻力系数,cd
,力矩系数,cm
。例如,我们现在可以绘制该翼型的升力曲线:
>>> importmatplotlib.pyplotasplt>>> plt.plot(a,cl)>>> plt.show()
这将产生下图:
就像在原XOPER应用中一样,翼型也可以分析单个迎角,单升程。 系数,或升力系数的范围。这些操作的命令是
>>> cl,cd,cm=xf.a(10)>>> a,cd,cm=xf.cl(1)>>> a,cl,cd,cm=xf.cseq(-0.5,0.5,0.05)
分析攻角为10度,升力系数为1.0,升力系数范围为 -0.5至0.5,步长为0.05。
有关其他特性和细节,请参阅python源文件中的文档。