Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаба.Рунге.docx
Скачиваний:
2
Добавлен:
01.05.2025
Размер:
149.3 Кб
Скачать

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.Траектория движения частицы