Курсовая работа.Исследование влияния температуры газификации на процесс газификации топлива в кипящем слое - файл n1.docx

Курсовая работа.Исследование влияния температуры газификации на процесс газификации топлива в кипящем слое
скачать (518.5 kb.)
Доступные файлы (1):
n1.docx519kb.10.06.2012 21:14скачать

n1.docx

Министерство Образования и науки Российской Федерации

Новосибирский Государственный Технический Университет

Кафедра Тепловых Электрических Станций

ngtu

Курсовой проект по предмету «Математическое моделирование»:

«Исследование влияния температуры газификации на процесс газификации топлива в КС»

Факультет: Энергетики

  1. Аннотация

В данном курсовом проекте представлена программа, написанная в Microsoft Visual 2008 на языке С#, в ходе которой проведены исследования влияния температуры газификации на процесс газификации в кипящем слое, а именно на состав генераторного газа и выбрана оптимальная температура газификации.

Annotation

In this course project presented a program written in Microsoft Visual 2008 in the language С#, in which we studied the influence of temperature on the gasification process of gasification in a fluidized bed, namely the composition of the gas generator and to select the optimal temperature gasification.

Содержание:

  1. Аннотация_________________________________________________2

  2. Введение__________________________________________________4

  3. Описание математической модели____________________________6

    1. Описание входных данных______________________________6

    2. Описание процедур расчета _____________________________6

    3. Условные обозначения__________________________________7

    4. Исходные данные для расчета____________________________8

    5. Расчет процесса газификации_____________________________9

    6. Описание выходных данных_____________________________12

  4. Описание интерфейса программы _____________________________14

  5. Результаты моделирования___________________________________17

  6. Модуль ввода входных данных _______________________________23

  7. Выводы ___________________________________________________35

  8. Список литературы _________________________________________36



  1. Введение

Под кипящим (псевдоожиженным, взвешенным) слоем (КС) в дальнейшем будем подразумевать гетерогенную систему с равномерно распределенными твердыми частицами в сплошной газовой среде, в которой каждая частица находится в равновесии под действием силы тяжести и силы гидродинамического воздействия движущейся сплошной среды (воздуха).

Иными словами кипящий слой – специфическое состояние слоя мелкозернистого материала, продуваемого снизу потоком газа со скоростями, обеспечивающими интенсивное движение частиц, но недостаточными для их выноса из аппарата.

Технологию сжигания в КС можно условно разделить на два типа – низкотемпературное (бесшлаковую) и высокотемпературное (с образованием шлака). Необходимо отметить одну из важнейших особенностей низкотемпературных топочных устройств КС – простату их эксплуатации. При прекращении подачи дутья и угля слой не спекается, так как в основном состоит из инертного материала – минеральной части топлива, температура которого ниже температуры плавления или размягчения. Поскольку тепло в слое сохраняется в крупных топках в течении многих часов, повторный пуск сводится к возобновлению подачи дутья и угля.

Таким образом, окислитель – воздух выполняет одновременно две функции: как рабочее тело, передающее механическую энергию для перемешивания частиц, и как теплоноситель, передающий тепло от его источника перемешиваемым частицам. Непрерывность процесса псевдоожижения дает возможность вводить в слой и выводить из него твердые частицы без существенных затруднений.

В последнее время возрастает значение газификации твердых топлив как энергосберегающего направления теплоиспользования. Газификации следует рассматривать как метод преобразования биомассы и низкосортных углей в энергоноситель высшего качества – горючий газ. Процесс газификации близок к процессу горения и по существу является окислением топлива при недостатке кислорода (при коэффициенте избытка воздуха меньше единицы).

Газификация – это термохимический процесс неполного окисления органической массы твердого топлива кислородом и водяным паром с целью получения горючих газов (СО, H2, СН4 и т.д.) для последующего сжигания – генераторный газ (энергетический).

Производство генераторного газа целесообразно во всех частях РФ благодаря его следующим особенностям:

Одной из проблем газификации угля в КС является поддержание приемлемой тепловой экономичности процесса, зависящей от величины потерь топлива с уносом. Попытки газификации малозольных углей в КС приводили к неизбежному уносу мелких коксовых остатков газовым потоком и существенной потере углерода. Исследования показали, что оптимальной зольностью топлива для газификации или (сжигания) в КС является топливо с зольностью ~30%. Существует реальная возможность 100%-го превращения органической части топлива в химическую энергию горючего газа при близких к нулю потерях углерода с уносом.

  1. Описание математической модели

3.1. Описание входных данных

Входной параметр один, так как исследуется влияние только одного параметра – температуры газификации. Он задается в определенном интервале: 600-1000°С. Нижний предел температуры обусловлен эффективностью и устойчивостью горения. Вместе с тем, слишком высокая температура в реакционном пространстве может вызвать плавление минеральной части топлива, что может привести к шлакованию топочного устройства. Это не только снижает скорость горения частицы топлива, но и исключает возможность дальнейшего ведения процесса (в том случае, если шлак своевременно не выводится из топки).

    1. Описание процедур расчета

В процессе горения и газификации частицы топлива внутри ее зольного каркаса перемещается локализованный фронт горения углерода – остальными горючими компонентами коксового остатка пренебрегаем ввиду их малости. На фронте горения происходят гетерофазные реакции окисления углерода:

С+О2=СО2

С+СО2=2СО

С+Н2О=СО+Н2

В ходе встречной диффузии происходят газофазные реакции

СО+ Н2О= СО2+ Н2

СО+3 Н2=СН4+ Н2О

Введем следующие допущения:

1. В процессе встречной диффузии устанавливается равновесие реакции

СО+ Н2О= СО2+ Н2

2. Протекание реакции СО+3 Н2=СН4+ Н2О, так же как и реакцией С+Н2=СН4 можно пренебречь, в подтверждении чего является низкое содержание СН4 в генераторном газе

Для дальнейших расчетов целесообразно просуммировать реакции С+Н2О=СО+Н2 и СО+ Н2О= СО2+ Н2 в результате получим реакцию

С+ 2Н2О=СО22

    1. Условные обозначения

Sr0 – концентрация серы органических соединений в рабочей массе топлива, масс. %;

