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

Ненавязчивая автоматизация ректификационной установки

Форум самогонщиков Автоматика
1 ... 116 117 118 119 120 121 122 ... 132 119
ekochnev Магистр Екатеринбург 207 54
Отв.2360  24 Янв. 22, 10:43
OldBean, Сергей, ну не совссем до кубовой, я все-таки сделал оговорку "практически", но всегда так - после стабилизации температура дефлегматора стабильная и не меняется ни на квант. Работает в таком режиме уже несколько лет. Вот взял из своего архива один из сохраненых логов ректификации от 2020 года. Прикладываю полный лог и построенные на его базе графики. Какой датчик где в логе понятно из первой строчки в файле лрна
Т0,Т1,Т2 - температуры в кубе, середине колонны и дефлегматоре
Т3 и Т4 - температуры воды на входе и выходе
Р0 - кубовое давление
Р1 - атмосферное
По остальным датчикам без пояснения понятно
lsync_2020-10-19_07_49_44.png
Lsync_2020-10-19_07_49_44. Ненавязчивая автоматизация ректификационной установки. Автоматика.


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

Посмотрел исходные тексты. Да, Вы совершенно правы - для исключения "пограничных" эффектов в условии стоит "меняется более чем на один квант", прошу прощения что ввел в заблуждение - давно уже этот скрипт писал. Но в целом температура очень стабильна. Все остальное, что я написал, остается в силе, кроме того, что изменения на 1 квант для исключения пограничных эффектов я изменениями не считаю. :-)

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

Смены режимов хорошо видно по ступенькам на графике мощности, специально делал мощность слегка отличающуюся, чтобы это было видно на графиках
1. Нулевая мощность - включение системы до за пуска программы
2. Разгон на максимальной
3. Совсем маленькая ступенька прогрев колонны
4. Ступенька побольше - стабилизация колонны о чем я писал выше
5. Отбор голов (видно скорость отбора в начале слегка уменьшается, потом остается ровной)
6. Короткая пауза для смены посуды
7. Отбор подголовников
8. Короткая пауза для смены посуды
9. Отбор тела со старт-стопом
10. Отбор: второсортное тело (или предхвостия), кто как это называет
11. Короткая пауза для смены посуды
12. Отбор хвостов с постоянной скоростью и постепенным уменьшением мощности по мере уменьшения спиртуозности в кубе.
13. Нулевая мощность. Конец программы

Смена режимов работы происходит автоматически кроме случаев когда система встает на паузу и ждет смены приемной емкости.
OldBean Доцент Красноярск 1K 1.4K
Отв.2361  24 Янв. 22, 13:26
Спасибо! Хорошие логи и красивая графика.

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

В Вашем примере атмосферное давление стоит мертво (в пределах десятых долей мм.рт.ст.). Но такая идиллия бывает не всегда. Вот пример лога, когда атмосферное давление за время процесса выросло почти на 10 мм.рт.ст. Слева - весь процесс, справа - начальный период. Температура в дефлегматоре - зелененькие кривые. Бывают и более серьезные катаклизмы. Без коррекции на атмосферу Ваш критерий может не сработать (особенно, если бы я начал ректификацию на 12 часов позже :), а с коррекцией - почти наверняка сработает.
log_all.png
Log_all. Ненавязчивая автоматизация ректификационной установки. Автоматика.
log_initial.png
Log_initial. Ненавязчивая автоматизация ректификационной установки. Автоматика.


PS
Позже подсчитаю скорректированную на атмосферу т-ру в дефлегматоре для этого процесса. Если будет стоять в пределах кванта - значит можно спокойно брать Ваш критерий на вооружение :).
ekochnev Магистр Екатеринбург 207 54
Отв.2362  24 Янв. 22, 13:34, через 9 мин
Сергей, у меня именно сделано, что все алгоритмы работают с учетом атмосферного давления :-)

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

