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

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

Форум самогонщиков Автоматика
1 ... 68 69 70 71 72 73 74 ... 132 71
m16 Модератор Тамбов 1.9K 1K
Отв.1400  08 Мая 18, 10:46
    по умолчанию  фузы  Atmega328  прошиты  на тактирование  от внутреннего генератора 8мгц. также  запрограммирован фуз  CKDIV8=0.  в результате  тактовая частота  проца = 1мгц. частота программирования  по isp  должна быть менее 1/4 тактовой проца т.е менее 250кгц.

    при первом программировании  частоту isp у avrdude  нужно снижать ниже 250кгц.  сбросить фуз  CKDIV8 = 1.  обязательно программировать фуз CKOUT=0
gol_avto Доцент Москва - Серпухов - Анапа 1.3K 458
Отв.1401  08 Мая 18, 11:46
Спасибо! Действительно, восстановил заводские фьюзы - перестал МК читаться. Добавил в команду параметр -B 5 - период тактовой частоты в мкс и все читается с заводскими фьюзами

pi@raspberrypi:~ $ sudo avrdude -B 5 -c usbasp -p m328p
avrdude: set SCK frequency to 187500 Hz
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.01s
avrdude: Device signature = 0x1e950f (probably m328p)
avrdude: safemode: Fuses OK (E:FF, H:D9, L:62)
avrdude done.  Thank you.

Записал в шпоргалку. Думаю инфа будет полезна новичкам в МК, таким как я.
m16 Модератор Тамбов 1.9K 1K
Отв.1402  08 Мая 18, 12:30, через 44 мин
есть хорошая книга по аврам, рекомендую.
Евстифеев А.В.  Микроконтроллеры AVR семейств Tiny и Mega фирмы ATMEL
atmel.pdf 2.5 Мб
OldBean Доцент Красноярск 1K 1.4K
Отв.1403  09 Мая 18, 05:54
Ну и еще копеечка... ;) для пользователей USBasp-программаторов
В USBasp-программаторах, обычно предусмотрен специальный джампер для снижения скорости тактирования при программирования микроконтроллеров с низкой тактовой частотой.
BogAD Кандидат наук Красногорск - Белово 403 184
Отв.1404  09 Мая 18, 07:30
Всех с праздником Великой победы! С 9 МАЯ!!!
Ненавязчивая автоматизация ректификационной установки
Ненавязчивая автоматизация ректификационной установки. Автоматика.


Я на днях CRATE залипил. Тормознул пока, последнее сверло на 0,8 заломал...
Поизголялся над CRATE, цифровой изолятор поставил, линию на PWR-OFF добавил. А тут после поста SergeyMak задумался...

Хочу добавить на плату этого модуля датчик атмосферного давления BMP180 в виде готового модулька GY-68. Смотрю там на платке подтяжки I2C уже распаяны и стабилизатор на 3.3 вольт. Подтяжки надо выпаять наверное, ведь на малинке шина подтянута уже? В этой ветке про это не нашел, может плохо смотрел...SergeyMak, 07 Мая 18, 12:59

По плану у меня попробовать BMP-280 (там подтяжка на 10к), а т.к. своим вариантом поделюсь со всеми, думаю не каждый будет ставить BMP280, решил предусмотреть установку и BMP180.
Глянул, ... мать моя! Вариантов BMP-х80 на рынок Китай предоставил всяки-разные! На любой вкус.
Кстати, SergeyMak, твоя схема (если она от твоего модуля) и плата не сходится. На плате с 4 пинами нет стабилизатора 3,3.
Скорей всего у тебя  5pin.
 Ненавязчивая автоматизация ректификационной установки
Ненавязчивая автоматизация ректификационной установки. Автоматика.


Ну да ладно. Внес изменения в CRATE (свою переделывать не буду пока). Можно и 180, и 280 модуль ставить.
Убрал лишнюю подтяжку по 3,3 в. На стороне 5 В оставил.
Да...
Испытал UPS  своей конструкции. Я доволен. Минут 30 Малинка спокойно работает. Единственно, еще не впаял и не проверил узел по контролю питания на 3,08в.
Описание готовлю. Будет отдельным постом.
 Ненавязчивая автоматизация ректификационной установки
