К моделированию стационарных и нестационарных ВХР

Полное название темы "Порядок выполнения водно-химических расчетов для стационарных и нестационарных режимов работы барабанных котлов высокого давления".

 

Основные материалы по этой теме находятся в разделе ВХР\Расчеты и моделирование в ВХРБ. Тема, в частности, излагается параллельно в двух файлах: "Порядок в-х расчетов.doc" и "Порядок в-х расчетов.xls". Первый файл возможно будет переделан в формат pdf.

 

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

 

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

 

Возможно, это простое соображение окажется не очень понятным? – Тогда для начала надо придумать какую-то очень простую ситуацию или модель. Напрмер, такую. Поставьте на огонь кастрюлю с кипящей водой. Добавьте туда одну столовую и одну чайную ложку уксуса. Затем быстренько перемешайте и отберите из кастрюли чайную ложку воды, а затем подождите пока упарится столовая ложка воды. Если вы знаете сколько уксуса переходит в пар, то вы вполне можете рассчитать сколько уксуса осталось в воде. Далее повторяете сей эксперимент с новыми порциями столовой и чайной ложкой уксуса. К вечеру, если у вас хватит терпения, в кастрюле установится стационарный режим: сколько вы вводите уксуса в кастрюлю, столько и выводите из нее. Это будет изрядная имитация работы одноступенчатого барабанного котла.

 

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

 

Для котла мы аналогичным образом рассчитываем баланс за малый промежуток времени – за пять минут или даже за одну минуту, если хотите сделать расчет точнее. Затем рассчитываете баланс за следующий промежуток времени, потом за следующий и т.д. Такую цепочку расчетов можно соорудить на листе Excel и это будет фрагмент расчетов из нескольких строк, вернее из весьма изрядного количества строк. Но можно эту цепочку расчетов "втолкнуть" в функцию пользователя, оформленную на том же языке, в котором записываются макросы в Excel. Ниже представлен текст этой функции. Его вы также найдете в файле "Порядок в-х расчетов.doc".

 

Function f_SiO2(mx) предназначена для расчета баланса кремнекилоты или любой другой примеси, не осаждающейся в котле. Здесь mx – это массив исходных данных. После ввода данных идет расчет баланса для двухступенчатой схемы котла примерно так же, как в нашем опыте с двумя кастрюлями. Затем, после завершения расчетов, формируется массив результатов – my, который пользователь видит на экране компьютера. Этот расчет с выдачей его результатов длится лишь доли секунды. Будет у нас время и ваше желание, мы разберем эту функцию более детально.

 

Описанная функция в VBA имеет следующий вид:

 

Function f_SiO2(mx)

dt = mx(1)

Dk = mx(2)

Hb = mx(3)

Sipv = mx(4)

Sikv1 = mx(5)

Sikv2 = mx(6)

y = mx(7)

p = mx(8)

pmin = mx(9)

Z = mx(10)

KLfp = mx(11)

V1s = 27

V2s = 3

n1s = 90

n2s = 10

' KLsi=1

'-------

Dkl = Dk / 60

n1sl = Dkl * n1s / 100

n2sl = Dkl * n2s / 100

yl = y / 60

pl = p / 60

pminl = pmin / 60

Dim ik As Integer 'Иначе может умыкнуть один цикл

ik = dt * 60 + 10 ^ -10

For i = 1 To ik

Fp = Dkl / 100 * (n2sl / Dkl * 100 / ((yl / Dkl * 100 + Z / 2) / (1 + yl / Dkl * 100) + (((yl / Dkl * 100 + Z / 2) / (1 + yl / Dkl * 100)) ^ 2 - yl / Dkl * 100 / (1 + yl / Dkl * 100)) ^ 0.5 - 1) - yl / Dkl * 100)

ForP = IIf(Fp < pminl, pminl, Fp) * KLfp + pl * (1 - KLfp)

Kit1 = 2.6865 * (1 + 0.69284 * Sikv1 ^ -0.8) * (Dk / 160) ^ 0.8 * (100 + Hb) ^ -0.4

Kit2 = 2.6865 * (1 + 0.69284 * Sikv2 ^ -0.8) * (Dk / 160) ^ 0.8 * (100 + Hb) ^ -0.4

dSikv1 = (Sipv * (Dkl + yl) + Sikv2 * ForP - (Sikv1 * (n2sl + yl + ForP) + Kit1 / 100 * Sikv1 * n1sl)) / V1s

dSikv2 = (Sikv1 * (n2sl + yl + ForP) - (Sikv2 * (yl + ForP) + Kit2 / 100 * Sikv2 * n2sl)) / V2s

Sikv = (n1sl * Sikv1 + n2sl * Sikv2) / Dkl

Sinp1 = Sikv1 * Kit1 / 100 * 1000

Sinp2 = Sikv2 * Kit2 / 100 * 1000

Sinp = (Sinp1 * n1sl + Sinp2 * n2sl) / Dkl

Kr = Sikv2 / Sikv1

Yysl = 100 * (Sipv - Sinp / 1000) / (Sikv2 - Sipv)

Kit = 2.6865 * (1 + 0.69284 * Sikv ^ -0.8) * (Dk / 160) ^ 0.8 * (100 + Hb) ^ -0.4

Kitb = 2.6865 * (1 + 0.69284 * Sikv ^ -0.8) * 100 ^ -0.4

Sikv1 = Sikv1 + dSikv1

Sikv2 = Sikv2 + dSikv2

Next i

Dim my(1 To 3)

my(1) = Sikv1

my(2) = Sikv2

my(3) = Sinp

f_SiO2 = my

End Function

Copyright © 2009 - 2024 Алгоритмист | Правовая информация
Карта сайта
Яндекс.Метрика