✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,代码获取、论文复现及科研仿真合作可私信。
🍎个人主页:Matlab科研工作室
🍊个人信条:格物致知。
更多Matlab完整代码及仿真定制内容点击👇
🔥 内容介绍
本文介绍了切向进气同心圆柱内旋流流动和传热的实验研究。通过实验测量了不同雷诺数和普朗特数下流体的速度、温度和湍流特性。结果表明,切向进气产生了强烈的旋流流动,其速度和温度分布具有显著的非对称性。湍流特性受雷诺数和普朗特数的影响较大,湍流强度和涡量随着雷诺数的增加而增加.
同心圆柱内旋流流动是一种重要的流体力学现象,广泛应用于热交换器、燃烧器和涡轮机等工程领域。切向进气是增强旋流流动和传热的一种有效方法。本文通过实验研究了切向进气同心圆柱内旋流流动和传热的特性,为该类流动的工程应用提供了基础数据。
通过实验研究了切向进气同心圆柱内旋流流动和传热的特性,得到了以下结论:
-
切向进气产生了强烈的旋流流动,其速度和温度分布具有显著的非对称性。
-
湍流特性受雷诺数和普朗特数的影响较大,湍流强度和涡量随着雷诺数的增加而增加。
-
本文的研究结果为该类流动的工程应用提供了基础数据。
📣 部分代码
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% Title: EgregiousDataPadding.m
% Description: Script for calculating the temperature homogeneity;
% the dimensionless Nusselt and Reynolds numbers; and the
% required power for achieving specific flow conditions.
% Results are saved in the file results.txt
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Acquire file path and set it as current directory
% Returns the full path of the current script
folder = fileparts( which(mfilename) );
% Adds all subdirectories
addpath( genpath(folder) );
%% Data input
tic; % timing the script
dInner = 22 * 10 ^ -3; % inner cylinder diameter, [m]
dOuter = 40 * 10 ^ -3; % outer cylinder diameter, [m]
voltRes = 29.5; % voltage of resistance, [V]
ampRes = 0.63; % current of reistance, [A]
position = 0.05:0.1:0.9; % axial positions of thermocouples, [m]
subsystems = 0:0.1:0.9; % nine subsystems of control volume
tempData = zeros(11, 4, 17); % steady-state temperature measurements, [degree Celsius]
% columns 1-9: resistance temperature along axial coordinate
% column 10: inlet temperature
% column 11: outlet temperature
timeData = zeros(1, 4, 17); % time, [sec]
voltFan = zeros(1, 4, 17); % voltage of fan, [V]
ampFan = zeros(1, 4, 17); % current of fan, [A]
c = 0;
% Data input for swirling-decaying flow
for j = 45:15:90
for i = 1:4
c = c + 1;
data = importdata(+j+"Degrees"+i+"inlets.csv");
% Temperature measurements
ce(Nusselt(:, i, k), NusseltErr(:, i, k));
NusseltAvg(1, i, k) = wmean;
NusseltAvgErr(1, i, k) = sqrt(1 / sum(weights));
end
reynolds = Reynolds(1, :, k);
reynoldserr = ReynoldsErr(1, :, k);
nusselt = NusseltAvg(1, :, k);
nusselterr = NusseltAvgErr(1, :, k);
[cc, cerrr, statt] = LeastSquaresFit(reynolds, nusselt,...
reynoldserr, nusselterr, 'power');
% Plotting limits (horizontal axis)
rFit = linspace(1000, 2000, 1000);
% Power values
nFit = cc(1) * rFit .^ cc(2);
% Visualisations
if k <= 4
a = k;
handles(1).hE{k} = errorbar(handles(1).hAxes{1}, reynolds, nusselt,...
nusselterr, nusselterr, reynoldserr,...
reynoldserr, '*', 'Color', colorsErr(a, :) / 255);
handles(1).hP{k} = plot(handles(1).hAxes{1}, rFit, nFit, '-', 'Color',...
colorsFit(a, :) / 255);
elseif (k > 4) && (k <= 8)
a = k - 4;
handles(1).hE{k} = errorbar(handles(1).hAxes{2}, reynolds, nusselt,...
nusselterr, nusselterr, reynoldserr,...
reynoldserr, '*', 'Color', colorsErr(a, :) / 255);
handles(1).hP{k} = plot(handles(1).hAxes{2}, rFit, nFit, '-', 'Color',...
colorsFit(a, :) / 255);
elseif (k > 8) && (k <= 12)
a = k - 8;
handles(1).hE{k} = errorbar(handles(1).hAxes{3}, reynolds, nusselt,...
nusselterr, nusselterr, reynoldserr,...
reynoldserr, '*', 'Color', colorsErr(a, :) / 255);
handles(1).hP{k} = plot(handles(1).hAxes{3}, rFit, nFit, '-', 'Color',...
colorsFit(a, :) / 255);
elseif (k > 12) && (k <= 16)
a = k - 12;
handles(1).hE{k} = errorbar(handles(1).hAxes{4}, reynolds, nusselt,...
nusselterr, nusselterr, reynoldserr,...
reynoldserr, '*', 'Color', colorsErr(a, :) / 255);
handles(1).hP{k} = plot(handles(1).hAxes{4}, rFit, nFit, '-', 'Color',...
colorsFit(a, :) / 255);
else
for i = 1:4
a = 16 + i;
handles(1).hE{a} = errorbar(handles(1).hAxes{i}, reynolds,...
nusselt, nusselterr, nusselterr, reynoldserr,...
reynoldserr, '*', 'Color', colorsErr(5, :) / 255);
% end code timer
runningTime = toc;
%% Save results in results.txt
res = fopen('results.txt', 'w');
disp('Results printed in the file: results.txt ');
fprintf(res, 'Analysis output report, written on %s\n', datetime('now'));
fprintf(res, 'Elapsed time: %4.2f seconds \n \n', runningTime);
fprintf(res, 'Results are printed in a way that greatly simplifies their implementation in a LaTeX table \n \n');
latextbl2 = [stats(2).c(:, 1) .* 10e-10 stats(2).cerr(:, 1) .* 10e-10 stats(2).c(:, 2) stats(2).cerr(:, 2) stats(2).stat(:, 1)];
latextbl = [latextbl1 latextbl2];
fprintf(res, '------------------------------------------------------ \n');
fprintf(res, 'Power fit curves for Nu = aRe^b and P = aQ^b; columns: a ua b ub r^2 \n \n');
fprintf(res, '%5.2f & %5.2f & %5.2f & %5.2f & %5.4f && %5.2f & %5.2f & %5.2f & %5.2f & %5.4f \\\\ \n', latextbl');
fprintf(res, '\n');
latexnu = zeros(4, length(nussavg(1:4, 1)) * 2);
latexpw = zeros(4, length(pwavg(1:4, 1)) * 2);
c = 0;
for i = 1:4
if i == 1
else
c = c + 4;
end
latexpw(i, 1:2:end-1) = pwavg(1+c:4+c, 1);
latexpw(i, 2:2:end) = pwavg(1+c:4+c, 2);
latexnu(i, 1:2:end-1) = nussavg(1+c:4+c, 1);
latexnu(i, 2:2:end) = nussavg(1+c:4+c, 2);
end
fprintf(res, '------------------------------------------------------ \n');
fprintf(res, 'Average Nusselt numbers; rows: angle degrees, columns: number of inlets\n \n');
fprintf(res, '& %5.2f & %5.2f && %5.2f & %5.2f && %5.2f & %5.2f && %5.2f & %5.2f \\\\ \n', latexnu');
fprintf(res, '\n');
% Print results in way a LaTeX-friendly way
fprintf(res, '------------------------------------------------------ \n');
fprintf(res, 'Average Power values; rows: angle degrees, columns: number of inlets\n \n');
fprintf(res, '& %5.2f & %5.2f && %5.2f & %5.2f && %5.2f & %5.2f && %5.2f & %5.2f \\\\ \n', latexpw');
fprintf(res, '\n');
latextbl = [nuss(:, 1) nusserr(:, 1) nuss(:, 2) nusserr(:, 2) nuss(:, 3) nusserr(:, 3) nuss(:, 4) nusserr(:, 4)];
fprintf(res, '------------------------------------------------------ \n');
fprintf(res, 'Thermal improvement index; rows: angle degrees, columns: number of inlets\n \n');
fprintf(res, '& %5.2f & %5.2f && %5.2f & %5.2f && %5.2f & %5.2f && %5.2f & %5.2f \\\\ \n', latextbl');
fprintf(res, '\n');
latextbl = [power(:, 1) powererr(:, 1) power(:, 2) powererr(:, 2) power(:, 3) powererr(:, 3) power(:, 4) powererr(:, 4)];
fprintf(res, '------------------------------------------------------ \n');
fprintf(res, 'Power improvement index; rows: angle degrees, columns: number of inlets \n \n');
fprintf(res, '& %5.2f & %5.2f && %5.2f & %5.2f && %5.2f & %5.2f && %5.2f & %5.2f \\\\ \n', latextbl');
% Print results in way a LaTeX-friendly way
latextbl = [therm(:, 1) thermerr(:, 1) therm(:, 2) thermerr(:, 2) therm(:, 3) thermerr(:, 3) therm(:, 4) thermerr(:, 4)];
fprintf(res, '------------------------------------------------------ \n');
fprintf(res, 'Potential efficiency index; rows: angle degrees, columns: number of inlets \n \n');
fprintf(res, '& %5.2f & %5.2f && %5.2f & %5.2f && %5.2f & %5.2f && %5.2f & %5.2f \\\\ \n', latextbl');
fclose(res);
⛳️ 运行结果
🔗 参考文献
[1] 田文栋,魏小林,黎军,等.内旋流流化床埋管传热热态实验研究[C]//中国工程热物理学会传热传质学学术会议.中国工程热物理学会, 1999.
[2] 许都纯,徐红洲.单孔射流与主流相互作用时的流动和传热的实验研究[J].西北工业大学学报, 1997, 15(2):8.DOI:JournalArticle/5aedfa75c095d710d410adb6.
[3] 赵枚.动载作用下管内流动水沸腾传热实验研究[J].南京航空航天大学, 2008.DOI:10.7666/d.d053182.
🎈 部分理论引用网络文献,若有侵权联系博主删除
🎁 关注我领取海量matlab电子书和数学建模资料
👇 私信完整代码和数据获取及论文数模仿真定制
1 各类智能优化算法改进及应用
生产调度、经济调度、装配线调度、充电优化、车间调度、发车优化、水库调度、三维装箱、物流选址、货位优化、公交排班优化、充电桩布局优化、车间布局优化、集装箱船配载优化、水泵组合优化、解医疗资源分配优化、设施布局优化、可视域基站和无人机选址优化、背包问题、 风电场布局、时隙分配优化、 最佳分布式发电单元分配、多阶段管道维修、 工厂-中心-需求点三级选址问题、 应急生活物质配送中心选址、 基站选址、 道路灯柱布置、 枢纽节点部署、 输电线路台风监测装置、 集装箱船配载优化、 机组优化、 投资优化组合、云服务器组合优化、 天线线性阵列分布优化
2 机器学习和深度学习方面
2.1 bp时序、回归预测和分类
2.2 ENS声神经网络时序、回归预测和分类
2.3 SVM/CNN-SVM/LSSVM/RVM支持向量机系列时序、回归预测和分类
2.4 CNN/TCN卷积神经网络系列时序、回归预测和分类
2.5 ELM/KELM/RELM/DELM极限学习机系列时序、回归预测和分类
2.6 GRU/Bi-GRU/CNN-GRU/CNN-BiGRU门控神经网络时序、回归预测和分类
2.7 ELMAN递归神经网络时序、回归\预测和分类
2.8 LSTM/BiLSTM/CNN-LSTM/CNN-BiLSTM/长短记忆神经网络系列时序、回归预测和分类
2.9 RBF径向基神经网络时序、回归预测和分类