Форум самогонщиков Сайт Барахолка Магазин Помощь солдатам

Теория фазового состояния водно-спиртовой смеси: температура, давление, концентрация

Форум самогонщиков Основы
1 ... 5 6 7 8 9 10 11 ... 18 8
OldBean Доцент Красноярск 1K 1.4K
Отв.140  17 Дек. 16, 08:15
В чем, собственно проблема?Rudy
Так Котище так и сказал. Нужна простая компактная процедура или формула типа (T, y) = Func(x, P), где P - давление, x, y - мольные содержания спирта, T - температура кипения, чтобы ее можно было вставить в микрокомпьютер или даже в микроконтроллер, управляющий ректификацией. Увы, Excel туда не впихнешь. Да и штатной памяти для хранения больших таблиц может не хватить (например, в ардуинке). :(((

Чем расчет по формулам неизвестной точности (и кривизныRudy
Не... Это как раз - настоящая наука, одна из главнейших задач которой - компактно выражать (в том числе и в виде формул) большие массивы экспериментальных данных. Эти модели и формулы разрабатывались великими умами более сотни лет и проверены на огромном экспериментальном материале. Кстати, VLE-calc тоже считают по формулам, только более громоздким. Но для бинарной системы и не в сильно широких диапазонах van Laar дает вполне приличную точность. Поэтому для задач управления ректификационной установкой на ней можно и остановиться.

Но вот если "честно" браться за наши примеси (разрозненные и дырявые данные), то, ИМХО, полуэмпирике (естественно, на основе более сложных моделей, т.к. van Laar - только бинарные системы) трудно найти альтернативу. Мы рано или поздно придем к чему-нибудь типа UNIFAC+UNIQUAC.

А вообще-то очень хочется посмотреть как примеси гуляют по колонне в зависимости от режимов нагрева и отбора. Увлекательная, наглядная и познавательная игрушка получилась бы!

хорошо бы ещё на С++ и для адруиноAsus
С С++ проблем нет, а вот с ардуинкой... Здесь много вещественной арифметики. Нужно проверить не будет ли "лобовое" решение сильно тормозить ардуинку. Если будет, то нужно подумать как все это "деликатно" перевести в целочисленную арифметику. Вообще-то эта задачка сама по себе интересная! Я подумаю. Если получится - сделаю и расскажу.
Rudy Академик Питер 5.8K 1K
Отв.141  17 Дек. 16, 12:33
Руди, так тыж нам 3д формулу не дал!Kotische, 16 Дек. 16, 22:50
Так у меня и нет ее. У меня только таблица + простейший интерполятор.

Нужна простая компактная процедура или формула типа (T, y) = Func(x, P), где P - давление, x, y - мольные содержания спирта, T - температура кипения, чтобы ее можно было вставить в микрокомпьютер или даже в микроконтроллер, управляющий ректификацией.OldBean, 17 Дек. 16, 08:15
Каждый идет своим путем. Я, сначала, тоже так сделал. Но, потом, перешел на интерполятор
Упрощенную аппроксимацию использую только там, где нужна скорость, а не точность - в моделяторе колонны.

Да и штатной памяти для хранения больших таблиц может не хватить (например, в ардуинке).OldBean, 17 Дек. 16, 08:15
Ты же пользуешь Raspberry Pi. Сегодня это не проблема.

А вообще-то очень хочется посмотреть как примеси гуляют по колонне в зависимости от режимов нагрева и отбора. Увлекательная, наглядная и познавательная игрушка получилась бы!OldBean, 17 Дек. 16, 08:15
Ага, я долго а нее игрался. Теперь очередь Чапаева.

Я уже давно перестал понимать как можно нормально работать с колонной без датчиков проводимости. Но народ пашет.


Kotische Академик Саратов 8.1K 2.5K
Отв.142  17 Дек. 16, 12:36, через 4 мин
Нафиг ардуинку!
Я для программирования автопилота для вертолета покупал тегру2. Там 4х ядерный АРМ на котором работает нормальная линукса с нормальным g++.
И есть ДВА сопроцессора!!!
Один на 4 гигафлопса одинарной точносии, другой на 2 гигафлопса двойной точности.

В ветке кторорую урыл 223ий, была шикарная идея делать конроллер на типовом планшете/смартфоне с управлением через юсб/блутуз/вайфай.
ВОблин Доцент Самара 1.9K 660
Отв.143  17 Дек. 16, 12:49, через 13 мин
примеси гуляют по колонне в зависимости от режимов нагрева и отбора.OldBean, 17 Дек. 16, 08:15
и гидродинамики сборки...
OldBean Доцент Красноярск 1K 1.4K
Отв.144  17 Дек. 16, 12:57, через 8 мин
Ага, я долго а нее игрался.Rudy
Ну так дал бы и другим поиграть. Интересно же!
Rudy Академик Питер 5.8K 1K
Отв.145  17 Дек. 16, 13:03, через 7 мин
Ну так дал бы и другим поиграть. Интересно же!OldBean, 17 Дек. 16, 12:57
Кинь мыло в личку. Перед использованием пристегни ремни и проконсультируйся у Чапаева.

Добавлено через 6ч. 38мин.:

А кто убил кучу последних сообщений?
сообщение удалено
Kotische Академик Саратов 8.1K 2.5K
Отв.146  17 Дек. 16, 22:22
А кто убил кучу последних сообщений?Rudy, 17 Дек. 16, 13:03
Не убили, а перенесли:
[Датчик для прямого измерения спиритуозности]

Ибо нефиг писать про датчик в ветке про теорию кипения!   Показает язык
Чапаев1945 Научный сотрудник Петрозаводск 1.9K 1.4K
Отв.147  17 Дек. 16, 22:40, через 19 мин
Ага, я долго а нее игрался. Теперь очередь Чапаева.Rudy, 17 Дек. 16, 12:33
Ты не поверишь, но это как детский сад. Без него в школу не берут)))) Модель даже в том виде что существует позволяет лучше осознать процессы. СПАСИБО.
Rudy Академик Питер 5.8K 1K
Отв.148  18 Дек. 16, 00:17
Не убили, а перенесли:
[Датчик для прямого измерения спиритуозности]Kotische, 17 Дек. 16, 22:22
Вот так и пиши каждый раз, когда ручки шаловливые чешутся - тогда и вопросов не будет.
Kotische Академик Саратов 8.1K 2.5K
Отв.149  18 Дек. 16, 00:24, через 8 мин
Слушаюсь и повинуюсь о Великий!
Rudy Академик Питер 5.8K 1K
Отв.150  18 Дек. 16, 00:42, через 19 мин
Сделал простенький файл - как считать в экселе Крект изоамилола для Чапаева.
1.Сначала заполнил только первый столбец (1..14) таблицей концентраций.
2.Заполнил ячейку R1C2(1 строка, 2 столбец) формулой для расчета и после ввода показателя экспоненты (=0.13014+3.24389*EXP(-0.03741*) нажал на ячейку R1C1 - эксель сам сделал такое: =0.13014+3.24389*EXP(-0.03741*RC[-1]) - т.е. значение взять из соседней ячейки слева в той же строке).

