- •Министерство образования и науки российской федерации
- •Национальный исследовательский томский политехнический университет
- •1. Общие сведения
- •2. Метод Эйлера решения систем оду
- •2.1 Pascal-программа решения оду методом Рунге-Кутта четвертого порядка
- •4. Воспламенение и горение угольной частицы в прямоточной топке котла
- •5.Самостоятельная работа
- •10 Вариант
2.1 Pascal-программа решения оду методом Рунге-Кутта четвертого порядка
program test;
uses Crt;
const n=2;
type mas=array[1..10] of real;
var y,y0,k1,k2,k3,k4:mas;
tend:Real;
h:Real;
time: Real;
i:integer;
Procedure F(t:real;y:mas;var ff:mas);
begin
ff[1]:= y[2];
ff[2]:=exp(t);
end;
BEGIN
write('Vvedite nachalnoe yslovie');
writeln('y0(1)=');
readln(y[1]);
writeln('yo(2)=');
readln(y[2]);
write('Vvedite shag h=');
Read(h); writeln;
write('Vvedite moment okonchaniya scheta, tend=');
Read(tend); writeln;
clrscr;
time:=0;
Repeat
for i:=1 to n do
y0[i]:=y[i];
F(time,y0,k1);
for i:=1 to n do y[i]:=y0[i]+0.5*h*k1[i];
F(time+0.5*h,y,k2);
for i:=1 to n do y[i]:=y0[i]+0.5*h*k2[i];
F (time+0.5*h,y,k3);
for i:=1 to n do y[i]:=y0[i]+h*k3[i];
F(time+h,y,k4);
for i:=1 to n do y[i]:=y0[i]+h*(k1[i]+2*k2[i]+2*k3[i]+k4[i])/6;
time:=time+h;
until time >= tend;
writeln('time=', time:5:2);
for i:=1 to N do
writeln('1=',i,' y=',y[i]:10:5);
END.
В таблице 1 представлены значения Y1(3) и Y2(3) для тестовой задачи, получаемой по методу Рунге-Кутта четвертого порядка для различных значений h.
Таблица 1
Зависимость точности интегрирования от шага интегрирования
h |
0,15 |
0,05 |
0,03 |
0,01 |
0,004 |
Y1(3) |
19,186 |
17,065 |
16,667 |
16,277 |
16,086 |
Y2(3) |
22,336 |
20,115 |
19,697 |
19,287 |
19,086 |
Как видно из таблицы при h=0,03 достигается хорошая точность численного предсказания результатов.
4. Воспламенение и горение угольной частицы в прямоточной топке котла
Рассмотрим задачу теплоэнергетического профиля, математическая постановка которой сводится к системе обыкновенных уравнений.
В прямоточной топке котла шириной L и высотой H имеет место подъемное движение воздуха со скоростью ug, м/с, νg=0 м/с. Температура воздуха Tg, K. Теплофизические свойства воздуха имеют следующие значения:
μg=75·10-6 Па с ,
λg=0,1 Вт/(м K) ,
ρg=(1,29/ Tg·273) кг/м3 .
Угольные частицы начального диаметра 𝛿0 подаются в топку через горелки на высоте h с заданной скоростью (u0, ν0) и температурой T0.
Известно, что в плоском случае движения, теплообмен и горение одной угольной частицы со свойствами ρР0=1000 кг/м3, Ср=900 Дж/(кг К), QНР=3.4*107 Дж/кг описывается следующей системой ОДУ.
(5)
Здесь x,y – текущие координаты местоположения частицы, u,ν – текущие компоненты вектора скорости частицы, g – ускорение свободного падения, Т – текущее значение температуры частицы, σ=5.67*10-8 – постоянная Стефана-Больцмана, ТС,ε – температура и степень черноты стенок топки, W – скорость горения частицы:
где δ – текущий диаметр угольной частицы;
СО2 – массовая концентрация кислорода в потоке;
AK=K0 exp(-E/T) – кинетическая скорость горения угля;
K0;E – предэкспонент и энергия активации;
AD=16*10-6*(Tg/273)1.9*2/δ – диффузионная скорость горения угля; δMIN – диаметр золового ядра угольной частицы.
Начальные условия к системе уравнений (5) имеют вид:
t=0: x=x0, y=y0, u=u0, ν=ν0, T=T0, δ=δ0,
где x0=h, y0=0, либо y0=L.
При решении этой задачи нужно предусмотреть выполнение следующих условий:
если
х
0,
то считается, что частица упала на дно
топки.
если
х
Н,
то частица вылетела из топки.
Если y 0 или y L, то частица «села» на стенку топки.
Решая эту систему ОДУ, можно определить траектории движения частиц, их скорость, температуру и степень выгорания.
Рассмотрим тестовый пример.
4.1 Pascal-программа решения поставленной задачи
program M_R_C;
uses Crt;
const n=6; htau=0.005; Vgx=10; Vgy=0; L=5; H=15;
Tg=1400.0; amu=75e-6; lamda=0.1; ro=1.29*273/Tg; x00=1;
y00=5; del0=300e-6; vx0=-10; vy0=-10; Tp0=500;
ropo=1000.0; cp=900; Q=3.4e7; C02=0.1; k0=3.3e4;
Ea=16317.0; delz=0.92*del0; Tc=300.0;
type mas=array[1..n] of real;
var y,y0,k1,k2,k3,k4: mas;
i:1..n;
time:real;
Filedat:text;
Procedure Right (t:real; y:mas; var f:mas);
Var KK, KD, www, alfa:real;
begin
f[1]:=y[3];
f[2]:=y[4];
f[3]:=18*amu*(Vgx-y[3])/(ropo*y[6]*y[6])-9.81;
f[4]:=18*amu*(Vgy-y[4])/(ropo*y[6]*y[6]);
KD:=16e-6*exp(1.9*ln(y[5]/273))*2/y[6];
KK:=exp(ln(K0)-Ea/y[5]);
Alfa:=2*lamda/y[6];
If y[6]>delz then www:=2*12/(32*ropo)*ro*C02*Kk*KD/(Kk+KD) else
www:=0;
f[5]:=-6*(-www*ropo*Q/2+alfa*(y[5]-Tg)+5.67e-8*0.9*
(y[5]*y[5]*y[5]*y[5]-Tc*Tc*Tc*Tc))/(ropo*cp*y[6]);
f[6]:=-www;
end;
BEGIN
clrscr;
y[1]:=x00; y[2]:=y00; y[3]:=Vx0; y[4]:= Vy0; y[5]:= Tp0;
y[6]:=del0;
time:=0;
Assign(filedat,'y(t).dat');
Rewrite(filedat);
Repeat
for i:=1 to n do
y0[i]:=y[i];
Writeln (filedat,time:10:5,y[1]:11:3, y[2]:10:5,y[3]:11:3,
y[4]:11:3,y[5]:11:3,y[6]:13:9);
Write(time:10:5);
Write(y[1]:11:3);
Writeln(y[6]:11:7);
Right (time, y0,k1);
for i:=1 to n do y[i]:=y0[i]+0.5*htau*k1[i];
Right (time+0.5*htau,y,k2);
for i:=1 to n do y[i]:=y0[i]+0.5*htau*k2[i];
Right (time+0.5*htau,y,k3);
for i:=1 to n do y[i]:=y0[i]+htau*k3[i];
Right (time+htau,y,k4);
for i:=1 to n do y[i]:=y0[i]+htau*(k1[i]+2*k2[i]+2*k3[i]+k4[i])/6;
time:=time+htau;
until (y[1]<0) or (y[1]>H) or (y[2]<0) or (y[2]>L);
if (y[6]>delz) and (y[1]>H) then writeln
('chastica ne yspela sgoret do zoli');
if (y[6]<=delz) and (y[1]>H) then writeln
('chastica yspela sgoret do zoli');
Close(filedat);
END.
4.2 Результаты расчета
Рисунок 1.Зависимость темпeратуры от времени
Рисунок 2.Зависимость диаметра от времени
Рисунок 3.Траектория движения частицы
