首页 如何成为会员 意见反馈
主办 沈阳鼓风机研究所 /《风机技术》杂志社
   新闻  |   技术纵横  |  论坛  |  沈阳鼓风机研究所  |  风机协会  |  质检中心  |  风机标委会  |  风机技术杂志  |  企业商铺  |  供求  |  产品  |  书籍  |  招聘
当前位置:中国风机技术网 → 技术纵横 → 计算机应用

轴流式叶轮机械试验演示与流场计算显示的混合编程

admin    
 

轴流式叶轮机械试验演示与流场计算显示的混合编程 *

丁 伟 刘 波 王掩刚 姜 健 /西北工业大学

摘要: 使用Visual Basic开发了轴流式叶轮机械试验演示与流场计算软件,该软件可对轴流式叶轮机械实验数据进行动态演示,并具有进行多级轴流压缩机S1流面流场计算、实时显示计算迭代过程及对计算结果进行图形后处理的功能。探讨了Visual Basic和Fortran混合语言编程技术。阐述了在 Visual Basic中对图形处理软件Tecplot操控的具体实现方法。通过对一台小型轴流通风机的试验验证了该软件的实用性,具有较好的工程应用前景。
关键词 :轴流式压缩机;轴流式通风机;混合语言编程;流场计算
中国分类号: TH453   文献标识码:B
文章编号: 1006-8155(2007)05-0047-04
Mixed-language Programming for Demonstrating Axial-flow Impeller Machinery Test and Showing Flow Field Calculation
Abstract: The software for axial-flow impeller machinery test demonstration and flow field calculation is developed by Visual Basic. It can dynamically display the experimental data of axial-flow impeller machinery and has the function of calculating S 1 stream surface of multi-stage axial-flow compressor, displaying iterative process in real-time and then disposing the calculated results using graph. The paper also discusses the mixed-language programming technique using Visual Basic and Fortran and specifies the practical method for dominating Tecplot in Visual Basic. The test on a small axial-flow fan confirms the practicability of this software that has good prospect in engineering application.
Key words: axial-flow compressor; axial-flow fan; mixed-language programming; flow field calculation

0  引言

  计算机性能的不断提高为计算流体动力学进行复杂流场的数值模拟提供了广阔的前景。随之而来的是另一矛盾的尖锐化,即如何使用户能够分析、判断和理解计算过程中产生的庞大数值结果。解决这一矛盾只能借助于计算机的编程工具编制软件实现计算和试验的可视化,这样不仅能以图形形式实时显示计算的中间结果,也能实时干预计算过程,而且还可以对计算和试验结果进行图形处理[1-2]
  在诸多编程语言中,Visual Basic作为一种面向对象的可视化编程工具,具有界面友好、简单易用、开发软件周期短、灵活方便和易于扩充的特点[3] 。笔者使用 Visual Basic 开发了叶轮机械试验演示与流场计算软件。实现了如下功能。
  (1)以一小型轴流通风机试验台为对象,对其试验数据进行编程处理,并动态显示了风机出口马赫数和损失等参数在一个栅距里的分布情况。
   (2)对某型带进口导叶的三级轴流压缩机进行了S1流面的网格生成和流场计算。
   (3)在流场计算过程中实时显示其迭代过程,并可以随时干预计算过程。
   (4)对计算结果进行快速图形处理,并且可以播放流场参数的动态图像。
   软件的功能与结构如图1所示。

1 试验数据的处理和动态显示

  针对一个小型轴流通风机试验台,为了得到风机出口气流参数沿周向分布的不均匀性[4] ,本软件对试验数据进行了处理,并动态显示了风机出口参数在一个栅距里的分布情况。这些参数都是由压力探针测试到的数据,进行计算而得到的(见图2)。在试验显示中,动态显示了与探针位置相对应的风机出口马赫数、损失等参数在一个栅距里的分布情况。

 

2 网格生成和流场计算的实现

  Visual Basic 语言是应用于 Windows 环境下的一种可视化编程工具,能迅速有效地进行交互界面设计,缺点是运算速度慢,不适合进行大型数值计算。 Fortran 语言自问世以来,以其强大的数值计算能力,广泛应用于数学与工程计算[5] 。本软件用到的网格生成与流场计算程序都是用 Fortran 语言编写的,为了方便使用 Fortran 语言编写成熟代码 ,采用了 Visual Basic 与 Fortran 的混合编程,这样既能解决复杂的大型计算问题,又具有良好的人机交互界面。

