Погодозависимая автоматика для трехходового клапана

dimalimite
Рядовой
Сообщения: 53
Зарегистрирован: 03.12.2018{, 00:26}
Репутация: 18
Имя: Дмитрий

Погодозависимая автоматика для трехходового клапана

#1

Сообщение dimalimite » 03.12.2018{, 01:40}

Добрый день!
Ссылка на проект: https://youtu.be/rF7Ct4CZQAQ
Железо и софт: Arduino NANO, HС-05, датчики DS18B20, программа на Flprog, интерфейс на телефоне программа HMI Modbus, протокол передачи Modbus
Функции: Погодозависимое управление трехходовым (или любым другим) клапаном. График отопления по двум точкам. ПИ-регулятор для трехпозиционных клапанов (сигналы: открыть, стоп, закрыть).

Аватара пользователя
Phazz
Полковник
Сообщения: 2552
Зарегистрирован: 17.10.2016{, 15:38}
Репутация: 367
Откуда: Сургут
Имя: Анатолий

Погодозависимая автоматика для трехходового клапана

#2

Сообщение Phazz » 03.12.2018{, 06:12}

А где сам проект? Мне интересно посмотреть на ПИД для трехходового крана.

dimalimite
Рядовой
Сообщения: 53
Зарегистрирован: 03.12.2018{, 00:26}
Репутация: 18
Имя: Дмитрий

Погодозависимая автоматика для трехходового клапана

#3

Сообщение dimalimite » 03.12.2018{, 10:33}

Phazz, Сейчас досниму видео и выложу с объяснением, а то их миллион всяких разных делают и без теории смысла нет его смотреть. Там классический цифровой дискретный регулятор на разностном уравнение.

dimalimite
Рядовой
Сообщения: 53
Зарегистрирован: 03.12.2018{, 00:26}
Репутация: 18
Имя: Дмитрий

Погодозависимая автоматика для трехходового клапана

#4

Сообщение dimalimite » 04.12.2018{, 23:04}

Смысл и формула, которую я вкладывал в этот блок: https://youtu.be/qJt-AtaccJE
Сниму ещё одно видео и выложу файл Flprog полностью

Phazz, в Flprog ПИД находится в Блоке пользователя (см. скриншоты):

DeclareSection

float TIMER_PID; // Внутренний таймер ПИД
float E_1; // Текущее рассогласование
float E_2; // Рассогласование на -1 шаг
float E_3; // Рассогласование на -2 шага
float D_T; // Время воздействия на текущем шагу регулирования
float SUM_D_T; // Накопленное время воздействия
float TIMER_PID_UP; // Накопленное время открытия
float TIMER_PID_DOWN; // Накопленное время закрытия
boolean PID_PULSE; // Шаг выполнения 1 цикла

LoopSection

E_1 = SET_VALUE - PRESENT_VALUE; // Текущее рассогласование температуры
if (K_I == 0.0) // Деление на 0
{
K_I = 9999.0;
}
if (CYCLE == 0.0) // Деление на 0
{
CYCLE = 1.0;
}
// Расчет управляющего воздействия
if (PULSE_100MS & TIMER_PID == 0.0 & ! PID_PULSE)
{
PID_PULSE = 1; // Присвоить шаг
D_T = K_P * (E_1 - E_2 + CYCLE * E_2 / K_I + K_D * (E_1 - 2 * E_2 + E_3) / CYCLE) * VALVE / 100; // Время воздействия на текущем шагу регулирования
E_3 = E_2; // Запись рассогласования -2 шага назад
E_2 = E_1; // Запись рассогласования -1 шаг назад
SUM_D_T = SUM_D_T + D_T; // Накопленное время воздействия
if (SUM_D_T >= 0.5) // Сброс накопленного времени закрытия
{
TIMER_PID_DOWN = 0.0;
}
if (SUM_D_T <= -0.5) // Сброс накопленного времени открытия
{
TIMER_PID_UP = 0.0;
}
if ( E_1 < DEAD_ZONE & E_1 > - DEAD_ZONE) // Зона нечувствительности
{
D_T = 0.0;
SUM_D_T = 0.0;
}
}
if (PULSE_100MS)
{
TIMER_PID = TIMER_PID + 0.1; // Внутренний таймер ПИД ВОТ ТУТ БЫЛА ОШИБКА
}

