导读五孔探针可以测量流场的总压、静压以及速度大小和方向,是一种简单成熟的流场测量手段。本文从多孔探针的原理和使用方法方面介绍五孔探针,并直接给出一个五孔探针的Matlab数据处理源代码,希望对相关技术人员和研究生们有用。
五孔探针是多孔探针的一种,可以通过测量五个孔的压力来反算出三维流场的总压、静压以及速度大小和方向。
五孔探针的基本原理是绕流作用。当气流绕过物体时,在其表面各处的速度会有不同,相应地压力也会不同,迎风面压力高,侧面和背面压力低。以最简单的形状——圆球为例,处于气流中的圆球表面压力分布如下图所示。
如果在这个球体正对迎风面的地方开一个小孔,把压力信号用软管引出来接到传感器上,那么传感器得到的压力就是来流的总压。
但这里面有一个问题,就是很多时候我们不但不知道来流速度的大小,速度的方向也只是大概知道。而只有对准来流,测得的压力才等于总压,有偏角的话测出的压力就会偏低。有一个解决办法就是让这个迎风面的压力信号对角度不敏感,即使来流有一定的偏角,测得的压力仍然非常接近总压。这就是皮托管的原理,下图给出了几种皮托管形状,并给出了它们测得的压力随偏角的变化。
在上面这个图中,几种皮托管在对准来流时,测得的都是来流的总压,但当来流与皮托管轴线有一定偏角时,由于在前端孔口附近气流不是完全滞止状态,测得的压力就会比总压低一点。不同的皮托管前端形状对角度的敏感性不同,但总体来说,偏角在正负10°范围内的时候,测得的都较精确第等于总压。
但如果还同时想知道来流的方向,皮托管就不能胜任了,这时就可以用多孔探针。
现在先只考虑二维情况。如下图所示,在圆柱的迎风面开三个压力孔,孔1在正前方,孔2和孔3在两侧各30°的位置。当孔1正对来流时,它测得总压。而两侧的孔2和孔3则测得静压(理想流体绕圆柱流动时,两侧30°的位置表面压力等于来流的静压)。这样,三个孔可以测得来流的总压和静压,也就可以算出来流的速度。
如果不知道来流方向,怎么让孔1 对准来流呢?也有办法。通过转动圆柱形探针,当孔1的压力取得最大值时就认为对准来流了,这就是一种方法。但是这种方法很不准,因为在正负几度范围内孔1 的输出压力都差不多。还有一种方法比较好,同样转动圆柱形探针,当孔2和孔3的压力相等时,就认为孔1对准来流了。
这样的方法虽然可以,但是测量的时候需要反复转动探针对向,比较麻烦。另外,由于探针加工存在误差,孔2和孔3 不是完全对称,它们的压力相等也未必就表明孔1 对准了来流。
还有一种方法,不需要让孔1精确对准来流,只要大概朝着来流方向就可以。根据不同的探针设计,这个偏差可以达到30°~60°都可以。记录下三个孔的压力输出,可以找到这三个压力与偏转角之间的对应关系,通过差值来反算出来流的角度。这种方法称为非对向法,相应地,前面的方法称为对向法。
比较常见的方法是定义一个用压力来表示的角度系数:
上面这个式子中,分母的值在一定偏角范围内变化很小,且总是正值,角度系数主要取决于分子的变化。比如下面两种情况分别对应了角度系数为正和负的情况。
角度系数为负
角度系数为正
如果已知了角度系数随角度的变化关系(曲线),就可以通过三个孔的压力反算来流角度了,但从理论上得出这个曲线意义并不大,因为实际流动有粘性,且探针总是有加工误差。所以实际的探针进行标定,或叫校准。得到一系列已知的角度和压力信号,拟合成曲线,再去反算流速。
如果探针完全没有对着来流,用测量数据是无法得到流速的,因为这时会有压力孔落在分离区内,失去了单调性,也没有明确的规律了。
这种情况数据就失效了
上面说的是三孔探针,可以测二维流动。五孔探针则可以测量三维流动,原理和三孔探针是一样的,这时的原理是基于流体绕过三维物体的流动。
五孔探针可以是球头的,也可以是锥面的,也可以是四棱锥形的,各有优缺点。锥面的比较常见,下图是某个书上的五孔和七孔探针的示意图。
五孔和七孔探针的功能是完全相同的,理论上孔越多,可以测量的角度范围就越大,但还要取决于数据处理方法。
这里给出一种五孔探针的例子,这个探针的样子、孔号和角度定义如下图所示。
根据五个孔的压力可以定义四个系数:
先在风洞中进行标定,在已知来流总压、静压、速度大小和方向的条件下,给定的几个马赫数下的一系列偏转角α和俯仰角β,得出不同情况下五个孔的压力。之后就可以在测量中使用这五个压力反算流场信息了,具体算法请见下面的程序。
标定数据分为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);
输出文件格式如下:
这个matlab源代码直接就可以用,实际上有用的就几行而已,所以五孔探针的处理方法其实很简单。
----------------------------------------------------------------------------------------------
版权声明:
原创文章,来源我所理解的流体力学,本文已经授权,欢迎分享,如需转载请联系作者。