Автор: Пользователь скрыл имя, 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
Приложение
При расчете стоимости i - го теплообменника любой подсистемы в данной работе используется зависимость
где F -
площадь поверхности
а - стоимостной коэффициент, зависящий от типа теплообменника. Затраты на вспомогательные теплоносители определяются по формуле:
Где - продолжительность годовой эксплуатации системы ч/год;
- стоимость i - го вспомогательного теплоносителя,
- расход p- го вспомогательного теплоносителя в 1- м вспомогательном теплообменнике, кг/ч.
При
синтезе ТС используются формулы:
где Q - тепловая нагрузка теплообменника; k- соответствующий коэффициент теплопередачи.
Средняя
разность температур для теплообменника:
где и - разности температур на концах теплообменника.
Тепловая
нагрузка теплообменника, или количество
тепла, переданное в одном аппарате,
определяется на основе концепции передачи
максимально возможного тепла при минимально
допустимой разности температур на концах
теплообменника
Если (
Задача
синтеза решается путем формирования
множества возможных комбинаций
исходных горячих и холодных потоков
для проведения физически реализуемых
операций теплообмена в теплообменном
аппарате. для этой цели строят таблицу
пар взаимодействующих потоков исходя
из условия Q
max. Из таблицы пар выбирается пара
потоков, вступающих во взаимный теплообмен.
Если в результате теплообмена данные
потоки достигли заданных конечных температур,
то они исключаются из рассмотрения. Иначе,
начальным температурам этих потоков
присваиваются значения конечных температур
результирующих потоков, после чего таблица
пар перестраивается, и выбирается новая
пара потоков. Данная операция производится
до тех пор, пока не останется потоков,
способных вступать во взаимный теплообмен,
или все потоки достигнут требуемых конечных
температур. При необходимости для достижения
заданных конечных температур в теплообменных
системах используются вспомогательные
тепло - и хладагенты. Таким образом, задача
синтеза является многоэтапной задачей,
в которой на каждом этапе осуществляется
выбор пары потоков, вступающих во взаимный
теплообмен.
Расчет проводился на основе данных из Приложения 1 в программе, написанной в Visual Basic.
Код программы:
Option Explicit
Dim z As Integer
Dim i As Integer
Dim s1 As Single
Dim s2 As Single
Dim s3 As Single
Dim s4 As Single
Dim a As Single
Dim b As Single
Dim k0 As Single
Dim e As Single
Dim t() As Single
Dim k() As Single
Dim kr() As Single
Dim eps() As Single
Dim x() As Single
Dim y() As Single
Private Sub Command1_Click()
z = InputBox("Введите количество опытов", "Ввод экспериментальных данных")
MSFlexGrid1.Rows = z + 1
ReDim t(z) As Single
ReDim k(z) As Single
ReDim kr(z) As Single
ReDim eps(z) As Single
For i = 1 To z
MSFlexGrid1.Row = i
MSFlexGrid1.Col = 1
t(i) = Val(InputBox("Введите параметр T 'C", "Ввод экспериментальных данных"))
MSFlexGrid1.Text = CStr(t(i))
MSFlexGrid1.Col = 2
k(i) = Val(InputBox("Введите параметр K", "Ввод экспериментальных данных"))
MSFlexGrid1.Text = CStr(k(i))
Next i
Command2.Enabled = True
Command2.Visible = True
End Sub
Private Sub Command2_Click()
ReDim x(z) As Single
ReDim y(z) As Single
For i = 1 To z
x(i) = 1 / (t(i) + 273)
y(i) = Log(k(i))
Next i
s1 = 0
s2 = 0
s3 = 0
s4 = 0
For i = 1 To z
s1 = s1 + x(i)
s2 = s2 + x(i) * x(i)
s3 = s3 + x(i) * y(i)
s4 = s4 + y(i)
Next i
a = (z * s3 - s1 * s4) / (z * s2 - s1 * s1)
b = (s2 * s4 - s1 * s3) / (z * s2 - s1 * s1)
e = -8.315 * a
Text1.Text = CStr(e)
k0 = Exp(b)
Text2.Text = CStr(k0)
For i = 1 To z
kr(i) = k0 * Exp(-e / (8.315 * (t(i) + 273)))
eps(i) = Abs(k(i) - kr(i)) / Abs(k(i))
MSFlexGrid1.Row = i
MSFlexGrid1.Col = 3
MSFlexGrid1.Text = CStr(kr(i))
MSFlexGrid1.Col = 4
MSFlexGrid1.Text = CStr(eps(i))
Next i
End Sub
Private Sub Command4_Click()
End
End Sub
Private Sub Form_Load()
MSFlexGrid1.Col = 0
MSFlexGrid1.Row = 0
MSFlexGrid1.Text = "№ п.п."
For i = 1 To 13
MSFlexGrid1.Row = i
MSFlexGrid1.Text = CStr(i)
Next i
MSFlexGrid1.Row = 0
MSFlexGrid1.Col = 1
MSFlexGrid1.Text = "t 'C"
MSFlexGrid1.Col = 2
MSFlexGrid1.Text = "Kr, 1/c"
MSFlexGrid1.Col = 3
MSFlexGrid1.Text = "Krr, 1/c"
MSFlexGrid1.Col = 4
MSFlexGrid1.Text = "eps, %"
End Sub
Результат расчета:
Итак, получили: E=60457.93 и k0=18525.68.
Расчет проводился на основе данных из Приложения 2 в программе, написанной в Visual Basic.
Код программы:
Option Explicit
Dim z As Integer
Dim i As Integer
Dim s1 As Single
Dim s2 As Single
Dim s3 As Single
Dim s4 As Single
Dim a As Single
Dim b As Single
Dim k0 As Single
Dim e As Single
Dim t() As Single
Dim k() As Single
Dim kr() As Single
Dim eps() As Single
Dim x() As Single
Dim y() As Single
Private Sub Command1_Click()
z = InputBox("Введите количество опытов", "Ввод экспериментальных данных")
MSFlexGrid1.Rows = z + 1
ReDim t(z) As Single
ReDim k(z) As Single
ReDim kr(z) As Single
ReDim eps(z) As Single
For i = 1 To z
MSFlexGrid1.Row = i
MSFlexGrid1.Col = 1
t(i) = Val(InputBox("Введите параметр T 'C", "Ввод экспериментальных данных"))
MSFlexGrid1.Text = CStr(t(i))
MSFlexGrid1.Col = 2
k(i) = Val(InputBox("Введите параметр K", "Ввод экспериментальных данных"))
MSFlexGrid1.Text = CStr(k(i))
Next i
Command2.Enabled = True
Command2.Visible = True
End Sub
Private Sub Command2_Click()
ReDim x(z) As Single
ReDim y(z) As Single
For i = 1 To z
x(i) = 1 / (t(i) + 273)
y(i) = Log(k(i)) / 2.3025
Next i
s1 = 0
s2 = 0
s3 = 0
s4 = 0
For i = 1 To z
s1 = s1 + x(i)
s2 = s2 + x(i) * x(i)
s3 = s3 + x(i) * y(i)
s4 = s4 + y(i)
Next i
a = (z * s3 - s1 * s4) / (z * s2 - s1 * s1)
b = (s2 * s4 - s1 * s3) / (z * s2 - s1 * s1)
Text1.Text = CStr(a)
b = -b
Text2.Text = CStr(b)
For i = 1 To z
kr(i) = 10 ^ (a / (t(i) + 273) - b)
eps(i) = Abs(k(i) - kr(i)) / Abs(k(i))
MSFlexGrid1.Row = i
MSFlexGrid1.Col = 3
MSFlexGrid1.Text = CStr(kr(i))
MSFlexGrid1.Col = 4
MSFlexGrid1.Text = CStr(eps(i))
Next i
End Sub
Private Sub Command4_Click()
End
End Sub
Private Sub Form_Load()
MSFlexGrid1.Col = 0
MSFlexGrid1.Row = 0
MSFlexGrid1.Text = "№ п.п."
For i = 1 To 13
MSFlexGrid1.Row = i
MSFlexGrid1.Text = CStr(i)
Next i
MSFlexGrid1.Row = 0
MSFlexGrid1.Col = 1
MSFlexGrid1.Text = "t 'C"
MSFlexGrid1.Col = 2
MSFlexGrid1.Text = "Kr"
MSFlexGrid1.Col = 3
MSFlexGrid1.Text = "Krr"
MSFlexGrid1.Col = 4
MSFlexGrid1.Text = "eps, %"
End Sub
Результат расчета:
Итак,
получили А=4789.031 и В=4.519998, следовательно:
Расчет проводился на основе данных из Приложения 3 в программе, написанной в Visual Basic.
Код программы:
Dim a() As Single
Dim n As Integer, m As Integer
Sub mnk6(ftr As Integer, n1 As Integer, masX() As Single, masY() As Single, masYR() As Single, formula As String)
Dim matrYR() As Single, x() As Single, y() As Single, skwOtkl() As Single, i As Integer
Dim ka As Single, kb As Single, AB() As Single, minS As Single, indMin As Integer
ReDim matrYR(1 To n1, 1 To 6) As Single, x(1 To n1) As Single, y(1 To n1) As Single, skwOtkl(1 To 6) As Single
ReDim AB(1 To 6, 1 To 2) As Single
'1 --- Уравнение y=a*x+b
For i = 1 To n1
x(i) = masX(i): y(i) = masY(i)
Next i
Call KoefAB(n1, x(), y(), ka, kb)
AB(1, 1) = ka: AB(1, 2) = kb
skwOtkl(1) = 0
For i = 1 To n1
matrYR(i, 1) = ka * masX(i) + kb
skwOtkl(1) = skwOtkl(1) + (masY(i) - matrYR(i, 1)) ^ 2
Next i
'2 --- Уравнение y=1/(a*x+b)
For i = 1 To n1
x(i) = masX(i): y(i) = 1 / masY(i)
Next i
Call KoefAB(n1, x(), y(), ka, kb)
AB(2, 1) = ka: AB(2, 2) = kb
skwOtkl(2) = 0
For i = 1 To n1
matrYR(i, 2) = 1 / (ka * masX(i) + kb)