В Вашем примере атмосферное давление стоит мертво (в пределах десятых долей мм.рт.ст.).OldBean, 24 Янв. 22, 13:26
В данном случае (окончание процесса стабилизации), изменение атмосферного давления не очень важно, потому, что мы говорим об интервале времени всего 15 минут когда показания датчика не должны меняться, а за это время атмосферное давление не может измениться так существенно чтобы сдвинуть показания даже на 1 квант. Это должна быть ОЧЕНЬ резко налетевшая буря. Даже если и изменится, ну и что, сбросится таймер и процесс стабилизации займет чуть больше времени отсчитывая осчередную 15-минутку, от этого только качество продукта выиграет :-). А так за общее время ректификации атмосферное давление. безусловно может измениться существенно и на длинных процессах (отбор голов, тела и т.п.) это у меня обязательно учитывается.
OldBean Доцент Красноярск 1K 1.4K
Отв.2363  24 Янв. 22, 14:41
В общем-то, да. Особой точности от этого критерия не требуется. Тем более впереди многочасовой процесс отбора голов :)
ekochnev Магистр Екатеринбург 207 54
Отв.2364  24 Янв. 22, 14:45, через 4 мин
Вот именно.
Я могу гарантировать своим опытом нескольких лет эксплуатации данной системы, что на данном шаге никогда не бывает проблем.

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

Для данного этапа намного важнее изменения атмосферного давления является качество датчика температуры в дефлегматоре. Года полтора назад у меня один датчик после длительного периода эксплуатации начал "чудить". В его работе иногда стали пролетать единичные выбросы значений: то "классические" для данных датчиков 87.5 градусов, то слишком большие значения в несколько сотен градусов. Вот с таким датчиком окончания по такому алгоритму не дождаться, по крайней мере без дополнительной фильтрации значений. Я в свое время горя хапнул на каком-то из длительных процессов. Пришлось когда разобрался дополнительные условия прописывать в алгоритм на такой случай, ну и сам датчик конечно заменил на другой нормально работающий.
OldBean Доцент Красноярск 1K 1.4K
Отв.2365  24 Янв. 22, 15:21, через 37 мин
У меня температурные "иглы" тоже раньше бывали. Грешил на известный косяк малинки, связанный с растяжкой. Но потом как-то все само собой "рассосалось". К сожалению, так и не понял причину. Но больше не появляются.
NBVV Специалист Новосибирск 124 2
Отв.2366  27 Янв. 22, 08:13
Строка из sr1:

"u.T2cr = 78.6 # Т-ра в дефлегматоре окончания отбора исправимых хвостов"

Разве температура в дефлегматоре до десятых градуса идентична в разных перегонках? У меня небольшой опыт (и я еще пока грею СС тэнами без стабилизации от изменений напряжения в сети и атм. давления) но, у меня эта температура стабильна (при отборе тела), и при этом ее значения отличаются в разных перегонках +- 0,3°.
ekochnev Магистр Екатеринбург 207 54
Отв.2367  27 Янв. 22, 08:33, через 20 мин
Все верно, температурная "полка" в дефлегматоре может быть разной. На одном и том же оборудовании она зависит только от атмосферного давления. Соответственно, и T2cr, которая должна вычисляться по сути как температура "полки" плюс некий температурный залет, определяющий допустимое качество примесей, тоже должна быть разной, если Вы при разном атмосферном давлении хотите получить продукт с одинаковым количеством примесей.
Я думаю, здесь дело в том, что скрипт sr1 приведен просто как пример возможностей системы, а не как идеальное решение, поэтому Вы можете самостоятельно при желании дописать коррекцию этого значения в зависимости от атмосферного давления. Тут каждый решает сам. Я вот, например, вообще не использую данный алгоритм с T2cr, а прерываю процесс по остаточной спиртуозности куба, которая вычисляется исходя из температуры в кубе, кубового давления, атмосферного давления и таблицы кипения спирто-водяной смеси при данных параметрах.
NBVV Специалист Новосибирск 124 2
Отв.2368  27 Янв. 22, 08:45, через 13 мин
Терзают смутные сомнения))). Неужели OldBean каждую перегонку меняет значение T2cr?
ekochnev Магистр Екатеринбург 207 54
Отв.2369  27 Янв. 22, 08:50, через 6 мин
Я думаю, он не меняет. И дело не в том, что у него эта температура не меняется... :-)
Дело в том, что в данном скрипте эта температура задает критерий остановки отбора ИСПРАВИМЫХ ХВОСТОВ, т.е. мы с помощью него контролируем отбор уже не товарного "тела", а некой "вонючки", которая не годится к употреблению, а обычно выливается в куб при следующей перегонке, либо используется для технических целей. Поэтому ничего страшного, если при неизменном значении T2cr и изменении атмосферного давления, мы получим в итоге в этой "вонючке" либо чуть больше примесей, либо чуть меньше, ее пить все равно никто не будет...
Если привести аналогию с анекдотом, то эта температура как "Неуловимый Джо", который "Неуловимый" не потому, что его поймать никто не может, а потому, что это просто никому не нужно... :-)
Впрочем, если я не прав, то Сергей меня сейчас поправит.
OldBean Доцент Красноярск 1K 1.4K
Отв.2370  27 Янв. 22, 13:46
Терзают смутные сомнения))).NBVV, 27 Янв. 22, 08:45
Евгений все правильно написал. Это возвратный спирт. Он уходит в следующую первичную ректификацию. Его немного. У меня на 23-литровом кубе обычно получается грамм 200-220. Но, с другой стороны, 5 раз по 200 - уже литр. Причем это почти (!) чистый спирт.

