VB在流速测量数据处理中的应用.docx_第1页
VB在流速测量数据处理中的应用.docx_第2页
VB在流速测量数据处理中的应用.docx_第3页
VB在流速测量数据处理中的应用.docx_第4页
VB在流速测量数据处理中的应用.docx_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第34卷第2期2008年6月Vol.34No.2Jun.2008湖南交通科技HUNANCOMMUNICATIONSCIENCEANDTECHNOLOGY文章编号:1008-844X(2008)02014804VB在流速测量数据处理中的应用李胜超,李银发,沈小雄,江伟(长沙理工大学水利学院,湖南长沙410076)摘要:将功能强大的VB应用到流速测量数据的处理中来,节省了大量的劳力,给实际工作带来了很大的方便。为了说明有关问题,文中给出了主要源代码。关键词:流速测量;VB;参数计算;数据分离分类号:U617.9文献标识码:BMicrosoft公司推出的VisualBasic'”是一种集成开

2、发界面、面向对象的可视化开发环境、高效的软件开发与程序运行的编程语言。目前,VB可以与很多软件进行二次开发,使得VB语言在各个领域中的应用也越来越广泛。在流体物理模型试验当中,大量数据的采集和处理是一个复杂、繁琐的工作,通常包括数据可靠性的判断、各种参数的计算、图形绘制等,其计算量之大可想而之。一般来讲,数据的判断、参数的计算都具有固定的判据、理论公式,这为利用VB编程带来很大的方便。1数据来源声学多普勒测速仪是一款高精度、仪器自身不产生零点漂移的三维点式流速仪。本研究用它测量丁坝绕流水槽内各布置点的纵向(X方向)、横向(F方向)及垂向(Z方向)流速,进而分析水流的流动特性。测速仪是在Micr

3、osoftWindowsXP系统下采集数据的。实验共进行了5场不同水深流速的测量,每场布置测点数为2000个,每一点的采集数据为2200个,每个测点的命名规则为用字符A隔开的3个方向的坐标值,例如测点在X=50cm9Y=20cm,Z=lcm的位置时命名为50A20A1。采集数据经过仪器自带软件转化后的需要处理的数据格式见图1。一个测点对应一个后缀名为dat的文本文件,数据共2200行,18列,各列分别用变量cell,dist,vx,vy,vzl,vz2,Ampl,Amp2,Amp3,Amp4,;1eiioirti:23oBioom:4061itm5 091muOilOim:7001uenf8o

4、oioomnu0M70M7t153>11692990087013001-0.9113118122»128-0.0120130129-0.81381331370162-0015。127139016*eoi"1”137»175-1M3131172-1241210166-115112M388438W047905ZM8496848223.4232L22424.424211.02H2*225.02M23.82323.22272M.024A“19696979812L523799979872M.323298979898专82L323997989897172M.123296

5、9B98325.23196999897&62L522597989895923.62249697-一.9896P冬图1数据格式SNR1,SNR2,SNR3,SNR4,Corrl,Corr2,Corr3,Con4表示。其中第3、4、5列为纵向、横向、垂向的流速值。2程序实例2.1参数计算由于每场实验数据放在不同的文件夹下面,每个文件夹下面共有2000个DAT文件。为了一次性完成参数计算,需要分2步:文件夹和文件的处理。2.1.1文件夹的处理本文假设5场实验所测的数据分别放在名为测量1、测量2、测量3、测量4、测量5的文件夹当中,且放在目录“c:实验”下,计算完的数据放在“c:收稿日期:20

6、08-03-30作者简介:李胜超(1982-),男,在读研究生,研究方向:波浪水流及其与边界的相互作用。李胜超,等:VB在流速测量数据处理中的应用2期完成”中。利用VB文件系统对象处理文件夹的功能,可以搜寻到各个文件夹,进而处理里面的文件。编程之前,需要手动在VB中引用库MicrosoftScriptingRuntime,代码如下:DimobjFSOAsNewScripting.FileSystemObject'定义文件系统对象DimobjFolderAsScripting.Folder'定义文件夹对象DimobjFileAsScripting.File'定义文件对象D

