Автор Тема: Формула зависимости процентного содержания спирта от температуры кипения  (Прочитано 48217 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Игорь

  • Администратор
  • Эксперт
  • *****
  • Сообщений: 13275
  • Спасибо
  • -Отправлено: 1075
  • -Получено: 7848
  • Думи мої думи...
    • Каптерка
Два аспекта.

1. Программу на VB можно перекроить на VBA и использовать прямо в файле с моими пользовательскими программами. Но это не интересно.
2. Код пользовательских функций написан на вижлбейсике и может легко быть использован.
Можно взять мой блок кода из VBA и скопипастить  его прямо в твою прогу на чистом вижлбейсике. Огромные массивы табличных данных уже внесены, модуль интерполяции работает.
Сможешь делать одной строкой любые преобразования температур, крепостей пара и жидкости, плотностей в любом направлении.
Единственное, что возможно придется сделать, это изменить имена переменных на латиницу. А может и не придется.
Поковыряйся на досуге.

... блин... код длинный, не помещается в сообщении. Прикрепляю в текстовом файле.

* code_VBA.txt (35.92 КБ - загружено 396 раз.)
« Последнее редактирование: 02-02-2014, 13:06:57 от Игорь »
Не тот глуп, кто не знает, но тот, кто знать не хочет.
Григорий Сковорода

Оффлайн Игорь

  • Администратор
  • Эксперт
  • *****
  • Сообщений: 13275
  • Спасибо
  • -Отправлено: 1075
  • -Получено: 7848
  • Думи мої думи...
    • Каптерка
В коде внесены и систематизированы табличные данные - 1331 значение :)
Не тот глуп, кто не знает, но тот, кто знать не хочет.
Григорий Сковорода

Оффлайн mekkaodАвтор темы

  • Мастер
  • ****
  • Сообщений: 762
  • Спасибо
  • -Отправлено: 71
  • -Получено: 513
  • Одесса, не торопясь
Игорь, Ну что же, я посмотрел)))
Всё предельно просто, только цитируя тебя, моя то формулка в одну строчку, по проще будет)))
А если серьёзно, то для моих целей из твоего кода можно конечно вычленить только необходимое. Хотя это всё равно будет громоздко.
С аналитической точки зрения этот код рулит.
А с практической (моей) формулка достаточна, для того и опубликована.
Позже выложу восьмую степень для гурманов и четвёртую подправлю по данным из твоей таблицы.
По любому спасибо за твой нездоровый ночной порыв. Впредь всякую ахинею буду по утрам опубликовывать, чтоб ты ночами спал.)))

Оффлайн Игорь

  • Администратор
  • Эксперт
  • *****
  • Сообщений: 13275
  • Спасибо
  • -Отправлено: 1075
  • -Получено: 7848
  • Думи мої думи...
    • Каптерка
моя то формулка в одну строчку, по проще будет)))
В этом прелесть VBA для экселя. Я один раз забил таблицы, прописал пользовательские функции и забыл о них. теперь пишу маленикую строчку и получаю резльтат.
С другой стороны, моя интерполяция позволяет работать в любом направлении - получать градусы из процентов  проценты из градусов и летать между процентами.
Если ты захочешь сделать "обратный ход", тебе придется снова искать коэффициенты и бороться за точность.

Ты меня заразил... Сейчас на базе своей интерполяции сделаю аппроксимационную формулу для переходов от градусов цельсия к объемным процентам. :)
Не тот глуп, кто не знает, но тот, кто знать не хочет.
Григорий Сковорода

Оффлайн mekkaodАвтор темы

  • Мастер
  • ****
  • Сообщений: 762
  • Спасибо
  • -Отправлено: 71
  • -Получено: 513
  • Одесса, не торопясь
Если ты захочешь сделать "обратный ход", тебе придется снова искать коэффициенты и бороться за точность.
На самом деле нет, просто в файле который считает коэффициенты я меняю иксы с игриками и сразу получаю формулу наоборот.
Когда со своим наиграешься загляни в моё. Желтое это данные.
Там можно хоть по десяти точкам построить, но надо в файле многое менять.

Оффлайн svarnoy

  • Новичок
  • **
  • Сообщений: 10
  • Спасибо
  • -Отправлено: 2
  • -Получено: 8
Выборочно сравнивал результаты в таблице "аппроксимация",с формулой,и с "калькулятором самогонщика"
Результаты "калькулятора самогонщика" точно сходятся с таблицей " аппроксимация" и сильно расходятся с формулой.
Проверил выборочно около 25 значений.

Оффлайн mekkaodАвтор темы

  • Мастер
  • ****
  • Сообщений: 762
  • Спасибо
  • -Отправлено: 71
  • -Получено: 513
  • Одесса, не торопясь