Ненавязчивая автоматизация ректификационной установки. Автоматика.

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


5PCS-Lot-GY-68-BMP180-Barometric-Pressure-Sensor-Module-Replace-BMP085-TE121.jpg
5PCS-Lot-GY-68-BMP180-Barometric-Pressure-Sensor-Module-Replace-BMP085-TE121.jpg Ненавязчивая автоматизация ректификационной установки. Автоматика.
20180509_065913.jpg
20180509_065913.jpg Ненавязчивая автоматизация ректификационной установки. Автоматика.
20180509_070440.jpg
20180509_070440.jpg Ненавязчивая автоматизация ректификационной установки. Автоматика.
сообщение удалено
BogAD Кандидат наук Красногорск - Белово 403 184
Отв.1405  09 Мая 18, 10:17
И замена отборного клапана микронасосом с ШИМ от дельты.Asus, 09 Мая 18, 09:51
Это как? А разве микронасосы смогут подпор продукта удержать?
Думаю что возможна замена только на перистальтический...
По мне бы,... нужно добавить переключатель отбора, типа как
https://cdn.homedistil.ru/fs/1509/20/21231.255298.jpg
на сервоприводе.

Поаккуратней реализовать, управление по I2C и, можно не посещать установку на всём этапе "производства".
nic2015 Магистр Феодосия 219 56
Отв.1406  09 Мая 18, 10:23, через 7 мин
Модуль управления насосами вырисовывается? Тогда и шим управление перистальтикой в зависимости от давления в колонне нбк не плохо бы.
ab57 Новичок Barnaul 7 1
Отв.1407  09 Мая 18, 12:49
Коллеги, всех с праздником!

И замена отборного клапана микронасосом с ШИМ от дельтыAsus, 09 Мая 18, 09:51
Модуль управления насосами вырисовывается? Тогда и шим управление перистальтикой в зависимости от давления в колонне нбк не плохо бы.nic2015, 09 Мая 18, 10:23

Раз заговорили о модуле управления насосом мб будет интересно такое решение:

У меня охлаждение дефлегматора сделано китайским шестеренчатым насосиком из буферной емкости. Ну давление у меня в системе скачет и совсем бывает пропадает до 15-30 минут.
Для этого в ведро был установлен клапан от сливного бачка, оттуда и выпивает китаец.

Схема управления один в один повторяет раннюю схему Контроллера клапана отбора собранного вместе с индикатором и кнопками. Вместо оптрона на выход установил полевик IRLU2904.
Сам движок включил между +12 и стоком, параллельно ему диод шоттки.

Проблем было две, скетч для клапана управляет клапаном программно,быстрее 10 Гц, не разгоняется. Что движку категорически не понравилось + хотелось сохранить совместимость уже с вариантом Lite по протоколу обмена с Малинкой.

Для этого на основе родного скетча и нового от варианта Lite создан гибрид, который работает как клапан отбора и как контроллер насоса. Для этого добавлен аппаратный PWM,  с разрешением 1024 (почти 1000 Lite) с частотой 15625 гц. Двигателю оч понравилось.
Переключатель клапан/насос в скетче. Раз контроллер клапана был ранее сделан, индикатор и кнопки оставил.
Клапан отбора работает по прерываниям от таймера!
Адрес на шине 14 (пока одинаковый для клапана и насоса)

PS Программисты над скетчем сильно не смейтесь, сумел переделать
благодаря действительно подробным комментариям Сергея Владимировича и обчитавшись интернету. Замечания приветствуются!



