Автор: Пользователь скрыл имя, 11 Апреля 2011 в 11:17, курсовая работа
Методы анализа, синтеза и оптимизации ХТС, реализованные в виде алгоритмов и программ, применяются в системах автоматизированного проектирования химических производств (САПР). Эти системы существенно повышают производительность труда проектировщиков и позволяют значительно улучшить качество проектов. Благодаря САПР ускоряется внедрение в производство технологических разработок.
Введение 5
1. Теоретическая часть 6
1.1 Описание объекта исследования 6
1.2 Постановка задачи оптимизации 6
1.3 Описание метода наименьших квадратов 7
1.4 Описание метода Брандона 9
1.5 Реактор идеального вытеснения 12
1.6 Синтез оптимальных систем теплообмена 13
2. Расчетная часть 17
2.1 Расчет k0 и E в уравнении Аррениуса с использованием метода наименьших квадратов 17
2.2 Расчет зависимости kр(t) с использованием метода наименьших квадратов 20
2.3 Расчет статистической модели абсорбера с использованием метода Брандона 23
2.4 Расчет реакторов идеального вытеснения 33
2.5 Расчет абсорберов 35
2.6 Синтез оптимальных систем теплообмена 36
2.7 Расчет нагревателя 41
3. Выводы 43
Список литературы 44
Приложение
Dim dm1 As Single, dmk() As Single, dkk() As Single, KRxy() As Single
Dim i As Integer, j As Integer, a1() As Single, sz As String
ReDim d(1 To m + 1, 1 To m + 1) As Single, x1(1 To n) As Single, y1(1 To n) As Single
ReDim dmk(1 To m) As Single, dkk(1 To m) As Single, KRxy(1 To m) As Single
ReDim a1(1 To m, 1 To m) As Single, smassiv(1 To m) As String
For i = 1 To m
smassiv(i) = "X" + CStr(i)
Next i
For i = 1 To m + 1
d(i, i) = 1
Next i
For j = 1 To m
For k = j + 1 To m + 1
For i = 1 To n
x1(i) = a(i, j): y1(i) = a(i, k)
Next i
d(j, k) = Rxy(n, x1(), y1())
'транспонирование матрицы
d(k, j) = d(j, k)
Next k
Next j
'вывод матрицы D
With MSFlexGrid2
.Cols = m + 1: .Rows = m + 1
For i = 1 To m + 1
For j = 1 To m + 1
.Col = j - 1: .ColWidth(.Col) = 1500: .Row = i - 1: .Text = CStr(d(i, j))
Next j
Next i
End With
'частн коэфф множ коррел
For i = 1 To m
For j = 1 To m
a1(i, j) = d(i, j)
Next j
Next i
dm1 = Opred(m, a1())
For k = 1 To m
For i = 1 To m
k1 = 0
For j = 1 To m + 1
If j <> k Then
k1 = k1 + 1
a1(i, k1) = d(i, j)
End If
Next j
Next i
dmk(k) = Opred(m, a1())
Next k
For k = 1 To m
k1 = 0
For i = 1 To m + 1
If i <> k Then
k1 = k1 + 1: k2 = 0
For j = 1 To m + 1
If j <> k Then
k2 = k2 + 1
a1(k1, k2) = d(i, j)
End If
Next j
End If
Next i
dkk(k) = Opred(m, a1())
Next k
With MSFlexGrid3
.Rows = m: .Cols = 2: .FixedRows = 0: .FixedCols = 0
For i = 1 To m
.Row = i - 1
.Col = 0: .Text = "Ryx" + CStr(i) + "="
KRxy(i) = dmk(i) / Sqr(dm1 * dkk(i))
.Col = 1: .ColWidth(.Col) = 1500: .Text = CStr(KRxy(i))
Next i
End With
'сортировка
List1.Clear
For i = 1 To m - 1
k = i
For j = i To m
If Abs(KRxy(k)) > Abs(KRxy(j)) Then k = j
Next j
sz = smassiv(k)
smassiv(k) = smassiv(i)
smassiv(i) = sz
Next i
For i = m To 1 Step -1
List1.AddItem (smassiv(i))
Next i
End Sub
Результаты расчета:
1) для степени абсорбции:
В данных обозначениях Х1-начальная температура, Х2-плотность орошения, Х3-объем абсорбера, Y-степень абсорбции данная, YR-степень абсорбции рассчитанная.
2) для температуры:
В данных обозначениях Х1-начальная температура, Х2-плотность орошения, Х3-объем абсорбера, Y-данная конечная температура, YR- рассчитанная конечная температура.
По заданию в схеме все реакторы идеального вытеснения, причем четыре реактора до первого абсорбера, а пятый реактор между первым и вторым абсорберами.
Расчет проводится в одной и той же программе с использованием исходных данных и получаемых результатов. Необходимо учесть, что:
данные, которые мы получили на выходе из 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к).
Из
результатов расчета обоих
G=124146.814 м3/час
Wн=43.56
Wк=40.97
Та1=43.34
Та2=38.91
Для расчета используется программа, написанная в 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 |