Выборочно сравнивал результаты
Вот два графика , на одном две кривые моя и Игоря
На другой разница между ними.
15531-0
15533-1
Да есть отклонение до одного % в некоторых местах.
Пересмотри первое сообщение в теме я там кое что добавил.

Оффлайн Игорь

  • Администратор
  • Эксперт
  • *****
  • Сообщений: 13275
  • Спасибо
  • -Отправлено: 1075
  • -Получено: 7848
  • Думи мої думи...
    • Каптерка
mekkaod, не стоит мои графики принимать за эталон. Да, в них использовано достаточно много табличных значений, да, интерполяция сделано корректно, но это линейная интерполяция,и между табличными знаачениями расчетные значения будут обязательно отклоняться от фактических.  Сэтим и связан колебательный характер разницы между графиками. Я подумаю как устранить влияние моей интерполяции на проверку формул. Это должно быть не сложно.


Исследуемая нами кривая отражает непростые процессы изменения свойств кипящих гидратов спирта при изменении температуры и поэтому ожидать полного совпадения кривой, полученной в эксперименте, и кривой, построенной по аппроксимирующей формуле, нет смысла.
Поэтому, если есть необходимость использовать не интерполяцию по таблице, а формулу, можно задаться допустимой погрешностью и подобрать формулу, которая дает результаты в пределах этой погрешности.

Я подобрал коэффициенты для полинома третьей степени,  который во всем диапазоне температур кипения дает среднее отклонение 0,65 об%, а максимальное отклонение составляет 2,58 об%. Причем увеличение степени полинома до 4-7 не дало увеличения точности.

k3 = -0.015785
k2 = 4.49377
k1 = -427.524
k0 = 13599.5

Формула с такими коэффициентами имеет такой вид

У = -0.015785 Х3 + 4.49377 Х2 - 427.524 Х  + 13599.5 , где Х - градусы Цельсия, У - объемные проценты спирта в  кипящей жидкости.

В коэффициентах важны все 6 значащих цифр. Округлять нельзя.
Еще одна деталь.
Если формула будет работать не во всем диапазоне спиртуозностей, а только в определенной части графика, нужно делать формулу именно для этого диапазона, это на порядок увеличит точность.
Так, например, если речь идет о первой перегонке, нужно иметь формулу только в диапезоне от 0 до 15%.


Не тот глуп, кто не знает, но тот, кто знать не хочет.
Григорий Сковорода

Оффлайн Игорь

  • Администратор
  • Эксперт
  • *****
  • Сообщений: 13275
  • Спасибо
  • -Отправлено: 1075
  • -Получено: 7848
  • Думи мої думи...
    • Каптерка
Я подумаю как устранить влияние моей интерполяции на проверку формул. Это должно быть не сложно
Подумал. Это сложно. Если между массовыми и молярными концентрациями есть связь в виде точной формулы, то с объемными процентами все сложнее. Контракция, степень сжатия раствора, зависит от температуры и не описана пока внятными формулами. Поэтому волей-неволей при подборе формул придется пользоваться результатами интерполяции и наследовать вносимую интерполяцией погрешность.
Не тот глуп, кто не знает, но тот, кто знать не хочет.
Григорий Сковорода

Оффлайн mekkaodАвтор темы

  • Мастер
  • ****
  • Сообщений: 762
  • Спасибо
  • -Отправлено: 71
  • -Получено: 513
  • Одесса, не торопясь
максимальное отклонение составляет 2,58 об%. Причем увеличение степени полинома до 4-7 не дало увеличения точности.
У нас тоже сначала так было.
коэффициентах важны все 6 значащих цифр. Округлять нельзя
И чтоб от этого уйти пришлось усложнять саму систему подбора коэффициентов.(файлик тот что я тебе отправил)

нужно делать формулу именно для этого диапазона
Так мы тоже ходили - получается три почти идеальных участка

И результат, тот что в восьмой степени тебе известный, как раз все коэффициенты "короткие" и максимальная погрешность 1% по спирту, да и в таком диапазоне от 40 до 80 % спирта который особой смысловой нагрузки не несёт.
Что же касается:
то с объемными процентами все сложнее
Смысла я не вижу, мы аналитическими вопросами занимаемся из любопытства, а считалка в Excel прекрасная для нужд связанных с нашим делом

Оффлайн Игорь

  • Администратор
  • Эксперт
  • *****
  • Сообщений: 13275
  • Спасибо
  • -Отправлено: 1075
  • -Получено: 7848
  • Думи мої думи...
    • Каптерка