Теперь конкретно про критерий. Конечно, по уму, во всех температурных критериях нужно использовать не измеренную температуру (непосредственно), а температуру, приведенную к нормальному атмосферному давления (760 мм.рт.ст). Но, в отличие от кубовой температуры, температурный критерий окончания отбора исправимых хвостов по температуре дефлегматора очень резкий. Например, посмотрите левый график в моем посте чуть выше. Зелененькая кривая на нижнем графике в самом конце процесса. Там легко видеть резкий всплеск температуры. Это по колонне начали подниматься пары в основном воды с примесями паров хвостов. Уже "плохих" хвостов. Т.е. к этому моменту мы отобрали почти чистый спирт, остававшийся в верхней части колонны от предыдущего этапа (тела), а штатная скорость отбора, с которой мы отбираем исправимые хвосты, слишком высока для такой малой (финальной) спиртуозности в кубе. Поскольку всплеск очень резкий, то особых требований к точности порога (T2cr) нет. Мы в любом случае просто не успеем "хватануть" много примесей за время фронта всплеска. Главное, не ставьте порог слишком высоким, чтобы как раз не "нахвататься" много тяжелых примесей, ну и, естественно, T2cr должен быть чуть выше (например, на пол-градуса) температуры дефлегматора в начале этапа отбора исправимых хвостов. В этом случае T2cr будет автоматически корректироваться в зависимости от капризов погоды. Я такую коррекцию внес уже после публикации файла sr1.py. Но Вы можете вставить сами соответствующую строчку в свой файл sr1.py (см.screenshot).
T2cr.png
T2cr. Ненавязчивая автоматизация ректификационной установки. Автоматика.
OldBean Доцент Красноярск 1K 1.4K
Отв.2371  28 Янв. 22, 10:13
5. Про микроконтроллер ATMega32U4

Попробовал я недавно "в деле" микроконтроллер ATMega32U4. Этот МК лежит в основе китайского клона Arduino Pro Micro. За счет того, что USB встроен в МК ATMega32U4, не нужен отдельный USB-чип. В результате платка получилась такая же миниатюрная, как и Arduino Pro Mini, которую мы использовали в первой версии ненавязчивой автоматики. Ниже - снимок для сравнения.
06_Arduino_Pro_Mini_and_Micro.JPG
06_Arduino_Pro_Mini_and_Micro. Ненавязчивая автоматизация ректификационной установки. Автоматика.

Из-за того, что есть встроенный USB, освобождается аппаратный UART. Это очень хорошо, если нужно подключать датчики или исполнительные устройства с таким интерфейсом. Например, PZEM-004T. Все-таки аппаратный порт всегда лучше программного. Из хорошего, что еще есть на борту ARMega32U4 и что могло бы нам пригодиться при конструировании модулей варианта LEGO, можно отметить наличие двух 16-разрядных счетчиков и четырех каналов 16-разрядных ШИМ. В datasheet еще много чего хорошего есть. В целом, организация и программирование не отличается от таковых для ATMega328P. Так что тратить время на переучивание и перепривыкание, например, к какой-нибудь экзотике, типа ESP-шек, совсем не нужно.

