Что за прога? Родилась она в результате изысканий, проведённых в рамках моей темы ([Снова о вечном. Всё о том же ФЧ]), а также некоторых идей темы
Технология ректификацииНесколько очень ценных наводок дали AlexeyT, Grov, mekkaod и dee, а также Rudy, который сверял её со своей моделью колонны. Всем - огромное спасибо.
Короче, на 1-ой вкладке (ПИТАНИЕ) можно просчитать то, что вылетает из куба и что в него возвращается. Расчёт результатов производится по общему уравнению потоков укрепляющей колонны, т.е. по материальному и энергетическому балансам, сама колонна не рассчитывается.
На 2-ой вкладке (ОТБОР) можно просчитать то, что вылетает из колонны и в неё же возвращается, т.е. то, что крутится под дефом.
На 3-ей вкладке (Количество ТТ-ФТ) можно просчитать сколько тарелок в колонне в зависимости от текущего режима. Расчёт колонны выполняется аналитически по методу Мак-Кэба и Тиле, т.е. Алекса тупо считает тарелки от навалки до цели – при этом создаётся двухсвязный список при формировании которого на 1-ом проходе, заполняются пока только поля: номер ТТ, крепость пара и крепость флегмы (мол).
Затем на обратном проходе списка распределяется по тарелкам избыточное давление в кубе по линейной схеме в сумме с атмосферным, т.е. в список пишется абс. давление на каждой тарелке.
Затем, на очередном проходе списка, в зависимости от давления и крепости пара (масс), вычисляется температура на тарелках и соответствующая ей энтальпия пара и флегмы.
Затем, пропорционально градиенту температур, по тарелкам распределяются теплопотери колонны и, наконец, рассчитываются потоки пара и флегмы на всех тарелках. Всё это в табличке справа, всё копипастится, результат – кол-во ТТ-ФТ в колонне.
4-ая вкладка (ФЧ в непрерывной) вычисляет необходимое и достаточное ФЧ для непрерывки по заданному числу ТТ-ФТ и остальным параметрам. Как она это делает?
Когда-то я проделал приличную работу в Автокаде по графическому определению и нормированию минимальных граничных значений ФЧмин и xBmin для различных значений крепости ректификата от 90.00%об до 97.15%об.
Критерий: рабочая линия нигде не должна пересекать кривую равновесия, но быть максимально к ней приближенной – это главное условие соблюдение мат. баланса ректификации. Дельта в районе 0.01%мол.
Т.е., раб. линия - практически касательная к VLE-кривой снизу, но не касательная, т.к. при касательной число ТТ – бесконечность, а в этом случае хоть и большое, но конечное число.
Попутно определялись xBmin – минимальные граничные значения навалки, при которых всё ещё соблюдается мат. баланс, как X-вая координата единственной точки пересечения раб. прямой и кривой равновесия.
Все эти результаты были сведены в табличку, назовём её WLL (work line limits) и использованы в программе, как граничные условия для некоторых исходных данных, при соблюдении которых, материальный баланс колонны гарантированно не нарушается.
Так вот, как же ж всё-таки Алекса считает оптимальное ФЧ? Сначала она берёт интерполированное нормированное ФЧмин для конкретной крепости отбора из таблички WLL, округляет вверх до 1-ой десяточки и получает минимальное рабочее! ФЧ.
Считает для этого ФЧ и заданной навалки к-во ТТ-ФТ с учетом КПД, т.е. тупо строит аналитическую лесенку между раб. прямой и кривой равновесия и считает ступеньки.
Как только добралась до заданной крепости отбора или выше, стоп. Запоминаем. Это макс. возможное к-во ТТ-ФТ, соответствующее минимальному раб. ФЧ. Затем умножаем это раб. ФЧ на 2 и повторяем расчёт.
Запоминаем, если полученное к-во ТТ-ФТ всё ещё больше заданного, опять умножаем на 2 и считаем. И так до тех пор, пока полученное к-во ТТ-ФТ не станет меньше или равно заданному.
Как только текущее к-во ТТ-ФТ стало меньше заданного, стоп - это мин. возможное к-во ТТ-ФТ и соответствующее ему ФЧмакс.
Заданное к-во ТТ-ФТ и соответствующее ему искомое необходимое и достаточное ФЧ где-то внутри этого диапазона.
Складываем рабочие ФЧмин и ФЧмакс, сумму делим пополам, получаем среднее. Считаем ТТ-ФТ, сравниваем с заданным. Если полученное к-во ТТ-ФТ меньше заданного, сдвигаем макс. раб. ФЧ в ранее полученное среднее, если более, то сдвигаем мин. раб. ФЧ в ранее полученное среднее. Снова складываем рабочие ФЧмин и ФЧмакс, снова делим пополам, т.е. получаем новое среднее и снова считаем ступеньки.
Повторяем эти операции до тех пор, пока макс. кол-во ТТ-ФТ не станет равно минимальному и, соответственно среднему и, соответственно - заданному.
Так мы получили необходимое и достаточное ФЧ.
Далее строим список для данного числа ТТ-ФТ и наполняем значениями, как описано выше для 3-ей вкладки.
Ну и наконец 5-ая вкладка (ФЧ в кубовой) – топ всего ранее напрограммированного. Всё то, что описано для 4-ой вкладки, выполняется для всех значений навалки от стартового до округлённого до целого xBmin с шагом в градус.
Т.о. получаем шпору по отбору для всего ректа. Замечу здесь, что очень необычную шпору по отбору, т.к. график отбора – почти горизонтальная прямая с одной или несколькими масенькими ступенечками, на которые в принципе вообще можно забить и гнать на чуть завышенном, но фиксированном ФЧ от старта до финиша без всякого контроллера отбора. Собственно, как и гнали на заре форума. Интуитивный опыт полностью подтверждается расчётами программы, никакой отсебятины и ничего личного.
Алекса написана на С++ в MS Visual Studio 2019. На сегодня версия 1.03 – самая последняя.
Если будут обновления, буду выкладывать сюда.
Вопросы и пожелания приветствуются.
Как-то так…
ЗЫ Нашёл несколько багов, проявляются на 4-ой и 5-ой вкладках на ФЧ, менее 3.78. Пока снимаю зип и скрины для скачивания до исправления ошибок, тестировать всё-таки надо дольше и тщательнее. Появится новая версия, выложу здесь.
НОВАЯ ВЕРСИЯ Alexa 2.0.
Изменения по сравнению с версией 1.03:
В ЦЕЛОМ ПО ПРОГРАММЕ:
1. Изменены размеры - окно программы стало чуть больше.
2. Исправлен баг, когда температура для 760ммHg скачкообразно отличалась от соседних
значений, соответствующих 759ммHg и 761ммHg, что вызвано расхождениями в Стабниковских
табличках 1-10 и 1-16. Теперь значения по температуре пара в табличке 1-16 приведены
в соответствие с табличкой 1-10, в результате чего из-за интерполяционного эффекта, значения
температуры при 760ммHg несколько (например до 0.07*С при 40%об в растворе) отличаются от
от допустим калькулятора Rudy. Но зато получена большая гладкость и внутренняя
непротиворечивость соседних данных.
3. Добавлена возможность ввода отбора в г/час (ранее было только мл/час).
4. Таблички стала шире ровно настолько, насколько нужно было, чтобы исчезла
горизонтальная полоса прокрутки.
5. Исправлен баг, когда по клику на табличках выскакивала легенда колонок.
Ранее из-за этого невозможно было скопипэйстить неполную строку или блок значений -
только строки и колонки целиком.
6. Теперь легенда колонок появляется везде по нажатию F1.
7. Выбор альтернативы между вводом ФЧ или отбора теперь оформлен более логично.
8. Выбор альтернативы между ТТ и ФТ теперь оформлен строже.
9. Цветовая гамма стала строже.
ПОТОКИ:
10. Вкладки №1(Питание) и №2(Отбор) объединены в одну общую вкладку №1(Потоки).
За счёт того, что и питание и отбор теперь используют один и тот же набор исходных
данных, на вкладке появилось место для Справочника.
11. На вкладку добавлен Справочник по раствору и пару - работает независимо от расчёта потоков:
крепость (%об, %масс, %мол), плотность, давление, температура, энтальпия.
Все данные в Справочнике взаимосвязаны - меняете одно число, меняются остальные.
12. Добавлена возможность ввода отбора и получения результата по потокам в г/час (ранее было
только мл/час).
ФЧ В НЕПРЕРЫВНОЙ:
13. Исправлен баг, когда в качестве минимально возможного ФЧ для целевой крепости 96.7%об и ниже
вычислялось значение не ниже 3.78. Для более высоких целей всё считалось правильно. Теперь
минимально возможное ФЧ вычисляется по нормированной WLL таблице для всего
диапазона целей.
14. Исправлен баг, когда необходимое и достаточное ФЧ, полученное в результате бинарного поиска,
получалось достаточным, но не необходимым, что выражалось часто в заметном превышении
расчётной крепости на выходе из колонны от заданной цели, соответственно весь потарелочный
расчёт получался несколько деформированным в сторону укрепления.
Теперь в алгоритм введён некоторый тюнинг ФЧ, в рез-те чего отклонение факта от цели
минимализировано до порядка величины 0.001 по ФЧ.
ФЧ В КУБОВОЙ:
15. Исправлен баг, когда в качестве минимально возможного ФЧ для целевой крепости 96.7%об и ниже
вычислялось значение не ниже 3.78. Для более высоких целей всё считалось правильно. Теперь
минимально возможное ФЧ вычисляется по нормированной WLL таблице для всего
диапазона целей.
16. Исправлен баг, когда необходимое и достаточное ФЧ, полученное в результате бинарного поиска,
получалось достаточным, но не необходимым, что выражалось часто в заметном превышении
расчётной крепости на выходе из колонны от заданной цели, соответственно весь потарелочный
расчёт получался несколько деформированным в сторону укрепления.
Теперь в алгоритм введён некоторый тюнинг ФЧ, в рез-те чего отклонение факта от цели
минимизировано до порядка величины 0.001 по ФЧ.
Как результат для кубовой, ступеньки рекомендованных ФЧ и отбора стали намного короче,
т.е. рекомендация стала точнее, хотя характер почти горизонтальной прямой не изменился.
17. Введен объём кубовой навалки для возможности организации мониторинга суммарного отбора,
а также остатка в кубе накопительным итогом.
18. Расширена табличка за счёт 4-х новых колонок: Отобрано всего, в т.ч. этанол и
Всего в кубе, в т.ч. этанол.
19. Строчек в табличке стало ровно вдвое большее за счёт уменьшения длины ступеньки
по крепости навалки с 1%об до 0.5%об.
20. Для любителей поджать отбор в конце процесса, добавлена опция 2-х этапной ректификации на случай,
когда озабоченный временем ректификации оператор допускает пониженную цель на основном этапе
и хочет дожать остатки спирта в кубе на завершающем этапе, естественно на большем числе ТТ
и повышении целевой крепости ректификата.
29.10.2020 Обнаружил вчерась один весьма серьёзный ляп - во вкладках "ФЧ в непрерывной" и "ФЧ в кубовой" не всегда обеспечивается сходимость вычисления необходимого и достаточного ФЧ в области малых крепостей отбора (до 93%об) и одновременно крепких навалок. Надо ещё проверять алгоритм. Снимаю пока прогу с закачки. Сообщу как справлюсь.
30.10.2020 Все замеченные на сегодня баги и ляпы исправлены. Последняя актуальная версия 2.1.
устранена немонотонность функции теплоты испарения/конденсации на очень высоких крепостях
в 2-м знаке после запятой при некоторых исх. данных, сказывался кумулятивный эффект интерполяционных
неточностей и округлений.
21.12.2020 Все замеченные на сегодня баги и ляпы исправлены. Последняя актуальная версия 2.2.
23.10.2021 Обнаружил серьёзнейшую недоработку, существенно ограничивающую область применения - xLmin рассчитывался только для ФЧmin и не пересчитывался для текущего ФЧ, а это совершенно неверно. Кроме того там уже порядочно набралось для переделки/улучшения.
Снял прогу с закачки. Исправлю, верну