Dp – диаметр реактора, м

Hсл – высота кипящего слоя в реакторе, м

dч – диаметр частицы топлива, м

H2Oохл – расход воды на охлаждение КС в кг на кг угля

Hисп – теплота испарения воды, равная 2271 кДж/кг

Vд – расход дутья, нм3

Wд – влажность дутья, г/нм3

Tд – температура дутья, 0С

Tсл – температура кипящего слоя, 0С

Bт – теоретический расход топлива, кг/с

Bтmax – максимально допустимый расход топлива, при котором обеспечена полнота его окисления в реакторе, кг/с

Cг – концентрация кислорода в газовой фазе, моль/м3

c(CO), c(H2), c(H2S) – средние теплоемкости оксида углерода, водорода, сероводорода и дутья соответственно, кДж/нм3

C(CO2), C(CO), C(H2), C(H2O), C(N2), C(H2S) – объемные концентрации компонентов в генераторном газе

Hпр.газ –теплосодержание продуктов газификации (генераторного газа и золы), МДж/кг топлива

J(CO2), J(H2O), J(N2) – теплосодержание диоксида углерода, паров воды и азота, кДж/кг

Jзл – теплосодержание золы, кДж/кг

k – константа равновесия реакции

[N2] – концентрация азота в дутье, об. %

[O2] –концентрация кислорода в дутье, об. %

Qгаз – теплота процесса газификации, МДж/кг топлива

Tгаз – температура процесса газификации, 0С

q4 – механическая неполнота сгорания топлива по углероду, масс. %

R(O2), R(C), R(N2), R(H2Oвх) – потоки соответствующих элементов на входе в реактор, моль/с

R(H2), R(H2Oвых), R(CO2), R(CO), R(N2вых), R(H2S) - потоки соответствующих элементов на выходе из реактора, моль/с

r(O2), r(C), r(N2), r(H2Oвх), r(H2), r(H2Oвых), r(CO2), r(CO), r(N2вых), r(H2S) – те же потоки, отнесенные к единичному расходу топлива, моль/кг

V(CO2), V(CO), V(H2), V(H2O), V(N2), V(H2S) – объемы компонентов генераторного газа в расчете на кг топлива, нм3/кг

Rд – объемный расход дутья, л/мин, м3

? – степень конверсии воды, равная отношению числа молекул воды вступивших в реакции газификации, к их общему числу

? – порозность КС, при псевдоожижении близкая к 0.4

?т – объемная концентрация углерода в коксовом остатке, моль/м3

iд – физическое тепло дутья, Дж/кг

?каж – кажущаяся плотность частицы топлива, кг/м3

?ок – время окисления частицы топлива, с

    1. Исходные данные для расчета

Топливо - высокозольный промпродукт углей марок Г и Д производственного объединения «Павлоградуголь» со следующими характеристиками:

Wrt=2,3%,

Ar=43,3%,

Srt=1,6% (Sro= Srt/2=0,8%),

Cr=47,2%,

Hr=1,8%,

Nr=0,8%,

Or=5,7%,

Vdaf = 41,9%,

Qri=17,18МДж/кг

Величина ?каж для этого угля принята равной 1600 кг/м3 (типичной для каменных углей). Уголь крупностью до 2 мм (dч?0,002м) газифицируется кипящем слое при Bт=0,2 г/с, Rд=30л/мин(при температуре 20°С и [О2] =21,0 об %), Н2Оохл=0,2 кг/кг, Wд =10г/нм3 Dp=0,04 м, Hсл=0,04 м, Tд=20°С

3.5. Расчет процесса газификации

1. Расчет Bтmax

1.1 Расчет объемной концентрации углерода в коксовом остатке проведем по формуле:

?т =?каж(1- Ar/100-Wr/100) (1- Vdaf/100)/0,1201.

?т =1600(1- 0,433-0,023) (1- 0,419)/0,1201=4,21·104 моль/м3

1.2 Величину Tсл ориентировочно примем равной 850 °С, тогда объемная концентрация кислорода в газовой фазе составит:

Cг = ([О2]/100) ·273/[ (Tсл+273)0,0224]=2,28 моль/м3.

1.3 Расчет времени окисления частицы высокозольного топлива ?ок проведем по соотношению:

?ок= (?т dч2)/24 Cг Dээф) при величине Dээф=2,7·10-5 м2

?ок=4,21·104 (0,002)2/(24·2,28·2,7·10-5)=114 с

1.4 Расчет Bтmax проведем по формуле:

Bтmax= Vсл· ? · ?каж/(1,1 ?ок)

Bтmax= (3,14/4) ·0,042 ·0,04 ·0,4 ·1600/(1,1 ·114)=0,28 ·10-3 кг/с

Величина Bт< Bтmax, то есть частица топлива должна окисляться полностью, поэтому можно принять величину q4=5%что характерно для термической переработка топлива в кипящем слое.

2. Расчет расходных параметров

2.1 Рассчитываем Vд по формуле:

Vд= Rд273/[ Bт(Tд+273)]=(30/60)273/[ 0,2(20+273)]=2,33 нм3/кг

2.2 Рассчитываем rc по формуле:

rc=RC/ Bт=(Cг/1,201)(1-q4/100)=(47,2/1,201)(1-5/100)=37,3 моль/кг

2.3 Рассчитываем отношения R(O2)/RC, RH2Oвх/RC, и
R(N2вх) /RC:

R(O2)/RC=(0,466 Vд2]д+0,312 Or-2,48 Hr+0,156Sro)/ rc=

= 0,466 ·2,33 ·21,0+0,312·5,7-2,48 ·1,8+0,156 ·0,8)/ 37,7=0,516

RH2Oвх/RC= [0,555(Wr+100 H2Oохл+0,1 Vд Wд)+0,94 Nr-0,311Sr]/ rc =

=[0,555(2,3+100·0,2+0,1·10·2,33)+4,96·1,8-0,311·0,8]/37,3=0,599

RN2вх/RC=0,446 Vд [N2] · rc=0,466·2,33·79,0/37,3=2,2

3. Расчет равновесных температур газификации и состава генераторного газа.

3.1 Выберем величину Тгаз=900°С

