- •Курсовая работа
- •Движущейся коксовой частицы
- •Введение
- •Методика расчета движения одиночной частицы в заданном поле скоростей газового потока
- •Уравнение движения частицы
- •Основные силы, действующие на движущуюся частицу
- •Методика расчета горения одиночной угольной частицы
- •3.1 Стадии горения угольной частицы
- •3.2 Оценка длительности протекания отдельных стадий и методы расчета горения коксового остатка
- •4. Численные методы решения дифференциальных уравнений первого и второго порядка
- •5. Разработка блок-схемы программы и текста программы
- •Выбор шага интегрирования
- •7. Расчетный анализ траекторий движения горящих угольных частиц.
- •Выводы и рекомендации
4. Численные методы решения дифференциальных уравнений первого и второго порядка
Решение полученных дифференциальных уравнений для движения и выгорания частицы производится по методу Эйлера. Сущность метода заключается в том, что мы задаём шаг интегрирования и получаем приращение функции и новое значение функции.
5. Разработка блок-схемы программы и текста программы
НАЧАЛО
ВВОД ДАННЫХ
Рисунок 1. Укрупненная блок-схема программы
Текст программы
uses graph, crt ;
var
d,dd, m,f,c,Ax,Ay,O2, Tg, denP,denG, Vkg,
x, y, Ht, Hg, Wg, Wgor, dT, Ta, Vx, Vy : double ;
mast,Re, Wx,Wy,Votn: double;
Tgk, Kgk, Akc, denPk,Br, Wr,Ar,Vr, Vg: double;
at,bt, time: double;
g1,g2,xx,yy : integer;
s1, s2 : string;
fff : text ;
label
met_end, met1;
begin
d:=872e-6 ;
denP:=1200 ; {kg/m3}
Wr:=34.3;
Ar:=7.3;
Vr:=45;
Vg:=6.104 ;
Kgk:=1.8;
Akc:=22;
Br:=211.3;
Ht:=44.9;
at:=22.2;
bt:=12.285;
O2:=21;
Hg:=Ht*0.2;
Wgor:=20 ;
x:=0.001;
y:=Hg;
Vx:=Wgor;
Vy:=0;
dT:=0.0005 ;
{=================}
time:= 0 ;
denPk:=denP*(100-Wr-Vr)/100;
{========================================================}
g1:=VGA; g2:=VGAHi;
initgraph(g1, g2, '');
MAST:=getmaxy/Ht;
met1:
xx:=round(x*mast);
yy:=getmaxy-round(y*mast);
putpixel(xx,yy,15);
{}
m:=denP*d*d*d*Pi/6 ;
Tg:=-y*1.116e0 + 1.553e3 ;{(-8.500e-3)*y+1.525e3;
DenG:=1.3*273/(Tg+273) ;
Vkg:=Tg*(4.405e-11*Tg + 1.211e-7) + 1.36e-6; {m2/s}
Wg:=Br*1000*Vg*(Tg+273)/(3600*273*at*bt) ;
Wy:=Wg;
{=====================}
if y < Hg then O2:=21
else O2:=(-0.4872)*y + 25.375;
{=====}
if abs(Hg-y)<0.5 then Wx:=Wgor
else Wx:=0;
Votn:=sqrt(sqr(Wx-Vx)+sqr(Wy-Vy));
Re:=d*Votn/Vkg;
if Re<1 then c:=24/Re
else c:=24/Re+ 4/exp(ln(Re)/3);
f:=Pi*d*d/4 ;
Ax:=c*f*denG*(Wx-Vx)*Votn/(2*m);
Ay:=c*f*denG*(Wy-Vy)*Votn/(2*m) - 9.8;
Vx:=Vx+Ax*dT;
Vy:=Vy+Ay*dT;
x:=x+Vx*dT;
y:=y+Vy*dT;
{===============================================================}
dd:=-exp(0.9*ln(Tg)) * O2 / (Kgk*2*2.21e8*((100-Akc)/100)*denPk*d);
d:=d + dd*dT;
time:=time + dT ;
{===============================================================}
{ time, x, y, d }
if d < 50e-6 then begin
xx:=round(x*mast);
yy:=getmaxy-round(y*mast);
setcolor(red) ;
circle(xx, yy, 2 ) ;
goto met_end ;
end;
if (y<Ht) and (not KEYPRESSED) and (y>0) then goto met1;
{=================================================================}
met_end :
str(x:-10:6, s1);
outtextXY(400,20, 'X='+S1);
str(y:-10:6, s2);
outtextXY(400,30, 'Y='+S2);
close(fff) ;
readkey;
{===============================}
end.