Для испытаний ATMega32U4, я попробовал "поженить" платку Arduino Pro Micro с датчиком "всего что есть в сети" - платой PZEM-004T v.3.0 с трансформатором тока. Схема и фотография макета ниже (в макете использовалась RJ-45 розетка без светодиодов).
04_pzem_sch.png
04_pzem_sch. Ненавязчивая автоматизация ректификационной установки. Автоматика.
05_pzem_proto.JPG
05_pzem_proto. Ненавязчивая автоматизация ректификационной установки. Автоматика.

У датчика PZEM-004T v.3.0 интерфейс - UART (ТТЛ). В качестве протокола прикладного уровня используется modbus. Сам протокол устройства простенький - просто "выклянчивать" у датчика значения 10 2-байтовых регистров (слов), начиная с нулевого адреса. В результате мы получаем: напряжение сети, ток в нагрузке, потребляемую нагрузкой мощность, частоту сети и коэффициент мощности. В скетче использовалась пара свободных ардуиновских библиотек (Wire и ModbusMaster) и несложный тестовый код. Все прекрасно работает! Причем, как в рамках i2c-сети, так и по USB. Кстати, получилась неплохая альтернатива нашему датчику RMS из варианта LITE!

Этот эксперимент, навел на простую, но, возможно, весьма полезную мысль: нужно попробовать спроектировать модули варианта LEGO (и, естественно, софт) с двойным интерфейсом (i2c и USB). Чтобы модули могли работать как в рамках i2c-сети, так и по USB. Наверное это было бы удобно при использовании в качестве управляющего компьютера ноутбук, обычный ПК или даже (не дай Бог! :))) телефон. Если не хочется возиться с организацией i2c-сети. При использовании платки Arduino Pro Micro в качестве интерфейсной основы варианта LEGO, это несложно будет сделать.

PS

Я перебрал в уме все устройства (модули), которые могут потребоваться для автоматизации винокурения. Ну, скажем так - в широком смысле :))). Ресурсов платки Arduino Pro Micro вроде бы вполне хватает для решения всех этих задач. Вот список запланированных на первое время типов модулей:

1. Электронное реле (прошивки Relay, PWM и PDM) для ТЭН-ов, клапанов, контакторов и пр.
2. Многоканальный ШИМ для серв и шаговиков (драйверы - отдельная история).
3. Датчик потребляемой мощности, напряжения в сети и тока.
4. USB/i2c хаб для 1-Wire датчиков (DS18B20)
5. USB/i2c хаб для маломощных i2c-датчиков

ИМХО, этих модулей должно хватить для сборки автоматики для любой задачи винокурения. Если что-то забыл - добавляйте. Обсудим.

PS2
Вот прикинул примерную схемку такого интерфейсного модуля. Вроде, на все случаи хватает пинов.
07_Mod32U4.png
07_Mod32U4. Ненавязчивая автоматизация ректификационной установки. Автоматика.
BogAD Кандидат наук Красногорск - Белово 403 184
Отв.2372  28 Янв. 22, 12:24
Так и AtMEGA328 вроде с UART (ТТЛ) работает или вопрос встал в использовании USB?
Вот прикинул примерную схемку такого интерфейсного модуля. Вроде, на все случаи хватает пинов.OldBean, 28 Янв. 22, 10:13