OldBean Доцент Красноярск 1K 1.4K
Отв.1408  09 Мая 18, 13:17, через 29 мин
Глянул, ... мать моя!BogAD, 09 Мая 18, 07:30
Вот об этом и речь... Была в свое время ;). Поэтому все такие устройства (BMP, часы реального времени и прочие мелочи) лучше втыкать в штатные разъемы крейта через соответствующие переходники, а не разводить на самой плате крейта или какого-нибудь модуля. Пример переходника для BMP180 на снимке в приложении к топику.
а всё таки будет реализована  плавающая от атм.давления опорная уставка температуры при отборе?Asus, 09 Мая 18, 09:51
Для процессов ректификации, при нормальном (атмосферном) давлении, коррекция уставки уже давно реализована (еще в первом варианте системы). Вот пример работы такой корреции в реальном процессе ректификации, который был как раз на прошлой неделе (в работе пока использую еще первый вариант автоматизации). Датчик - BMP180. Атмосферное давление вечером и ночью заметно выросло (см. нижнюю диаграмму), система соответственно корректировало уставку (в сумме на 0.2°C, см.вторую сверху диаграмму). Как видно по красной кривой на этой же диаграмме (это температура в нижней части колонны) процесс отбора тела прошел мягко, безо всяких "залетов". Кстати, обратите внимание, как изменяется давление и температура в дефлегматоре (зелененькая кривая на этой же диаграмме). Поэтому, если регулятор отбора отбора работает достаточно жестко (на уровне кванта датчика DS18B20), коррекция уставки в зависимости от атмосферного давления - опция очень даже нужная и полезная.


По поводу других устройств и режимов работы (типа разных режимов дистилляции и пр.). Коллеги, вполне естественно, что я ориентируюсь в первую очередь на свои задачи и то оборудование, которое я сам использую. Но я с удовольствием поучаствую и помогу, чем смогу, если кто-то будет разрабатывать свои собственные модули в рамках данного концепта для более широкого спектра задач. Только большая просьба - если разработка закончена - выкладывайте (конечно, по возможности) полное описание (со схемами, фотографиями, примерами работы). Т.е. описание, достаточное для повторения. Желательно с гиперссылкой в конце топика "Вернуться в оглавление". Тогда я смогу корректировать оглавление ветки, чтобы данная разработка не затерялась.
crate_BMP180.JPG
crate_BMP180.JPG Ненавязчивая автоматизация ректификационной установки. Автоматика.
180503-04_СС-СР1.png
180503-04_СС-СР1.png Ненавязчивая автоматизация ректификационной установки. Автоматика.
OldBean Доцент Красноярск 1K 1.4K
Отв.1409  13 Мая 18, 08:47
Возможно, кого-нибудь может заинтересовать алгоритм регулятора отбора, используемого в данной автоматизации, пример работы которого приведен в предыдущем топике. Вот решил оформить в виде отдельного фрагмента с подробными комментариями. Текст - ниже.
Скрытый текст
# Фрагмент кода регулятора текущей скорости отбора (curQ) в зависимости от 
# текущего значения уставки (Tset) и скорости изменения температуры в колонне
# (maTcDeriv). Базовые критерии выглядят так:
# 1. Если отбор включен (состояние "старт") и текущее значение температуры в
#    колонне (cTc) превышает нижний порог температуры (Tset - qT,
#    где qT - квант датчика) и производная температуры в колонне положительна
#    (maTcDeriv > 0), то выполняется критерий для выключения отбора ("стоп")
# 2. Если отбор выключен (состояние "стоп") и текущее значение температуры в
#    колонне ниже верхнего порога (Tset + qT) и производная температуры в
#    колонне отрицательна (maTcDeriv < 0), то выполняется критерий для
#    включения отбора ("старт")
# Поскольку используются цифровые датчики, то в регулятор добавлена компенсация
# цифрового "дребезга" температуры на уровне кванта датчика. Для этого вводятся
# счетчики событий 1 и 2, перечисленных выше, ctrp и ctrm соответственно. Если
# критерии 1 или 2 выполняются 3 и более раз подряд, то отбор реально
# выключается (для 1) или включается (для 2). В противном случае выполнение
# критериев для "стоп" или "старт" считаются "цифровым дребезгом" датчиков и
# счетчики ctrp и ctrm сбрасываются.
#
# Во время паузы ("стоп") производится "взвешенная" коррекция базовой скорости
# отбора (bQ) в зависимости от текущего ее значения и температуры в кубе.
# Оптимальное значение веса (wt = 0.8) определяется экспериментально и задается
# при инициализации системы.
...
    if not stopFlag: # В данный момент отбор производится
      if cTc >= Tset - qT and  maTcDeriv > 0 : ctrp += 1 # Выполнен критерий 1
      elif ctrp > 0: ctrp -= 1 # Увы, это - "дребезг" температуры - сброс счетчика
      if ctrp > 2: # Порог превышен более 2 раз подряд, значит реальный "стоп"
        curQ = Qmin # Выключаем отбор
        stopFlag = True # Флаг состояния "стоп"
        ctrp = 0 # Сбросим счетчик выполнения критерия
      else: # В противном случае сохраняем текущую скорость отбора
        curQ = bQ
    else: # Сейчас - пауза в отборе (т.е. "стоп")
      if cTc < Tset + qT and maTcDeriv <= 0 : ctrm += 1 # Выполнен критерий 2
      elif ctrm > 0: ctrm -= 1 # Увы, это dct-nfrb "дребезг" температуры
      if modes[mode].reg == 1: # В этом режиме работы базовая скорость отбора
                              # корректируется с учетом веса wt старого
                              # значения (bQ) и рассчитанного по температуре
                              # в кубе (cQ)
        cQ = cR*(100.0 - Ts[hid]) # Скорость отбора, рассчитанная по т-ре в кубе
        bQ = bQ*wt + cQ*(1.0 - wt)
      if ctrm > 2: # Критерий 2 выполнен более 2 раз подряд - значит "старт"
        curQ = bQ  # Старт
        stopFlag = False
        ctrm = 0 # Сброс счетчика
    sd.Q = curQ # Установка скорости отбора в контроллере клапана отбора
