首页/文章/ 详情

五孔探针的原理和插值法数据处理源代码

6月前浏览8071

导读五孔探针可以测量流场的总压、静压以及速度大小和方向,是一种简单成熟的流场测量手段。本文从多孔探针的原理和使用方法方面介绍五孔探针,并直接给出一个五孔探针的Matlab数据处理源代码,希望对相关技术人员和研究生们有用。



01. 五孔探针的原理

五孔探针是多孔探针的一种,可以通过测量五个孔的压力来反算出三维流场的总压、静压以及速度大小和方向。

五孔探针的基本原理是绕流作用。当气流绕过物体时,在其表面各处的速度会有不同,相应地压力也会不同,迎风面压力高,侧面和背面压力低。以最简单的形状——圆球为例,处于气流中的圆球表面压力分布如下图所示。

图片


如果在这个球体正对迎风面的地方开一个小孔,把压力信号用软管引出来接到传感器上,那么传感器得到的压力就是来流的总压。

但这里面有一个问题,就是很多时候我们不但不知道来流速度的大小,速度的方向也只是大概知道。而只有对准来流,测得的压力才等于总压,有偏角的话测出的压力就会偏低。有一个解决办法就是让这个迎风面的压力信号对角度不敏感,即使来流有一定的偏角,测得的压力仍然非常接近总压。这就是皮托管的原理,下图给出了几种皮托管形状,并给出了它们测得的压力随偏角的变化。

图片

在上面这个图中,几种皮托管在对准来流时,测得的都是来流的总压,但当来流与皮托管轴线有一定偏角时,由于在前端孔口附近气流不是完全滞止状态,测得的压力就会比总压低一点。不同的皮托管前端形状对角度的敏感性不同,但总体来说,偏角在正负10°范围内的时候,测得的都较精确第等于总压。

但如果还同时想知道来流的方向,皮托管就不能胜任了,这时就可以用多孔探针。

现在先只考虑二维情况。如下图所示,在圆柱的迎风面开三个压力孔,孔1在正前方,孔2和孔3在两侧各30°的位置。当孔1正对来流时,它测得总压。而两侧的孔2和孔3则测得静压(理想流体绕圆柱流动时,两侧30°的位置表面压力等于来流的静压)。这样,三个孔可以测得来流的总压和静压,也就可以算出来流的速度。

图片


如果不知道来流方向,怎么让孔1 对准来流呢?也有办法。通过转动圆柱形探针,当孔1的压力取得最大值时就认为对准来流了,这就是一种方法。但是这种方法很不准,因为在正负几度范围内孔1 的输出压力都差不多。还有一种方法比较好,同样转动圆柱形探针,当孔2和孔3的压力相等时,就认为孔1对准来流了。

这样的方法虽然可以,但是测量的时候需要反复转动探针对向,比较麻烦。另外,由于探针加工存在误差,孔2和孔3 不是完全对称,它们的压力相等也未必就表明孔1 对准了来流。

还有一种方法,不需要让孔1精确对准来流,只要大概朝着来流方向就可以。根据不同的探针设计,这个偏差可以达到30°~60°都可以。记录下三个孔的压力输出,可以找到这三个压力与偏转角之间的对应关系,通过差值来反算出来流的角度。这种方法称为非对向法,相应地,前面的方法称为对向法。

比较常见的方法是定义一个用压力来表示的角度系数:

图片

上面这个式子中,分母的值在一定偏角范围内变化很小,且总是正值,角度系数主要取决于分子的变化。比如下面两种情况分别对应了角度系数为正和负的情况。

图片

角度系数为负

图片

角度系数为正


如果已知了角度系数随角度的变化关系(曲线),就可以通过三个孔的压力反算来流角度了,但从理论上得出这个曲线意义并不大,因为实际流动有粘性,且探针总是有加工误差。所以实际的探针进行标定,或叫校准。得到一系列已知的角度和压力信号,拟合成曲线,再去反算流速。

如果探针完全没有对着来流,用测量数据是无法得到流速的,因为这时会有压力孔落在分离区内,失去了单调性,也没有明确的规律了。

