用matlab绘制无限大平板中心温度诺模图-传热学

参考与感谢

本文参考HIT赵军明老师教学内容和参考了肖广州学长的代码,感谢写在最前面

公式

图取自HIT赵军明老师

Matlab的实现

写入matlab

单条曲线的实现

依第一条曲线1/Bi=0.05为例子
Bi=1/0.05
由utan(u)=Bi可得其超越方程解u_1
由于是中心温度,则无量纲数x/δ=1
at/δ²=Fo直接取做横坐标
那么可以得到以下代码
Fo=[0:0.1:700];	%%创建横坐标
u_1=0;			%%u_1初始化
Bi=1/0.05;		%%第一条曲线的Bi
for x=u_1:0.000001:pi/2		%%遍历求超越方程的解
	y=x*tan(x)-Bi;
	if (abs(y)<0.0001)
		u_1=x;
		end
	end
temper=4*sin(u_1)/(2*u_1+sin(2*u_1))*cos(u_1)*exp(-u_1*u_1*Fo);	%%计算中心无量纲温度
plot(Fo,temper)													%%绘制

结果如图
在这里插入图片描述

多条曲线的实现

原理不变,只需要把Bi变成数组即可
为了让曲线连续绘制,需要在matlab里开启图线保留hold on
那么可以得到以下代码
Fo=[0:0.1:700];																%%创建横坐标
u_1=0;																		%%u_1初始化
BiDS=[0.05,0.1:0.1:0.8,1.0:0.2:2.0,2.5,3:1:10,12:2:20,25:5:50,60:10:100];	%%1/Bi组
N=length(BiDS);																
hold on																		%%开启绘图保留
for i=1:1:N																	%%求Bi
	Bi(i)=1/BiDS(i);
end
for i=1:1:N
	for x=0:0.000001:pi/2													%%遍历求超越方程的解
	y=x*tan(x)-Bi(i);
		if (abs(y)<0.0001)
		u_1=x;
		end
	end
	temper=4*sin(u_1)/(2*u_1+sin(2*u_1))*cos(u_1)*exp(-u_1*u_1*Fo);			%%计算中心无量纲温度
	plot(Fo,temper)															%%绘制
end
%%特别提示,循环部分我没有优化,如果有时间for x=0:0.000001:pi/2完全不应该这样写,
这么暴力求解需要让电脑遍历这个循环几十次(十分消耗资源和时间),
更好的解法为for x=u_1:-0.000001:0  (初始化为:u_1=pi/2) 因为Bi是由大到小,所以超越方程的解也是由大到小解,这样可以使遍历次数仅为1,
但是我学习matlab时间还很短,
也没尝试这样的写法是否正确,故没有优化该循环算法

可得结果
莫诺图

优化与改进空间

如果有时间和兴趣,可以将该图尝试转变为变坐标系,将区域曲线转变为直线,这样就彻底成为了书上的参考诺模图。
Fo=[0:0.1:700];																%%创建横坐标
u_1=0;																		%%u_1初始化
BiDS=[0.05,0.1:0.1:0.8,1.0:0.2:2.0,2.5,3:1:10,12:2:20,25:5:50,60:10:100];	%%1/Bi组
N=length(BiDS);																
																		
for i=1:1:N																	%%求Bi
	Bi(i)=1/BiDS(i);
end
for i=1:1:N
	for x=0:0.000001:pi/2													%%遍历求超越方程的解
	y=x*tan(x)-Bi(i);
		if (abs(y)<0.0001)
		u_1=x;
		end
	end
	temper=4*sin(u_1)/(2*u_1+sin(2*u_1))*cos(u_1)*exp(-u_1*u_1*Fo);			%%计算中心无量纲温度
	semilogy(Fo,temper);													%%对数10变坐标绘制
	axis([ 0  700  0.001  1]); 												%%框定范围
	hold on																	%%开启绘图保留
end

在这里插入图片描述

如何还原传热学书上的诺模图

有人私信我问如何还原传热学书上变Fo的诺模图,最简单的办法就是用多个Fo跨度(eg.第一张图axis([ 0 4 0.001 1]) 第二张图axis([ 4 10 0.001 1]))画几张图,然后用Ps拼起来。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值