...
сообщение удалено
OldBean Доцент Красноярск 1K 1.4K
Отв.1410  13 Мая 18, 15:00
Данный алгоритм вводит дифференциальную составляющую ("упреждение") в алгоритм старт-стопа. Чтобы избежать "залета" температуры выше уставки в нижней части колонны. Если сравнить его с "идеальным регулятором" (когда отбор плавно регулируется так, чтобы температура всегда в точности была равна уставке), то такой старт-стоп приводит лишь к некоторому уменьшению производительности, но никак не приводит к ухудшению качества продукта (т.к флегмовое число никогда не становится меньше заданного уставкой). Кстати, "старт" тоже делается с упреждением. Чтобы избежать "инерционной" раскачки колебаний в колонне.

К сожалению, сделать "идеальный регулятор" (т.е. поддержание равенства температуры и уставки с точностью до кванта за счет плавного регулирования отбора) пока никак не получается... :(( Тем не менее, "старт-стоп" с дифференциальной компонентой - это небольшой шажок в этом направлении. Но, поскольку данный алгоритм - это, все-таки, вариант "старт-стопа", то у него, конечно, есть характерное "старт-стопное родимое пятно" - нестационарность процессов тепло-массообмена в колонне. Но кто сказал, что нестационарность это всегда плохо? Или хуже квазистационарности, характерной для кубовой ректификации? ИМХО, если "без залетов", то это всего лишь некоторое снижение производительности по сравнению с "идеалом" ;)

PS
Еще раз хотелось бы подчеркнуть, что здесь речь идет о классической кубовой ректификационной установке (с кубом, однородной насадочной колонной постоянного сечения, одним дефлегматором и узлом отбора в нем).
сообщения удалены (9)
Merlin62 Новичок Гиперборея 3
Отв.1411  10 Июня 18, 19:11
OldBean имею вопрос по контроллеру ТЭНа: хотелось бы применить в качестве Pro Mini , Arduino Nano.Но т.к. только в начально участке изучения данного девайса., то и возникла проблема, как заменить заменить с скетче подачу сигналов на индикатор.
У Вас по схеме B-A2,D3-A1,D2-A0,F-D13,A-D12,D1-D11. На Nano индикатор становится на пины B-A6,D3-A5,D2-A4,F-A3,A-A2,D1-A1. вторая сторона ножек индикатора полностью совпадает по пинам, посему я ее и не рассматриваю.
С уважением
OldBean Доцент Красноярск 1K 1.4K
Отв.1412  11 Июня 18, 13:00
как заменить заменить с скетче подачу сигналов на индикатор.Merlin62, 10 Июня 18, 19:11
В скетче есть два массива segPins и digPins. См. их объявление и инициализацию в строках 48 и 50 соответственно. В инициализации (это то, что в фигурных скобках) как раз и записаны номера цифровых пинов ардуинки к которым подключены соответствующие сегменты индикатора (элементы массива segPins) и номера общих катодов,анодов цифр индикатора (элементы массива digPins). Естественно, пины порта C (аналоговые) тоже используются как цифровые со сквозной ардуиновской нумерацией. Вам нужно только откорректировать эти (ардуиновские) номера портов (которые в фигурных скобках) в соответствии с номерами портов в нано. Больше ничего менять не нужно.
Merlin62 Новичок Гиперборея 3
Отв.1413  11 Июня 18, 20:05
нужно только откорректировать эти (ардуиновские) номера портов (которые в фигурных скобках) в соответствии с номерами портов в наноOldBean, 11 Июня 18, 13:00
OldBean Порядок или последовательность имеет значение...или все равно в каком порядке стоят номера пинов?
Я так и предполагал, что именно эти две строчки необходимо править...но решил перестраховаться..
С уважением
OldBean Доцент Красноярск 1K 1.4K
Отв.1414  12 Июня 18, 03:10
Порядок или последовательность имеет значение...или все равно в каком порядке стоят номера пинов?Merlin62, 11 Июня 18, 20:05
Порядок важен. Элементы массива segPins идут в порядке нумерации сегментов индикатора A, B, C, D и т.д. Т.е. segPins[0] - соответствует сегменту A, segPins[1] - сегменту B и т.д. А ежели конкретно, то:
static uint8_t segPins[7] = {12, 16, 5, 7, 8, 13, 4};
означает, что сегмент A индикатора подключен к порту 12 ардуинки, сегмент B - к 16-ому, сегмент C - к 5-ому и т.д.
Аналогично и для массива digPins. Вам нужно прописать свои номера портов, согласно разводке наны.

Тут уж ничего не поделаешь. Разработчики индикаторов выводили свои ножки (у индикаторов) как попало (точнее - согласно своей логике), а разработчики ардуинок тоже. Как им попало. Естественно, они и не думали о том, что индикатор можно просто "воткнуть" напрямую в ардуинку. Поэтому, к сожалению, здесь приходится немножечко мозг "морщить" ;) Для физического согласования этих устройств.
Merlin62 Новичок Гиперборея 3
Отв.1415  12 Июня 18, 08:35
Порядок важен.OldBean, 12 Июня 18, 03:10
Премного благодарен за разъяснение.
С уважением

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