if (ON_OFF & AUTO_HAND)
{
if (TIMER_PID >= CYCLE) // Сброс таймера при окончание цикла регулирования
{
PID_PULSE = 0; // Сбросить шаг
TIMER_PID = 0.0;
if (SUM_D_T>=0.5 || SUM_D_T<=-0.5) // Сброс накопленного времени воздействия
{
SUM_D_T = 0.0;
}
}
}
else
{
PID_PULSE = 0;
D_T = 0.0;
SUM_D_T = 0.0;
TIMER_PID = 0.0;
E_3 = E_1;
E_2 = E_1;
TIMER_PID_UP = 0.0;
TIMER_PID_DOWN = 0.0;
}
// Управление
UP = ((((SUM_D_T >= TIMER_PID & SUM_D_T >= 0.5) || D_T >= CYCLE - 0.5 || TIMER_PID_UP >= VALVE) & AUTO_HAND) || (HAND_UP & ! AUTO_HAND)) & ON_OFF & ! DOWN; // Открытие клапана
if ( PULSE_100MS & UP & TIMER_PID_UP < VALVE) // Накопленное время открытия
{
TIMER_PID_UP = TIMER_PID_UP + 0.1;
}
DOWN = ((((SUM_D_T <= - TIMER_PID & SUM_D_T <= - 0.5) || D_T <= - CYCLE + 0.5 || TIMER_PID_DOWN >= VALVE) & AUTO_HAND) || ( HAND_DOWN & ! AUTO_HAND)) & ON_OFF & ! UP; // Закрытие клапана
if ( PULSE_100MS & DOWN & TIMER_PID_DOWN < VALVE) // Накопленное время закрытия
{
TIMER_PID_DOWN = TIMER_PID_DOWN + 0.1;
}
Вложения
3_WAY_PID_2.jpg
3_WAY_PID_1.jpg
3_WAY_PID.jpg
Последний раз редактировалось dimalimite 13.12.2018{, 01:51}, всего редактировалось 1 раз.

Аватара пользователя
dekorator
Лейтенант
Сообщения: 427
Зарегистрирован: 06.09.2015{, 09:39}
Репутация: 7
Откуда: Баку

Погодозависимая автоматика для трехходового клапана

#5

Сообщение dekorator » 10.12.2018{, 07:22}

Где же сам блок ? И если можно, сделайте вход ограничения интегририрования.

dimalimite
Рядовой
Сообщения: 53
Зарегистрирован: 03.12.2018{, 00:26}
Репутация: 18
Имя: Дмитрий

Погодозависимая автоматика для трехходового клапана

#6

Сообщение dimalimite » 11.12.2018{, 02:07}

dekorator,
Вечер добрый.
См. приложение.
Что вы имеете ввиду под входом ограничения интегрирования?
Это регулятор для трехходового механизма, на выходе он выдает импульсы открытия/закрытия.
Он сделан для самых примитивных примитивных приводов, где нет обратных сигналов по достижению крайних положений. По этому чтобы реле не щёлкали (если реле на выходе) когда привод уже стоит в крайнем положение и отключен своим концевиком, в блоке предусмотрены счетчики импульсов открытия/закрытия и когда он набирается больше чем время привода, то подаётся непрерывный сигнал на открытие/закрытие. Вот это своего рода ограничение интегрирования, хотя и без этого всё будет работать и работает именно так на многих заводских регуляторах (щёлкают бесконечно реле в крайних положениях, когда рассогласование регулируемого параметра осталось несмотря на полное открытие/закрытие механизма).
Если используется более навороченный привод с обратными сигналами по достижению крайних положений, то можно изменить блок добавив 2 входа под эти концевики и убрать счетчики.
Вложения
3_WAY_VALVE_NANO.flp
Перелил файл была тут ошибка
(611.47 КБ) 126 скачиваний
3_WAY_PID_(CODE).ubi
Перелил файл была тут ошибка
(64.85 КБ) 113 скачиваний
Последний раз редактировалось dimalimite 13.12.2018{, 01:48}, всего редактировалось 1 раз.