Для проверок формул интерполяции есть смысл использовать данные из приложенного файла. Влияние погрешности от интерполяции минимизировано насколько это было возможно.
Не тот глуп, кто не знает, но тот, кто знать не хочет.
Григорий Сковорода

Оффлайн mekkaodАвтор темы

  • Мастер
  • ****
  • Сообщений: 762
  • Спасибо
  • -Отправлено: 71
  • -Получено: 513
  • Одесса, не торопясь
Игорь,  В ответку файл с графиками - вполне пристойно.

Оффлайн mekkaodАвтор темы

  • Мастер
  • ****
  • Сообщений: 762
  • Спасибо
  • -Отправлено: 71
  • -Получено: 513
  • Одесса, не торопясь
Для ускорения вычислений формулу
К%об = 17,26 - 18,32 * Ti + 7,81 * Ti ^ 2 - 1,77 * Ti ^ 3 +4,81 * Ti ^ 4 - 2,95 * Ti ^ 5 - 1,43 * Ti ^ 6 + 0,8 * Ti ^ 7 + 0,05 * Ti ^ 8
Где  Ti = ( t[град] - 89 ) / 6,49
в которой 36 умножений можно заменить на её аналог по схеме Горнера, в которой всего 8 умножений:
К%об = 17,26 - Ti * ( 18,32 - Ti * ( 7,81 - Ti * ( 1,77 - Ti * ( 4,81 - Ti * ( 2,95 + Ti * ( 1,43 - Ti *( 0,8  + 0,05 * Ti)))))))
Где  Ti = ( t[град] - 89 ) / 6,49

Оффлайн VINOKUR

  • Эксперт
  • ******
  • Сообщений: 6530
  • Спасибо
  • -Отправлено: 791
  • -Получено: 2041
  • «Цивілізація починається з винокурні»
Эта табличка нарисована за 3 минуты.

Игорь, а можно переделать немного таблицу и убрать из неё массовую и молярную концентрацию спирта, и добавить туда " Содержание спирта в отборе (% об.)  или просто добавить ?


« Життя вдалося, якщо коньяк, який ми п'ємо, старше жінок, з якими ми спимо »

Оффлайн Игорь

  • Администратор
  • Эксперт
  • *****
  • Сообщений: 13275
  • Спасибо
  • -Отправлено: 1075
  • -Получено: 7848
  • Думи мої думи...
    • Каптерка
VINOKUR, тут есть один нюанс. Формулы не могут учесть ту парциальную конденсацию, которая непременно имеет место в любом кубе. Можно по формулам нарисовать таблицы крепости пара, это очень просто, занимает минуту времени. Но это крепость пара над самой поверхностью жидкости. По мере подъема в кубе, часть этого пара  конденсируется на стенках и крышке куба, причем в конденсате содержание спирта меньше, чем в парах, и поэтому на выходе из куба крепость всегда будет выше расчетной. Разница между фактическим и расчетным значением будет тем больше, чем бóльшая доля пара сконденденсируется.
Это, кстати, общеизвестно. Чем медленней нагрев, тем крепче самогон на выходе.

Таблица в таком виде тебя устроит?

Зависимость крепости кубовой жидкости и крепости паров над ее поверхностью от температуры кипения жидкости.

ТЕМП   ЖИДК   ПАР
кип   %об   %об

78,5   93,70   94,35
79,0   89,06   91,81
79,5   83,78   89,37
80,0   77,48   87,16
80,5   72,17   85,83
81,0   67,27   84,79
81,5   61,96   83,69
82,0   55,75   82,36
82,5   50,07   81,28
83,0   45,50   80,37
83,5   42,09   79,63
84,0   39,07   78,87
84,5   35,81   77,97
85,0   33,02   76,94
85,5   30,39   75,68
86,0   28,02   74,34
86,5   25,79   72,97
87,0   23,95   71,68
87,5   22,17   70,35
88,0   20,35   68,88
88,5   18,63   67,37
89,0   17,16   65,98
89,5   15,89   64,49
90,0   14,49   62,67
90,5   13,27   60,97
91,0   12,11   59,22
91,5   11,21   57,58
92,0   10,39   55,95
92,5   9,70   54,31
93,0   9,06   52,65
93,5   8,49   51,06
94,0   7,94   49,21
94,5   7,34   46,32
95,0   6,79   45,27
95,5   6,21   42,96
96,0   5,64   40,52
96,5   5,08   37,96
97,0   4,45   35,07
97,5   3,88   31,96
98,0   3,31   28,69
98,5   2,52   23,54
99,0   1,69   16,47
99,5   0,84   8,78
100   0,00   0,00
« Последнее редактирование: 05-10-2014, 13:34:50 от Игорь »
Не тот глуп, кто не знает, но тот, кто знать не хочет.
Григорий Сковорода