(1) 代码
clc;clear;
Rg = 287; %气体常数(J/(kg·K))
g = 9.8; %重力加速度(m/s^2)
waterDensity = 1000; %水的密度(kg/m^3)
%对已知实验参数的输入
atmosphericPressure = input('请输入大气压:(Pa)');
temperature = input('请输入温度:(℃)');
KVC = input('请输入流体运动粘性系数:(10^-7m^2/s)'); %Kinematic viscosity coefficient
K = input('请输入风洞系数:');
gearFactor = input('请输入微压计所选的档位系数:');
inletVacuum = input('请输入风洞进口处真空度:(mmH2O)');
staticPressure0 = input('请输入流场静压:(mmC2H5OH)');
%第一截面实验数据输入
x10 = input('请输入第一截面距前缘的距离:(mm)');
y10 = input('请输入第一截面边界层内距离:(mm)');
micromanometerP10 = input('请输入第一截面用微压计测得的读数数据:(mmC2H5OH)');
transmitterP10 = input('请输入第一截面用压差变送器测得的读数数据:(Pa)'); %Differential pressure transmitter
%第二截面实验数据输入
x20 = input('请输入第二截面距前缘的距离:(mm)');
y20 = input('请输入第二截面边界层内距离的数据:(mm)');
micromanometerP20 = input('请输入第二截面用微压计测得的读数数据:(mmC2H5OH)');
transmitterP20 = input('请输入第二截面用压差变送器测得的读数数据:(Pa)');
%实验过程中通过计算出来的、不变的数据
airDensity = atmosphericPressure / (Rg * (273.15 + temperature)); %空气密度
staticPressure = atmosphericPressure - gearFactor * staticPressure0 * waterDensity * g * 0.001; %流场静压
x1 = x10 * 0.001;
y1 = y10 * 0.001;
x2 = x20 * 0.001;
y2 = y20 * 0.001;
velocityInf = sqrt((0.001 * (2 * K * g * waterDensity * inletVacuum)) / airDensity);
fprintf('=>风洞进口流速为:%.3f m/s\n',velocityInf);
micromanometerP1 = atmosphericPressure - micromanometerP10 * gearFactor * waterDensity * g * 0.001;
transmitterP1 = atmosphericPressure - transmitterP10;
micromanometerP2 = atmosphericPressure - micromanometerP20 * gearFactor * waterDensity * g * 0.001;
transmitterP2 = atmosphericPressure - transmitterP20;
%对第一截面数据进行处理
fprintf('>>>>>>>>>>**第一截面数据计算**<<<<<<<<<<\n');
Re1 = (velocityInf * x1) / (KVC * 1e-7);
fprintf('=>雷诺数 Re= %.3f\n',Re1);
fprintf('=>微压计实际读数计算出来的绝对压强:(Pa)\n');
disp(micromanometerP1);
micromanometerVelocity1 = zeros(1,length(micromanometerP1));
for i=1:length(micromanometerP1)
micromanometerVelocity1(i) = sqrt(2 * (micromanometerP1(i) - staticPressure) / airDensity);
end
fprintf('=>用微压计测量的数据计算得到的边界层内的流速:(m/s)\n');
disp(micromanometerVelocity1);
transmitterVelocity1 = zeros(1,length(transmitterP1));
for i=1:length(transmitterP1)
transmitterVelocity1(i) = sqrt(2 * (transmitterP1(i) - staticPressure) / airDensity);
end
fprintf('=>用压差变送器测量的数据计算得到的边界层内的流速:(m/s)\n');
disp(transmitterVelocity1);
micromanometerVelocityRatio1 = micromanometerVelocity1 / velocityInf;
fprintf('=>用微压计测量的数据计算得到的边界层内的速度比:\n');
disp(micromanometerVelocityRatio1);
transmitterVelocityRatio1 = transmitterVelocity1 / velocityInf;
fprintf('=>用压差变送器测量的数据计算得到的边界层内的速度比:\n');
disp(transmitterVelocityRatio1);
%对第二截面数据进行处理
fprintf('>>>>>>>>>>**第二截面数据计算**<<<<<<<<<<\n');
Re2 = (velocityInf * x2) / (KVC * 1e-7);
fprintf('=>雷诺数 Re= %.3f\n',Re2);
fprintf('=>微压计实际读数计算出来的绝对压强:(Pa)\n');
disp(micromanometerP2);
micromanometerVelocity2 = zeros(1,length(micromanometerP2));
for i = 1:length(micromanometerP2)
micromanometerVelocity2(i) = sqrt(2 * (micromanometerP2(i) - staticPressure) / airDensity);
end
fprintf('=>用微压计测量的数据计算得到的边界层内的流速:(m/s)\n');
disp(micromanometerVelocity2);
transmitterVelocity2 = zeros(1,length(transmitterP2));
for i = 1:length(transmitterP2)
transmitterVelocity2(i) = sqrt(2 * (transmitterP2(i) - staticPressure) / airDensity);
end
fprintf('=>用压差变送器测量的数据计算得到的边界层内的流速:(m/s)\n');
disp(transmitterVelocity2);
micromanometerVelocityRatio2 = micromanometerVelocity2 / velocityInf;
fprintf('=>用微压计测量的数据计算得到的边界层内的速度比:\n');
disp(micromanometerVelocityRatio2);
transmitterVelocityRatio2 = transmitterVelocity2 / velocityInf;
fprintf('=>用压差变送器测量的数据计算得到的边界层内的速度比:\n');
disp(transmitterVelocityRatio2);
%数据可视化
figure; %第一截面
hold on;grid on;
plot(micromanometerVelocityRatio1,y1,'p','markersize',10); %微压计测量所得数据点
plot(transmitterVelocityRatio1,y1,'*','markersize',10); %压差变送器测量所得数据点
micromanometerT1 = 0.5 : 0.01 : 0.95;
micromanometerU1 = spline(micromanometerVelocityRatio1,y1,micromanometerT1);
micromanometerBLT1 = spline(micromanometerVelocityRatio1,y1,0.93); %Boundary layer thickness
fprintf('=>用微压计测量得出的边界层厚度为:%.3f mm\n',micromanometerBLT1 * 1000);
plot(micromanometerT1,micromanometerU1,'-.','linewidth',2); %微压计测量拟合曲线。
transmitterT1 = 0.5 : 0.01 : 0.95;
transmitterU1 = spline(transmitterVelocityRatio1,y1,transmitterT1);
transmitterBLT1 = spline(transmitterVelocityRatio1,y1,0.93);
fprintf('=>用压差变送器测量得出的边界层厚度为:%.3f mm\n',transmitterBLT1 * 1000);
plot(transmitterT1,transmitterU1,'--','linewidth',2); %压差变送器测量拟合曲线
micromanometerY1 = 0 : 0.00001 : transmitterBLT1;
micromanometerX1 = ((3 * micromanometerY1 - (micromanometerY1.^3) / (transmitterBLT1^2))...
/ (2 * transmitterBLT1));
plot(micromanometerX1,micromanometerY1,'-'); %层流理论曲线
transmitterY1 = 0 : 0.00001 : transmitterBLT1;
transmitterX1 = (transmitterY1 / transmitterBLT1).^(1/7);
plot(transmitterX1,transmitterY1,'-'); %紊流理论曲线
title('第一截面边界层速度分布曲线');
xlabel('速度比');
ylabel('离平板壁面距离y(m)');
axis tight;
legend('微压计测量所得数据点','压差变送器测量所得数据点','微压计测量拟合曲线','压差变送器测量拟合曲线',...
'层流理论曲线','紊流理论曲线','location','northwest');
figure; %第二截面
hold on;grid on;
plot(micromanometerVelocityRatio2,y2,'p','markersize',10); %微压计测量所得数据点
plot(transmitterVelocityRatio2,y2,'*','markersize',10); %压差变送器测量所得数据点
micromanometerT2 = 0.5 : 0.01 : 0.95;
micromanometerU2 = spline(micromanometerVelocityRatio2,y2,micromanometerT2);
micromanometerBLT2 = spline(micromanometerVelocityRatio2,y2,0.93);
fprintf('=>用微压计测量得出的边界层厚度为:%.3f mm\n',micromanometerBLT2 * 1000);
plot(micromanometerT2,micromanometerU2,'-.','linewidth',2); %微压计测量拟合曲线
transmitterT2 = 0.5 : 0.01 : 0.95;
transmitterU2 = spline(transmitterVelocityRatio2,y2,transmitterT2);
transmitterBLT2 = spline(transmitterVelocityRatio2,y2,0.93);
fprintf('=>用压差变送器测量得出的边界层厚度为:%.3f mm\n',transmitterBLT2 * 1000);
plot(transmitterT2,transmitterU2,'--','linewidth',2); %压差变送器测量拟合曲线
micromanometerY2 = 0:0.00001 : transmitterBLT2;
micromanometerX2 = ((3 * micromanometerY2 - (micromanometerY2.^3) / (transmitterBLT2^2)))...
/ (2*transmitterBLT2);
plot(micromanometerX2,micromanometerY2,'-'); %层流理论曲线
transmitterY2 = 0 : 0.00001 : transmitterBLT2;
transmitterX2 = (transmitterY2 / transmitterBLT2).^(1/7);
plot(transmitterX2,transmitterY2,'-'); %紊流理论曲线
title('第二截面边界层速度分布曲线');
xlabel('速度比');
ylabel('离平板壁面距离y(m)');
axis tight;
legend('微压计测量所得数据点','压差变送器测量所得数据点','微压计测量拟合曲线','压差变送器测量拟合曲线',...
'层流理论曲线','紊流理论曲线','location','northwest');
%流态分析
fprintf('>>>>>>>>>>**流态分析**<<<<<<<<<<\n');
fprintf('一、对第一截面:\n');
fprintf('1.用雷诺数判定流态:\n');
if micromanometerBLT1 >= 3e6
fprintf('=>(用微压计测量所得的数据分析)流动为紊流\n');
else
fprintf('=>(用微压计测量所得的数据分析)流动为层流\n');
end
if transmitterBLT1 >= 3e6
fprintf('=>(用压差变送器测量所得的数据分析)流动为紊流\n');
else
fprintf('=>(用压差变送器测量所得的数据分析)流动为层流\n');
end
fprintf('2.用边界层厚度计算值与理论值比较判定流态:\n');
if abs(micromanometerBLT1 - 5 * sqrt((KVC * 1e-7 * x1) / velocityInf)) < 0.1
fprintf('=>(用微压计测量所得的数据分析)流动为层流\n');
elseif abs(micromanometerBLT1 - 0.37 * x1 * ((KVC * 1e-7) / (velocityInf * x1))^0.2)<0.1
fprintf('=>(用微压计测量所得的数据分析)流动为紊流\n');
else
fprintf('=>测量值与理论值相差较大,无法判定流态!\n');
end
if abs(transmitterBLT1 - 5 * sqrt((KVC * 1e-7 * x1) / velocityInf)) < 0.1
fprintf('=>(用微压计测量所得的数据分析)流动为层流\n');
elseif abs(transmitterBLT1 - 0.37 * x1 * ((KVC * 1e-7) / (velocityInf*x1))^0.2) < 0.1
fprintf('=>(用微压计测量所得的数据分析)流动为紊流\n');
else
fprintf('=>测量值与理论值相差较大,无法判定流态!\n');
end
fprintf('二、对第二截面:\n');
fprintf('1.用雷诺数判定流态:\n');
if micromanometerBLT2 >= 3e6
fprintf('=>(用微压计测量所得的数据分析)流动为紊流\n');
else
fprintf('=>(用微压计测量所得的数据分析)流动为层流\n');
end
if transmitterBLT2 >= 3e6
fprintf('=>(用压差变送器测量所得的数据分析)流动为紊流\n');
else
fprintf('=>(用压差变送器测量所得的数据分析)流动为层流\n');
end
fprintf('2.用边界层厚度计算值与理论值比较判定流态:\n');
if abs(micromanometerBLT2 - 5 * sqrt((KVC * 1e-7 * x2) / velocityInf)) < 0.1
fprintf('=>(用微压计测量所得的数据分析)流动为层流\n');
elseif abs(micromanometerBLT2 - 0.37 * x2 * ((KVC * 1e-7) / (velocityInf * x2))^0.2) < 0.1
fprintf('=>(用微压计测量所得的数据分析)流动为紊流\n');
else
fprintf('=>测量值与理论值相差较大,无法判定流态!\n');
end
if abs(transmitterBLT2 - 5 * sqrt((KVC * 1e-7 * x2) / velocityInf)) < 0.1
fprintf('=>(用微压计测量所得的数据分析)流动为层流\n');
elseif abs(transmitterBLT2 - 0.37 * x2 * ((KVC * 1e-7) / (velocityInf * x2))^0.2) < 0.1
fprintf('=>(用微压计测量所得的数据分析)流动为紊流\n');
else
fprintf('=>测量值与理论值相差较大,无法判定流态!\n');
end
(2) 运行结果
输入:
请输入大气压:(Pa)98700
请输入温度:(℃)26
请输入流体运动粘性系数:(10^-7m^2/s)8.982
请输入风洞系数:1.08
请输入微压计所选的档位系数:0.2
请输入风洞进口处真空度:(mmH2O)22.8
请输入流场静压:(mmC2H5OH)118
请输入第一截面距前缘的距离:(mm)150
请输入第一截面边界层内距离:(mm)[0.45 1.45 2.45 3.45 4.45 5.45 6.45 6.95 7.45]
请输入第一截面用微压计测得的读数数据:(mmC2H5OH)[77.5 55 38.8 26 15 10.5 7.5 6.8 6.4]
请输入第一截面用压差变送器测得的读数数据:(Pa)[164.23 118.72 85.559 56.076 34.772 23.870 21.223 20.668 20.202]
请输入第二截面距前缘的距离:(mm)250
请输入第二截面边界层内距离的数据:(mm)[0.45 1.45 2.45 3.45 4.45 5.45 6.45 7.45 8.45 9.45]
请输入第二截面用微压计测得的读数数据:(mmC2H5OH)[83 64 51 39.8 29 21 14 11 9.8 8]
请输入第二截面用压差变送器测得的读数数据:(Pa)[173.85 129.31 104.47 79.882 55.702 40.633 28.892 22.750 19.701 18.167]
输出:
=>风洞进口流速为:20.490 m/s
>>>>>>>>>>**第一截面数据计算**<<<<<<<<<<
=>雷诺数 Re= 3421782.658
=>微压计实际读数计算出来的绝对压强:(Pa)
1.0e+04 *
列 1 至 5
9.8548 9.8592 9.8624 9.8649 9.8671
列 6 至 9
9.8679 9.8685 9.8687 9.8687
=>用微压计测量的数据计算得到的边界层内的流速:(m/s)
列 1 至 5
11.7516 14.6568 16.4336 17.7118 18.7408
列 6 至 9
19.1458 19.4111 19.4725 19.5075
=>用压差变送器测量的数据计算得到的边界层内的流速:(m/s)
列 1 至 5
10.8004 13.9937 15.9222 17.4588 18.4898
列 6 至 9
18.9958 19.1166 19.1418 19.1630
=>用微压计测量的数据计算得到的边界层内的速度比:
列 1 至 5
0.5735 0.7153 0.8020 0.8644 0.9146
列 6 至 9
0.9344 0.9474 0.9504 0.9521
=>用压差变送器测量的数据计算得到的边界层内的速度比:
列 1 至 5
0.5271 0.6830 0.7771 0.8521 0.9024
列 6 至 9
0.9271 0.9330 0.9342 0.9353
>>>>>>>>>>**第二截面数据计算**<<<<<<<<<<
=>雷诺数 Re= 5702971.096
=>微压计实际读数计算出来的绝对压强:(Pa)
1.0e+04 *
列 1 至 5
9.8537 9.8575 9.8600 9.8622 9.8643
列 6 至 10
9.8659 9.8673 9.8678 9.8681 9.8684
=>用微压计测量的数据计算得到的边界层内的流速:(m/s)
列 1 至 5
10.9246 13.5696 15.1150 16.3295 17.4207
列 6 至 10
18.1868 18.8316 19.1013 19.2081 19.3672
=>用压差变送器测量的数据计算得到的边界层内的流速:(m/s)
列 1 至 5
9.9957 13.3192 14.8532 16.2294 17.4774
列 6 至 10
18.2120 18.7644 19.0470 19.1857 19.2551
=>用微压计测量的数据计算得到的边界层内的速度比:
列 1 至 5
0.5332 0.6623 0.7377 0.7970 0.8502
列 6 至 10
0.8876 0.9191 0.9322 0.9375 0.9452
=>用压差变送器测量的数据计算得到的边界层内的速度比:
列 1 至 5
0.4878 0.6500 0.7249 0.7921 0.8530
列 6 至 10
0.8888 0.9158 0.9296 0.9364 0.9398
=>用微压计测量得出的边界层厚度为:5.211 mm
=>用压差变送器测量得出的边界层厚度为:5.736 mm
=>用微压计测量得出的边界层厚度为:7.133 mm
=>用压差变送器测量得出的边界层厚度为:7.491 mm
>>>>>>>>>>**流态分析**<<<<<<<<<<
一、对第一截面:
1.用雷诺数判定流态:
=>(用微压计测量所得的数据分析)流动为层流
=>(用压差变送器测量所得的数据分析)流动为层流
2.用边界层厚度计算值与理论值比较判定流态:
=>(用微压计测量所得的数据分析)流动为层流
=>(用微压计测量所得的数据分析)流动为层流
二、对第二截面:
1.用雷诺数判定流态:
=>(用微压计测量所得的数据分析)流动为层流
=>(用压差变送器测量所得的数据分析)流动为层流
2.用边界层厚度计算值与理论值比较判定流态:
=>(用微压计测量所得的数据分析)流动为层流
=>(用微压计测量所得的数据分析)流动为层流
参 考 资 料 来 源 参考资料来源 参考资料来源
- 《流体力学》.张鸣远.高等教育出版社.
- 《热与流体实验教程》.王小丹.孟倩.张可.吴青平.唐上朝.西安交通大学出版社.
源 码 作 者 : A i d e n L e e 源码作者:Aiden\ Lee 源码作者:Aiden Lee
博 客 创 作 : A i d e n L e e 博客创作:Aiden\ Lee 博客创作:Aiden Lee
特别声明:文章仅供学习参考,转载请注明出处,严禁盗用!