3.2 Соответствующее значение k для реакции СО+ Н2О= СО2+ Н2 для выбранной температуры 0,7553. Для определения остальных значения скорости реакции воспользуемся интерполяцией.

3.3 Вычисляем начальное значение ?= ?’, решая уравнение а ?2+b ?+c=0, коэффициенты которого задаются формулами

а= (RH2O/RC)вх(1-k) ;

а=0,599(1-0,7553)=0,147

b = [R(O2)/RC] (1-k) - (1-2k) + (RH2O/RC)k;

b =2·0,516·(1-0,7553) – 1+2·0,7553+0,599·0,7553=1,21

с= - 2 k(1- RO2/RC);

с= - 2·0,7553 (1-0,516)= - 0,731

Вычисляем ?’=[-b +(b2-4ac)0.5]/(2a) – этот корень выбран из условия положительной определенности ?

?’=[-1,21+(1,212+4·0,147·0,731)0,5]/(2·0,147)=0,565

3.4 Вычисляем выходные потоки компонентов полученного генераторного газа:

R(СO2)/RC=2 R(O2)/RC+ ? RH2Oвх/RC-1=

=2·0,516+0,565·0,599-1=0,370

R(СO)/RC=2-2·0,564-0,565·0,599=0,630

RH2/RC= ? RH2Oвх/RC=0,565·0,599=0,338

RH2Oвых/RC=(1- ?) RH2Oвых/RC=(1-0,565) ·0,600=0,261

RN2вых/ RC=(0,446) Vд [N2] +0,357 Nr)/ rc=

=(0,446 ·2,33 ·79,0+0,357 ·0,8)/37,3=2,21

RH2S/RC=0,00699Sr/ rc=0,00699·0,8/37,3=0,00015.

Видно, что в дальнейших расчетах наличием сероводорода в генераторном газе можно пренебречь.

3.5 Рассчитываем объемы, компонентов генераторного газа, приходящиеся на 1 кг окисленного топлива, умножая полученные выше потоки на произведение 0,0224 rc=0,836 нм3/кг.

V(CO2)=0,370 ·0,836=0,310 нм3/кг

V(CO)=0,630·0,836=0,527 нм3/кг

V(Н2)=0,338·0,836=0,218 нм3/кг

V(H2O)=0,261·0,836=0,218 нм3/кг

V(N2) =2,21·0,836=1,847 нм3/кг

3.6 Рассчитываем теплосодержание продуктов газификации

Нпр.газа=V(CO2) ·J(CO2)+V(H2O) ·[J(H2O)+Hисп]+ V(N2) ·J(N2)+Jзл· Ar/100+ +V(CO) ·С(CO) ·Тгаз+ V(Н2) ·С(Н2) Тгаз+ V(Н2S) ·С(Н2S) Тгаз

при этом воспользуемся данными о величинах теплосодержаний и средних теплоемкостей:

J(CO2)=1961кДж/нм3

J(H2O)=1526 кДж/нм3

J(N2)=1247 кДж/нм3

Jзл=875 кДж/кг

С(CO)=1,397 кДж/(нм3К)

С(Н2)=1,325 кДж/(нм3К)

С(Н2S)=1,818 кДж/(нм3К)

Нпр.газа=0,310·1961+0,218(1526+2271)+1,847·1247+875·43,3/100+

+0,527·1,397·900+0,2883·1,325·900=4888,3 кДж/кг

3.7 Определяем qпот как потери объема кипящего слоя с температурой Тгаз, экранированного непрозрачными (загрязненными) стенками реактора, излучением в окружающую среду с температурой окружающей среды Токр.ср.=20°С, отнесенные к расходу топлива, по формуле:

qпот=?в·0,5·?[(Тгаз+273)4-( Токр.ср+273)4]·Sсл/Bт, ?в=5,7·10-8 Вт/(м2·с·К4)

Степень черноты ?, слоя и стенок реактора определяется свойствами поверхности частиц топлива и загрязнений на стенках реактора. Примем ее равной 0,8. Кроме того для рассмотренного реактора

Sсл=?·D·H+2 ?· D2/4 = 3,141·0,04·0,04+3,141·0,042/2=0,00754 м2.

Окончательное выражение имеет вид:

qпот=2,28· 10-8[(Тгаз+273)4-( Токр.ср+273)4]·Sсл/Bт=

2,28·10-8[11734-2934]·0,00754/0,0002=1630 кДж/кг

3.8 Определяем Qгаз по формуле:

Qгаз=483,9(2,48 Hr-0,312 Or-0,156 Sro)+ rc(564,7 R(O2)/RC+

+41,1 ? RH2Oвх/RC-172,2)= 483,9(2,48 ·1,8-0,312· 5,7-0,156· 0,8)+

+ 37,3(564,7 · 0,516+41,1 · 0,516· 0,600-172,2)= 6203,4кДж/кг

    1. Описание выходных данных

Выходные данные представлены двумя способами: в виде таблице в которой отображаются данные расчета, но для одной температуры, введенной пользователем. В таблицу выводятся следующие значения: расход дутья; поток углерода, отнесенный к единичному расходу топлива; поток кислорода, отнесенный к потоку углерода на входе в реактор; поток водяных паров, отнесенный к потоку углерода на входе в реактор; поток азота, отнесенный к потоку углерода на входе в реактор; константа равновесия; коэффициенты а, б, с уравнения; квадратный корень уравнения; поток углекислого газа, отнесенный к потоку углерода на выходе из реактора; поток окиси углерода, отнесенный к потоку углерода на выходе из реактора; поток водорода, отнесенный к потоку углерода на выходе из реактора; поток водяных паров, отнесенный к потоку углерода на выходе из реактора; объем углекислого газа, приходящийся на 1 кг окисленного топлива; объем окиси углерода, приходящийся на 1 кг окисленного топлива; объем водорода, приходящийся на 1 кг окисленного топлива; объем водяных паров, приходящихся на 1 кг окисленного топлива; удельное теплосодержание углекислого газа; удельное теплосодержание влаги; удельное теплосодержание азота, удельное теплосодержание золы; средняя теплоемкость окиси углерода; средняя теплоемкость водорода; средняя теплоемкость сероводорода; теплосодержание продуктов газификации; потери объема кипящего слоя; теплота процесса газификации. И в виде графиков для температур в интервале 600-1000°С с шагом, выбираемым опять же пользователем. Графики отображают зависимость следующих величин от температуры газификации: потери объема кипящего слоя; объемы компонентов генераторного газа (водяных паров, окиси углерода, углекислого газа, водорода); теплота процесса газификации.

  1. Описание интерфейса программы



