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

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

Рубрика Экономико-математическое моделирование
Вид курсовая работа
Язык русский
Дата добавления 20.09.2011
Размер файла 1,0 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Курсовая работа

по курсу

«Математическое моделирование процессов горения»

"Влияние различных типов угля на процесс газификации топлива в кипящем слое"

Новосибирск 2011

Введение

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

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

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

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

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

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

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

§ Генераторный (энергетический) газ содержит значительное количество балласта, что приводит к сужению пределов воспламенения, а значит и к уменьшению взрывоопасности.

§ Газ, получаемый в газогенераторах на воздушном дутье, из самых различных видов топлива, включая биомассу, мало отличается по составу, то есть потребители могут снабжаться газообразным топливом постоянного качества.

§ При сжигании генераторного газа можно увеличить в 2 раза тепловое напряжение топки котла, то есть уменьшить его размеры

§ Кроме того, полученное газообразное топливо при сжигании выделяет значительно меньшее количество вредных веществ, нежели при прямом сжигании твёрдого топлива.

§ Из-за нечувствительности к качеству сырья и наличию балластов (минеральных примесей и влаги) метод находит широкое применение для переработки низкосортных видов топлива.

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

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

1.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.

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

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.2 Исходные данные для расчета

Топливо - карагандинский уголь марки К со следующими характеристиками:

Wrt=9%,

Ar=34,6%,

Srt=1,4% (Sro= Srt/2=0,7%),

Cr=46,8%,

Hr=2,9%,

Nr=0,8%,

Or=5,2%,

Vdaf = 28%,

Qri=18,13 МДж/кг,

Величина скаж для этого угля принята равной 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 °С.

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

1. Расчет Bтmax

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

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

ст =1600 (1 - 0,346-0,09) (1 - 0,28)/0,1201=5409 моль/м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

фок=4761, 63 (0,002)2/ (24·2,28·2,7·10-5)=14,65 с

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

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

Bтmax= (3,14/4) ·0,042 ·0,04 ·0,4 ·1600/(1,1 ·14,65)=0,002 кг/с

Величина 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)=(46,8/1,201) (1-5/100)=37 моль/кг

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,2-2,48 ·2,9+0,156 ·0,7)/ 37=0,4431

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

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

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

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

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

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

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

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

а=1,16 (1-1,07)=-0,04

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

b =2·0,44·(1-1,07) - 1+2·1,07+1,07·057=1,69

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

с= - 2·1,07 (1-0,44)= - 1,19

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

л'=[-1,69+(1,692-4·0,04·1,19)0,5]/(2·(-0,04))=0,72

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

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

=2·0,44+0,72·0,57-1=0,3

R(СO)/RC=2- 2 R(O2)/RC - л RH2Oвх/RC =2-2·0,44-0,72·0,57=0,7

RH2/RC= л RH2Oвх/RC=0,73·0,57=0,41

RH2Oвых/RC=(1 - л) RH2Oвх/RC=(1-0,72) ·0,57=0,16

RH2S/RC=0,00699Sr/ rc=0,00699·0,7/37=0,00013.

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

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

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

V(CO)=0,7·0,836=0,59 нм3/кг

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

V(H2O)=0,16·0,836=0,13 нм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) Тгаз

при этом воспользуемся данными о величинах теплосодержаний и средних теплоемкостей: (Тгаз=900?С)

J(CO2)= 2,455 (Тгаз-600)+1231=1967 кДж/нм3

J(H2O)=1,885 (Тгаз-600)+969=1534,5 кДж/нм3

J(N2)=1,475 (Тгаз-600)+808=1250,5 кДж/нм3

Jзл=1,06 (Тгаз-600)+560=878 кДж/кг

С(CO)=0,000135 (Тгаз-600)+1,357=1,397 кДж/(нм3К)

С(Н2)=0,0000525 (Тгаз-600)+1,307=1,323 кДж/(нм3К)

