概述
代码如下,运行一直处于正忙状态,求大神帮忙看看代码有什么问题:Q
%% 定义 (x,t) 平面上的网格点坐标
clear;clc;
dx=0.05; % x 方向的步长
dy=0.05;
H=0.4;
L=0.4;% t 方向的步长
x=0:dx:0.4; % 得到 x 的序列 (离散点 x 坐标)
y=0:dy:0.4; % 得到 t 的序列 (离散点 t 坐标)
v=2;cp=1.01;tcw=22.1;hfg=2500;ms=v*1.293*0.3*0.3;mp=v*1.293*0.3*0.3;
% hs=54*v^0.7;hp=54*v^0.7;
hs=(0.023*(v/(15*10^(-6)))^0.8*0.7^0.3*0.026)/(2*0.4*0.005/(0.4+0.005))^0.2;hp=(0.023*(v/(15*10^(-6)))^0.8*0.7^0.3*0.026)/(2*0.4*0.005/(0.4+0.005))^0.2;
hms=hs/cp;hmp=hp/cp;
NTUS=hs*H/(cp*ms);
NTUms=hms*H/(ms);
NTUP=hp*L/(cp*mp);
NTUmp=hmp*L/(cp*mp);
%% 设置偏微分方程的初始条件, 边界条件
M=length(x)-1;
N=length(y)-1;
TP=ones(N+1,M+1);
TS=ones(N+1,M+1);
WS=ones(N+1,M+1);
WP=ones(N+1,M+1);
TW=ones(N+1,M+1);
W=ones(N+1,M+1);
E=ones(1,400);
TA=ones(1,400);
TP(:,1)=34; % 设置初值条件
TS(1,:)=24;
WP(:,1)=0.0168;
WS(1,:)=0.0112;
%% 根据推导出的差分方程, 计算偏微分方程的数值解
tic
for k=1:N
tic
for j=1:M
TA(1)=15;
tic
for i=1:400
Tw=273.15+TA(i);
a=[-5800.22,1.3914993,-0.04864,0.000041764768,-0.000000014452093,6.5459673];
yw=a(1)/Tw+a(2)+a(3)*Tw+a(4)*Tw^2+a(5)*Tw^3+a(6)*log(Tw);
xw=exp(yw);
Aw=1;bw=Aw*xw;
W(k,j)=0.622*(bw/(101325-bw));
if WP(k,j)<=W(k,j)
while k>=2
TS(k,j)= TS(k-1,j)+dy*NTUS*(TW(k-1,j)-TS(k-1,j));
WS(k,j)= WS(k-1,j)+dy*NTUms*(W(k-1,j)-WS(k-1,j));
end
TW(k,j)=(hp*TP(k,j)+hs*TS(k,j)-(W(k,j)-WS(k,j))*hfg*hms)/(hs+hp-(W(k,j)-WS(k,j))*cp*hms);
E(i)=abs(TA(i)-TW(k,j));
if E(i)<=0.1
TW(k,j)=TA(i);
WP(k,j+1)=WP(k,j);
TP(k,j+1)= TP(k,j)+dy*NTUP*(TP(k,j)-TW(k,j));
break;
else
TA(i+1)=TA(i)+0.05;
end
% TW(k,j)=(ms*hfg*NTUms*(W(k,j)-WS(k,j)+mp*cp*NTUS*TS(k,j)+mp*cp*NTUP*TP(k,j)))/(mp*cp*NTUS+mp*cp*NTUms*(W(k,j)-WS(k,j)));
else
while k>=2
TS(k,j)= TS(k-1,j)+dy*NTUS*(TW(k-1,j)-TS(k-1,j));
WS(k,j)= WS(k-1,j)+dy*NTUms*(W(k-1,j)-WS(k-1,j));
end
TW(k,j)=(hs*TS(k,j)-hfg*hms*(W(k,j)-WS(k,j))-hp*TP(k,j)+(hfg+cp*tcw)*hmp*(WP(k,j)-W(k,j)))/(hs-hp-(W(k,j)-WS(k,j))*hmp*cp);
E(i)=abs(TA(i)-TW(k,j));
if E(i)<=0.1
TW(k,j)=TA(i);
TS(k+1,j)= TS(k,j)+dy*NTUS*(TW(k,j)-TS(k,j));
WS(k+1,j)= WS(k,j)+dy*NTUms*(W(k,j)-WS(k,j));
TP(k,j+1)= TP(k,j)+dx*NTUP*(TP(k,j)-TW(k,j));
WP(k,j+1)= WP(k,j)+dx*NTUmp*(WP(k,j)-W(k,j));
break;
else
TA(i+1)=TA(i)+0.05;
end
end
end
toc
end
toc
end
toc
%% 绘制偏微分方程的计算结果: (x, t, Phi) 的三维网格图
figure
set(gcf,'units','normalized','position',[0.2 0.2 0.6 0.6],'name','三维图'); % 设置 figure 窗口的位置和尺寸
[x,y]=meshgrid(x,y); % 得到所有计算点的 x 坐标和 t 坐标
mesh(x,y,TS) % 绘制 (x,t,Phi) 的三维网格图
xlabel('x')
ylabel('y')
zlabel('TS(x,y)')
title('扩散方程的数值模拟')
view(75,50)
最后
以上就是冷静绿草为你收集整理的matlab运行一直正忙,matlab一直显示正忙,没反应,求大神帮助的全部内容,希望文章能够帮你解决matlab运行一直正忙,matlab一直显示正忙,没反应,求大神帮助所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复