2.1 VB 语言和 Fortran 语言混合编程的实现过程

  采用的思路是用 Visual Basic 设计用户界面以及控制程序,将 Fortran 语言编写的网格生成和流场计算程序通过 Fortran PowerStation 4.0 编译成动态链接库(DLL),由 Visual Basic 程序调用。它们之间的数据交换可通过参数传递和文件传递这两种方法来实现。

  要编译成动态链接库的Fortran程序应该只含有函数或子程序。另外要使用微软扩展属性 DLLEXPORT和DLLIMPORT来定义动态链接库与 Visual Basic 的接口,动态链接库中可以有很多子程序和变量,但只有具有 DLLEXPORT属性声明的子程序或变量才可以向动态链接库外输出供其他应用程序访问。具体的语法如下:
Subroutine Name
$ATTRIBUTES DLLEXPORT ∷ Name
其中 Name 为函数或子程序名。
   建立动态链接库后就可以通过 Visual Basic 程序调用它。 Visual Basic 在调用 Fortran 编译的动态链接库前,必须先在模块级或相应 Form 的 General Declaration 中,对被调用的 DLL进行声明,语法如下:
[Public][Private] Declare sub Name lib "lib name" [Alias "alias name"] [(arglist)]
Declare 语句的作用是声明对 DLL中外部过程的引用。声明之后, Visual Basic 中使用 Call语句实现调用DLL中的函数或子程序,调用语句如下:
Call Name (arglist)
   要使 Visual Basic 正确地调用 Fortran DLL ,值得注意的问题是调用过程中的参数传递。由于Fortran PowerStation4.0 和 Visual Basic 在数据定义类型上不一致,因此在 Visual Basic的Declare 语句中的参数列表中,必须将 Fortran 程序的参数类型正确地对应到 Visual Basic中。两种语言的参数对应关系见表1。

表1 Fortran 和 VB 主要参数传递对照表

Fortran

Visual Basic

INTEGER

LONG

INTEGER(2)

INTEGER

REAL*4

SINGLE

REAL*8

DOUBLE

2.2 对某型带进口导叶的三级轴流压缩机S1流面的网格生成和流场计算

  实现对某型带进口导叶的三级轴流压缩机S1流面的流场计算迭代过程实时监测。它可以实时显示迭代过程中收敛残差等参数的变化情况,便于用户了解计算收敛的情况,而无需等待计算结束后再分析迭代收敛的过程。原始数据 ( 初始条件、边界条件、计算参数等 ) 可以在Visual Basic的界面下直接输入或更改,计算的功能则通过调用Fortran动态链接库来实现。整个计算过程是通过 Fortran 动态链接库在后台处理的。再将中间计算结果传递到Visual Basic程序中。图3显示了在迭代过程中,收敛残差、进口流量、进口马赫数、效率随着迭代次数的变化趋势。

2.3 计算结果图形显示的实现

  在进行流场计算之后,要对计算结果进行后置处理和分析。本软件 需要显示多级压缩机的S1流面的网格图以及速度矢量图等,但是用 VB 则 难以实现。而需要借助功能强大的图形处理软件 Tecplot 来实现这一功能,具体的实现方法是通过使用 shell() 函数在 VB 中使用Tecplot, 并且可以在 VB 的界面下通过菜单直接对Tecplot进行操纵,这样即使使用者对该软件一无所知,也能方便地使用它。本软件实现了图形操作的常用功能,如:打开文件、缩放、保存、关闭等功能。 在 VB 的界面下直接对 Tecplot 进行操纵 ,是通过 使用以下两个陈述式 AppActivate 、 SendKeys 来实现的。

  首先, AppActivate 陈述式用于激活一个应用程序的窗口,其语法为
AppActivate title[ , wait]
AppActivate 语句的语法具有以下几个命名参数:
Title ——必要参数。字符串表达式,所要激活的应用程序的标题。可以使用Shell函数返回的任务识别码来替换Title,以激活应用程序。Wait——可选参数。 Boolean值,说明在激活另一个应用程序之前调用的应用程序是否有焦点。如果为 False (缺省),那么,即使调用的应用程序没有焦点,也会直接激活指定的应用程序。如果为 True ,则调用的应用程序会等到有焦点后,才会激活指定的应用程序。