Окно программы состоит из трех вкладок. На первой вкладке, которая называется «Начальные данные» есть кнопка «Расчет», поле для ввода температуры газификации, при введении температуры не из интервала 600-1000°С программа выдает предупреждение с предложением ввести корректное число.



Во вторую вкладку под название «Расчет» выводится таблица с данными расчета.



На третьей вкладки «Графики» пользователь имеет возможность параметр, зависимость которого от температуры он хочет узнать. При нажатии клавиши «Построить график» в поле построения графика строится график

  1. Результаты моделирования



Как мы видим из графика, потери объема кипящего слоя с температурой газификации возрастает почти по экспоненте. Что объясняется законом лучистого теплообмена от стенок реактора.



Теплота процесса газификации почти не зависит от температуры этого процесса. Это связанно с тем, что константа равновесия реакции СО+ Н2О= СО2+ Н2 с изменение температуры изменяется в узких пределах, а так же не оказывает существенного влияния на входные потоки кислорода и влаги.



Объем водяных паров увеличивается с увеличением температуры газификации, но в очень узких пределах.



Объем водорода в генераторном газе с повышением температуры уменьшается. Как известно балластные компоненты уменьшают взрывоопасность газа, то есть с повышением температуры это опасность возрастает.



Объем окиси углерода с повышением температуры так же повышается. Это вещество является активным загрязнителем атмосферы, однако целью газификации является получение горючих газов, коим и является окись углерода.



Объем углекислого газа с увеличением температуры газификации снижается. Являясь балластом, углекислый газ приводит к сужению пределов воспламеняемости, а значит, уменьшает взрывоопасность. Таким образом, повышение температуры повышает опасность взрыва.



  1. Модуль ввода входных данных

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

using System.Collections;
namespace WindowsApplication2