С(Н2S)=0,00035 (Тгаз-600)+1,71=1,815 кДж/(нм3К)

Нпр.газа=0,25·1967+0,13 (1534,5 +2271)+1,847·1250,5+878·40,7/100+

+0,59·1,397·900+0,34·1,323·900=4757 кДж/кг

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=1620 кДж/кг

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 ·2,9-0,312· 5,2-0,156· 0,7)+

+ 37 (564,7 · 0,44+41,1 · 0,66· 0,57-172,2)= 6154 кДж/кг

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

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

Построены зависимости:

· объемная концентрация углерода в коксовом остатке от рабочей зольности;

· теплота процесса газификации от рабочей влажности;

· теплота процесса газификации от рабочей зольности;

· теплота процесса газификации от содержания углерода;

· теплота процесса газификации от содержания серы;

· теплота процесса газификации от содержания водорода;

· теплота процесса газификации от содержания кислорода;

· теплота процесса газификации от содержания азота.

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

уголь газификация топливо программа

Окно программы состоит из трех вкладок «Входные данные», «Результаты расчета», «График». Имеется специальная метка, которая подсказывает пользователю дальнейший шаг.

На вкладке «Входные данные» после выбора типа угля и нажатия кнопки «Прочитать характеристику угля», таблица заполняется значениями характеристик выбранного угля, и пользователю предлагается выполнить расчет, нажав активировавшуюся кнопку «Расчет».

Если пользователь не выберет тип угля и попробует прочитать данные, то появится предупреждение: «Необходимо выбрать тип угля»

Исходные данные берутся из текстового файла…\bin\Debug\ «Название угля».xml. Изначально пользователю доступно 10 видов угля, в дальнейшем предполагается пополнение базы.

Нажав кнопку «Расчет», программа переходит на вкладку «Результаты расчета», заполненную результатами расчета процесса газификации топлива. На метке появляется надпись «Расчет выполнен» Активируются 2 кнопки «Сохранить» и «Построить график».

При нажатии кнопки «Сохранить», рассчитанные данные сохраняются в указанный пользователем документ…\bin\Debug\» Имя файла».xml.

На вкладке «Вычислительный эксперимент» необходимо выбрать функцию, задаться корректными значениями Xmin, Xmax, Шаг (изначально они равны 1, 50,1 соответственно) и нажать кнопку «Построить график» тем самым будет построена необходимая зависимость.

В программе предусмотрены все возможные виды ошибок при введении параметров графика и выбора функции:

Если не выбрана функция, то будет выведено предупреждающее окно «Не выбран исследуемый параметр»

При некорректном введении Xmin выводится предупреждающее окно «Ошибка при вводе Xmin»

При некорректном введении Xmax выводится предупреждающее окно «Ошибка при вводе Xmax».

При некорректном введении Шага выводится предупреждающее окно «Ошибка при вводе шага»

Если Xmin больше Xmax то выводится предупреждающее окно «Начальное значение больше конечного»

Если Xmin меньше 0 или больше 99, то выводится предупреждающее окно «Xmin должен быть больше 0 и меньше 99»

Если Xmax меньше 0 или больше 99, то выводится предупреждающее окно «Xmax должен быть больше 0 и меньше 99»

4. Результаты математического моделирования

Из проделанных выше расчетов, при выборе угля из карагандинского бассейна марки К, можно сделать следующие выводы:

· Теплота процесса газификации при сгорании 1 кг угля составляет 6154 кДж/кг;

· Потери объема кипящего слоя при газификации 1621 кДж/кг;

· Теплосодержание продуктов газификации 4757 кДж/кг;

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

Теплота процесса газификации увеличивается при увеличении влажности

Теплота процесса газификации не зависит от зольности

Теплота процесса газификации уменьшается при увеличении содержания углерода.

Теплота процесса газификации слабо зависит от содержания серы

Теплота процесса газификации линейно уменьшается от увеличения содержания водорода

