Главная Учебники - Разные Лекции (разные) - часть 28
Российский химико-технологический университет имени Д. И. Менделеева Кафедра информатики и компьютерного моделирования Отчет по лабораторной работе № 2
Моделирование гидравлической системы в нестационарном режиме
. Вариант № 14 Выполнил: студент гр. П-45 Золотарев Д. С. Проверил: Тамбовцев И. И. Москва 2010 Схема гидравлической системы:
Основные допущения, накладываемые на модель:
1) Система работает в нестационарном режиме; 2) Рассматривается только гидравлика процесса; 3) Сопротивление трения потоку пренебрежимо мало; 4) Жидкость несжимаема и имеет постоянную плотность; 5) Газ - идеальный pV=nRT; 6) Режим - изотермический T=const. Система уравнений математического описания:
A) Уравнения расходов жидкости через клапаны:
1. v1
= k1
(p1
- p7
)1/2
2. v2
= k2
(p2
– p8
) 1/2
3. v3
= k3
(p7
- p3
) 1/2
4. v4
= k4
(p8
- p4
) 1/2
5. v5
= k5
(p8
- p5
) 1/2
6. v6
= k6
(p8
- p6
) 1/2
7. v7
= k7
(p8
– p7
) 1/2
B) Определение давлений жидкости и газа в емкостях:
8. p7
= p9
+ ρgh1
9. p9
= Pн
H1
/ (H1
- h1
) 10. p8
= p10
+ ρgh2
11. p10
= Pн
H2
/ (H2
- h2
) C) Дифференциальные уравнения заполнения емкостей:
12. dh1
/dt = (v1
- v3
– v7
) / s1
13. dh2
/dt = (v2
– v4
– v5
– v6 +
v 7
) / s2
D) Начальные условия:
14. h1
(t=0) = h1
0
15. h2
(t=0) = h2
0
Информационная матрица системы уравнений:
Программа
Option Explicit Option Base 1 Public culc As Integer Const m As Byte = 2 ' Количество решаемых ОДУ Const np% = 10, nk% = 7, nv% = 7, g! = 9.8 Public del! ' шаг Private k! Private y0!(m), x0! ' Начальное значение Private n% ' Число шагов Private kv% ' Кратность вывода Private x1!, y1!(m), i% Private ki!, ki1!, ki2!, vm!(nk), v!(nk), ak!(nk), p!(np) Private hg!(m), h!(m), s!(m), pr!(m), ro!, pn!, x!, ipr%, ipr1% Sub dydx(x As Single, y() As Single, pr!()) ' расчет производных для текущих(pr) x,y Dim j% For j = 1 To m: h(j) = y(j): Next j p(9) = pn * hg(1) / (hg(1) - h(1)): p(10) = pn * hg(2) / (hg(2) - h(2)) p(7) = p(9) + ro * g * h(1) * 0.000001: p(8) = p(10) + ro * g * h(2) * 0.000001 v(1) = ak(1) * Sgn(p(1) - p(7)) * Sqr(Abs(p(1) - p(7))) v(2) = ak(2) * Sgn(p(2) - p(8)) * Sqr(Abs(p(2) - p(8))) v(3) = ak(3) * Sgn(p(7) - p(3)) * Sqr(Abs(p(7) - p(3))) v(4) = ak(4) * Sgn(p(8) - p(4)) * Sqr(Abs(p(8) - p(4))) v(5) = ak(5) * Sgn(p(8) - p(5)) * Sqr(Abs(p(8) - p(5))) v(6) = ak(6) * Sgn(p(8) - p(6)) * Sqr(Abs(p(8) - p(6))) v(7) = ak(7) * Sgn(p(8) - p(7)) * Sqr(Abs(p(8) - p(7))) pr(1) = (v(1) - v(3) + v(7)) / s(1): pr(2) = (-v(4) - v(5) - v(6) + v(2) - v(7)) / s(2) For j = 1 To nk: vm(j) = v(j) * ro: Next j With Worksheets("TMP") ' TMP out '.Cells(ipr, 1) = i: .Cells(ipr, 2) = "p(5-7)": .Cells(ipr, 6) = "vm" '.Cells(ipr, 3) = p(5): .Cells(ipr, 4) = p(6): .Cells(ipr, 5) = p(7) '.Cells(ipr, 7) = vm(1): .Cells(ipr, 8) = vm(2): .Cells(ipr, 9) = vm(3) '.Cells(ipr, 10) = vm(4): .Cells(ipr, 11) = vm(5): ipr = ipr + 1 '.Cells(ipr, 2) = "x": .Cells(ipr, 4) = "y(1-2)": .Cells(ipr, 7) = "pr(1-2)" '.Cells(ipr, 3) = x: .Cells(ipr, 5) = y(1): .Cells(ipr, 6) = y(2) '.Cells(ipr, 8) = pr(1): .Cells(ipr, 9) = pr(2) ipr = ipr + 1 If ipr = 180 Then ipr = 1 End With End Sub Sub step(x As Single, y() As Single, del As Single, x1 As Single, y1() As Single) ' шаг интегрирования по X и Y расчет X1 и Y1 Dim y12!(m), j% Call dydx(x, y, pr) For j = 1 To m: y12(j) = y(j) + del * pr(j) / 2: Next j Call dydx(x + del / 2, y12, pr): x1 = x + del For j = 1 To m: y1(j) = y(j) + del * pr(j): Next j End Sub Public Sub gidra() Dim j%, contr As String Dim ii% Static x0s!, y0s!(2) ipr = 1: ipr1 = 3 With Worksheets("TASK") hg(1) = .Cells(4, 5): hg(2) = .Cells(5, 5): s(1) = 3.1415 * (.Cells(4, 9) ^ 2): s(2) = 3.1415 * (.Cells(5, 9) ^ 2) ro = .Cells(6, 5): pn = .Cells(6, 9) ' Давление (1-6) МПа For i = 1 To 6: p(i) = .Cells(8, i + 4): Next i ' Коэф. пpопускной способности (1-7) For i = 1 To nk: ak(i) = .Cells(9, i + 4): Next i ' Начальные условия x0,y0(1),y0(2) x0 = .Cells(10, 5): y0(1) = .Cells(10, 6): y0(2) = .Cells(10, 7) If culc = 4 Then x0 = x0s: y0(1) = y0s(1): y0(2) = y0s(2) ' Число шагов, шаг, кратность вывода n = .Cells(11, 5): del = .Cells(11, 6): kv = .Cells(11, 7) ' Относительная локальная погpешность ( % ) и Кpатность шагов на вывод ki1 = .Cells(12, 5): ki2 = .Cells(13, 5) End With 'For ii = 1 To nv: vm(ii) = 0: Next ii 'For ii = 7 To 10: p(ii) = 0: Next ii Worksheets("TMP").Activate Cells.Select Selection.Clear Range("a1").Select Worksheets("RESULTS").Activate Cells.Select Selection.Clear Range("a1").Select With Worksheets("RESULTS") .Cells(1, 1) = "x0": .Cells(1, 2) = "y0(1)": .Cells(1, 3) = "y0(2)": .Cells(1, 4) = "p(7)": .Cells(1, 5) = "p(8)": .Cells(1, 6) = "p(9)": .Cells(1, 7) = "p(10)": For ii = 1 To 7: .Cells(1, ii + 7) = "vm(" + Str(ii) + ")": Next ii .Cells(2, 1) = x0 .Cells(2, 2) = y0(1) .Cells(2, 3) = y0(2) For i = 1 To n ki = ki1 Call step(x0, y0, del, x1, y1) x0 = x1: x0s = x0 For j = 1 To m: y0(j) = y1(j): y0s(j) = y0(j): Next j If (i \ kv) = (i / kv) Then ' out .Cells(ipr1, 1) = x0 .Cells(ipr1, 2) = y0(1) .Cells(ipr1, 3) = y0(2) For ii = 1 To 4: .Cells(ipr1, ii + 3) = p(ii + 6): Next ii For ii = 1 To 7: .Cells(ipr1, ii + 7) = vm(ii): Next ii ipr1 = ipr1 + 1 Call dydx(x0, y0, pr) End If Next i End With End Sub Результаты моделирования:
Графики
Режим заполнения: h1(0)=h2(0)=0 Режим аварийного слива: h1(0)=h1(max) h2(0)=h2(max) K1=K2=0 Переходный режим: h1(0)=h1(max) h2(0)=h2(max) P1=3 P1=2 Выводы:
В ходе работы составлен алгоритм для моделирования простой гидравлической системы в виде блок-схемы и программы для VBA. Изучена работа данной системы в динамическом режиме. Получены данные с достаточной достоверностью. Построены необходимые графики.
|