- 积分
- 35
- 注册时间
- 2004-10-23
- 仿真币
-
- 最后登录
- 1970-1-1
|
clear
clc
%hanyang university, wang xiayong, fem book, p599, abmc lab
%次假设右边是多了一个对流边界,热量可以通过对流跑出
%%%%%%% 问题的模型为
%%%%%%% 85-----kxx,area-----hvect
%%%%%%% 左端恒温 85摄氏度,右端对流放热hvect为对流换热系数
lezong=0.02
num=40
area=3.14*0.002*0.002
peri=3.14*0.004
hvect=550
kxx=400
tsuur=25
speciheat=375
density=8900
tempzuo=85
tempini=25
le=lezong/num
akl=area*kxx/le
hpl6=hvect*peri*le/6
ha=hvect*area
cpoual6=speciheat*density*area*le/6
k1=akl*[1 -1;-1 1]+hpl6*[2 1;1 2]
klast=akl*[1 -1;-1 1]+hpl6*[2 1;1 2]+ha*[0 0;0 1]
eledan=cell(num,1)
for i=1:num-1
eledan{i}=k1
end
eledan{num}=klast
dingwei=zeros(num,2)
for i=1:num
dingwei(i,1)=i
dingwei(i,2)=i+1
end
zongsti=zeros(num+1,num+1)
for i=1:num
zongsti(dingwei(i,:),dingwei(i,:))=eledan{i}+zongsti(dingwei(i,:),dingwei(i,:))
end
%下面进行力的初始化
force=zeros(num+1,1)
qal=0*[1;1]*0.5
qstarpl=0*[1;1]*0.5
htqiongpl=hvect*tsuur*peri*le*[1;1]*0.5
htqionga=hvect*tsuur*area
for i=1:num
force(dingwei(i,:))= force(dingwei(i,:))+qal+qstarpl+htqiongpl
end
force(num+1)=force(num+1)+htqionga
mele=cpoual6*[2 1;1 2]
mzong=zeros(num+1,num+1)
for i=1:num
mzong(dingwei(i,:),dingwei(i,:))=mele+mzong(dingwei(i,:),dingwei(i,:))
end
%下面开始进行迭代
timestep=0.1
beta=2/3
left=(1/timestep)*mzong+beta*zongsti
right=(1/timestep)*mzong-(1-beta)*zongsti
tini=tempini*ones(num+1,1)
zuoyuan=left
for i=1:31
you=right*tini+force
%由于第一项已知,所以采用乘大数发进行处理
left(1,1)=zuoyuan(1,1)*10^5
you(1)=zuoyuan(1,1)*10^5*tempzuo
temp=left\you
output(i,1)=i*timestep
output(i,2:num+2)=temp
tini=temp
end
plot(output(:,1),output(:,num/4+2),'b',output(:,1),output(:,num/2+2),'g',output(:,1),output(:,3*num/4+2),'r',output(:,1),output(:,num+2),'c')
grid on
xlabel('time(s)')
ylabel('temperature(C)')
xlswrite('c:/output400.xls',output)
[ 本帖最后由 ilxy 于 2008-3-3 16:26 编辑 ] |
|