Эпиграф:
Ученые взяли грант на разработку технологии переработки говна в сливочное масло.
Когда пришло время сдавать отчет написали следующее:
"На хлеб уже мажется, но запах пока не устранили"
Давно не писал в этой ветке, но тему не забросил, а иногда даже гонял в компьютере формулки...
Оказалось, что задача весьма наукоемкая, а я в термодинамиках не особо силен к сожалению,
но кое до чего докопаться всё же удалось.
Огромное подспорье в этом оказал реверс-инженеринг программы
[сообщение #12892126] уважаемого
OldBean,
еслиб не она, я бы так и не понял как всеми этими термодинамическими формулами пользоваться,
в книжках и статьях всё написано настолько заумно, что не имея начальной базы,
разобраться практически не реально.
Но наглядный пример использования этих формул помог сделать первый шаг в понимании их практического использования.
В частности стал понятен описанный в Стабникове алгоритм расчета температуры кипения спирто-водяной смеси,
и даже надыбанная 223им шикарнейшая статья
[сообщение #12855025]Докладываю что сделано на текущий момент.
Надыбаны точнейшие американские данные по фазовому равновесию для чистой воды,
найдены аналогичные данные советского происхождения,
проведено сравнение и выяснено, что советские и американские данные имеют между собой довольно приличное расхождение.
Т.к. американские данные имеют меньшие шумы в интересующем нас диапазоне за основу расчета были взяты они.
Найдены данные для переохлажденной воды, вплоть до -80°С, но качество данных для температур ниже -50° весьма посредственное, годится только для ориентировочных вычислений. К тому же есть статья утверждающая что ниже -45°С вода вообще не может существовать в жидком виде, что ещё больше подрывает доверие к низкотемпературным данным.
По приведенным данным построена точнейшая формула. Точность формулы гораздо выше чем расхождение между таблицами экспериментальных данных из разных источников. Сразу понятно что формула брехливая, т.к. она не проходит через тройную точку воды, положение которой измерено с просто охренительной точностью. Но это не проблема моей апроксимации, а проблема собственно исходных данных, которые имеют достаточно ощутимую систематическую погрешность. Случайная погрешность при апроксимации была сильно уменьшена за счет усреднения по большому количеству точек.
Формула для воды:
Скрытый текст
Function Water_Py(t As Double) As Double
A = 11.970688648
B = 4024.583379917
C = 236.150091206
X = A - B / (t + C)
Water_Py = X
B0 = 0.000004249603366
B1 = 0.000002156940684
B2 = -0.000002275100059
B3 = -4.482232677E-07
B4 = 1.324494537E-07
B5 = 3.182491698E-08
B6 = 1.634867824E-09
Water_Py = Water_Py + (B0 + B1 * X + B2 * X ^ 2 + B3 * X ^ 3 + B4 * X ^ 4 + B5 * X ^ 5 + B6 * X ^ 6)
If (X > 2.26) And (X < 3.94) Then
B0 = 1.889652377
B1 = -7.467779391
B2 = 11.466933764
B3 = -9.390740716
B4 = 4.588354251
B5 = -1.386477517
B6 = 0.25490024
B7 = -0.026194438
B8 = 0.001155861
Water_Py = Water_Py + (B0 + B1 * X + B2 * X ^ 2 + B3 * X ^ 3 + B4 * X ^ 4 + B5 * X ^ 5 + B6 * X ^ 6 + B7 * X ^ 7 + B8 * X ^
End If
If (3.94 < X) And (5.27 > X) Then
B0 = 3229.82465378
B1 = -5720.029975593
B2 = 4423.431988826
B3 = -1950.890510526
B4 = 536.691640265
B5 = -94.302671542
B6 = 10.335237756
B7 = -0.645932988
B8 = 0.017625184
Water_Py = Water_Py + (B0 + B1 * X + B2 * X ^ 2 + B3 * X ^ 3 + B4 * X ^ 4 + B5 * X ^ 5 + B6 * X ^ 6 + B7 * X ^ 7 + B8 * X ^
End If
If (4.6 < X) And (5.27 > X) Then
B0 = 0.0002318977291
B1 = -0.00005229571705
Water_Py = Water_Py + (B0 + B1 * X)
End If
If (5.27 < X) Then
B0 = 7681.790742263
B1 = -5775.796589055
B2 = 1628.536919808
B3 = -204.082566539
B4 = 9.590707189
Water_Py = Water_Py + (B0 + B1 * X + B2 * X ^ 2 + B3 * X ^ 3 + B4 * X ^ 4)
End If
If X <= -2.5 Then
B0 = 0.035372644
B1 = 0.028785789
B2 = 0.011656783
B3 = 0.003550841
B4 = 0.0005410203514
B5 = 0.00003784249943
B6 = 0.000000997492604
Water_Py = Water_Py + (B0 + B1 * X + B2 * X ^ 2 + B3 * X ^ 3 + B4 * X ^ 4 + B5 * X ^ 5 + B6 * X ^ 6)
Exit Function
End If
If X <= 3 Then
B0 = 0.015974026
B1 = 0.001970845
B2 = -0.002650808
B3 = -0.0001954949472
B4 = 0.0000385473092
B5 = 0.000006762516256
B6 = 5.200317273E-07
Water_Py = Water_Py + (B0 + B1 * X + B2 * X ^ 2 + B3 * X ^ 3 + B4 * X ^ 4 + B5 * X ^ 5 + B6 * X ^ 6)
Exit Function
End If
' Exit Function
If X > 2.99 Then
B0 = 96.661584114
B1 = -197.292239424
B2 = 175.288633343
B3 = -88.537438352
B4 = 27.807528117
B5 = -5.561745048
B6 = 0.69188409
B7 = -0.048953459
B8 = 0.001508635
Water_Py = Water_Py + (B0 + B1 * X + B2 * X ^ 2 + B3 * X ^ 3 + B4 * X ^ 4 + B5 * X ^ 5 + B6 * X ^ 6 + B7 * X ^ 7 + B8 * X ^
Exit Function
End If
Exit Function
End Function
Аналогично были найдены и обработаны данные по чистому этиловому спирту.
Формула для спирта:
Скрытый текст
Function Ethanol_Py(t As Double) As Double
A = 11.911817251
B = 3617.972455928
C = 225.272718036
X = A - B / (t + C)
If X < 0 Then
B0 = 0.00007547093051 + 0.019569576
B1 = 0.00004067749164 + 0.007666998
B2 = 0.000004095208056 + 0.0004004972163
B3 = 1.276671113E-09
B4 = -1.051754195E-08
B5 = -2.385993696E-10
Else
B0 = 0.019566762 - 0.00006934724351
B1 = 0.010931881 + 0.00002598621517
B2 = -0.00697901 - 0.000001768091921
B3 = 0.003506054
B4 = -0.001980306
B5 = 0.0002945321455
End If
Ethanol_Py = X + (B0 + B1 * X + B2 * X ^ 2 + B3 * X ^ 3 + B4 * X ^ 4 + B5 * X ^ 5)
End FunctionКак видно формулы не особо удобные для расчетов, а особенно для пихания в микроконтроллер.
На этот счет есть идеи запихнуть обе формулы в кубический сплайн.
Зависимости очень плавные, на таких данных сплайн дает потрясающую точность интерполяции,
при затрате достаточно небольших вычислительных ресурсов.
На графиках приведены графики относительных погрешностей полученных формул.
И приведены зависимости давления от температуры для воды и спирта на одном графике, видно что нам следует делать дальше,
сначала по температуре находим "вилку" давлений, между давлением чистой воды и чистого спирта,
затем используя зависимость давления смеси спирта и воды от температуры и спиритуозности находим обратную функцию и получаем искомую спиритуозность для заданного давления.
Формулы конечно муторные, но главное что теперь есть понимание куда двигаться.
Добавлено через 3дн. 8ч. 41мин.:Добрадся наконец то до смеси Спирт-Вода
Забил взятые из Стабникова экспериментальные данные по активностям воды и спирта в эксел
и построил графики.
Получается что зависимость активностей от давления довольно слабая и закономерности
зависимости коэфициентов активности от давления не просматривается.
Зато видно что уравнение Ван-Лаара дает умеренно хорошую апроксимацию экспериментальных данных.
Уравнение Цубоко-Катаямы (по отзывам более точное) пока запрограммировать не удалось, и нет пока понимания причины почему оно дает не корректные результаты.