{

public partial class Form1 : Form

{
Параметр[] входныеПараметры = new Параметр[50];
public Form1()

{

InitializeComponent();

}
private void Form1_Load(object sender, EventArgs e)

{
}

private void button2_Click(object sender, EventArgs e)

{
dataGridView2.Rows.Clear();
if (Convert.ToDouble(textBox4.Text) < 600 ^

Convert.ToDouble(textBox4.Text) > 1000)

{

label1.Text = "Введите корректное число, расчеты будут не верны!!!(см.пояснительную записку)";

}

else

{

label1.Text = "";

}
double Ty = НайтиПараметрПоID("Ty");
Параметр p = Формула.Формула_6_9(Ty);

Параметр p1 = Формула.Формула_6_10(p.Значение);

Параметр p2 = Формула.Формула_6_11(p.Значение, p1.Значение);

Параметр p3 = Формула.Формула_6_12(p.Значение, p1.Значение);

Параметр p4 = Формула.Формула_6_13(p.Значение, p1.Значение);
double Tгаз = 0;

Tгаз = Convert.ToDouble(textBox4.Text);

Параметр p5 = Формула.Формула_6_14(Tгаз);

Параметр p6 = Формула.Формула_6_15(p3.Значение, p5.Значение);

Параметр p7 = Формула.Формула_6_16(p2.Значение, p5.Значение, p3.Значение);

Параметр p8 = Формула.Формула_6_17(p5.Значение, p2.Значение);

Параметр p9 = Формула.Формула_6_18(p7.Значение, p6.Значение, p8.Значение);

Параметр p10 = Формула.Формула_6_19(p2.Значение, p9.Значение, p3.Значение);

Параметр p11 = Формула.Формула_6_20(p2.Значение, p9.Значение, p3.Значение);

Параметр p12 = Формула.Формула_6_21(p9.Значение, p3.Значение);

Параметр p13 = Формула.Формула_6_22(p9.Значение, p3.Значение);

Параметр p14 = Формула.Формула_6_23(p10.Значение);

Параметр p15 = Формула.Формула_6_24(p11.Значение);

Параметр p16 = Формула.Формула_6_25(p12.Значение);

Параметр p17 = Формула.Формула_6_26(p13.Значение);

Параметр p18 = Формула.Формула_6_27(Tгаз);

Параметр p19 = Формула.Формула_6_28(Tгаз);

Параметр p20 = Формула.Формула_6_29(Tгаз);

Параметр p21 = Формула.Формула_6_30(Tгаз);

Параметр p22 = Формула.Формула_6_31(Tгаз);

Параметр p23 = Формула.Формула_6_32(Tгаз);

Параметр p24 = Формула.Формула_6_33(Tгаз);

Параметр p25 = Формула.Формула_6_34(p14.Значение, p18.Значение, p17.Значение, p19.Значение, p20.Значение, p21.Значение, p15.Значение, p22.Значение, Tгаз, p16.Значение, p23.Значение);

Параметр p26 = Формула.Формула_6_35(Tгаз);

Параметр p27 = Формула.Формула_6_36(p1.Значение, p2.Значение, p9.Значение, p3.Значение);

Параметр p28 = Формула.Формула_6_37(Tгаз, p1.Значение, p2.Значение, p3.Значение);
ВыведиПараметрВТаблицуРасчетов(p);

ВыведиПараметрВТаблицуРасчетов(p1);

ВыведиПараметрВТаблицуРасчетов(p2);

ВыведиПараметрВТаблицуРасчетов(p3);

ВыведиПараметрВТаблицуРасчетов(p4);

ВыведиПараметрВТаблицуРасчетов(p5);

ВыведиПараметрВТаблицуРасчетов(p6);

ВыведиПараметрВТаблицуРасчетов(p7);

ВыведиПараметрВТаблицуРасчетов(p8);

ВыведиПараметрВТаблицуРасчетов(p9);

ВыведиПараметрВТаблицуРасчетов(p10);

ВыведиПараметрВТаблицуРасчетов(p11);

ВыведиПараметрВТаблицуРасчетов(p12);

ВыведиПараметрВТаблицуРасчетов(p13);

ВыведиПараметрВТаблицуРасчетов(p14);

ВыведиПараметрВТаблицуРасчетов(p15);

ВыведиПараметрВТаблицуРасчетов(p16);

ВыведиПараметрВТаблицуРасчетов(p17);

ВыведиПараметрВТаблицуРасчетов(p18);

ВыведиПараметрВТаблицуРасчетов(p19);

ВыведиПараметрВТаблицуРасчетов(p20);

ВыведиПараметрВТаблицуРасчетов(p21);

ВыведиПараметрВТаблицуРасчетов(p22);

ВыведиПараметрВТаблицуРасчетов(p23);

ВыведиПараметрВТаблицуРасчетов(p24);

ВыведиПараметрВТаблицуРасчетов(p25);

ВыведиПараметрВТаблицуРасчетов(p26);

ВыведиПараметрВТаблицуРасчетов(p27);


}

private void ВыведиПараметрВТаблицуРасчетов(Параметр p)

{

dataGridView2.Rows.Add(dataGridView2.Rows.Count, p.Имя, p.Ед_Изм, p.Значение.ToString("F3"));

}

//поиск в масиве входных данных параметра по его ID

private double НайтиПараметрПоID(string p)

{

for (int i = 0; i < входныеПараметры.Length; i++)

{

Параметр п = входныеПараметры[i];

if (п != null)

if (п.ID == p)

return п.Значение;

}

return 0;

}


ArrayList x_array = new ArrayList();

ArrayList y_array = new ArrayList();

private void button3_Click(object sender, EventArgs e)

{

x_array.Clear();

y_array.Clear();
//.Replace(".", ",")) заменяем точку на запятую

double minX = double.Parse(textBox1.Text.Replace(".", ","));

double maxX = double.Parse(textBox2.Text.Replace(".", ","));

double step = double.Parse(textBox3.Text.Replace(".", ","));
for (double x = minX; x < maxX; x = x + step)

{
x_array.Add(x);
try

{
if (comboBox2.SelectedItem == "Потерь объема кипящего слоя")

{

double y = Формула.Формула_6_35(x).Значение;

y_array.Add(y);

}

else if (comboBox2.SelectedItem == "Теплоты процесса газификации")

{

double y = Формула.Формула_6_37(x, 37.3355, 0.51712, 0.59858).Значение;

y_array.Add(y);

}
else if (comboBox2.SelectedItem == "Объема водяных паров")

{

double y = Формула.Формула_6_38(x).Значение;

y_array.Add(y);

}
else if (comboBox2.SelectedItem == "Объёма водорода")

{

double y = Формула.Формула_6_39(x).Значение;

y_array.Add(y);

}
else if (comboBox2.SelectedItem == "Объёма окиси углерода")

{

double y = Формула.Формула_6_40(x).Значение;

y_array.Add(y);

}
else if (comboBox2.SelectedItem == "Объёма углекислого газа")

{

double y = Формула.Формула_6_41(x).Значение;

y_array.Add(y);

}

else

{

y_array.Add(0.0);

}

}

catch { y_array.Add(0.0); }


}
panel2.Refresh();
}
private void panel2_Paint(object sender, PaintEventArgs e)

{

double xMax = ПоискМаксимумаВ_Масиве(x_array);

double yMax = ПоискМаксимумаВ_Масиве(y_array);

double yMin = ПоискМинимумаВ_Масиве(y_array);
label8.Text = yMax.ToString("f1"); //выводим в label8 максимальное значение У

label9.Text = yMin.ToString("f1"); //выводим в label9 минимальное значение У

double d = yMax - yMin;
double x_step = panel2.Width / xMax; //масштаб по ширине

double y_step = panel2.Height / (yMax + yMin); //масштаб по высоте
//получаем область на которой будем рисовать график

Graphics g = e.Graphics;

if (y_step != double.NaN && y_step != double.NegativeInfinity && y_step != double.PositiveInfinity)

{

for (int i = 1; i < x_array.Count; i++)

{


//координата первой точки

double x1 = (double)x_array[i - 1] * x_step - 600 * x_step;

double y1 = panel2.Height-(double)y_array[i-1] * y_step;


//координата второй точки

double x2 = (double)x_array[i] * x_step - 600 * x_step;

double y2 = panel2.Height - (double)y_array[i] * y_step;
g.DrawLine(Pens.Black, (float)x1+1, (float)y1-1, (float)x2+1, (float)y2-1);
g.DrawString(x_array[i].ToString(), new Font("Arial", 6), Brushes.Blue, new Point((int)x1, panel2.Height - 10));
}

}

}
private double ПоискМинимумаВ_Масиве(ArrayList massiv)

{

double max = 1000000;
for (int i = 0; i < massiv.Count; i++)

{

max = Math.Min(max, (double)massiv[i]);

}
return max;

}
private double ПоискМаксимумаВ_Масиве(ArrayList massiv)

{

double max = -1000000;
for (int i = 0; i < massiv.Count; i++)

{

max = Math.Max(max, (double)massiv[i]);

}
return max;

}
private void comboBox2_SelectedIndexChanged(object sender, EventArgs e)

{
}
private void dataGridView2_CellContentClick(object sender, DataGridViewCellEventArgs e)

{
}

}

}

using System;

using System.Collections.Generic;

using System.Text;
namespace WindowsApplication2