3.Теперь скопировал ячейки R1C1...R14C1 в R1C4...R14C4, а ячейку с формулой (R1C2) в R1C5.
4.Выделил ячейку R1C5 и растащил ее на R2C5..R14C5. Получили таблицу Крект.

Если что не так - нужно настроить формат указания позиции ячейки - их 2. Ну и заодно, настроить эксель на десятичную точку вместо запятой.
OldBean Доцент Красноярск 1K 1.4K
Отв.151  18 Дек. 16, 08:20
Ты не поверишь, но это как детский сад. Без него в школу не берут)))) Модель даже в том виде что существует позволяет лучше осознать процессы. СПАСИБО.Чапаев1945
Даже и без учета примесей от такой программы есть большая польза. Чтобы "почувствовать" колонну...

Вот, например, для меня. Живой пример - из-за влияния атмосферного давления, старт-стоп по температуре в колонне - не совсем корректный алгоритм управления. Особенно при малой дельте по температуре. У нас часто атмоферное давление прыгает аж на 10-12 мм.рт.ст. всего за несколько часов! "Старт" может вообще не вернуться  :((( Вот я и озадачился сделать старт-стоп не по температуре, а по спиртуозности пара-флегмы в колонне (там где датчики температуры стоят). Кстати, для этого как раз и понадобилась утилитка для вычисления спиртуозности по температуре и давлению "малыми силами" :))

Так вот, программа Ruby (в принципе) позволяет наглядно "почувствовать" распределение спиртуозности в нижней части колонны и посмотреть ее зависимость от условий в кубе и скорости отбора и т.п. Я с ней еще мало побаловался, но вроде профили, которые она выдает, интуиции не противоречат. Вот привожу для наглядности профили спиртуозности в хорошей колонне на 50 тарелок при различном содержании спирта в кубе. Пока пробовал только на холостом ходу. Стационар в колонне устанавливается по итерациям забавно, ну почти как в жизни :))) Особенно наглядно при малых спиртуозностях в баке.

Так что присоединяюсь к Чапаеву - СПАСИБО, Rudy!