Сергей, сразу бросилось в глаза, сознательно развернул расспиновку TJ45? Усилитель I2C убран... или это стендовый вариант?
Датчик PZEM-004T можно подключить и с моими вариантами. UART там доступен на портах PD0 и PD1
Schematic_AtMega board_2022-01-28.pdf
Schematic_PoE-1Wire_2022-01-28.pdf
Единственно, что приходит в голову, что можно еще сделать некий "свисток", USB-I2C с усилителем на ISO1540. Тогда точно можно без малинки обойтись...
OldBean Доцент Красноярск 1K 1.4K
Отв.2373  28 Янв. 22, 12:54, через 30 мин
сразу бросилось в глаза, сознательно развернул расспиновку TJ45? Усилитель I2C убран... или это стендовый вариант?BogAD, 28 Янв. 22, 12:24
Ух ты! Распиновка RJ вдруг отразилась по вертикали. Видимо случайно ткнул "Y" при "красном" компоненте и не заметил. Сейчас поправлю.
Усилитель в этих модулях (в отличие от малинки(!)) не нужен, т.к. порты ATMega довольно мощные (до 40 мА). Ничуть не хуже, чем ISO1540. В связи с этим и "свисток" с усилителем ISO1540, в общем-то, не нужен.
Датчик PZEM-004T можно подключить и с моими вариантами. UART там доступен на портах PD0 и PD1BogAD, 28 Янв. 22, 12:24
Да. Конечно. И по софту будет совместимо. По крайней мере, если в мегу зашить загрузчик и писать скетчами в Arduino IDE. Нужно посмотреть Arduino IDE делает HEX-ы? У меня мало опыта работы с ней. Попозже разберемся как лучше эти решения совместить по софту.

PS
ATMega328P в DIP корпусе длиннее платы Arduino Pro Micro на 2 ноги (14 вместо 12), но он поУже. Тем не менее, если учесть всю обвязку (кварц, конденсаторы, разъем для ISP), то площади оно займет, скорее всего не меньше. Может быть имеет смысл вместо ATMega328P (DIP) поставить в модулях платки Arduino Pro Micro? Там еще и USB появится бесплатный :)
BogAD Кандидат наук Красногорск - Белово 403 184
Отв.2374  28 Янв. 22, 13:40, через 46 мин
Усилитель в этих модулях (в отличие от малинки(!)) не нужен, т.к. пины ATMega довольно мощные (до 40 мА). Ничуть не хуже, чем ISO1540. В связи с этим и "свисток" с усилителем ISO1540, в общем-то, не нужен.OldBean, 28 Янв. 22, 12:54
Я бы от гальванической развязки I2C не отказывался, как то спокойней, да и усилители-удлинители всеж нормализуют I2C на длинных линиях...
OldBean Доцент Красноярск 1K 1.4K
Отв.2375  28 Янв. 22, 13:44, через 5 мин
Я бы от гальванической развязки I2C не отказывался, как то спокойней, да и усилители-удлинители всеж нормализуют I2C на длинных линиях...BogAD, 28 Янв. 22, 13:40
Ну тогда питать каждый модуль придется отдельно. Или как? Развязку только по i2c сделать?
BogAD Кандидат наук Красногорск - Белово 403 184
Отв.2376  28 Янв. 22, 15:28
ATMega328P в DIP корпусе длиннее платы Arduino Pro Micro на 2 ноги (14 вместо 12), но он поУже. Тем не менее, если учесть всю обвязку (кварц, конденсаторы, разъем для ISP), то площади оно займет, скорее всего не меньше. Может быть имеет смысл вместо ATMega328P (DIP) поставить в модулях платки Arduino Pro Micro? Там еще и USB появится бесплатный УлыбающийсяOldBean, 28 Янв. 22, 12:54

Да, безусловно. Если учесть, что можно купить готовые Ардуинки с ATMega32U4 на борту, то можно, как впрочем с любой AtMeg'ой.
Вопрос на сколько это будет удобно в плане сборной конструкции? Как не крути, всеж промежуточный шилд для них придется делать...

А на счет размеров... так можно изначально создать платы с AtMega328 в корпусе TQFP-32. У меня получилось - 40,5 х 48,5мм, не знаю, компактно или нет.
Clipboard01.jpg
Clipboard01. Ненавязчивая автоматизация ректификационной установки. Автоматика.

Clipboard02.jpg
Clipboard02. Ненавязчивая автоматизация ректификационной установки. Автоматика.