{

class Формула

{

internal static Параметр Формула_6_9(double Ty)

{

double Rд = 0.5;

double Bт = 0.2;

double Tд = 293;
double Vд = Rд * 273 / (Bт * Tд);

Параметр pVд = СоздатьПараметр("Vд", "нм3/кг", Vд, "Расход дутья");
return pVд;

}
static private Параметр СоздатьПараметр(string p, string p_2, double Vд, string p_4)

{

Параметр п = new Параметр();

п.ID = p;

п.Ед_Изм = p_2;

п.Значение = Vд;

п.Имя = p_4;
return п;
}
internal static Параметр Формула_6_10(double Ty)

{

double Cr = 47.2;

double q4 =5;

double rC = (Cr/1.201) * (1 - (q4/100));
Параметр prC = СоздатьПараметр("rC", "моль/кг", rC, "Поток углерода к еденичному расходу топлива");
return prC;

}
internal static Параметр Формула_6_11(double Vд, double rC)

{

double Sr0 = 0.8;

double Or = 5.7;

double Hr = 1.8;

double O2 = 21;
double RO2kRC = (0.446 * Vд * O2 + 0.321 * Or - 2.48 * Hr + 0.156 * Sr0) / rC;
Параметр pRO2kRC = СоздатьПараметр("RO2/rC", "-", RO2kRC, "Отношение потока кислорода к потоку углерода на входе в реактор");
return pRO2kRC;

}
internal static Параметр Формула_6_12(double Vд, double rC)

{

double Wr = 2.3;

double Sr0 = 0.8;

double Hr = 1.8;

double H2Oохл = 0.2;

double Wд = 10;
double RH2OвхkRC = (0.555 * (Wr + 100 * H2Oохл + 0.1 * Vд * Wд) + 4.96 * Hr - 0.311 * Sr0) / rC;
Параметр pRH2OвхkRC = СоздатьПараметр("RH2Oвх/RC", "-", RH2OвхkRC, "Поток воды паров к потоку углерода на входе в реактор");
return pRH2OвхkRC;

}
internal static Параметр Формула_6_13(double Vд, double rC)

{

double N2 = 79;
double RN2вхkRC = 0.446 * Vд * N2 / rC;
Параметр pRN2вхkRC = СоздатьПараметр("RN2вх/RC", "-", RN2вхkRC, "Поток азота к потоку углерода на входе в реактор");
return pRN2вхkRC;

}
internal static Параметр Формула_6_14(double Tгаз)

{

double k = 2.553 - (0.00493425 * (Tгаз - 600));
Параметр pk = СоздатьПараметр("k", "-", k, "Константа равновесия");
return pk;

}
internal static Параметр Формула_6_15(double RH2OвхkRC, double k)

{

double a = RH2OвхkRC * (1 - k);
Параметр pa = СоздатьПараметр("a", "-", a, "Коэффициент a");
return pa;

}
internal static Параметр Формула_6_16(double RO2kRC, double k, double RH2OвхkRC)

{

double b = 2 * RO2kRC * (1 - k) - (1 - 2 * k) + (RH2OвхkRC * k);
Параметр pb = СоздатьПараметр("b", "-", b, "Коэффициент b");
return pb;

}
internal static Параметр Формула_6_17(double k, double RO2kRC)

{

double c = -2 * k * (1 - RO2kRC);
Параметр pc = СоздатьПараметр("c", "-", c, "Коэффициент c");
return pc;

}
internal static Параметр Формула_6_18(double b, double a, double c)

{

double lштр = (-b + Math.Pow((Math.Pow(b, 2) - 4 * a * c), 0.5)) / (2 * a);
Параметр plштр = СоздатьПараметр("lштр", "-", lштр, "Квадратный корень ур-ия");
return plштр;

}
internal static Параметр Формула_6_19(double RO2kRC, double lштр, double RH2OвхkRC)

{

double RCO2kRC = (2 * RO2kRC) + (lштр * RH2OвхkRC) - 1;
Параметр pRCO2kRC = СоздатьПараметр("RCO2/RC", "-", RCO2kRC, "Поток углекислого газа к потоку углерода на выходе из реактора");
return pRCO2kRC;

}
internal static Параметр Формула_6_20(double RO2kRC, double lштр, double RH2OвхkRC)

{

double RCOkRC = 2 - 2 * RO2kRC - lштр * RH2OвхkRC;
Параметр pRCOkRC = СоздатьПараметр("RCO/RC", "-", RCOkRC, "Поток окиси углерода к потоку углерода на выходе из реактора");
return pRCOkRC;

}
internal static Параметр Формула_6_21(double lштр, double RH2OвхkRC)

{

double RH2kRC = lштр * RH2OвхkRC;
Параметр pRH2kRC = СоздатьПараметр("RH2/RC", "-", RH2kRC, "Поток водорода к потоку водорода н выходе из реактора");
return pRH2kRC;

}
internal static Параметр Формула_6_22(double lштр, double RH2OвхkRC)

{

double RH2OвыхkRC = (1 - lштр) * RH2OвхkRC;
Параметр pRH2OвыхkRC = СоздатьПараметр("RH2Oвых/RC", "-", RH2OвыхkRC, "Потока водяных паров к потоку углерода на выходе из реактора");
return pRH2OвыхkRC;

}
internal static Параметр Формула_6_23(double RCO2kRC)

{

double VCO2 = RCO2kRC * 0.836;
Параметр pVCO2 = СоздатьПараметр("VCO2", "нм3/кг", VCO2, "Объем углекислого газа на один кг. окисленного топлива");
return pVCO2;

}
internal static Параметр Формула_6_24(double RCOkRC)

{

double VCO = RCOkRC * 0.836;
Параметр pVCO = СоздатьПараметр("VCO", "нм3/кг", VCO, "Объем окиси углерода на один кг. окисленного топлива");
return pVCO;

}
internal static Параметр Формула_6_25(double RH2kRC)

{

double VH2 = RH2kRC * 0.836;
Параметр pVH2 = СоздатьПараметр("VH2", "нм3/кг", VH2, "Объем водорода на один кг. окисленного топлива");
return pVH2;

}
internal static Параметр Формула_6_26(double RH2OвыхkRC)

{

double VH2O = RH2OвыхkRC * 0.836;
Параметр pVH2O = СоздатьПараметр("VH2O", "нм3/кг", VH2O, "Объем водяных паров на один кг. окисленного топлива");
return pVH2O;

}
internal static Параметр Формула_6_27(double Tгаз)

{

double JCO2 = 2.455 * (Tгаз - 600) + 1231;
Параметр pJCO2 = СоздатьПараметр("JCO2", "кДж/нм3", JCO2, "Удельное теплосодержание углекислого газа");
return pJCO2;

}
internal static Параметр Формула_6_28(double Tгаз)

{

double JH2O = 1.885 * (Tгаз - 600) + 969;
Параметр pJH2O = СоздатьПараметр("JH2O", "кДж/нм3", JH2O, "Уд. тепл-ие водяных паров");
return pJH2O;

}
internal static Параметр Формула_6_29(double Tгаз)

{

double JN2 = 1.475 * (Tгаз - 600) + 808;
Параметр pJN2 = СоздатьПараметр("JN2", "кДж/нм3", JN2, "Уд. тепл-ие азота");
return pJN2;

}
internal static Параметр Формула_6_30(double Tгаз)

{

double Jзл = 1.06 * (Tгаз - 600) + 560;
Параметр pJзл = СоздатьПараметр("Jзл", "кДж/кг", Jзл, "Уд. тепл-ие золы");
return pJзл;

}
internal static Параметр Формула_6_31(double Tгаз)

{

double cCO = 0.000135 * (Tгаз - 600) + 1.357;
Параметр pcCO = СоздатьПараметр("cCO", "кДж/нм3*К", cCO, "Средняя теплоемкость окиси углерода");
return pcCO;

}
internal static Параметр Формула_6_32(double Tгаз)

{

double cH2 = 0.0000525 * (Tгаз - 600) + 1.307;
Параметр pcH2 = СоздатьПараметр("cH2", "кДж/нм3*К", cH2, "Ср. теплоемкость водорода");
return pcH2;

}
internal static Параметр Формула_6_33(double Tгаз)

{

double cH2S = 0.00035 * (Tгаз - 600) + 1.71;
Параметр pcH2S = СоздатьПараметр("cH2S", "кДж/нм3*К", cH2S, "Ср. теплоемкость сероводорода");
return pcH2S;

}
internal static Параметр Формула_6_34(double VCO2, double JCO2, double VH2O, double JH2O, double JN2, double Jзл, double VCO, double cCO, double Tгаз, double VH2, double cH2)

{

double Hисп = 2271;

double VN2 = 1.844121;

double Ar = 43.3;
double Hпргаз = VCO2 * JCO2 + VH2O * (JH2O + Hисп) + VN2 * JN2 + Jзл * Ar / 100 + VCO * cCO * Tгаз + VH2 * cH2 * Tгаз;
Параметр pHпргаз = СоздатьПараметр("Hпргаз", "кДж/кг", Hпргаз, "Теплосодержание прод. газификации");
return pHпргаз;

}
internal static Параметр Формула_6_35(double Tгаз)

{

double Sл = 0.00754;

double Bт = 0.0002;

double Tокрср = 20;
double qпот = ((2.28 * (Math.Pow(10, -8))) * (Math.Pow((Tгаз + 273), 4) - (Math.Pow((Tокрср+273), 4))) * Sл / Bт)/1000;
Параметр pqпот = СоздатьПараметр("qпот", "кДж/кг", qпот, "Потери объема кипящего слоя");
return pqпот;

}
internal static Параметр Формула_6_36(double rC, double RO2kRC, double lштр, double RH2OвхkRC)

{

double Hr = 1.8;

double Or = 5.7;

double Sr0 = 0.8;
double Qгаз = 483.9 * (2.48 * Hr - 0.312 * Or - 0.156 * Sr0) + rC * (564.7 * RO2kRC + 41.1 * lштр * RH2OвхkRC - 172.2);
Параметр pQгаз = СоздатьПараметр("Qгаз", "кДж/кг", Qгаз, "Теплота процесса газификации");
return pQгаз;

}
internal static Параметр Формула_6_37(double Tгаз, double rC, double RO2kRC, double RH2OвхkRC)

{

double Hr = 1.8;

double Or = 5.7;

double Sr0 = 0.8;
double k = 2.553 - (0.00493425 * (Tгаз - 600));

double b = 2 * RO2kRC * (1 - k) - (1 - 2 * k) + (RH2OвхkRC * k);

double a = RH2OвхkRC * (1 - k);

double c = -2 * k * (1 - RO2kRC);

double lштр = (-b + Math.Pow((Math.Pow(b, 2) - 4 * a * c), 0.5)) / (2 * a);

double Qгаз = 483.9 * (2.48 * Hr - 0.312 * Or - 0.156 * Sr0) + rC * (564.7 * RO2kRC + 41.1 * lштр * RH2OвхkRC - 172.2);
Параметр pQгаз = СоздатьПараметр("---", "---", Qгаз, "---");
return pQгаз;

}
internal static Параметр Формула_6_38(double Tгаз)

{

double Wд = 10;

double Hr = 1.8;

double Sr0 = 0.8;

double H2Oохл = 0.2;

double Wr = 2.3;

double q4 = 5;

double Cr = 47.2;

double Rд = 0.5;

double Bт = 0.2;

double Tд = 293;

double Or = 5.7;

double O2 = 21;
double k = 2.553 - (0.00493425 * (Tгаз - 600));

double rC = (Cr / 1.201) * (1 - (q4 / 100));

double Vд = Rд * 273 / (Bт * Tд);

double RH2OвхkRC = (0.555 * (Wr + 100 * H2Oохл + 0.1 * Vд * Wд) + 4.96 * Hr - 0.311 * Sr0) / rC;

double RO2kRC = (0.446 * Vд * O2 + 0.321 * Or - 2.48 * Hr + 0.156 * Sr0) / rC;

double b = 2 * RO2kRC * (1 - k) - (1 - 2 * k) + (RH2OвхkRC * k);

double a = RH2OвхkRC * (1 - k);

double c = -2 * k * (1 - RO2kRC);

double lштр = (-b + Math.Pow((Math.Pow(b, 2) - 4 * a * c), 0.5)) / (2 * a);

double RH2OвыхkRC = (1 - lштр) * RH2OвхkRC;

double VH2O = RH2OвыхkRC * 0.836;
Параметр pVH2O = СоздатьПараметр("---", "---", VH2O, "---");
return pVH2O;

}
internal static Параметр Формула_6_39(double Tгаз)

{

double Wr = 2.3;

double Sr0 = 0.8;

double Hr = 1.8;

double H2Oохл = 0.2;

double Wд = 10;

double Rд = 0.5;

double Bт = 0.2;

double Tд = 293;

double Or = 5.7;

double O2 = 21;

double Cr = 47.2;

double q4 = 5;
double Vд = Rд * 273 / (Bт * Tд);

double rC = (Cr / 1.201) * (1 - (q4 / 100));

double RO2kRC = (0.446 * Vд * O2 + 0.321 * Or - 2.48 * Hr + 0.156 * Sr0) / rC;

double RH2OвхkRC = (0.555 * (Wr + 100 * H2Oохл + 0.1 * Vд * Wд) + 4.96 * Hr - 0.311 * Sr0) / rC;

double k = 2.553 - (0.00493425 * (Tгаз - 600));

double b = 2 * RO2kRC * (1 - k) - (1 - 2 * k) + (RH2OвхkRC * k);

double a = RH2OвхkRC * (1 - k);

double c = -2 * k * (1 - RO2kRC);

double lштр = (-b + Math.Pow((Math.Pow(b, 2) - 4 * a * c), 0.5)) / (2 * a);

double RH2kRC = lштр * RH2OвхkRC;

double VH2 = RH2kRC * 0.836;
Параметр pVH2 = СоздатьПараметр("---", "---", VH2, "---");
return pVH2;

}
internal static Параметр Формула_6_40(double Tгаз)

{

double H2Oохл = 0.2;

double Wr = 2.3;

double Wд = 10;

double Hr = 1.8;

double Sr0 = 0.8;

double Or = 5.7;

double O2 = 21;

double Cr = 47.2;

double q4 = 5;

double Rд = 0.5;

double Bт = 0.2;

double Tд = 293;
double k = 2.553 - (0.00493425 * (Tгаз - 600));

double Vд = Rд * 273 / (Bт * Tд);

double rC = (Cr / 1.201) * (1 - (q4 / 100));

double RO2kRC = (0.446 * Vд * O2 + 0.321 * Or - 2.48 * Hr + 0.156 * Sr0) / rC;

double RH2OвхkRC = (0.555 * (Wr + 100 * H2Oохл + 0.1 * Vд * Wд) + 4.96 * Hr - 0.311 * Sr0) / rC;

double b = 2 * RO2kRC * (1 - k) - (1 - 2 * k) + (RH2OвхkRC * k);

double a = RH2OвхkRC * (1 - k);

double c = -2 * k * (1 - RO2kRC);

double lштр = (-b + Math.Pow((Math.Pow(b, 2) - 4 * a * c), 0.5)) / (2 * a);

double RCOkRC = 2 - 2 * RO2kRC - lштр * RH2OвхkRC;

double VCO = RCOkRC * 0.836;
Параметр pVCO = СоздатьПараметр("---", "---", VCO, "---");
return pVCO;

}
internal static Параметр Формула_6_41(double Tгаз)

{

double H2Oохл = 0.2;

double Wr = 2.3;

double Wд = 10;

double Hr = 1.8;

double Sr0 = 0.8;

double Or = 5.7;

double O2 = 21;

double Cr = 47.2;

double q4 = 5;

double Rд = 0.5;

double Bт = 0.2;

double Tд = 293;
double k = 2.553 - (0.00493425 * (Tгаз - 600));

double Vд = Rд * 273 / (Bт * Tд);

double rC = (Cr / 1.201) * (1 - (q4 / 100));

double RO2kRC = (0.446 * Vд * O2 + 0.321 * Or - 2.48 * Hr + 0.156 * Sr0) / rC;

double RH2OвхkRC = (0.555 * (Wr + 100 * H2Oохл + 0.1 * Vд * Wд) + 4.96 * Hr - 0.311 * Sr0) / rC;

double b = 2 * RO2kRC * (1 - k) - (1 - 2 * k) + (RH2OвхkRC * k);

double a = RH2OвхkRC * (1 - k);

double c = -2 * k * (1 - RO2kRC);

double lштр = (-b + Math.Pow((Math.Pow(b, 2) - 4 * a * c), 0.5)) / (2 * a);

double RCO2kRC = (2 * RO2kRC) + (lштр * RH2OвхkRC) - 1;

double VCO2 = RCO2kRC * 0.836;
Параметр pVCO2 = СоздатьПараметр("---", "---", VCO2, "---");
return pVCO2;

}

}

}