图片

这种情况数据就失效了


上面说的是三孔探针,可以测二维流动。五孔探针则可以测量三维流动,原理和三孔探针是一样的,这时的原理是基于流体绕过三维物体的流动。

五孔探针可以是球头的,也可以是锥面的,也可以是四棱锥形的,各有优缺点。锥面的比较常见,下图是某个书上的五孔和七孔探针的示意图。

图片


五孔和七孔探针的功能是完全相同的,理论上孔越多,可以测量的角度范围就越大,但还要取决于数据处理方法。

02. 五孔探针举例

    这里给出一种五孔探针的例子,这个探针的样子、孔号和角度定义如下图所示。

图片


图片

根据五个孔的压力可以定义四个系数:

图片

先在风洞中进行标定,在已知来流总压、静压、速度大小和方向的条件下,给定的几个马赫数下的一系列偏转角α和俯仰角β,得出不同情况下五个孔的压力。之后就可以在测量中使用这五个压力反算流场信息了,具体算法请见下面的程序。

03. 数据格式和Matlab源代码

标定数据分为10列,分别为:马赫数,俯仰角,偏转角,总压,静压,p1, p2, p3, p4, p5。格式如下:

图片

其中压力的单位为kPa。


试验数据文件应该包含5列,对应p1-p5,单位为kPa,如下所示格式:

图片


采用三维插值方法的Matlab源代码如下:


clear


xydata=load('Calib-1.dat');           %   载入标定数据

xydata1=load('Meas-1.dat');            %   载入试验数据

fid=fopen('Pout-1.dat','w');       %   输出文件


ma=xydata(:,1)';

beta=xydata(:,2)';

alpha=xydata(:,3)';

pt=xydata(:,4)';

p1=xydata(:,6)';

p2=xydata(:,7)';

p3=xydata(:,8)';

p4=xydata(:,9)';

p5=xydata(:,10)';

BB=p1-(p2 p3 p4 p5)/4;

C_alpha=(p2-p3)./BB;

C_beta=(p4-p5)./BB;

C_ma=(p1-BB)./p1;

C_pt=(pt-p1)./BB;


p1_t=xydata1(:,1)';

p2_t=xydata1(:,2)';

p3_t=xydata1(:,3)';

p4_t=xydata1(:,4)';

p5_t=xydata1(:,5)';

BB_t=p1_t-(p2_t p3_t p4_t p5_t)/4;

C_alpha_t=(p2_t-p3_t)./BB_t;

C_beta_t=(p4_t-p5_t)./BB_t;

C_ma_t=(p1_t-BB_t)./p1_t;


%   插值

alpha_out=griddata3(C_alpha,C_beta,C_ma,alpha,C_alpha_t,C_beta_t,C_ma_t);

beta_out=griddata3(C_alpha,C_beta,C_ma,beta,C_alpha_t,C_beta_t,C_ma_t);

ma_out=griddata3(C_alpha,C_beta,C_ma,ma,C_alpha_t,C_beta_t,C_ma_t);

C_pt_out=griddata3(C_alpha,C_beta,C_ma,C_pt,C_alpha_t,C_beta_t,C_ma_t);

pt_out=C_pt_out.*BB_t p1_t;


fprintf(fid,'   alpha    beta      Ma       Pt\n');

for i=1:length(ma_out)

fprintf(fid,'%8.2f %8.2f %8.3f %9.3f\n',alpha_out(i),       beta_out(i),ma_out(i),pt_out(i));

end

fclose(fid);



输出文件格式如下:

图片

04. 总结

这个matlab源代码直接就可以用,实际上有用的就几行而已,所以五孔探针的处理方法其实很简单。

----------------------------------------------------------------------------------------------

版权声明:

原创文章,来源我所理解的流体力学,本文已经授权,欢迎分享,如需转载请联系作者。


流体基础代码&命令MATLAB理论科普
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2020-12-16
最近编辑:6月前
王洪伟
博士 | 教师 教书,也做科研,但主要是学习。
获赞 240粉丝 2152文章 47课程 3
点赞
收藏
作者推荐

免费 5.0
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