Я придерживаюсь такой структуры
Структура.JPG
Структура. Ненавязчивая автоматизация ректификационной установки. Автоматика.
, из моего топика
Платы сделаны все, часть плат уже на руках, часть плат, исправленных, в пути уже.
Так что с USB пока повременю, пока свой вариант соберу...

Вот список запланированных на первое время типов модулей:

1. Электронное реле (прошивки Relay, PWM и PDM) для ТЭН-ов, клапанов, контакторов и пр.
2. Многоканальный ШИМ для серв и шаговиков (драйверы - отдельная история).
3. Датчик потребляемой мощности, напряжения в сети и тока.
4. USB/i2c хаб для 1-Wire датчиков (DS18B20)
5. USB/i2c хаб для маломощных i2c-датчиковOldBean, 28 Янв. 22, 10:13

Нужен модуль защиты - Контроль состояния и управления дифавтоматом. Один канал out для вырубания его, и два "сухих" контакта на in для контроля его состояния.

Ну тогда питать каждый модуль придется отдельно. Или как? Развязку только по i2c сделать?OldBean, 28 Янв. 22, 13:44

Развязку по I2C. Питание по витой +5v только для запитывания VCC2 ISO1540. Второе питание VCC1 ISO1540 уже с DC/DC преобразователя 24/5, с него же хочу запитывать AtMEG'и Т.е. один DС/DC на один блок.
Недорогой DC/DC преобразователь K78L05-1000R3 K78L05-1000R3.pdf
По питанию не отошел от принципа, который писал тут. Одно будет изменение - UPS будет на 24В из 6-ти банок Li-ION, который поставится в силовой блок, где будет стоять основной блок-питания.
OldBean Доцент Красноярск 1K 1.4K
Отв.2377  28 Янв. 22, 18:50
Интересно, конечно. Но, как по мне, то выглядит несколько "тяжеловато" для "веселых" и разноцветных кубиков конструктора LEGO :). Сложная система питания, гальванические развязки каждого модуля... Для кузнечно-сварочного цеха, возможно, в самый раз будет, а для домашнего/лабораторного конструктора разных автоматик - явный "перегруз". Впрочем, спорить по этим вопросам - все равно что о вкусах пива дискутировать. Поживем-посмотрим.

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


PS

Технический момент.

Александр, судя по схеме, которую Вы планируете реализовать, полного изоморфизма модулей наших вариантов LEGO, скорее всего, не будет. Поэтому простейшей организацией ссылок в оглавлении (типа: модуль такой-то, вариант 1, вариант 2...) тут не обойтись. Чтобы топики не затерялись со временем, давайте Вы сами будете следить о структуре и содержании той части оглавления, в которой будут ссылки на Ваши топики, которые Вы сочтете ключевыми. В общем оглавлении на первой странице поставим ссылку типа "Вариант BogAD" (или сами придумайте название корня). Это будет ссылка на Ваш корневой топик со ссылками. Этот топик Вы сами сможете редактировать и дополнять по мере надобности. Иначе буквально уже через пол-года трудно будет что-нибудь конкретное найти... А поиск на форуме пока, к сожалению, не очень эффективен. Сделайте, пожалуйста, такой корневой топик, а я поставлю на него ссылку в общем оглавлении.
BogAD Кандидат наук Красногорск - Белово 403 184
Отв.2378  29 Янв. 22, 08:56
Сделайте, пожалуйста, такой корневой топик, а я поставлю на него ссылку в общем оглавлении.OldBean, 28 Янв. 22, 18:50
Сергей, как придут платы, соберу, сразу топик сделаю...
NBVV Специалист Новосибирск 124 2
Отв.2379  02 Февр. 22, 07:39
По одной витой паре пускаем +5V (питание датчиков) и землю. По второй витой паре пускаем - сигнальную линию (1-Wire) и землю. Это нужно для компенсации наводок как по питанию, так и по сигнальной линии. Обе земли с одной стороны цепляются к земляной линии хаба (или крейта), а с другой стороны обе земляные линии цепляем к земляному выводу датчика. Подсоединять эти (сигнальные) земли к колонне не нужно.OldBean, 03 Янв. 22, 10:26

А для экрана покупать металлизированные коннекторы или достаточно посадить его на землю?