PS
Хелпик бы ей небольшой. Да - в массы! Для тестирования и отладки... Даже вообще пока можно без примесей. Или с одним изоамилолом. Просто для наглядности.
----
Да и еще. К сожалению, у меня в wine под убунтой она вылетает после каждого сохранения данных. Пробовал и в виртуальной машине с Windows XP - тоже вылетает. :((( Но сами данные, к счастью, успевает сохранить! :))) Так что пользоваться программой в принципе можно. Но хотелось бы как-нибудь, когда-нибудь, при случае зафиксить косячок.
Распередение_спиртуозности_в_колонне_холостой_ход.png
Распередение_спиртуозности_в_колонне_холостой_ход.png Теория фазового состояния водно-спиртовой смеси: температура, давление, концентрация. Основы.
Чапаев1945 Научный сотрудник Петрозаводск 1.9K 1.4K
Отв.152  18 Дек. 16, 12:15
Rudy, Спасибо за интересный прием с ячейкой. Но я имел в виду несколько иное.
Ты использовал формулу. Можно просто вбивать формулу и указывать явную ячейку. Можно как ты сделал - формула использует ячейку с лева. Это не меняет сути, но за способ спасибо, забыл что и так можно.
Я предлагал использовать пользовательскую функцию.
Код функции
Function кр_изоамила(К_об)
кр_изоамила = 0.13014 + 3.24389 * Exp(-0.03741 * К_об)
End Function
Теперь эксель считает по нашей формуле при введении аргумента. Пример в желтой ячейке. Можно выбрать любую ячейку, выбрать пользовательские функции, там функцию кр_изоамила и ввести аргумент. Она посчитает.
Файл прикрепил.
С формулой вообще вопросов нет - как удобнее так можно и делать.
Я имел в виду другое когда спрашивал у тебя. Хотелось чтобы пользовательская функция использовала не формулу, а эмпирические таблицы. Так получалась бы большая точность, а то любая интерполяция это погрешность. Вот как забить в код массив с таблицей и поиск по массиву по примеру ВПР встроенной.

По изоамилу конечно нет эмпирических таблиц обширных, но к примеру по крепости спирта и температуре есть. Там бы можно сделать функцию поточнее.
Rudy Академик Питер 5.8K 1K
Отв.153  18 Дек. 16, 14:00
Можно вот так. Когда откроешь нажми в меню VBA и увидишь код.

Так можно и интерполяцию написать.
tt.xlsm.zip 11.2 Кб
Чапаев1945 Научный сотрудник Петрозаводск 1.9K 1.4K
Отв.154  18 Дек. 16, 15:30
Rudy, чего то я не понял. Ты просто в том коде что я давал вместо "К_об" написал "SpMasProc"? Других отличий не вижу. Так в принципе что там писать не важно. Можно и "Путин" написать))) Это же просто слово. Или я чего то не заметил? Поясни пожалуйста.
OldBean Доцент Красноярск 1K 1.4K
Отв.155  18 Дек. 16, 16:14, через 44 мин
Sorry, коллеги! Я тут на секунду встряну чтобы закончить свои (ранее обещанные) дела.

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

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

Результаты работы всех утилит (на питоне, на Си и для ардуинки) совпадают. Так что пользуйтесь на здоровье. :)))

Rudy Академик Питер 5.8K 1K
Отв.156  18 Дек. 16, 16:51, через 37 мин
Rudy, чего то я не понял. Ты просто в том коде что я давал вместо "К_об" написал "SpMasProc"? Других отличий не вижу. Так в принципе что там писать не важно. Можно и "Путин" написать))) Это же просто слово. Или я чего то не заметил? Поясни пожалуйста.Чапаев1945, 18 Дек. 16, 15:30
Где-то мы запутались.
Попробуй вставить свою функцию в свободную ячейку ниже. У меня получается ошибка, поскольку функция кр_изоамила() не определена.
Сделай то же в моем файле - все будет работать нормально.
Может ты файл записал не в том формате - xlsx вместо xlsm(с поддержкой макро) и твоя функция просто не записалась?
Чапаев1945 Научный сотрудник Петрозаводск 1.9K 1.4K
Отв.157  18 Дек. 16, 17:26, через 36 мин
Rudy,
Может ты файл записал не в том формате - xlsx вместо xlsm(с поддержкой макро) и твоя функция просто не записалась?Rudy, 18 Дек. 16, 16:51
Да, просто не в том формате сохранил. Странно, обычно он файлы с макросами по умолчанию сохраняет в xlsm, а вот функцию по умолчанию не воспринял. Странно. Ну да ладно. Пересохранил, проверил, все работает в любой ячейке.
Rudy Академик Питер 5.8K 1K
Отв.158  18 Дек. 16, 18:18, через 52 мин
Ага, вот теперь все сошлось. Ты открыл свою функцию в VBA?
Теперь ты прямо там можешь вставлять любые функции, процедуры (Sub), таблицы (Dim) и считать, что хочешь не ограничиваясь возможностями голого экселя.

Добавлено через 8мин.:

Так что пользуйтесь на здоровьеOldBean, 18 Дек. 16, 16:14
Что-то у меня не то с твоими вычислениями на давлении 50 тор. То-ли я накосячил, то-ли у тебя бага.
Чапаев1945 Научный сотрудник Петрозаводск 1.9K 1.4K
Отв.159  18 Дек. 16, 18:40, через 22 мин
Ага, вот теперь все сошлось. Ты открыл свою функцию в VBA?
Теперь ты прямо там можешь вставлять любые функции, процедуры (Sub), таблицы (Dim) и считать, что хочешь не ограничиваясь возможностями голого экселя.Rudy, 18 Дек. 16, 18:18
Именно так! Но вот с языками у меня не очень и как процедуры про которые ты говоришь не могу использовать... Просто функцию с формулой проще сделать, вот и сделал. А вот как вписывать в скрипт таблицы я не понимаю. Там нужно поболе аргументов знать. Вот тебя и спрашиваю. Может ты знаешь. Можно конечно самоучитель по VBA скачать... Но сам понимаешь...