其次, SendKeys 陈述式用于将一个或多个按键消息发送到活动窗口,就如同在键盘上输入一样。其语法为
   SendKeys string[ , wait]
   SendKeys 语句的语法具有以下几个命名参数:
   String ——必要参数。字符串表达式,指定要发送的按键消息。 Wait ——可选参数。指定等待方式的 Boolean 值。如果 False (缺省值),则控件在按键发送出去之后会立刻返回到过程。如果为 True ,则按键消息必须在控件返回之前加以处理。

  通过使用Shell函数以及AppActivate陈述式和 SendKeys 陈述式这两个语句,可以在VB中对Tecplot进行一定的操控,值得注意的是这种操控的实质是在VB中执行了Tecplot的快捷键。

2.4 动画显示的实现

  动画的播放是利用Visual Basic中的WebBrowser控件完成的。通过使用该控件的Navigate、Stop、GoHome方法播放和操作GIF动画文件。为了模拟压缩机中动叶和静叶的相互干涉现象[6]以及各叶片排尾迹的发展过程[7] ,本软件对其进行了动画演示。图4显示了该型压缩机前两级的S1根部截面的熵图动画,图5显示了第一级静子的根部在大正攻角工况下,分离涡的形成、脱落、耗散的过程。

3 结论

  开发了轴流式叶轮机械试验演示与流场计算软件,按照设计的要求,实现小型轴流通风机试验台中探针测量数据的模拟和再现。可以进行多级轴流压缩机S1流面流场计算并实时显示计算迭代过程,然后对计算结果进行必要的图形处理和流场参数的动画显示。

  通过该软件的实际应用,效果良好。软件界面友好、清晰,操作简便,可以作为轴流式叶轮机械数值模拟计算和试验的一个有效的辅助分析工具,也具有潜在的工程应用价值。

参 考 文 献

[1] 朱自强. 应用计算流体力学[M]. 北京航空航天大学出版社,1998.
[2] 范结川.近代流动显示技术[M].国防工业出版社,2002.
[3] Greg Perry. 学用Visual Basic 6.0[M]. 清华大学出版社,2000.
[4] Schaeffler A, Miatt D C . Experimental Evaluation of Heavy Fan-High-Presssure Compressor in a Three-Shaft Engine:Part — Experimental Setup and Results[J] . Journal of Engineering for Gas Turbine and Power,1985,107:828 — 832 .
[5] 桂良进 , 王军 . Fortran PowerStation 4.0 使用与编程 [M]. 北京航空航天大学出版社, 1999 .
[6] J. Amecke . Data Reduction of Wake Flow Measurements with PlaneCascades . IB222-90A06,1990 .
[7] Gary G. Podboy, Martin J. Krupar, Stephen M. Helland, Christopher E. Hughes . Steady and Unsteady Flow Field Measurements Within a NASA 2 Inch Fan Mod el[R] . AIAA2002-1033 .

新闻评论评论内容只代表网友观点,与本站立场无关!

  评论人:不锈钢网   打分:0 分  发表时间:2015-7-21 12:55:42
· 不错的文章,内容博学多才.禁止此消息:nolinkok@163.com不锈钢网http://www.hbbuxiugan...
  评论人:不锈钢窗纱   打分:0 分  发表时间:2015-6-20 15:40:26
· 不错的文章,内容惟妙惟肖.禁止此消息:nolinkok@163.com不锈钢窗纱http://www.hanhaichu...
  评论人:玻璃纤维网格布   打分:0 分  发表时间:2015-6-20 15:40:25
· 不错的文章,内容完美无缺.禁止此消息:nolinkok@163.com玻璃纤维网格布http://www.hanhaic...
  评论人:防虫网   打分:0 分  发表时间:2015-6-17 22:32:23
· 不错的文章,内容博学多才.禁止此消息:nolinkok@163.com防虫网http://www.hanhaichuan...
  评论人:塑料窗纱   打分:0 分  发表时间:2015-6-17 16:41:01
· 好文章,内容淋漓尽致.禁止此消息:nolinkok@163.com塑料窗纱http://www.hanhaichuang...