Заменил (12,16,5,7,8,13,4)на (15,19,5,7,8,16,4) и (15,14,11) на (18,17,14)
Все согласно Вашим рекомендациям.
Премного благодарен.
С уважением
Airon Новичок Обнинск 1
Отв.1416  18 Июня 18, 16:14
Всем здравствуйте. Подскажите пожалуйста есть у кого нибудь программа  для термо-сервера под управление PRO mini, так как предлагал BogAD с кнопкой и с четырёх-цыфравым индикатором?
nic2015 Магистр Феодосия 219 56
Отв.1417  19 Июля 18, 09:41
Сергей! Все с нетерпением ждём когда Вы появитесь. Очень интересная разработка, хотелось бы продолжения.
gindos Студент Южно-Сахалинск 39 12
Отв.1418  19 Июля 18, 15:04
"Пять копеек" к [сообщение #12917509]
Собрал в цепь контроллер клапана отбора, контроллер ТЭНа, датчик RMS, подключил их по i2c к малинке. Контроллеры сами по себе, в рукопашном режиме, работают (время открытия клапана регулируется, подаваемая мощность на ТЭН изменяется, датчик RMS так же, в свою очередь работает стабильно, индикаторы отображают информацию корректно), но вот малинка их по i2c не видит... Проблема оказалась в том, что использовал для питания ардуинок блок питания 5V, 350mAh, видать для работы i2c этого не хватало. Как только заменил на 5V, 1.5Ah (другого в наличии не было), то малинка тут же увидела контроллеры и датчик RMS на шине i2c
Asus Доцент Москва 1.4K 691
Отв.1419  19 Июля 18, 16:34
Как только заменил на 5V, 1.5Ahgindos, 19 Июля 18, 15:04
Т.е. была просадка напряжения по цепи 5В из-за большого тока потребления?
Или пульсации и помехи от ИП?