Теплота процесса газификации увеличивается от содержания азота

Теплота процесса газификации увеличивается при увеличении содержания кислорода

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

5. Листинг программы

Program.cs

using System;

using System. Collections. Generic;

using System. Linq;

using System. Windows. Forms;

namespace WindowsFormsApplication2

{

static class Program

{

 /// <summary>

 /// Главная точка входа для приложения.

 /// </summary>

[STAThread]

static void Main()

{

Application. EnableVisualStyles();

Application. SetCompatibleTextRenderingDefault(false);

Application. Run (new Form1 ());

}

}

}

Form1.cs

using System;

using System. Collections. Generic;

using System. ComponentModel;

using System. Data;

using System. Drawing;

using System. Linq;

using System. Text;

using System. Windows. Forms;

using System. Drawing. Drawing2D;

using System. Collections;

namespace WindowsFormsApplication1

{

public partial class Form1: Form

{

double Ar = 0;

double Wr = 0;

double Qri = 0;

double Cr = 0;

double Sr = 0;

double Hr = 0;

double Nr = 0;

double Or = 0;

double Vdaf = 0;

double Pk = 0;

double Qгаз = 0;

double ст = 0;

double Cг = 0;

double фок = 0;

double Bтmax = 0;

double Vд = 0;

double rC = 0;

double RO2kRC = 0;

double RH2OвхkRC = 0;

double RN2вхkRC = 0;

double k = 0;

double a = 0;

double b = 0;

double c= 0;

double lштр =0;

double RCO2kRC = 0;

double RCOkRC = 0;

double RH2kRC = 0;

double RH2OвыхkRC = 0;

double VCO2 = 0;

double VCO = 0;

double VH2 = 0;

double VH2O = 0;

double JCO2 = 0;

double JH2O = 0;

double JN2 = 0;

double Jзл = 0;

double cCO =0;

double cH2 = 0;

double cH2S = 0;

double Hпргаз = 0;

double qпот = 0;

public Form1 ()

{

InitializeComponent();

if (comboBox1. SelectedIndex == -1)

{

label1. Text = «Выберите тип угля и нажмите кнопку Прочитать характеристику угля»;

}

}

private void Form1_Load (object sender, EventArgs e)

{

dataSet1. Tables [«Result»].ReadXml («Данные.xml»);

}

private void button1_Click (object sender, EventArgs e)

{

tabControl1. SelectedIndex = 0;

dataSet1. Tables [«VDtable»].Rows. Clear();

if (comboBox1. SelectedIndex == -1)

 // если номер выбранной строки -1,

 // то вывести сообщение «Необходимо выбрать тип угля»

{

MessageBox. Show («Необходимо выбрать тип угля»);

}

else

{

switch (comboBox1. SelectedIndex) // оператор

{

case 0:

dataSet1. Tables [«VDtable»].ReadXml («экибастузский.xml»);

 // заполнениеТаблицы();

label1. Text = «Выполните расчет»;

button5. Enabled = true;

break;

case 1:

dataSet1. Tables [«VDtable»].ReadXml («карагандинский.xml»);

label1. Text = «Выполните расчет»;

button5. Enabled = true;

break;

case 2:

dataSet1. Tables [«VDtable»].ReadXml («донецкий.xml»);

label1. Text = «Выполните расчет»;

button5. Enabled = true;

break;

case 3:

dataSet1. Tables [«VDtable»].ReadXml («челябинский.xml»);

label1. Text = «Выполните расчет»;

button5. Enabled = true;

break;

case 4:

dataSet1. Tables [«VDtable»].ReadXml («кузнецкий.xml»);

label1. Text = «Выполните расчет»;

button5. Enabled = true;

break;

case 5:

dataSet1. Tables [«VDtable»].ReadXml («кизеловский.xml»);

label1. Text = «Выполните расчет»;

button5. Enabled = true;

break;

case 6:

dataSet1. Tables [«VDtable»].ReadXml («партизанский.xml»);

label1. Text = «Выполните расчет»;

button5. Enabled = true;

break;

case 7:

dataSet1. Tables [«VDtable»].ReadXml («черногорское.xml»);

label1. Text = «Выполните расчет»;

button5. Enabled = true;

break;

case 8:

dataSet1. Tables [«VDtable»].ReadXml («подмосковный.xml»);

label1. Text = «Выполните расчет»;

button5. Enabled = true;

break;

case 9:

dataSet1. Tables [«VDtable»].ReadXml («печорский.xml»);

label1. Text = «Выполните расчет»;

button5. Enabled = true;

break;

}

}

}

private void button2_Click (object sender, EventArgs e)

{

if (saveFileDialog1. ShowDialog() == DialogResult.OK)

{

dataSet1. Tables [«Result»].WriteXml (saveFileDialog1. FileName);

}

}

public void calculate()

{

ст = (Pk * (1 - Ar / 100 - Wr / 100) * (1 - Vdaf / 100)) / 0.1201;

double Tсл = 850;

double О2 = 21;

Cг = (О2 / 100) * 273 / ((Tсл + 273) * 224 / 10000);

double Dээф = 0.000027;

фок = (ст * (0.000004)) / (24 * Cг * Dээф);

double Vсл = 0.785;

double е = 0.0000256;

Bтmax =(Vсл * е * Pk) / (1.1 * фок);

double Rд = 0.5;

double Bт = 0.2;

double Tд = 293;

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

double q4 = 5;

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

RO2kRC = (0.446 * Vд * О2 + 0.321 * Or - 2.48 * Hr + 0.156 * Sr) / rC;

double H2Oохл = 0.2;

double Wд = 10;

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

double N2 = 79;

RN2вхkRC = 0.446 * Vд * N2 / rC;

double Tгаз = 900;

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

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

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

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

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

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

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

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

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

VCO2 = RCO2kRC * 0.836;

VCO = RCOkRC * 0.836;

VH2 = RH2kRC * 0.836;

VH2O = RH2OвыхkRC * 0.836;

JCO2 = 2.455 * (Tгаз - 600) + 1231;

JH2O = 1.885 * (Tгаз - 600) + 969;

JN2 = 1.475 * (Tгаз - 600) + 808;

Jзл = 1.06 * (Tгаз - 600) + 560;

cCO = 0.000135 * (Tгаз - 600) + 1.357;

cH2 = 0.0000525 * (Tгаз - 600) + 1.307;

cH2S = 0.00035 * (Tгаз - 600) + 1.71;

double Hисп = 2271;

double VN2 = 1.844121;

Hпргаз = VCO2 * JCO2 + VH2O * (JH2O + Hисп) + VN2 * JN2 + Jзл * Ar / 100 + VCO * cCO * Tгаз + VH2 * cH2 * Tгаз;

double Sл = 0.00754;

double Bтт = 0.0002;

double Tокрср = 20;

qпот = ((2.28 * (Math. Pow (10, -8))) * (Math. Pow((Tгаз + 273), 4) - (Math. Pow((Tокрср + 273), 4))) * Sл / Bтт) / 1000;

Qгаз = 483.9 * (2.48 * Hr - 0.312 * Or - 0.156 * Sr) + rC * (564.7 * RO2kRC + 41.1 * lштр * RH2OвхkRC - 172.2);

}

private void button5_Click (object sender, EventArgs e)

{

Ar = VDD(1);

Wr = VDD(2);

Qri = VDD(3);

Cr = VDD(4);

Sr = VDD(5);

Hr = VDD(6);

Nr = VDD(7);

Or = VDD(8);

Vdaf = VDD(9);

Pk = VDD(10);

calculate();

SetRes (1, Math. Round (ст, 2));

SetRes (2, Math. Round (Cг, 2));

SetRes (3, Math. Round (фок, 2));

SetRes (4, Math. Round (Bтmax, 4));

SetRes (5, Math. Round (Vд, 2));

SetRes (6, Math. Round (rC, 2));

SetRes (7, Math. Round (RO2kRC, 2));

SetRes (8, Math. Round (RH2OвхkRC, 2));

SetRes (9, Math. Round (RN2вхkRC, 2));

SetRes (10, Math. Round (k, 2));

SetRes (11, Math. Round (a, 2));

SetRes (12, Math. Round (b, 2));

SetRes (13, Math. Round (c, 2));

SetRes (14, Math. Round (lштр, 2));

SetRes (15, Math. Round (RCO2kRC, 2));

SetRes (16, Math. Round (RCOkRC, 2));

SetRes (17, Math. Round (RH2kRC, 2));

SetRes (18, Math. Round (RH2OвыхkRC, 2));

SetRes (19, Math. Round (VCO2,2));

SetRes (20, Math. Round (VCO, 2));

SetRes (21, Math. Round (VH2,2));

SetRes (22, Math. Round (VH2O, 2));

SetRes (23, Math. Round (JCO2,2));

SetRes (24, Math. Round (JH2O, 2));

SetRes (25, Math. Round (JN2,2));

SetRes (26, Math. Round (Jзл, 2));

SetRes (27, Math. Round (cCO, 2));

SetRes (28, Math. Round (cH2,2));

SetRes (29, Math. Round (cH2S, 2));

SetRes (30, Math. Round (Hпргаз, 2));

SetRes (31, Math. Round (qпот, 2));

SetRes (32, Math. Round (Qгаз, 2));

tabControl1. SelectedIndex = 1;

label1. Text = «Расчет выполнен»;

button2. Enabled = true;

button6. Enabled = true;

}

private double VDD (int index)

{

return Convert. ToDouble (dataSet1. Tables [«VDtable»].Rows [index - 1] [«Value»].ToString());

}

private void SetRes (int index, double value)

{

dataSet1. Tables [«Result»].Rows [index - 1] [«Value»] = value;

}

private void button6_Click (object sender, EventArgs e)

{

bool error = false;

double StartValue = 0;

double StepValue = 0;

double StopValue = 0;

if (comboBox2. Text == «»)

{

MessageBox. Show («Не выбран исследуемый параметр», «Ошибка!», MessageBoxButtons.OK, MessageBoxIcon. Error);

error = true;

}

if (! double. TryParse (textBox1. Text, out StartValue))

{

MessageBox. Show («Ошибка при вводе Xmin», «Ошибка!», MessageBoxButtons.OK, MessageBoxIcon. Error);

error = true;

}

if (! double. TryParse (textBox3. Text, out StepValue))

{

MessageBox. Show («Ошибка при вводе шага», «Ошибка!», MessageBoxButtons.OK, MessageBoxIcon. Error);

error = true;

}

if (! double. TryParse (textBox2. Text, out StopValue))

{

MessageBox. Show («Ошибка при вводе Xmax», «Ошибка!», MessageBoxButtons.OK, MessageBoxIcon. Error);

error = true;

}

if (StartValue > StopValue)

{

MessageBox. Show («Начальное значение больше чем конечное», «Ошибка!», MessageBoxButtons.OK, MessageBoxIcon. Error);

error = true;

}

if ((StartValue < 0) || (StartValue > 99))

{

MessageBox. Show («Xmin должен быть меньше Xmax, больше 0 и меньше 99»);

error = true;

}

if ((StopValue < 0) || (StopValue > 99))

{

MessageBox. Show («Xmax должен быть больше 0 и меньше 99»);

error = true;

}

ArrayList y_value = new ArrayList();

ArrayList x_value = new ArrayList();

x_value. Clear();

y_value. Clear();

if (! error)

{

switch (comboBox2. Text)

{

case «Объемная концентрация углерода в коксовом остатке от зольности Ar»:

for (double per = StartValue; per <= StopValue; per += StepValue)

{

x_value. Add(per);

Ar = per;

calculate();

y_value. Add(ст);

}

break;

case «Теплота процесса газификации Qгаз от рабочей влажности Wr»:

for (double per = StartValue; per <= StopValue; per += StepValue)

{

x_value. Add(per);

Wr = per;

calculate();

y_value. Add(Qгаз);

}

break;

case «Теплота процесса газификации Qгаз от рабочей зольности Ar»:

for (double per = StartValue; per <= StopValue; per += StepValue)

{

x_value. Add(per);

Ar = per;

calculate();

y_value. Add(Qгаз);

}

break;

case «Теплота процесса газификации Qгаз от содержания углерода Cr»:

for (double per = StartValue; per <= StopValue; per += StepValue)

{

x_value. Add(per);

Cr = per;

calculate();

y_value. Add(Qгаз);

}

break;

case «Теплота процесса газификации Qгаз от содержания серы Sr»:

for (double per = StartValue; per <= StopValue; per += StepValue)

{

x_value. Add(per);

Sr = per;

calculate();

y_value. Add(Qгаз);

}

break;

case «Теплота процесса газификации Qгаз от содержания водорода Hr»:

for (double per = StartValue; per <= StopValue; per += StepValue)

{

x_value. Add(per);

Hr = per;

calculate();

y_value. Add(Qгаз);

}

break;

case «Теплота процесса газификации Qгаз от содержания азота Nr»:

for (double per = StartValue; per <= StopValue; per += StepValue)

{

x_value. Add(per);

Nr = per;

calculate();

y_value. Add(Qгаз);

}

break;

case «Теплота процесса газификации Qгаз от содержания кислорода Or»:

for (double per = StartValue; per <= StopValue; per += StepValue)

{

x_value. Add(per);

Or = per;

calculate();

y_value. Add(Qгаз);

}

break;

case «Теплота процесса газификации Qгаз от выхода летучих Vdaf»:

for (double per = StartValue; per <= StopValue; per += StepValue)

{

x_value. Add(per);

Vdaf = per;

calculate();

y_value. Add(Qгаз);

}

break;

}

int y_min = 0;

double y_max = 0;

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

{

if ((double) y_value[i] > y_max)

{

y_max = (double) y_value[i];

}

y_max = (int) Math. Round (y_max);

}

кисть ((int) StopValue, (int) StartValue, (int) y_max, (int) y_min);

daS_Net_XYChart1. RefreshCurvePoint («Кривая», x_value, y_value);

}

}

private void кисть (int xmax, int xmin, int ymax, int ymin)

{

DasNetDataChart.DAS_Net_XYChart.DAS_XYCurveVariable CurveItem = new DasNetDataChart.DAS_Net_XYChart.DAS_XYCurveVariable();

CurveItem.cColor = Color. LightGreen;

CurveItem.strCurveName = «Кривая»;

CurveItem.eLineStyle = DashStyle. Solid;

CurveItem.bLineVisible = true;

CurveItem.iPointNumber = 20;

CurveItem.iPointSize = 6;

CurveItem.iLineWidth = 2;

CurveItem.ePointStyle =

DasNetDataChart.DAS_CurvePointStyle.BPTS_BALL;

CurveItem.bVisible = true;

CurveItem.iCurPriority = 0;

CurveItem.dblMax = ymax;

CurveItem.dblMin = ymin;

CurveItem.bYScaleVisible = true;

CurveItem.bYAtStart = true;

CurveItem.bAreaMode = false;

CurveItem.dblAreaBaseValue = 0.0;

daS_Net_XYChart1. AddCurve («Кривая», CurveItem);

CurveItem.ePointStyle =

DasNetDataChart.DAS_CurvePointStyle.BPTS_NONE;

CurveItem.cColor = Color. Red;

daS_Net_XYChart1. AddCurve («Кривая», CurveItem);

daS_Net_XYChart1.XMax = xmax;

daS_Net_XYChart1.XMin = xmin;

}

}

}

