- •ОБОЗНАЧЕНИЯ
- •ВВЕДЕНИЕ
- •Глава 1. АНАЛИТИЧЕСКАЯ ПОСТАНОВКА И РЕШЕНИЕ ЗАДАЧ ТЕПЛОПРОВОДНОСТИ/ДИФФУЗИИ
- •1.1. ОДНОСЛОЙНАЯ НЕОГРАНИЧЕННАЯ ПЛАСТИНА
- •1.2. N-СЛОЙНАЯ ПЛАСТИНА
- •1.3. ДВУХСЛОЙНЫЙ ЦИЛИНДР
- •1.4. ДВУХСЛОЙНЫЙ ШАР
- •1.5. ОГРАНИЧЕННЫЙ ЦИЛИНДР
- •1.6. ОГРАНИЧЕННАЯ ПЛАСТИНА
- •Глава 3. ОПРЕДЕЛЕНИЕ ФОРМЫ ЖИДКОЙ КАПЛИ, ЛЕЖАЩЕЙ НА ТВЁРДОЙ ПОДЛОЖКЕ
- •Глава 4. ИНЖЕНЕРНО-КИНЕТИЧЕСКИЕ МЕТОДЫ РАСЧЁТА ПРОЦЕССОВ ТЕПЛООБМЕНА И СУШКИ
- •ЗАКЛЮЧЕНИЕ
- •СПИСОК ЛИТЕРАТУРЫ
Глава 4. ИНЖЕНЕРНО-КИНЕТИЧЕСКИЕ МЕТОДЫ РАСЧЁТА ПРОЦЕССОВ ТЕПЛООБМЕНА И СУШКИ
Методы, сочетающие кинетическую разбивку процесса сушки на зоны, инженерно-физическую аппроксимацию границ зон и необходимых ТМПХ и аналитические решения задач тепло- и массопереноса в пределах каждой зоны при интервальном подходе, можно называть инженерно-кинетическими. При этом требуется свести задачи теплопереноса и массопереноса с соответствующими граничными условиями к аналогичной форме, что достигается введением эффективных коэффициентов переноса и характеристик [72, 73, 88, 140, 158]. Наличие взаимосвязанности тепло- и массопереноса учитывается использованием температурно-влажностных зависимостей [60, 61, 65, 69, 72].
Классической является система уравнений тепло- и массопереноса при сушке А. В. Лыкова [93, 96, 184]
∂T (x,τ) |
= a |
∂2T (x,τ) |
+ |
ε r |
|
∂u(x,τ) |
; |
(95а) |
|
∂τ |
|
∂x2 |
c |
∂τ |
|||||
|
|
|
|
|
|
||||
∂u(x,τ) |
= D |
∂2u(x,τ) |
+δt |
∂2T (x,τ) |
. |
(95б) |
|||
∂τ |
∂x2 |
|
∂x 2 |
||||||
|
|
|
|
|
|
|
|||
Для линейных задач система (95) (или аналогичная система для нелинейных задач [1]) вполне может применяться в единообразных «эквивалентных» постановках, соответствующих конкретным условиям. При этом должны учитываться реальный механизм переноса и соответствующие вышеперечисленные явления.
Целесообразно и вполне обоснованно принять переменный «критерий» фазового превращения в уравнении (95а) в 1-м периоде сушки
ε= 0, что соответствует поверхностному испарению, а во 2-м периоде
ε= 1, что соответствует объёмному испарению. Это было подтверждено прямыми экспериментами по миграции и по тепловым полям [58, 100].
Тогда сток тепла на поверхностное испарение в первом периоде войдёт в эквивалентные ГУ:
λ |
э |
∂T (l,τ) |
= α |
э |
[T |
cэ |
−T (l,τ)] , |
(96) |
|
∂τ |
|
|
|
|
51
где
|
|
|
|
|
|
|
β |
исп |
r |
b |
|
|
|
|
|
||||
α |
|
= α |
|
1+ |
|
|
|
n |
; |
|
|
(97) |
|||||||
э |
эф |
|
|
|
αэф |
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
T |
+ |
qизл |
|
− |
βисп r an |
|
|
|
||||||||
|
|
|
|
|
|
|
|
||||||||||||
Tcэ |
|
= |
c |
|
αэф |
|
|
|
|
αэф |
|
|
|
. |
(98) |
||||
|
|
1+ |
βисп r an |
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
αэф |
|
|
|
|
|
|
|
||
Здесь αэф учитывает вклад теплоподвода и конвекцией, и излучением; βисп – считается по критериальному уравнению; an, bn – коэффициенты аппроксимации уравнения для концентрации насыщенного пара у поверхности:
Снас(Т) = an + bnT.
Причем Снас = Снас(Рнас(Т(l, τ)), где Рнас(Т) аппроксимируется экспоненциальным и весьма точным уравнением Антуана.
Во 2-м периоде сток тепла на объёмное испарение войдёт в эквивалентную теплоёмкость:
сэф = ст +сж u −r du bт , dτ
где bт = dT – наклон температурно-влажностной кривой (см. ниже). d u
«Истинная» термодиффузия (коэффициент δт) как проявление термодинамической связи по Озангеру между переносом тепла и массы для тел макропористого строения и для дисперсий, очевидно, пренебрежимо мала, а известные эффекты перераспределения влаги вызываются макроскопическими явлениями (капиллярными течениями, натеканием, расширением и насыщением воздуха, механической усадкой и многими другими, что неоднократно анализировалось). Поэтому целесообразнее в уравнении (95б) эти эффекты учитывать введением в
первое слагаемое эквивалентного коэффициента диффузии Dэ, а дополнительно учитывать взаимодействие тепло- и массопереноса жёсткой, надёжной и наблюдаемой связью – использованием самостоятельной температурно-влажностной зависимости.
Граничные условия массопереноса для 1-го периода – это ГУ-3 поверхностного испарения
Dэ |
∂C(l, τ) |
= βисп[С(T (l, τ)) −Cо], |
(99) |
|
∂x |
||||
|
|
|
52
а для 2-го периода обычные условные ГУ-3, отнесеённые к перепаду фактических и квазиравновесных концентраций влаги на поверхности материала:
Dэ |
∂С(l,τ) =β* [С(l,τ) −Cкв* (Т(l,τ))]. |
(100) |
|
∂x |
|
При этом объёмная концентрация влаги С, кг вл./м3 вл. материала в уравнениях диффузии, включающих Dэ, м2/с, пересчитывается в удобные для расчётов сушки относительные влагосодержания u, кг вл./кг абс. сух. материала по обычному соотношению:
u=C 1−П ,
ρск
где П – фактическая пористость в данный момент процесса (и в данном сечении материала), т.е. доля объёма, не занятая «абсолютно» сухим материалом («скелетом»).
Границы зон удобнее всего аппроксимировать критическими влагосодержаниями u1кр и u2кр и соотношениями кусочно-линейной или другой температурно-влажностной зависимости (рис. 22).
Для ряда материалов возможна оценка uкр по А. В. Лыкову [93]
(≈0,56uo при полном заполнении пор ) или по О. Кришеру [43, 93] (с учётом распределения пор по размерам).
Известна сильная зависимость uкр от режима сушки и от толщи-
ны материала [43, 93, 178 и др.].
Очевидно, этого можно избежать или хотя бы уменьшить влияние режима и толщины, если использовать критические влагосодержания на поверхности материала или дисперсии uкр. пов.
В нашем случае это должно быть связано с потерей текучести, структурообразованием, коркообразованием и пр. в поверхностном слое (см. например [26, 51, 59]).
Тогда при слабом структурировании для 1-го критического влагосодержания можно прогнозировать аппроксимацию типа:
|
|
|
|
|
ρ |
ж |
|
Пкр |
|
μ(T |
) 0,5 |
|
u |
кр.пов |
= K |
ф |
|
|
|
|
|
пов |
|
, |
|
|
|
|
||||||||||
|
|
|
ρтв |
1−Пкр |
|
μбаз |
|
|
||||
|
|
|
|
|
|
|
|
|||||
где Пкр – пористость, соответствующая такой укладке частиц в жидкости, при которой резко снижается подвижность дисперсии
53
Рис. 22. Различные варианты температурно-влажностных зависимостей
из-за соприкосновения частиц и сил трения, сцепления и пр.; предварительно можно оценить Пкр= 0,4, соответствующее средней пористости типовых зернистых укладок; Kф – коэффициент фракционного состава и формы частиц.
Влияние температуры поверхности на подвижность поверхностного слоя в первом приближении можно оценить соотношением фактической вязкости чистой жидкости и некоторой «базовой» вязкости, например, при комнатной температуре исходной суспензии.
54
Все это должно в достаточной степени коррелировать с подвижностью исходной дисперсии, зависящей от её концентрации. Поэтому весьма важными являются данные по сушке одних и тех же дисперсий в широком диапазоне концентраций: от близких по текучести к чистой жидкости (8…10% тв. фазы и менее) до практически нетекучих паст (50% тв. фазы и более).
Явный вид этих зависимостей, естественно, может быть найден только обработкой экспериментальных данных.
Вторая критическая влажность u2кр должна быть связана с образованием поверхностной «корки», приводящей к необходимости её «прорыва» в режиме, близком к подкорковому кипению [62].
Для больших толщин возможны классические механизмы «углубления поверхности (зоны) испарения» [63, 93, 105 и др.].
Аппроксимации величин u2кр вполне возможны на основе аналогичных соображений. Детальный количественный модельный подход такого рода был показан ранее в работах ТГТУ [1, 2, 3, 16].
В пределах зон с переменной температурой аппроксимация тем- пературно-влажностных зависимостей была ранее предложена и опробована в ТГТУ несколькими способами [62, 69]. Для сушки дисперсий наиболее перспективно использование линейно-гиперболи- ческой температурно-влажностной зависимости [60, 72].
Схема такой аппроксимации приведена на рис. 23. Основные соотношения для её расчёта следующие:
T |
(u)= |
u +ϕbт |
, |
где ϕ= |
bт |
, b |
т.баз |
= − |
d |
T |
. |
|
|
||||||||||
|
|
|
|
||||||||
п |
|
au +c |
|
|
bт.баз |
|
d u |
||||
|
|
|
|
|
|
||||||
Значения a, с находятся из граничных точек.
В итоге методика инженерно-кинетического расчёта сводится к использованию аналитических решений с введением аппроксимации температурно-влажностной зависимости и тепломассопереносных характеристик.
Кроме вышеперечисленных, будут применяться также получаемые нами для наших конкретных условий зависимости для коэффициентов теплоотдачи α(u) и массоотдачи β(u). Необходима также хотя бы грубая оценка эффективного коэффициента диффузии влаги Dэф и значения равновесного (квазиравновесного) влагосодержания u*, u*кв в высушиваемых дисперсиях.
Здесь возможны многочисленные варианты зависимостей, выбор которых должен производиться на базе анализа экспериментальных данных.
55
а)
б)
Рис. 23. Схема гиперболической аппроксимации температурновлажностной зависимости по зонам в функции влагосодержания
Эти и некоторые другие необходимые материалы дополнительно рассматриваются непосредственно в литературе по анализу и обработке экспериментальных данных.
Приведём листинг основных процедур программы расчёта полей темепартуры и концентрации при сушке дисперсных продуктов на твёрдых подложках (язык Visual Basic).
56
Описание переменных
Dim tay(250); texp(250); mu_T(50); A1n_T(50); A2n_T(50); Mn_T(50); fi1_T(50); fi2_T(50) As Double Dim gexp(250); Uexp(250); mu_D(50); A1n_D(50); A2n_D(50); Mn_D(50); fi1_D(50); fi2_D(50) As Double Dim T10; T20; Cw1_T; Cw2_T; Cw3_T; Cw4_T; Tc; Tizl; Tc1r; Tc2r; w; xc; Tc1; Tc2 As Double Dim U10; U20; Cw1_D; Cw2_D; Cw3_D; Cw4_D; Uc; Uc1; Uc2 As Double
Dim a1; lambda1; c1; ro1; l1_T; a2; lambda2; c2; ro2; l2_T As Double Dim D1; l1_D; D2; l2_D As Double Dim lopr As Double Dim h1_T; h2_T; alfa1; alfa2; alf_eff As Double
Dim h1_D; h2_D; beta1; beta2; bet_eff As Double Dim i; n; nd As Integer Dim tau; dtau; dtau1; x_T1; x_T2; x_D1; x_D2; dx1; dx2 As Double Dim l1; l2 As Double
Dim Fobr; gabs; m0; procent As Double Dim tr(350); gr(350) As Double Dim T_test; Tmt; Tc_ekv; tau_krit; tau_kon As Double Dim t1s; t2s As Double
Dim u1s; u2s; u2sr; u2lp; u2ld As Double Dim Tps; Tps1; Tps2; Tpod0; bet1per; skor1 As Double
Dim shifr As String Dim tochn; U_krit; Ukvrav; gkrit; fi1 As Double Dim trr As Variant Dim qq; elj1 As Integer
Ввод исходных данных
Sub data()
With ThisWorkbook.Worksheets("Данные")
Tc = .Range("H2").Value Tizl = .Range("I2").Value w = .Range("H3").Value xc = .Range("H4").Value
shifr = .Range("A2").Value gabs = .Range("H10").Value * ,001 m0 = .Range("H11").Value * ,001 lopr = .Range("H7").Value lambda1 = .Range("K2").Value c1 = .Range("K3").Value
ro1 = .Range("K4").Value U_krit = .Range("H14").Value tau_krit = .Range("H15").Value tau_kon = .Range("H16").Value dtau = .Range("K10").Value dtau1 = .Range("K11").Value
l1 = .Range("K5").Value * ,001 Tpod0 = .Range("H5").Value Fobr = ,045 * ,035' lambda2 = .Range("5").Value End With With ThisWorkbook.Worksheets("Настройки")
n = .Range("E3").Value tochn = .Range("E4").Value
D2 = .Range("E9").Value Ukvrav = .Range("E10").Value fi1 = .Range("E11").Value
End With End Sub
57
Расчет коэффициентов тепломассоотдачи
Function alfa_suh(t; w) As Double
lambdav = ,02437 + ,000075 * t rov = 353 / (t + 273) muv = (17,1 + ,047 * t) * ,000001
cv = 1010 av = lambdav / (cv * rov) Re = w * lopr * rov / muv Pr = muv / (av * rov)
Nu_suh = 1,8 * Re ^ ,5 * Pr ^ ,333 'Nu_suh = 1,57 * Re ^ ,5 * Pr ^ ,333 alfa_suh = lambdav * Nu_suh / lopr
End Function
Function alfa_isp(t; w) As Double
lambdav = ,02437 + ,000075 * t rov = 353 / (t + 273) muv = (17,1 + ,047 * t) * ,000001 cv = 1010
av = lambdav / (cv * rov) Re = w * lopr * rov / muv Pr = muv / (av * rov) Nu_isp = 5,5 * Re ^ ,375 * Pr ^ ,333
End Function
Function beta_isp(t; w) As Double
lambdav = ,02437 + 7,5 * ,00001 * t rov = 353 / (t + 273)
muv = (17,1 + ,047 * t) * ,000001 Dn = ,0000216 * ((t + 273) / 273) ^ 1,8 Re = w * lopr * rov / muv Sc = muv / (Dn * rov) 'Nu_dif = 6,9 * Re ^ 0,4 * Sc ^ 0,333 'Nu_dif = ,7 * Re ^ ,5 * Sc ^ ,333 Nu_dif = 4,95 * Re ^ ,37 * Sc ^ ,33 beta_isp1 = Dn * Nu_dif / lopr
End Function
Function alfa_izl(Tc1; tm1) As Double Dim c0; e1; e2; epr As Double
c0 = ,0000000567 e1 = 1 e2 = ,8 epr = 1 / (1 / e1 + 1 / e2 – 1)
alfa_izl = epr * c0 * ((Tc1 + 273) ^ 4 – (tm1 + 273) ^ 4) / (Tc1 – tm1 + ,00001)
End Function
Расчет значений А1 температурной задачи
Function fun1_t(xx) As Double
fun1_t = (T10 – Cw1_T * xx – Cw2_T) * Sin(mu_T(i) * xx / Sqr(a1) + fi1_T(i))
End Function
Function fun2_t(xx) As Double
fun2_t = (T20 – Cw3_T * xx – Cw4_T) * Sin(mu_T(i) * xx / Sqr(a2) + fi2_T(i))
End Function
Function fun3_t(xx) As Double
fun3_t = Sin(mu_T(i) * xx / Sqr(a1) + fi1_T(i)) * Sin(mu_T(i) * xx / Sqr(a1) + fi1_T(i))
End Function
58
Function fun4_t(xx) As Double
fun4_t = Sin(mu_T(i) * xx / Sqr(a2) + fi2_T(i)) * Sin(mu_T(i) * xx / Sqr(a2) + fi2_T(i))
End Function
Function itgr1_t(a1; b1) As Double
Dim in1; ai; bi; dx As Double; ii; nn As Integer ai = a1: nn = 1000: dx = (b1 – a1) / nn: in1 = 0
For ii = 1 To nn bi = ai + dx: in1 = in1 + (bi – ai) * (fun1_t(ai) + fun1_t(bi)) / 2 ai = bi
Next itgr1_t = in1 End Function
Function itgr2_t(a1; b1) As Double
Dim in1; ai; bi; dx As Double; ii; nn As Integer ai = a1: nn = 1000: dx = (b1 – a1) / nn: in1 = 0
For ii = 1 To nn bi = ai + dx: in1 = in1 + (bi – ai) * (fun2_t(ai) + fun2_t(bi)) / 2 ai = bi
Next itgr2_t = in1 End Function
Function itgr3_t(a1; b1) As Double
Dim in1; ai; bi; dx As Double; ii; nn As Integer ai = a1: nn = 1000: dx = (b1 – a1) / nn: in1 = 0
For ii = 1 To nn bi = ai + dx: in1 = in1 + (bi – ai) * (fun3_t(ai) + fun3_t(bi)) / 2 ai = bi
Next itgr3_t = in1 End Function
Function itgr4_t(a1; b1) As Double
Dim in1; ai; bi; dx As Double; ii; nn As Integer
ai = a1: nn = 1000: dx = (b1 – a1) / nn: in1 = 0 For ii = 1 To nn
bi = ai + dx: in1 = in1 + (bi – ai) * (fun4_t(ai) + fun4_t(bi)) / 2 ai = bi Next itgr4_t = in1
End Function
Sub znach_a1n_t()
Dim chislit1; chislit2; znamenat As Double Dim Tp10; Tp20 As Double
Dim prom1; prom2 As Double
Tp10 = T10 – Cw2_T Tp20 = T20 – Cw4_T
For i = 1 To n pr1 = (lambda1 / a1) * itgr1_t(0; l1_T) pr2 = (lambda2 * Mn_T(i) / a2) * itgr2_t(0; l2_T)
pr3 = (lambda1 / a1) * itgr3_t(0; l1_T) pr4 = (lambda2 * Mn_T(i) * Mn_T(i) / a2) * itgr4_t(0; l2_T)
59
A1n_T(i) = (pr1 + pr2) / (pr3 + pr4) statsbar "Найдено значений А1-"; i Next
End Sub
Расчет значений А2 температурной задачи
Sub znach_a2n_t()
Dim i As Integer Dim norma As Double
For i = 1 To n A2n_T(i) = A1n_T(i) * Mn_T(i) Next End Sub
Расчет значений Mn температурной задачи
Sub znach_Mn_t() Dim i As Integer
For i = 1 To n Mn_T(i) = Sin(mu_T(i) * l1_T / Sqr(a1) + fi1_T(i)) / Sin(fi2_T(i)) Next
End Sub
Расчет корней характеристического уравнения температурной задачи
Function Sign(ff As Double) As Boolean
If ff >= 0 Then Sign = True Else Sign = False End Function
Function F_1_t(xx) As Double
F_1_t = (Sqr(a1) / lambda1) * Sin(xx * l1_T / Sqr(a1) + Atn(xx / (h1_T * Sqr(a1)))) * _
Cos(-xx * l2_T / Sqr(a2) – Atn(xx / (h2_T * Sqr(a2)))) End Function
Function F_2_t(xx) As Double
F_2_t = (Sqr(a2) / lambda2) * Cos(xx * l1_T / Sqr(a1) + Atn(xx / (h1_T * Sqr(a1)))) * _
Sin(-xx * l2_T / Sqr(a2) – Atn(xx / (h2_T * Sqr(a2)))) End Function
Sub znach_mu_t() Dim i As Integer
Dim temp As Double Dim x0; dx; dmu; m_u As Double Dim sign_pr As Boolean
dx = tochn x0 = 0 temp = F_1_t(x0) – F_2_t(x0)
If Sign(temp) = True Then sign_pr = True Else sign_pr = False i = 0 While i < n
x0 = x0 + dx temp = F_1_t((x0)) – F_2_t((x0)) If Sign(temp) = sign_pr Then i = i Else sign_pr = Not sign_pr: i = i + 1: mu_T(i) = (x0 – dx / 2): statsbar "Найдено корней mu_t -"; i & " =" & mu_T(i): If i >= 2 Then x0 = mu_T(i) + Fix(mu_T(i) – mu_T(i – 1)) Wend
End Sub
60
Расчет значений Fi температурной задачи
Sub znach_fi1_t() Dim i As Integer
For i = 1 To n fi1_T(i) = Atn(mu_T(i) / (h1_T * Sqr(a1))) Next End Sub
Sub znach_fi2_t() Dim i As Integer
For i = 1 To n fi2_T(i) = -Atn(mu_T(i) / (h2_T * Sqr(a2))) – mu_T(i) * l2_T / Sqr(a2) Next
End Sub
Расчет значений Cwi температурной задачи
Sub znach_cw_t()
Cw1_T = (h2_T * Tc2 – h2_T * Tc1) / ((lambda1 / lambda2) + l1_T * h2_T + (h2_T / h1_T) + h2_T * l2_T * lambda1 / lambda2) Cw2_T = (Cw1_T + h1_T * Tc1) / h1_T Cw3_T = Cw1_T * lambda1 / lambda2 Cw4_T = Cw2_T + Cw1_T * l1_T
End Sub
Расчет значений Т(x,tau)
Function W_1_t(xx1) As Double W_1_t = Cw1_T * xx1 + Cw2_T
End Function
Function T_1(xx; ttau) As Double
Dim i As Integer Dim e; pT; Xn; Tn As Double
pT = 0 For i = 1 To n Xn = Sin(mu_T(i) * xx / Sqr(a1) + fi1_T(i)) e = (mu_T(i) * mu_T(i)) * ttau
If e > 60 Then e = 0 Else e = Exp(-e) Tn = A1n_T(i) * e pT = pT + Xn * Tn
Next T_1 = pT + W_1_t(xx) End Function
Function T_1_s(xx; ttau) As Double
Dim i As Integer Dim e; pT; Xn; Tn As Double
pT = 0 For i = 1 To n Xn = Sin(mu_T(i) * xx / Sqr(a1) + fi1_T(i)) e = (mu_T(i) * mu_T(i)) * ttau
If e > 60 Then e = 0 Else e = Exp(-e) Tn = A1n_T(i) * e pT = pT + Xn * Tn Next
T_1_s = pT + W_1_t(xx) End Function
Function W_2_t(xx1) As Double W_2_t = Cw3_T * xx1 + Cw4_T
End Function
Function T_2(xx; ttau) As Double
61
Dim i As Integer
Dim e; pT; Xn; Tn As Double pT = 0 For i = 1 To n
Xn = Sin(mu_T(i) * xx / Sqr(a2) + fi2_T(i)) e = (mu_T(i) * mu_T(i)) * ttau
If e > 60 Then e = 0 Else e = Exp(-e) Tn = A2n_T(i) * e pT = pT + Xn * Tn
Next T_2 = pT + W_2_t(xx) End Function
Function T_2_s(xx; ttau) As Double
Dim i As Integer Dim e; pT; Xn; Tn As Double pT = 0 For i = 1 To n
Xn = Sin(mu_T(i) * xx / Sqr(a2) + fi2_T(i)) e = (mu_T(i) * mu_T(i)) * ttau
If e > 60 Then e = 0 Else e = Exp(-e) Tn = A2n_T(i) * e pT = pT + Xn * Tn
Next T_2_s = pT + W_2_t(xx) End Function
Расчет значений А1 диффузионной задачи
Function fun1_d(xx) As Double
fun1_d = (U10 – Cw1_D * xx – Cw2_D) * Sin(mu_D(i) * xx / Sqr(D1)
+fi1_D(i)) End Function
Function fun2_d(xx) As Double
fun2_d = (U20 – Cw3_D * xx – Cw4_D) * Sin(mu_D(i) * xx / Sqr(D2)
+fi2_D(i))
End Function
Function fun3_d(xx) As Double
fun3_d = Sin(mu_D(i) * xx / Sqr(D1) + fi1_D(i)) * Sin(mu_D(i) * xx / Sqr(D1) + fi1_D(i))
End Function
Function fun4_d(xx) As Double
fun4_d = Sin(mu_D(i) * xx / Sqr(D2) + fi2_D(i)) * Sin(mu_D(i) * xx / Sqr(D2) + fi2_D(i))
End Function
Function itgr1_d(a1; b1) As Double
Dim in1; ai; bi; dx As Double; ii; nn As Integer ai = a1: nn = 1000: dx = (b1 – a1) / nn: in1 = 0
For ii = 1 To nn bi = ai + dx: in1 = in1 + (bi – ai) * (fun1_d(ai) + fun1_d(bi)) / 2 ai = bi
Next itgr1_d = in1
62
End Function
Function itgr2_d(a1; b1) As Double
Dim in1; ai; bi; dx As Double; ii; nn As Integer ai = a1: nn = 1000: dx = (b1 – a1) / nn: in1 = 0
For ii = 1 To nn bi = ai + dx: in1 = in1 + (bi – ai) * (fun2_d(ai) + fun2_d(bi)) / 2 ai = bi
Next itgr2_d = in1 End Function
Function itgr3_d(a1; b1) As Double
Dim in1; ai; bi; dx As Double; ii; nn As Integer ai = a1: nn = 1000: dx = (b1 – a1) / nn: in1 = 0
For ii = 1 To nn bi = ai + dx: in1 = in1 + (bi – ai) * (fun3_d(ai) + fun3_d(bi)) / 2 ai = bi
Next itgr3_d = in1 End Function
Function itgr4_d(a1; b1) As Double
Dim in1; ai; bi; dx As Double; ii; nn As Integer ai = a1: nn = 1000: dx = (b1 – a1) / nn: in1 = 0
For ii = 1 To nn bi = ai + dx: in1 = in1 + (bi – ai) * (fun4_d(ai) + fun4_d(bi)) / 2 ai = bi
Next itgr4_d = in1 End Function
Sub znach_a1n_d()
Dim chislit1; chislit2; znamenat As Double Dim Up10; Up20 As Double Dim prom1; prom2 As Double
Up10 = U10 – Cw2_D Up20 = U20 – Cw4_D For i = 1 To n
pr1 = (D1 / D1) * itgr1_d(0; l1_D) pr2 = (D2 * Mn_D(i) / D2) * itgr2_d(0; l2_D)
pr3 = (D1 / D1) * itgr3_d(0; l1_D) pr4 = (D2 * Mn_D(i) * Mn_D(i) / D2) * itgr4_d(0; l2_D)
A1n_D(i) = (pr1 + pr2) / (pr3 + pr4) statsbar "Найдено значений А1-"; i Next
End Sub
Расчет значений А2 диффузионной задачи
Sub znach_a2n_d()
Dim i As Integer Dim norma As Double
For i = 1 To n A2n_D(i) = A1n_D(i) * Mn_D(i) Next End Sub
Расчет значений Mn диффузионной задачи -
Sub znach_Mn_d() Dim i As Integer
63
For i = 1 To n Mn_D(i) = Sin(mu_D(i) * l1_D / Sqr(D1) + fi1_D(i)) / Sin(fi2_D(i)) Next
End Sub
Расчет корней характеристического уравнения диффузионной задачи
Function F_1_d(xx) As Double
F_1_d = (Sqr(D1) / D1) * Sin(xx * l1_D / Sqr(D1) + Atn(xx / (h1_D * Sqr(D1)))) * _
Cos(-xx * l2_D / Sqr(D2) – Atn(xx / (h2_D * Sqr(D2)))) End Function
Function F_2_d(xx) As Double
F_2_d = (Sqr(D2) / D2) * Cos(xx * l1_D / Sqr(D1) + Atn(xx / (h1_D * Sqr(D1)))) * _
Sin(-xx * l2_D / Sqr(D2) – Atn(xx / (h2_D * Sqr(D2)))) End Function
Sub znach_mu_d()
Dim i As Integer Dim temp As Double Dim x0; dx; dmu; m_u As Double Dim sign_pr As Boolean
dx = tochn x0 = 0 temp = F_1_d(x0) – F_2_d(x0) If Sign(temp) = True Then sign_pr = True Else sign_pr = False i = 0 While i < n x0 = x0 + dx temp = F_1_d((x0)) – F_2_d((x0))
If Sign(temp) = sign_pr Then i = i Else sign_pr = Not sign_pr: i = i + 1: mu_D(i) = (x0 – dx / 2): statsbar "Найдено корней mu_d -"; i & " =" & mu_D(i): If i >= 2 Then x0 = mu_D(i) + Fix(mu_D(i) – mu_D(i – 1))
Wend
End Sub
Значения Fi диффузионной задачи
Sub znach_fi1_d() Dim i As Integer
For i = 1 To n fi1_D(i) = Atn(mu_D(i) / (h1_D * Sqr(D1))) Next End Sub
Sub znach_fi2_d() Dim i As Integer
For i = 1 To n fi2_D(i) = -Atn(mu_D(i) / (h2_D * Sqr(D2))) – mu_D(i) * l2_D / Sqr(D2)
Next
End Sub
Значения Cwi диффузионной задачи
Sub znach_cw_d()
Cw1_D = (h2_D * Uc2 – h2_D * Uc1) / ((D1 / D2) + l1_D * h2_D + (h2_D / h1_D) + h2_D * l2_D * D1 / D2) Cw2_D = (Cw1_D + h1_D * Uc1) / h1_D Cw3_D = Cw1_D * D1 / D2
64
Cw4_D = Cw2_D + Cw1_D * l1_D End Sub
Расчет значения U(x,tau)
Function W_1_d(xx1) As Double W_1_d = Cw1_D * xx1 + Cw2_D
End Function
Function U_1(xx; ttau) As Double Dim i As Integer
Dim e; pU; Xn; Tn As Double
pU = 0 For i = 1 To n Xn = Sin(mu_D(i) * xx / Sqr(D1) + fi1_D(i)) e = (mu_D(i) * mu_D(i)) * ttau
If e > 60 Then e = 0 Else e = Exp(-e) Tn = A1n_D(i) * e pU = pU + Xn * Tn
Next U_1 = pU + W_1_d(xx) pereschet 4 End Function
Function U_1_s(xx; ttau) As Double
Dim i As Integer Dim e; pU; Xn; Tn As Double
pU = 0 For i = 1 To n Xn = Sin(mu_D(i) * xx / Sqr(D1) + fi1_D(i))
e = (mu_D(i) * mu_D(i)) * ttau If e > 60 Then e = 0 Else e = Exp(-e) Tn
=A1n_D(i) * e pU = pU + Xn * Tn Next U_1_s = pU + W_1_d(xx) pereschet 4
End Function
Function W_2_d(xx1) As Double W_2_d = Cw3_D * xx1 + Cw4_D
End Function
Function U_2(xx; ttau) As Double Dim i As Integer
Dim e; pU; Xn; Tn As Double
pU = 0 For i = 1 To n Xn = Sin(mu_D(i) * xx / Sqr(D2) + fi2_D(i)) e = (mu_D(i) * mu_D(i)) * ttau
If e > 60 Then e = 0 Else e = Exp(-e) Tn = A2n_D(i) * e pU = pU + Xn * Tn
Next U_2 = pU + W_2_d(xx) pereschet 4 End Function
Function U_2_s(xx; ttau) As Double
Dim i As Integer Dim e; pU; Xn; Tn As Double
pU = 0 For i = 1 To n Xn = Sin(mu_D(i) * xx / Sqr(D2) + fi2_D(i))
e = (mu_D(i) * mu_D(i)) * ttau If e > 60 Then e = 0 Else e = Exp(-e) Tn
=A2n_D(i) * e
pU = pU + Xn * Tn Next U_2_s = pU + W_2_d(xx) pereschet 4 End Function
65
'------------ Расчет температурного поля-------------
With ThisWorkbook.Worksheets("Поле") .Cells(qq + 2; 1).Value = tau'
.Cells(qq + 2; 2).Value = texp(qq) |
|
' .Cells(qq + 2; 3).Value = gexp(qq) / gabs '---- |
Подложка .Cells(qq + 2; |
5).Value = T_1(0; tau) .Cells(qq + 2; 6).Value = T_1(l1_T * ,33; tau)
.Cells(qq + 2; 7).Value = T_1(l1_T * ,67; tau) .Cells(qq + 2; 8).Value = T_1(l1_T; tau) '---- Дисперсия
.Cells(qq + 2; 9).Value = T_2(l2_T * ,33; tau) .Cells(qq + 2; 10).Value = T_2(l2_T * ,67; tau)
.Cells(qq + 2; 11).Value = T_2(l2_T; tau) End With With ThisWorkbook.Worksheets("Поле")
.Cells(qq + 2; 4).Value = l2_T * 1000 '---Дисперсия .Cells(qq + 2; 12).Value = gr(qqv) / gabs .Cells(qq + 2; 13).Value = gr(qqv) / gabs
.Cells(qq + 2; 14).Value = gr(qqv) / gabs .Cells(qq + 2; 15).Value = gr(qqv) / gabs End With qq = qq + 1 statsbar "Время расчета tau="; tau tau = tau +
dtau |
|
'----- |
Пересчет коэффициентов lambda2 = 0,056 + 0,0057 * 100 * |
(gr(qqv) / (gr(qqv) + gabs)) |
|
|
c2 = 4190 * (1 – gabs / (gabs + gr(qqv))) + 1472 * gabs / (gabs + gr(qqv)) |
|
ro2 = 1030 a2 = lambda2 / (c2 * ro2) T10 = t1s |
|
T20 = t2s l2_T = (gabs * (1 + gr(qqv) / gabs) ^ 2) / (Fobr * (gr(qqv) / |
gabs * 1000 + ro2)) |
|
|
prom = gr(qqv) / gabs Loop While (gr(qqv) / gabs) > U_krit |
'-------------- |
Расчет 2 периода сушки ------- |
T10 = t1s T20 = t2s tr(qq) = T20 gkrit = gr(qqv) |
|
'------- |
Свойства дисперсии начальные = конечные для 1 периода ---- |
lambda2 = lambda2 c2 = c2 ro2 = ro2 '--Толщина слоя дисперсии =var l1_T = l1 l1_D = l1_T l2_D = l2_T
'----- Расчет начальных значений коэф. переноса -----
'--- Для температурной задачи
Tps1 = (T10 + Tc) / 2 Tps2 = (T20 + Tc) / 2 alf_eff = alfa_isp(Tps2; w) + alfa_izl(Tizl; T20)
alfa1 = alfa_suh(Tps1; w) + alfa_izl(Tizl; T10) alfa2 = alf_eff h1_T = alfa1 / lambda1
h2_T = alfa2 / lambda2 a1 = lambda1 / (c1 * ro1) a2 = lambda2 / (c2 * ro2)
Tc1 = Tc Tc2 = Tc '--- Для диффузионной задачи beta1 = beta_isp(Tps1; w) beta2 = beta_isp(Tps2; w) beta_u = beta_isp(Tps2; w) '-----
Квазиравновесное влагосодержание по слоям Uc1 = 0 Uc2 = Ukvrav
'------Начальное влагосод. по слоям ------------------
66
U10 = 0 U20 = gkrit / gabs' U20 = gkrit / (Fobr * l2_D) D1 = 1E-30 h1_D = beta1 / D1 h2_D = beta2 / D2 Uc2 = Ukvrav * gabs bbaz1 = (Tc_ekv – Tc) / (gkrit ^ fi1 – Uc2 ^ fi1) Abaz1 = Tc – bbaz1 * Uc2 ^ fi1
pereschet 1 '----Расчет параметров аналитического решения ----------
------------------
Tgiperb 1 alf_b = alfa_suh(Tps1; w) bt_a = (alfa_isp(Tps2; w) – alf_b) / gkrit
ddtau = dtau ii = 0 While tau < tau_kon qq = qq + 1 ii = ii + 1 tau = tau + ddtau
znach_cw_t znach_mu_t znach_fi1_t znach_fi2_t znach_Mn_t znach_a1n_t znach_a2n_t
znach_cw_d znach_mu_d znach_fi1_d znach_fi2_d znach_Mn_d znach_a1n_d znach_a2n_d
u2sr = ((T_2(l2_T; ddtau) – Abaz1) / bbaz1) ^ (1 / fi1) pereschet 3 gr(qq) = u2sr alfa_u = alf_b + bt_a * u2sr beta_u = bet1per * (gr(qq) – gr(qq – 1)) / (skor1 * dtau) u2slp = ((T_2(l2_T; ddtau) – Abaz1) / bbaz1) ^ (1 / fi1)
ddl = l2_T / 10 u2sld = ((T_2(l2_T – ddl; ddtau) – Abaz1) / bbaz1) ^ (1 / fi1)
beta_u = D2 * Abs(u2slp – u2sld) / (ddl * u2slp) gr(qq) = u2sr
alfa_u = alf_b + bt_a * u2sr beta_u = (a2 / D2) * bet1per * (gr(qq) – gr(qq – 1)) / (skor1 * dtau)
If ii = 1 Then beta_u = bet1per
'----- Расчет средних значений температуры и влагосодержания слоев
--------
t1s = T_1_s(l1_T; ddtau) t2s = T_2_s(l2_T; ddtau)' u1s = U_1_s(l1_T; ddtau)
' u2s = U_2_s(l2_T; ddtau)' pereschet 4
'------- Пересчет коэффициентов ------
T10 = t1s T20 = t2s Tps1 = (Tc + T10) / 2 Tps2 = (Tc + T20) / 2 U10 = 0 U20 = u2s
Tgiperb 2 u2sl = ((T_2(l2_T; ddtau) – Abaz1) / bbaz1) ^ (1 / fi1)
'---- Расчет betta во 2 периоде
ddl = l2_T / 10 u2sd = ((T_2(l2_T – ddl; ddtau) – Abaz1) / bbaz1) ^ (1 / fi1)
beta_u = D2 * Abs(u2sl – u2sd) / (ddl * u2sl) beta2 = beta_u h2_D = beta2 / D2
u2sd = u2sl – ddl * u2sl * ((a2 / D2) * bet1per * (gr(qq) – gr(qq – 1)) / (skor1 * dtau)) / D2
c2 = 3687 + r_isp(T_2(l2_T; ddtau)) * (gr(qq – 1) – u2sd) / (T_2(l2_T; ddtau) – T_2(l2_T; 0) + ,00001)
67
a2 = lambda2 / (c2 * ro2)
'With ThisWorkbook.Worksheets("Результат")
'.Cells(qq + 1; 8).Value = gr(qq) * 1000
'.Cells(qq + 1; 9).Value = l2_T * 1000
'End With statsbar "Время расчета tau="; tau
Wend Beep Finish = Timer ' Set end time. Totaltime = Finish – Start ' Calculate total time.
MsgBox "Расчет процесса сушки закончен. Время расчета=" + Int(Totaltime) + " c"
statsbar "Готов"; " " With ThisWorkbook.Worksheets("Результат")
.Range("A2").Value = shifr .Range("A4").Value = Date
.Range("A6").Value = Time
.Cells(qq + 3; 1).Value = "ДОПОЛНИТЕЛЬНЫЕ СВЕДЕНИЯ"
.Cells(qq + 4; 1).Value = "Число членов ряда=" .Cells(qq + 4; 2).Value =
n
.Cells(qq + 5; 1).Value = "Время счета (c)=" .Cells(qq + 5; 2).Value = Int(Totaltime)
.Cells(qq + 6; 1).Value = "Uкрит.=" .Cells(qq + 6; 2).Value = U_krit
.Cells(qq + 7; 1).Value = "Uкв.рав.=" .Cells(qq + 7; 2).Value = Ukvrav
.Cells(qq + 8; 1).Value = "fi гип.=" .Cells(qq + 8; 2).Value = fi1
.Cells(qq + 9; 1).Value = "Точн.корн.=" .Cells(qq + 9; 2).Value = tochn End With '------------ Расчет температурного поля-------------
With ThisWorkbook.Worksheets("Поле")
.Cells(qq + 2; 1).Value = tau .Cells(qq + 2; 2).Value = texp(qq) ' .Cells(qq + 2; 3).Value = gexp(qq) * 1000 '---- Подложка
.Cells(qq + 2; 5).Value = T_1(0; tau2) .Cells(qq + 2; 6).Value = T_1(l1_T * ,33; tau2)
.Cells(qq + 2; 7).Value = T_1(l1_T * ,67; tau2) .Cells(qq + 2; 8).Value = T_1(l1_T; tau2)
'---- Дисперсия
.Cells(qq + 2; 9).Value = T_2(l2_T * ,33; tau2) .Cells(qq + 2; 10).Value = T_2(l2_T * ,67; tau2)
.Cells(qq + 2; 11).Value = T_2(l2_T; tau2)
'-- Вес
u2s1 = ((T_2(0; tau2) – Abaz1) / bbaz1) ^ (1 / fi1)'---Дисперсия
.Cells(qq + 2; 12).Value = u2s1 / gabs u2s1 = ((T_2(l2_T * ,33; tau2) – Abaz1) / bbaz1) ^ (1 / fi1)
.Cells(qq + 2; 13).Value = u2s1 / gabs u2s1 = ((T_2(l2_T * ,67; tau2) – Abaz1) / bbaz1) ^ (1 / fi1)
.Cells(qq + 2; 14).Value = u2s1 / gabs u2s1 = ((T_2(l2_T; tau2) – Abaz1) / bbaz1) ^ (1 / fi1)
68
.Cells(qq + 2; 15).Value = u2s1 / gabs End Withtau2 = tau2 + ddtau statsbar "Время расчета tau="; tau
Wend
Finish = Timer ' Set end time. Totaltime = Finish – Start ' Calculate total time.
MsgBox "Расчет процесса сушки закончен. Время расчета=" + Int(Totaltime) + " c"
statsbar "Готов"; " "
End Sub
Sub statsbar(st1; st2 As Variant)
Application.DisplayStatusBar = True Application.StatusBar = st1 & st2 End Sub
Sub pereschet(nomer)
Dim g; u; c As Double If nomer = 1 Then u = g / gabs If nomer = 2 Then c = g / (Fobr * l2_D)
If nomer = 3 Then g = u * gabs If nomer = 4 Then g = c * Fobr * l2_D End Sub
Sub Tgiperb(nom)
Dim p1; p2; p3; p4 As Double
If nom = 1 Then Uc2 = Ukvrav * gabs bbaz1 = (Tc_ekv – Tc) / (gkrit ^ fi1
– Uc2 ^ fi1)
Abaz1 = Tc – bbaz1 * Uc2 ^ fi1 End IfIf nom = 2 Thenp1 = (Tc – Tc_ekv) / gkrit
p2 = fi1 * p1 p3 = p2 / Tc p4 = (gkit + p2 – Tc_ekv * p3) / (gkit + Tc_ekv) promt = (u + p2) / (p4 * u + p3) End If
End Sub Sub ukr_ras()
Dim muv1; muv_t1; rosk1; stepen1; rov1; u_k_rit1 As Double With ThisWorkbook.Worksheets("Данные")
t1 = .Range("I22").Value poris1 = .Range("I21").Value kf1 = .Range("I20").Value
End With
muv1 = ,001003 muv_t1 = ,00002816 * Exp(526,64 / (t1 + 127,4)) rosk1 = 1250 'ronas = 800
'c = 1472 'w = 1
'lambda = 0,0568 + 0,0012 * w stepen1 = ,5
rov1 = 1000 u_k_rit1 = kf1 * (rov1 / rosk1) * (poris1 / (1 – poris1)) * ((muv_t1 / muv1) ^ stepen1)
With ThisWorkbook.Worksheets("Данные") .Range("I19").Value = u_k_rit1
End With End Sub
69
