Курсовой 11 вариант Литовченко / Отчёт по Курсовому Литовченко 11 вариант
.docМатематическая модель нагрева металла 3-х зонной методической печи
-
Постановка задачи
Определить распределение температуры нагреваемого металла в 3-х зонной методической проходной печи. Распределение температуры нагреваемого металла, описывается уравнением:
где - распределение температуры металла в проходной печи;
Начальная температура металла на входе в 1 – ую зону печи равна
Начальная температура металла на входе во 2 – ую зону печи равна температуре на выходе из 1 – ой зоны, а начальная температура на входе в 3 –ю зону печи равна температуре на выходе из 2 – ой зоны
Распределение температуры Tn() по длине методической печи в моменты времени в 1-ой зоне задано таблицей:
|
0 |
0,96 |
Tn() |
800 |
1100 |
Tn() = Tn() + (Tn()-Tn())*(-)/(-)
= x/(v*3600) v = 0,00445 0 ≤ x ≤ 15,4
Распределение температуры Tn() по длине методической печи в моменты времени во 2-ой зоне задано таблицей:
|
0,96 |
3,10 |
Tn() |
1100 |
1400 |
Tn() = Tn() + (Tn()-Tn())*(-)/(-) = x/(v*3600) v = 0,00445 15,4 ≤ x ≤ 49,6
Распределение температуры Tn() по длине методической печи в моменты времени в 3-ей зоне задано таблицей:
|
3,10 |
3,81 |
Tn() |
1400 |
1200 |
Tn() = Tn() + (Tn()-Tn())*(-)/(-)
= x/(v*3600) v = 0,00445 49,6 ≤ x ≤ 61,0
Общий расход топлива G вычисляется по формуле:
Tmax – максимальная температура в печи, град. С,
c – теплоемкость металла, Дж/(кг*град. С),
R – калорийность (или теплота сгорания) топлива, Дж/кг,
- температурный коэффициент полезного использования топлива.
-
Описание алгоритма:
Решаем задачу Коши методом Рунге-Кутта для каждой зоны отдельно, причем полученная температура на выходе из 1 – ой зоны является входной температурой металла для 2 – ой зоны и т.д.. На выходе из методической печи мы получим конечную температуру металла Tm(L).
Для решения уравнения по методу Рунге-Кутта длину каждой зоны делим на 50 частей, получаем дискретные точки xi+1 = xi + h, x0 = 0 (i = 0, 1, …, 39) вычисляем функцию Tm(xi) по формуле Рунге-Кутта:
Tm(i+1) = Tm[i]+(k1+2*k2+2*k3+k4)/6;
k1 = h*(Tn(x) - Tm[i]);
k2 = h*(Tn(x+h/2)-(Tm[i] + k1/2));
k3 = h*(Tn(x+h/2)-(Tm[i] + k2/2));
k4 = h*(Tn(x+h)-Tm[i] + k3);
Методом трапеций определяем расход топлива в методической печи.
Расход топлива определяется формулой (4).
Метод трапеций – метод, позволяющий приближенно вычислить определенный интеграл:
Если функция непрерывна на отрезке . Разобьем отрезок интегрирования на равных частей длиной каждая. Заменим функцию на каждом из участков , отрезком прямой проходящей через точки , , . Тогда определенный интеграл можно представить как сумму площадей трапеций с основаниями , и высотой.
3. Решение задачи в среде C#
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace CourseWork
{
class Program
{
static public double tau(double x)
{
return x / (3600 * 0.00445);
}
static public double T1(double t)
{
return 800 + ((1100 - 800) / (0.96 - 0)) * (t - 0);
}
static public double T2(double t)
{
return 1100 + ((1400 - 1100) / (3.10 - 0.96)) * (t - 0.96);
}
static public double T3(double t)
{
return 1400 + ((1200 - 1400) / (3.81 - 3.10)) * (t - 3.10);
}
public delegate double function(double x, double y);
static public double F1(double t, double y)
{
return T1(t) - y;
}
static public double F2(double t, double y)
{
return T2(t) - y;
}
static public double F3(double t, double y)
{
return T3(t) - y;
}
static public double[] RungeKutta(function f, double fa, double a, double b, int n)
{
double h = (b - a) / (n - 1);
double[] res = new double[n + 1];
res[0] = fa;
for (int i = 1; i <= n; ++i)
{
double x = a + (i - 1) * h,
y = res[i - 1];
double k1 = h * f(x, y),
k2 = h * f(x + h / 2, y + h * k1 / 2),
k3 = h * f(x + h / 2, y + h * k2 / 2),
k4 = h * f(x + h, y + h * k3);
double D = (k1 + 2 * k2 + 2 * k3 + k4) / 6;
res[i] = res[i - 1] + D;
}
return res;
}
static public double Tr(double[] f, double a, double b, int n)
{
int m = f.Length;
double result = (f[0] + f[m - 1]) / 2;
for (int j = 1; j < m - 1; j++)
{
result += f[j];
}
result *= (b - a) / n;
return result;
}
static void Main(string[] args)
{
double t1 = tau(0),
t2 = tau(15.4),
t3 = tau(49.6),
t4 = tau(61.0);
int n = 50;
double[] z1 = RungeKutta(F1, 20, t1, t2, n);
double[] z2 = RungeKutta(F2, z1[z1.Length - 1], t2, t3, n);
double[] z3 = RungeKutta(F3, z2[z2.Length - 1], t3, t4, n);
double[] G1 = new double[n];
double[] G2 = new double[n];
double[] G3 = new double[n];
for (int i = 0; i < n; ++i)
{
double s1 = (t2 - t1) / (n - 1);
double s2 = (t3 - t2) / (n - 1);
double s3 = (t4 - t3) / (n - 1);
G1[i] = (T1(t1 + i * s1) - z1[i]) / (1400 - z1[i]);
G2[i] = (T2(t2 + i * s2) - z2[i]) / (1400 - z2[i]);
G3[i] = (T3(t3 + i * s3) - z3[i]) / (1400 - z3[i]);
}
double G = (1400 * 0.7 * 3600 * 0.00445) / (0.8 * 20.9 * Math.Pow(10, 6)) * (Tr(G1, t1, t2, n) + Tr(G2, t2, t3, n) + Tr(G3, t3, t4, n));
Console.WriteLine(" РАСПРЕДЕЛЕНИЕ ТЕМПЕРАТУР МЕТАЛЛА ПО ЗОНАМ ПЕЧИ ");
Console.WriteLine();
Console.WriteLine(" ЗОНА 1 ЗОНА 2 ЗОНА 3 ");
Console.WriteLine();
Console.WriteLine(" Рас-ние Температура Рас-ние Температура Рас-ние Температура ");
Console.WriteLine(" от входа металла от входа металла от входа металла ");
Console.WriteLine();
for (int i = 0; i < n; ++i)
{
double x1 = 0,
x2 = 15.9,
x3 = 49.6,
x4 = 61.0;
Console.WriteLine(" {0,5:f2} {1,10:f3} {2,5:f2} {3,10:f3} {4,5:f2} {5,10:f3} ",
x1 + i * (x2 - x1) / n, z1[i],
x2 + i * (x3 - x2) / n, z2[i],
x3 + i * (x4 - x3) / n, z3[i]);
}
Console.WriteLine();
Console.WriteLine("РАСХОД ТОПЛИВА: G = {0:f6}", G);
Console.ReadKey();
}
}
}
Распределение температур по зонам печи.
4. Решение задачи в среде MathCAD
Первая Зона
Вторая Зона
Третья Зона
Расчет расхода
топлива