using System;

using System.Collections.Generic;

using System.Text;
namespace WindowsApplication2

{

//боевая единица участвует при ходе программы

class Параметр

{

//параметры боевой единицы

public string Имя;

public double Значение;

public string Ед_Изм;

public string ID; //условное обозначение параметра

}

}


  1. Выводы

Повышение температуры нежелательно не только потому, что может привести к шлакованию топочного устройства и замедлить скорость горения частиц топлива, а так же и потому что резко повышаются потери кипящего слоя. Значительное количество балласта приводит к сужению пределов воспламеняемости, что уменьшает взрывоопасность. Однако анализ зависимости водорода и углекислого газа показал, что с увеличением температуры содержание этих компонентов в генераторном газе падает, а значит и повышается взрывоопасность. Так же повышается содержание влаги в составе генераторного газа, что отрицательно влияет на его горючесть. Однако повышение температуры положительно сказывается на содержание окиси углерода, хоть и экологически вредного, но хорошо горючего вещества. Что не маловажно, так как генераторный газ в первую очередь используется для сжигания. Таким образом с учетом вышесказанного оптимальная температура газификации находится в области 850°С.

Список литературы:

1. Баскаков А. П., Мацнев В. В., Распопов И. В. Котлы и топки с кипящим слоем. – М.: Энергоатомиздат, 1996. – 352с.: ил.

2. Беляев А. А. Газификация высокозольных топлив в кипящем слое: учебное пособие. – М.: МЭИ. 2006. – 32с.

3. Беляев А. А. Автотермическая газификация низкосортных топлив в кипящем слое//Теплоэнергетика. – 2009. - №1. – С.9-13.

4. Беляев А. А. Сжигание низкокалорийных высокосернистых углей в кипящем слое. – М.: Б.и., 1984. – 64с.



Учебный материал
© nashaucheba.ru
При копировании укажите ссылку.
обратиться к администрации