Предлагаю код для автоматизации процесса работы самогонного аппарата. А так же обсудить в этой теме сам тех процесс и температуры на разных стадиях работы.
- Термодатчик на низ колонны для более точной фиксации момента начала процесса
- Датчик давления в кубе для предотвращения захлябывания колонны
- Микрофон на трубке отбора спирта. Так же поможет не превышать мощность
- Сервопривод на кран холодильника
- Сервопривод на кран дефлегматора
- Электронный термодатчик на обратку дефлегматора
- Управление мощностью плиты пока реализовать не могу
- Было бы здорово установить электронный ареометр
- Определение процента содержания спирта по температуре закипания куба (на тесте)
- Лог с сообщениями в меню
- Более раннее обнаружение момента начала процесса по доп термодатчику внизу колонны
- Управление сервоприводом крана дефлегматора
- Расчет объемов дробной перегонки
- Расчет общего времени процесса
Стадия 1. Предварительный разогрев куба. Плита на максимальной мощности. Контроль температуры куба. Ждем температуру до 80 градусов. Тут надо учесть, что чем больше концентрация спирта в кубе, тем раньше он закипит. Поэтому выбираем температуру ниже, чтобы успеть получить сообщение о переходе на стадию 2.
Стадия 2. Готовность к началу. Ускоряем чтение температуры колонны и куба. Включаем охлаждение холодильника. Готовимся к началу процесса. Убавляем мощность плиты. Переход к следующей стадии при начале прогрева колонны.
Стадия 3. Работа на себя. Включаем сильное охлаждение дефлегматора, конденсируя все пары во флегму. Легкокипящие фракции собираются вверху колонны. Переход к следующей стадии через 10 минут.
Стадия 4. Отбор голов. Немного уменьшаем охлаждение дефлегматора, позволяя легкокипящим фракциям проходить через него. Не даем колонне превышать температуру в 73 градуса, чтобы этиловый спирт не выходил из аппарата.
Дальнейшее переключение стадий делаем сами. Отбираем расчетное количество голов. Не буду пока вдаваться в подробности расчета, т.к. ничего из этого не реализовано на php. Для расчетов использую excel таблицу. Но в будущем планирую перенести всё сюда.
Стадия 5. Отбор тела. Стабилизируем температуру колонны дефлегматором. Собираем тело. Максимальная температура колонны рассчитывается от температуры куба. Опытным путем выяснено, что начальная t колонны должна быть 75,4, а по завершению 77,3. Эти константы есть в коде, и подбираются для конкретного аппарата и винокура более детально. По ходу процесса сбора тела, куб продолжает нагреваться. По мере этого будет расти и температура колонны. Примерная разница температуры куба в начале и конце процесса составляет 5 градусов. Разница в колонне будет 2 градуса. Учитывая температуру закипания куба, можем высчитать максимально допустимую температуру колонны в зависимости от текущей температуры куба. При отклонении температуры колонны даем сообщение. В коде сделана задержка на такие сообщения, чтобы они не шли слишком часто.
Стадия 6. Отбор хвостов. Увеличиваем мощность плиты. Уменьшаем охлаждение дефлегматора. Максимальную температуру колонны устанавливаем на 15 градусов меньше температуры куба, но не ниже 78 градусов.
Для реализации процесса, нам потребуется очень частый опрос датчиков аппарата. Например при отборе тела период датчика колонны будет всего 2 секунды. Таймеры в МД не задуманы для такого частого рекурсивного вызова кода. Если пропустить хотя бы одну итерацию, то весть процесс остановится. Можно конечно каждый раз создавать второй таймер с запозданием ещё на пару секунд, но это добавит ещё больше "лишних действий" в системе. Намного лучше для этого использовать свой цикл, тогда процесс будет работать очень стабильно.
Но если перегоны спирта не проходят каждый день, то гонять лишний цикл неделями в пустую не имеет смысла. Поэтому мы будет каждый раз в начале процесса запускать наш цикл, и в конце останавливать.