Расчет температурных полей и скоростей охлаждения, в простейшем случае, выполняется по следующей программе.
program teplo;{расчет температурных полей и скоростей охлаждения}
{одномерная задача явная схема }
var
temp:array[1..15] of real;
temp1:array[1..15] of real;
skor,skorz,skorc,skorr,raz,teplp:array[1..15] of real;
strukct:array[1..15] of char;
a,lamd,c,x,dx,b,tau,tau1,bf,A1,ro,dtau,dtau1,tn,tf,tk,tnac,tem,smit,Dg:real;
i,imax:integer;
cg,ct,c1,c2:real;
tl,ts,tt:real;
d,r:text;
procedure tepl;
begin
if(temp[i]>tl) then c:=cg;
if(temp[i]<=ts) then c:=ct;
if(temp[i]<=tl) and (temp[i]>tt) then c:=c1;
if(temp[i]<=tt) and (temp[i]>ts) then c:=c2; end;
begin
assign(d,'e:\tp7\deendrit\diplom.dan');reset(d);
assign(r,'e:\tp7\deendrit\diplom.rez');rewrite(r);
readln(d,tn); writeln(r,'температура заливки металла tn=',tn:5:1);
readln(d,tf);writeln(r,'начальная температура формы tf=',tf:5:1);
readln(d,tk);writeln(r,'конечная температура tk=',tk:5:1); {для рассмотрения интервала}
readln(d,lamd);writeln(r,'коэф-т теплопроводности lamd=',lamd:6:4);
readln(d,bf);writeln(r,'коэф-т теплоаккумулирующей способности формы bf=',bf:6:1);
readln(d,b);writeln(r,'толщина стенки b=',b:6:3);
readln(d,imax);writeln(r,'количество узлов отливки imax=',imax:4);
readln(d,tl);writeln(r,'температура ликвидус tl=',tl:5:1);
readln(d,ts);writeln(r,'температура солидус ts=',ts:5:1);
readln(d,tt);writeln(r,'температура середины интервала ликвидус-солидус tt=',tt:5:1);
readln(d,cg);writeln(r,'теплоемкость жидкого состояния cg=',cg:10:1);
readln(d,ct);writeln(r,'теплоемкость твердого состояния ct=',ct:10:1);
readln(d,c1);writeln(r,'теплоемкость внутри интервала tl-tt c1=',c1:12:1);
readln(d,c2);writeln(r,'теплоемкость внутри интервала tt-ts c2=',c2:10:1);
tnac:=tn-tf; {избыточная температура заливки, К}
dx:=b/(imax-1);{расстояние между узлами, м}
writeln(r,'расстояние между узлами dx=',dx:8:5);
tau:=0;{начальное время, с}
dtau:=3;{шаг по времени, с}
{начальная температура заливки}
writeln(r);
writeln(r,'начальное распределение температур в отливке');
for i:=1 to imax do begin
temp[i]:=tnac;
skorz[i]:=0;
skorc[i]:=0;
skorr[i]:=0;
raz[i]:=0;
strukct[i]:='.';
teplp[i]:=0;
write(r,temp[i]:6:0); end;
{******************************}
tau:=0; writeln(r);
writeln(r,'Распределение температуры и скоростей охлаждения в теле отливки');
writeln(r);
repeat
tepl;
a:=lamd/c;{коэффициент температуропроводности, м^2/c для объемной теплоемкости}
tau:=tau+dtau;
{вычисление граничных температур и скоростей охлаждения}
temp1[1]:=temp[2]*(1/(1+(BF*dx)/(SQRT(3.14*tau)*lamd)));
temp1[imax]:=temp[imax-1]*(1/(1+(bf*dx)/(SQRT(3.14*tau)*lamd)));
skor[1]:=(temp[1]-temp1[1])/dtau;
skor[imax]:=(temp[imax]-temp1[imax])/dtau;
temp[1]:=temp1[1]; temp[imax]:=temp1[imax];
for I:=2 TO Imax-1 DO BEGIN {цикл вычисления температур внутри граничных условий}
tepl;
a:=lamd/c;{коэффициент температуропроводности, м^2/c для объемной теплоемкости}
A1:=(a*dtau)/sqr(dx);
temp1[i]:=temp[i]+A1*(temp[i+1]-2*temp[i]+temp[i-1]);
skor[i]:=(temp[i]-temp1[i])/dtau; end;
{for i:=1 to imax do begin {распечатка температур}
{write(r,temp1[i]:6:0); }
{end; write(r,' tau=',tau:5:4); writeln(r); }
for i:=1 to imax do begin {распечатка скорости охлаждения}
{write(r,skor[i]:6:2); }
{вычисление скорости охлаждения в интервале затвердевания}
if ((temp[i]<tl) and (temp[i]>ts)) then skorz[i]:=skor[i]; end;
skorz[1]:=2*skorz[2]; skorz[imax]:=2*skorz[imax-1];
{writeln(r);}
{вычисление теплового потока в интервале затвердевания}
{q=lamd*перепад температур между соседними точками/dx*промежуток времени}
for i:=1 to imax do begin
if ((temp[i+1]<tl) and (temp[i+1]>ts)) and ((temp[i+1]-temp[i])>0) then
teplp[i]:=lamd*(temp[i+1]-temp[i])*dx*dtau;
if ((temp[i-1]<tl) and (temp[i-1]>ts)) and ((temp[i-1]-temp[i])>0) then
teplp[i]:=lamd*(temp[i-1]-temp[i])*dx*dtau; end;
for i:=2 to imax-1 do begin {запиcь предыдущего распределения температур}
temp[i]:=temp1[i]; end; {writeln(r);}
until (temp[5]+tf<=tk);
writeln(r,'Скорости охлаждения град/с в интервале затвердевания отливки tl-ts');
for i:=1 to imax do begin {распечатка скорости охлаждения для интервала tl-ts}
write(r,skorz[i]:6:2); end;
writeln(r);
writeln(r,'Распределение размера дендритной ячейки в мкм');
{Размер дендритной ячейки является функцией скорости охлаждения}
for i:=1 to imax do begin
raz[i]:=700/sqrt(skorz[i]);
write(r,raz[i]:6:0); end;
writeln(r);
writeln(r,'Распределение скоростей роста твердой фазы м/с*10^-4');
{ Линейная скорость роста ветви дендрита является функцией скорости охлаждения}
for i:=1 to imax do begin
skorr[i]:=skorz[i]*2;
write(r,skorr[i]:6:2);
end;
writeln(r);
writeln(r,'Относительная степень обогащения границ дендритов углеродом Сгр/Со');
{отношение концентрации элемента на границе и исходной концентрации}
{Зависит от критерия Смита Sm=скорость роста (охлаждения)*размер
дендритной ячейки/коэффициент диффузии элемента в жидкой фазе}
Dg:=5*0.000000001;{ Коэффициент диффузии м^2/с}
for i:=1 to imax do begin
smit:=skorr[i]*0.0001*raz[i]*0.000001/Dg;{критерий Смита}
skorc[i]:=18-0.1*smit;
write(r,skorc[i]:6:2);
end;
writeln(r);
writeln(r,'Распределение теплового потока Вт/м^2 для интервала tl-ts');
for i:=1 to imax do begin
write(r,teplp[i]:6:1);
end;
writeln(r);
writeln(r,'Структурные зоны по толщине отливки');
for i:=1 to imax do begin
if (teplp[i]>100) then strukct[i]:='+';
if ((teplp[i]>12) and (teplp[i]<100)) then strukct[i]:='=';
if (teplp[i]<3) then strukct[i]:='*';
write(r,strukct[i]:6);
end;
writeln(r);
writeln(r,'+ зона замороженных кристаллов');
writeln(r,'= зона столбчатых кристаллов');
writeln(r,'* зоны равноосных кристаллов');
close(d);close(r);
end.
Файл результатов
температура заливки металла tn=1500.0
начальная температура формы tf= 20.0
конечная температура tk=1400.0
коэф-т теплопроводности lamd=54.5000
коэф-т теплоаккумулирующей способности формы bf=1628.0
толщина стенки b= 0.070
количество узлов отливки imax= 10
температура ликвидус tl=1495.0
температура солидус ts=1460.0
температура середины интервала ликвидус-солидус tt=1480.0
теплоемкость жидкого состояния cg= 6900000.0
теплоемкость твердого состояния ct= 5647500.0
теплоемкость внутри интервала tl-tt c1= 7280000.0
теплоемкость внутри интервала tt-ts c2= 6740000.0
расстояние между узлами dx= 0.00778
начальное распределение температур в отливке
1480 1480 1480 1480 1480 1480 1480 1480 1480 1480
Распределение температуры и скоростей охлажд в теле отливки
Скорости охлажд град/с в интервале затвердевания отливки tl-ts
27.84 13.92 3.11 1.62 1.74 1.74 1.62 3.11 13.92 27.84
Распределение размера дендритной ячейки, мкм
133 188 397 550 530 530 550 397 188 133
Распределение скоростей роста твердой фазы, м/с*10^-4
55.69 27.84 6.22 3.24 3.49 3.49 3.24 6.22 27.84 55.69
Относительная степень обогащения границ дендритов углеродом, Сгр/Со
3.23 7.55 13.06 14.44 14.30 14.30 14.44 13.06 7.55 3.23
Распределение теплового потока, Вт/м^2 для интервала tl-ts
132.4 50.9 30.0 16.6 0.0 0.0 16.6 30.0 50.9 132.4
Структурные зоны по толщине отливки
+ = = = * * = = = +
+ зона замороженных кристаллов;
= зона столбчатых кристаллов;
* зоны равноосных кристаллов.
Дата: 2019-04-23, просмотров: 244.