В данных обозначениях Х1-начальная температура, Х2-плотность орошения, Х3-объем абсорбера, Y-степень абсорбции данная, YR-степень абсорбции рассчитанная.
2) для температуры:
В данных обозначениях Х1-начальная температура, Х2-плотность орошения, Х3-объем абсорбера, Y-данная конечная температура, YR- рассчитанная конечная температура.
2.4 Расчет реакторов идеального вытеснения
По заданию в схеме все реакторы идеального вытеснения, причем четыре реактора до первого абсорбера, а пятый реактор между первым и вторым абсорберами.
Расчет проводится в одной и той же программе с использованием исходных данных и получаемых результатов. Необходимо учесть, что:
данные, которые мы получили на выходе из 4го реактора, являются входными параметрами для 1го абсорбера;
данные, которые мы получили на выходе из 1го абсорбера, являются входными параметрами для 5го реактора;
данные, которые мы получили на выходе из 5го реактора, являются входными параметрами для 2го абсорбера.
Код программы:
Option Explicit
Dim tn As Single
Dim ca0 As Single
Dim cb0 As Single
Dim cc0 As Single
Dim vr As Single
Dim g As Single
Dim n As Integer
Dim q As Single
Dim cp As Single
Dim k0 As Single
Dim ea As Single
Dim a0 As Single
Dim b0 As Single
Dim tau As Single
Dim dtau As Single
Dim ca As Single
Dim cb As Single
Dim cc As Single
Dim tk As Single
Dim i As Integer
Dim x As Single
Dim a As Single
Dim d As Single
Dim c As Single
Dim l As Single
Dim k As Single
Dim kr As Single
Dim f2 As Single
Dim r As Single
Private Sub Command1_Click()
End
End Sub
Private Sub Command2_Click()
tn = Val(Text1.Text)
ca0 = Val(Text2.Text)
cb0 = Val(Text3.Text)
cc0 = Val(Text4.Text)
vr = Val(Text5.Text)
g = Val(Text6.Text)
n = Val(Text13.Text)
q = Val(Text7.Text)
cp = Val(Text8.Text)
k0 = Val(Text10.Text)
ea = Val(Text9.Text)
a0 = Val(Text11.Text)
b0 = Val(Text12.Text)
tau = vr * 3600 / g
dtau = tau / n
ca = ca0
tk = tn
For i = 1 To n
x = (ca0 - ca) / ca0
ca = ca0 * (1 - x)
cb = cb0 - ca0 * x
cc = cc0 + ca0 * x
k = k0 * Exp(-ea / 8.31 / (tk + 273.15))
kr = 10 ^ (a0 / (tk + 273.15) - b0)
a = ca + 0.8 * cc
d = kr * ca * Sqr(cb)
c = (cc / d) ^ 2
l = 1 - c
r = k * ca * cb / a * l
ca = ca - r * dtau
f2 = q * r / cp
tk = tk + f2 * dtau
Next i
Text14.Text = CStr(tk)
Text15.Text = CStr(ca)
Text16.Text = CStr(cb)
Text17.Text = CStr(cc)
Text18.Text = CStr(tau)
End Sub
Результаты расчета:
Из полученных результатов нам важны концентрации компонентов, чтобы ввести их в следующий реактор или абсорбер, а так же температуры на выходе (Тi):
Т1=577.06
Т2=514.18
Т3=414.34
Т4=430.73
Т5=411.87
По заданию необходимо провести расчет двух абсорберов. Для этого используется программа, написанная в Visual Basic, исходные данные, данные полученные при расчете реакторов и зависимости, полученные по методу Брандона в пункте 3.3.
Код программы:
Private Sub Command1_Click()
tn = Val(Text13.Text)
ro = Val(Text14.Text)
vabs = Val(Text15.Text)
tk = 47.44545 * (-0.05320523 * ro + 1.889979) * (-0.03595265 * vabs + 1.890018) * (0.004502005 * tn + 0.1782164)
Text12.Text = CStr(tk)
eta = 83.19818 * (0.03020197 * vabs + 0.2518149) * (0.03027636 * ro + 0.4635413) * (1 / (0.002109864 * tn + 0.6166517))
eta = eta / 100
Text5.Text = CStr(eta)
g0 = Val(Text1.Text)
ca0 = Val(Text2.Text)
cb0 = Val(Text3.Text)
cc0 = Val(Text4.Text)
dltg = g0 * cc0 * eta
g = g0 - dltg
ca = g0 * ca0 / g
cb = g0 * cb0 / g
cc = g0 * (1 - eta) * cc0 / g
w0 = g0 * 0.33
w = g * 0.33
prc = (g0 - g) / g0 * 100
Text6.Text = CStr(ca)
Text7.Text = CStr(cb)
Text8.Text = CStr(cc)
Text9.Text = CStr(g)
Text10.Text = CStr(w0)
Text11.Text = CStr(w)
End Sub
Private Sub Command2_Click()
Unload Me
End Sub
Результаты расчета:
Из результатов расчета первого абсорбера нам необходимо значение расхода на выходе (G) для ввода его в пятый реактор и второй абсорбер, значения водяных эквивалентов на входе (Wн) и на выходе (Wк).
Из результатов расчета обоих реакторов нам необходимы значения температур на выходе (Та1 и Та2).
G=124146.814 м3/час
Wн=43.56
Wк=40.97
Та1=43.34
Та2=38.91
2.6 Синтез оптимальных систем теплообмена
Для расчета используется программа, написанная в Visual Basic, исходные данные, приведенные в таблице ниже.
Исходные данные для проектирования тепловой системы:
Холодные потоки | Горячие потоки | ||||||
№ исходного потока | Начальная температура ºС | Конечная темпера тура ºС | Значение водяного эквивалента, кВт/ºС | № исходного потока | Начальная температура ºС | Конечная темпера тура ºС | Значение водяного эквивалента, кВт/ºС |
1 | 50 | 415 | 43,56 | 1 | 577,06 | 485 | 43,56 |
2 | 414,34 | 425 | 43,56 | 2 | 514,18 | 410 | 43,56 |
3 | 43,34 | 405 | 40,97 | 3 | 430,73 | 180 | 43,56 |
4 | 411,87 | 195 | 40,97 |
Код программы:
Dim nx As Integer, ng As Integer, n As Integer, n0 As Integer
Dim k As Single, c As Single, dt As Single, k0 As Single
Dim tn() As Single, tk() As Single, w() As Single
Dim tx() As Single, tg() As Single, nomx() As Integer
Dim nomg() As Integer, r() As Single, ne() As Single
Dim st() As Single
Private Sub Command1_Click()
st0 = 0
k = 0
m1:
With MSFlexGrid1
.Cols = 9: .Col = 0: .Row = 0: .Text = "L": .Col = 1: .Text = "х": .Col = 2: .Text = "Tнх"
.Col = 3: .Text = "Tхк": .Col = 4: .Text = "г": .Col = 5: .Text = "Tнг"
.Col = 6: .Text = "Tгк": .Col = 7: .Text = "Q": .Col = 8: .Text = "Стоимость"
l = 0
k = k + 1
For i = 1 To n
If tn(i) < tk(i) Then GoTo m2
For j = 1 To n
If tn(j) > tk(j) Then GoTo m3
tg0 = tn(i): tg1 = tk(i)
tx0 = tn(j): tx1 = tk(j)
a = tg0 - tx0 - dt
If a < 0 Then GoTo m3
If (tg1 - tx0) < dt Then tg1 = tx0 + dt
If (tg0 - tx1) < dt Then tx1 = tg0 - dt
qx = (tx1 - tx0) * w(j)
qg = (tg0 - tg1) * w(i)
q = qx
If qx > qg Then q = qg
If q < 1 Then GoTo m3
tx1 = tx0 + q / w(j)
tg1 = tg0 - q / w(i)
dt1 = tg0 - tx1
dt2 = tg1 - tx0
r0 = Log(dt1 / dt2)
dlt = (dt1 + dt2) / 2
If Abs(r0) > 0.639 Then dlt = (dt1 - dt2) / r0
f = q / k0 / dlt
l = l + 1
st(l) = c * f ^ 0.6
st0 = st0 + st(l)
nomg(l) = i: nomx(l) = j: tg(l) = tg1: tx(l) = tx1
.Rows = l + 1
.Col = 0: .Row = l: .Text = CStr(l)
.Col = 1: .Text = CStr(j): .Col = 2: .Text = CStr(tx0)
.Col = 3: .Text = CStr(tx1): .Col = 4: .Text = CStr(i): .Col = 5: .Text = CStr(tg0)
.Col = 6: .Text = CStr(tg1): .Col = 7: .Text = CStr(q): .Col = 8: .Text = CStr(st(l))
m3:
Next j
m2:
Next i
End With
If l = 0 Then GoTo m4
If ne(k) = 1 Then Label5.Caption = "Выберите вариант теплообмена между потоками i и j для которых начальные температуры максимальны"
If ne(k) = 2 Then Label5.Caption = "Выберите вариант теплообмена между потоками, который обеспечивает максимальное количество передаваемого тепла"
If ne(k) = 3 Then Label5.Caption = "Выберите для теплообмена горячий поток с наиболее высокой температурой на входе и холодный поток с наиболее высокой температурой на выходе из теплообменника"
If ne(k) = 4 Then Label5.Caption = "Выберите для теплообмена холодный поток с наиболее низкой температурой на входе и горячий поток с наиболее низкой температурой на выходе из теплообменника"
If ne(k) = 5 Then Label5.Caption = "Выберите для теплообмена пару потоков произвольным образом"
l = CInt(InputBox("Введите номер варианта теплообмена:"))
i = nomg(l): j = nomx(l): tn(i) = tg(l): tn(j) = tx(l)
MSFlexGrid1.Clear
GoTo m1
m4:
Label7.Visible = True: Text4.Text = CStr(st0): Text4.Visible = True
End Sub
Private Sub Form_Load()
Dim S As String, i As Integer
CommonDialog1.Action = 1
S = CommonDialog1.FileName
Open S For Input As #1
Input #1, nx, ng
n = nx + ng
Text1.Text = CStr(nx)
Text2.Text = CStr(ng)
n0 = nx * ng
Input #1, k0, c, dt
ReDim tn(1 To n) As Single, tk(1 To n) As Single, w(1 To n) As Single
ReDim tx(1 To n0) As Single, tg(1 To n0) As Single, nomx(1 To n0) As Integer
ReDim nomg(1 To n0) As Integer, r(1 To n0 + 2) As Single, ne(1 To n0 + 2) As Single
ReDim st(1 To n0) As Single
For i = 1 To n
Input #1, tn(i), tk(i), w(i)
Next i
Close #1
r0 = -100
dr0 = CInt(InputBox("Введите любое число из интервала 1-33:"))
For i = 1 To n0 + 2
r0 = r0 + dr0
r(i) = Rnd(r0)
Next i
Label4.Caption = ""
For i = 1 To n0 + 2
If r(i) >= 0 And r(i) < 0.2 Then ne(i) = 1
If r(i) >= 0.2 And r(i) < 0.4 Then ne(i) = 2
If r(i) >= 0.4 And r(i) < 0.6 Then ne(i) = 3
If r(i) >= 0.6 And r(i) < 0.8 Then ne(i) = 4
If r(i) >= 0.8 And r(i) < 1 Then ne(i) = 5
Label4.Caption = Label4.Caption + CStr(ne(i)) + " "
Next i
End Sub
Результаты расчета:
Таблица 1 Таблица пар исходных потоков ( I этап синтеза)
На основании таблицы 1 для теплообмена выбран 8 поток, так как необходимо было выбрать для теплообмена холодный поток с наиболее низкой температурой на входе и горячий поток с наиболее низкой температурой на выходе из теплообменника.
Таблица 2 Таблица пар результирующих и исходных потоков (II этап синтеза)
На основании таблицы 2 для теплообмена выбран 7 поток, так как необходимо было выбрать вариант теплообмена между потоками, который обеспечивает максимальное количество передаваемого тепла.
Таблица 3 – Таблица пар результирующих и исходных потоков (III этап синтеза)
На основании таблицы 3 для теплообмена выбран 2 поток, так как необходимо было выбрать вариант теплообмена между потоками i и j, для которых начальные температуры максимальны.
Таблица 4 – Таблица пар результирующих и исходных потоков (IV этап синтеза)
На основании таблицы 4 для теплообмена выбран 2 поток, так как необходимо было выбрать для теплообмена горячий поток с наиболее высокой температурой на входе и холодный поток с наиболее высокой температурой на выходе из теплообменника.