Выводы

В данном курсовом проекте мы исследовали влияние различных типов угля на процесс газификации топлива в кипящем слое. Построили математическую модель, пользуясь средой программирования «Microsoft Visual Studio 2008 С#». Данная программа обладает возможностью считывания информации из текстового файла и сохранения расчёта в текстовый файл, что даёт возможность пользователю автоматически вводить и получать данные. Также, программа обладает удобным интерфейсом.

Не менее важным преимуществом является то, что она обрабатывает наиболее распространенные ошибки, которые может допустить пользователь: указать минимальное значение больше максимального; не выбрать для расчёта используемое топливо; получать график, не выполнив еще расчета топлива.

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

Для достижения минимальной теплоты газификации нужно подбирать топливо с минимальным содержанием влаги и кислорода и с максимальным содержанием углерода и водорода.

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

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

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

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

4. Тепловой расчет котлов (Нормативный метод). Издание 3-е, переработанное и дополненное. Издательство НПО ЦКТИ, СПб, 1998.

Размещено на Allbest.ru


Подобные документы

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

    курсовая работа [265,3 K], добавлен 28.07.2013

  • Сопоставление множества различных вариантов по локальным критериям и выбор наиболее целесообразного с помощью методов математического моделирования. Анализ влияния факторов технологического режима на процесс подготовки массы. Коэффициенты регрессии.

    курсовая работа [200,3 K], добавлен 02.05.2017

  • Структура управления и экономический анализ показателей функционирования Змиевской ТЭС. Структура себестоимости производства энергии и основные характеристики моделей управления запасами. Алгоритм автоматического расчета запаса угля на каждый день.

    дипломная работа [1,3 M], добавлен 11.03.2010

  • Построение экономико-математической модели оптимизации производства с учетом условия целочисленности. Расчет с помощью надстроек "Поиск решения" в Microsoft Excel оптимального распределения поставок угля. Экономическая интерпретация полученного решения.

    контрольная работа [2,5 M], добавлен 23.04.2015

  • Применение методов и формул математической статистики при выполнении расчета показателей эффективности производства, организации рабочего процесса, оценке перспектив и разработке планов развития определенных отраслей промышленности. Расчет добычи угля.

    контрольная работа [497,9 K], добавлен 05.11.2009

  • Процесс интеграции технических и программных средств во все аспекты деятельности предприятия. Группа контроллинга и ее задачи. Операционно-ориентированный расчет себестоимости продукта (услуги). Определение времени выполнения и стоимости процесса.

    реферат [547,5 K], добавлен 14.09.2010

  • Имитационное моделирование как метод анализа экономических систем. Предпроектное обследование фирмы по оказанию полиграфических услуг. Исследование заданной системы с помощью модели типа "Марковский процесс". Расчет времени обслуживания одной заявки.

    курсовая работа [42,0 K], добавлен 23.10.2010

  • Программное определение оптимального сочетания зерновых культур и оптимальных рационов кормления с помощью программы Excel. Экономико-математические модели для расчета оптимального распределения минеральных удобрений, определение перечня переменных.

    контрольная работа [3,1 M], добавлен 06.12.2011

  • Структура и параметры эффективности функционирования систем массового обслуживания. Процесс имитационного моделирования. Распределения и генераторы псевдослучайных чисел. Описание метода решения задачи вручную. Перевод модели на язык программирования.

    курсовая работа [440,4 K], добавлен 30.10.2010

  • Исследование зависимости сменной добычи угля на одного рабочего от мощности пласта путем построения уравнения парной линейной регрессии. Построение поля корреляции. Определение интервальных оценок заданных коэффициентов. Средняя ошибка аппроксимации.

    контрольная работа [2,1 M], добавлен 09.08.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.