dimalimite
Рядовой
Сообщения: 53
Зарегистрирован: 03.12.2018{, 00:26}
Репутация: 18
Имя: Дмитрий

Погодозависимая автоматика для трехходового клапана

#7

Сообщение dimalimite » 12.12.2018{, 05:24}

Добрый день!
Схема устройства (если вдруг кто-то захочет повторить), немного трёпа на тему почему HMI Modbus (а не Каскада), проект Flprog (с небольшими комментариями)

dimalimite
Рядовой
Сообщения: 53
Зарегистрирован: 03.12.2018{, 00:26}
Репутация: 18
Имя: Дмитрий

Погодозависимая автоматика для трехходового клапана

#8

Сообщение dimalimite » 12.12.2018{, 20:54}

Если кто-то скачал файлы, то перекачайте пожалуйста.
Увидел косяк:))))) Исправил во всех сообщениях.
Не боги горшки обжигают!
Вот архив.

mandrew
Рядовой
Сообщения: 55
Зарегистрирован: 27.04.2016{, 14:46}
Репутация: 0
Имя: Андрей

Погодозависимая автоматика для трехходового клапана

#9

Сообщение mandrew » 13.12.2018{, 10:07}

Спасибо ,как раз начинаю заниматься аналогичным устройством...

Аватара пользователя
AlexCrane
Капитан
Сообщения: 895
Зарегистрирован: 20.10.2017{, 13:22}
Репутация: 294
Откуда: Ульяновск
Имя: Александр

Погодозависимая автоматика для трехходового клапана

#10

Сообщение AlexCrane » 13.12.2018{, 20:26}

dimalimite, В видео вы говорили, что легко сделать аналоговый выход и выход ШИМ, можете добавить?
Если не знаю, то не скажу. Если скажу, то сначала проверю...
Если нет возможности отблагодарить материально, хотя бы оцени пост....

dimalimite
Рядовой
Сообщения: 53
Зарегистрирован: 03.12.2018{, 00:26}
Репутация: 18
Имя: Дмитрий

Погодозависимая автоматика для трехходового клапана

#11

Сообщение dimalimite » 14.12.2018{, 00:52}