7、imobjSubdirsAsScripting.FoldersDimobjLoopFolderAsScripting.FolderDimobjsaveFolderAsScripting.FolderDimobjssaveFolderAsScripting.FolderSetobjFolder=objFSO.GetFolder(Mc:实验”)'设置文件夹对象SetobjSubdirs=objFolder.SubFolders'如果c盘下已有名为“完成”的文件夹则删除,避免再次运算时出错IfDir(Hc:完成",vbDirectory)<>”ThenSetob

8、jssaveFolder=objFSO.GetFolder(uc:完成")objssaveFolder.DeletetureEndIfSetobjsaveFolder=objFSO.CreateFolder("c:完成")'利用For循环语句遍历计算ForEachobjLoopFolderInobjSubdirsForEachobjFileInobjLoopFolder.FilesNextobjFileNextobjLoopFolder2.1.2文件的处理文件的处理又包括文件的读入、参数计算以及文件的输出。文件的读入与输出代码如下:OpenobjFile.

9、PathForInputAs#1'objFile.Path为需计算的dat文本文件OpenobjsaveFolder.Path+""+objLxx>pFold-er.Name+"txt”For_OutputAccessWriteAs#2'用文件夹的名称作为输出文件名,这样一个文件夹下面的数据经过计算之后将存在与它同名的文本文件中。计算参数时,殍先剔除粗差点,这里选用常用的3。准则,即IX-幻3。则认为X是可疑数据,予以剔除。在这里,由于纵向为主流方向,所以选用纵向流速值。作为剔除标准,且剔除了的数据不参与参数的计算。这里以计算平均流速、紊流强

10、度、雷诺应力为例,其公式如下:1)平均速度:-跑v=n式中n为采样总数出为采样流速值。2)紊动强度:式中参数意义同上。3)雷诺应力:p£(。成一砂)(-稣)n顷)d-乙)tX2=np£(益一弓)("zi_板z)n式中p为水流密度,这里值取为1。代码如下:'变量定义DimnAsLong,mAsLongDimvx(2200)AsSingle,vy(2200)AsSingle,vzl(2200)AsSingle,uAsSingleDimsumxAsSingle,sumyAsSingle,sumzAsSingle,sumxxAsDouble,sumyyAsDoub

11、leDimsumzzAsDouble,sumxyAsDouble,sumxzAsDouble,sumyzAsDoubleDimqxAsDouble,qyAsDouble,qzAsDouble,sAsDoubleDimwxyAsDouble,wxzAsDouble,wyzAsDoubleDimsubnameAsString,filnameAsString,fil-snameAsStringDimsxAsString,syAsString,szAsStringDimiAsInteger,jAsInteger,cAsInteger,dAsInteger,zhongjianAsIntegerDimLX

12、AsSingle,LYAsSingle,LZAsSingle过程代码:150湖南交通科技34卷'初值置零m=0:n=0sumx=0:sumy二0:sumz=0:sumxx=0:sumyy=0:sumzz=0sumxy=0:sumxz=0:sumyz=0qx=0:qy=0:qz=0:wxy=0:wxz=0:wyz=0filname=objFile.NameIfRight(filname,3)="dat”Then,判断是否为要处理的dat文件OpenobjFile.PathForInputAs#1,打开文件DoWhileNotEOF(1)m=m+1Input#2,cell,dis

13、t,vx(m),vy(m),vzl(m),vz2,Ampl,Amp2,Amp3,Amp4,SNR1,SNR2,_SNR3,SNR4,Corrl,Corr2,Corr3,Con4sumx=sumx+vx(m)sumxx=sumxx+vx(m)"2Loopu=sumx/ms=Sqr(sumxx/m-uA2),计算判据参数a=ssumx=0:sumxx=0'重新置零Forj=1tom'根据判据取舍,并计算中间参数Ifabs(v(m)一ux)<3*sthenn=n+1sumx=sumx+vx(m)sumy=sumy+vy(m)sumz=sumz+vzl(m)sumxx=

14、sumxx+vx(m)A2sumyy=sumyy+vy(m)A2sumzz=sumzz+vzl(m)人2sumxy=sumxy+vx(m)*vy(m)sumxz=sumxz+vx(m)*vzl(m)sumyz=sumyz+vy(m)*vzl(m)EndifNextjUSX=sumx/n'计算取舍之后的平均流速usy=sumy/nusz=sumz/nqx=Sqr(sumxx/n-usx'2)'计算取舍之后的紊动强度qy=Sqr(sumyy/n-usyA2)qz=Sqr(sumzz/n-usz人2)wxy=sumxy/n-usx*usy4计算取舍之后的雷诺应力wxz=sum

15、xz/n-usxuszwyz=sumyz/n-usy*usz测点坐标值的获取,根据前面的命名规则,测点坐标值可以从每个文件名中提取,代码如下:filsname=Left(filname,Len(filname)一4)'除去文件名中”.dat”四字符d=0Fori=1ToLen(filsname)zhongjian=Asc(Mid(filsname,i,1)If(zhongjian=65Orzhongjian=97)Then'判断是否为字符Ad=d+1Ifd=1ThenC=i'c为第一个分割符的位置EndIfIfd=2Thensx=LTrim(Left(filsname,

16、c-1)LX=Val(sx)'获取X坐标值sz=RTrim(Right(filsname,Len(filsname)一i)LZ=Val(sz)'获取Z坐标值sy=Mid(filsname,c+1,i-c-1)"LY=Val(sy)'获取Y坐标值EndIfEndIfNexti'最后输出到文件,代码略假设输出变量为filsname、LX、LY、LZ、qx、qy、qz、usx、usy、usz、wxy、wxz、wyz,即文件名、X、Y、Z的坐标值、3方向的平均流速、紊动强度和xy、xz、yz的雷诺应力,则运算完后,在目录":完成”下将会生成5个如图2

17、所示的文本文件,其中一场实验数据对应一个这样的计算结果文件。2.2数据分高为了更直观地反映水流的特性,一般需要绘制流速矢量图、等值线图等图形。数据的分离是为图形的绘制做好准备。这里假设要绘制第一场实验层面Z=0.5cm的二维矢量图代码如下:.旻_.yc,.丁文件(E)岫D格式(2)M(Y)常脸)-.-30A30A0.53M3DA23M30AU3M30A630A30A9.3M5M9.530A50A230A50A4303030303039303030330303Q505050699.520.33770.38800.38M9心80.41620.3»530.3781.M039-0.0100-

18、0.0175-0.0113-0.0163-0.0099-5.D287-0.M770.0152Q.01530.01470.01650.01850.01700.9174-0.02U00.01780.33960.38910.38580.UM90.H1660.3*790.37900.M948初0.03100.02910.02570.02690.01990.9M6B.0440S.03230.01780.01900.01820.02070.02070.02190.02060.0210.二6.03596.02900.025110.02930.01666.94260.02620.02640.02930.02320.02310.821M0.01739.03350.02270.02160.009M0.00110.01120.00080.01080.012M0.S0930.01380.Q1100.01100.00060.00070.00030.00160.00070.0006|图2计算结果'创建保存分离出来的数据文件Opennc:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论