AlexCrane,
Здравствуйте.
Да могу без проблем. Там минимальные изменения.
Просто это уже к этой моей поделке не подойдёт:(

Отправлено спустя 9 минут 44 секунды:
AlexCrane, Давайте новую сделаем поделку. Или может у вас есть реальный проект, где можно попробовать сразу?

Аватара пользователя
AlexCrane
Капитан
Сообщения: 895
Зарегистрирован: 20.10.2017{, 13:22}
Репутация: 294
Откуда: Ульяновск
Имя: Александр

Погодозависимая автоматика для трехходового клапана

#12

Сообщение AlexCrane » 14.12.2018{, 13:13}

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

dimalimite
Рядовой
Сообщения: 53
Зарегистрирован: 03.12.2018{, 00:26}
Репутация: 18
Имя: Дмитрий

Погодозависимая автоматика для трехходового клапана

#13

Сообщение dimalimite » 14.12.2018{, 14:20}

AlexCrane, А привод чем управляется? Частотником?

Аватара пользователя
AlexCrane
Капитан
Сообщения: 895
Зарегистрирован: 20.10.2017{, 13:22}
Репутация: 294
Откуда: Ульяновск
Имя: Александр

Погодозависимая автоматика для трехходового клапана

#14

Сообщение AlexCrane » 14.12.2018{, 15:10}

dimalimite, Шаговым двигателем
Если не знаю, то не скажу. Если скажу, то сначала проверю...
Если нет возможности отблагодарить материально, хотя бы оцени пост....

dimalimite
Рядовой
Сообщения: 53
Зарегистрирован: 03.12.2018{, 00:26}
Репутация: 18
Имя: Дмитрий

Погодозависимая автоматика для трехходового клапана

#15

Сообщение dimalimite » 15.12.2018{, 01:12}

AlexCrane, Должно работать, но придётся повозиться с настройкой. Запаздывание приличное будет у температуры = сложная настройка регулятора. Тут скорее больше вопрос к технологии подачи топлива и механике (чтобы шнек не клинило, редуктор нормальный был...вы уже делали такой привод на шнек?). Хотите его крутить постоянно, но с переменной скоростью? Или на некотором интервале времени (времени цикла) выдавать определенное число шагов? Регулятор при этом будет одинаково выглядеть, но разные настройки будут у коэффициентов ПИД и разная настройка блока управления шаговым двигателем.

Аватара пользователя
AlexCrane
Капитан
Сообщения: 895
Зарегистрирован: 20.10.2017{, 13:22}
Репутация: 294
Откуда: Ульяновск
Имя: Александр

Погодозависимая автоматика для трехходового клапана

#16

Сообщение AlexCrane » 15.12.2018{, 06:07}

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

Аватара пользователя
AlexCrane
Капитан
Сообщения: 895
Зарегистрирован: 20.10.2017{, 13:22}
Репутация: 294
Откуда: Ульяновск
Имя: Александр

Погодозависимая автоматика для трехходового клапана

#17

Сообщение AlexCrane » 19.12.2018{, 10:59}

dimalimite, Дмитрий, как обстоят дела с аналоговым выходом?
Если не знаю, то не скажу. Если скажу, то сначала проверю...
Если нет возможности отблагодарить материально, хотя бы оцени пост....

Аватара пользователя
Kotafey
Лейтенант
Сообщения: 311
Зарегистрирован: 18.07.2018{, 15:03}
Репутация: 21
Откуда: Геленджик
Имя: Константин

Погодозависимая автоматика для трехходового клапана

#18

Сообщение Kotafey » 19.12.2018{, 12:45}

AlexCrane писал(а):
15.12.2018{, 06:07}
dimalimite, Все пока на стадии проекта, подача топлива будет постоянная, но с переменной скоростью (первоначально думал делать двухступенчатую, но почему не попробовать модулированную?). Плюсом к скорости вращения шнека хочу привязать скрость вращения вентилятора подачи воздуха. С шаговым думаю проблем не будет.
Котел фабричный?

Аватара пользователя
AlexCrane
Капитан
Сообщения: 895
Зарегистрирован: 20.10.2017{, 13:22}
Репутация: 294
Откуда: Ульяновск
Имя: Александр

Погодозависимая автоматика для трехходового клапана

#19

Сообщение AlexCrane » 19.12.2018{, 17:36}

Kotafey, Котел фабричный, горелка нет
Если не знаю, то не скажу. Если скажу, то сначала проверю...
Если нет возможности отблагодарить материально, хотя бы оцени пост....

Аватара пользователя
Kotafey
Лейтенант
Сообщения: 311
Зарегистрирован: 18.07.2018{, 15:03}
Репутация: 21
Откуда: Геленджик
Имя: Константин

Погодозависимая автоматика для трехходового клапана

#20

Сообщение Kotafey » 19.12.2018{, 21:58}

AlexCrane писал(а):
19.12.2018{, 17:36}
Kotafey, Котел фабричный, горелка нет
Я почему задал вопрос, дело в том (возможно Вы знаете, но все же) что менять в большом диапазоне количество подаваемого воздуха в твердотопливный котел нельзя. Он хорошо работает если температура сгорания топлива высока, температура теплоносителя высока. Если это не соблюдается, то, сажа, кислотный конденсат, угарные газы и прочие прелести, быстро приведут систему отопления в не надлежащее состояние. Твердотопливные котлы довольно плохо поддаются регулировке и как правило для регулирования используются доп. оборудование и элементы.

Ответить

Вернуться в «Проекты различных устройств на Arduino»