Погодозависимая автоматика для трехходового клапана
-
- Рядовой
- Сообщения: 53
- Зарегистрирован: 03 дек 2018, 00:26
- Имя: Дмитрий
Погодозависимая автоматика для трехходового клапана
Добрый день!
Ссылка на проект: https://youtu.be/rF7Ct4CZQAQ
Железо и софт: Arduino NANO, HС-05, датчики DS18B20, программа на Flprog, интерфейс на телефоне программа HMI Modbus, протокол передачи Modbus
Функции: Погодозависимое управление трехходовым (или любым другим) клапаном. График отопления по двум точкам. ПИ-регулятор для трехпозиционных клапанов (сигналы: открыть, стоп, закрыть).
Ссылка на проект: https://youtu.be/rF7Ct4CZQAQ
Железо и софт: Arduino NANO, HС-05, датчики DS18B20, программа на Flprog, интерфейс на телефоне программа HMI Modbus, протокол передачи Modbus
Функции: Погодозависимое управление трехходовым (или любым другим) клапаном. График отопления по двум точкам. ПИ-регулятор для трехпозиционных клапанов (сигналы: открыть, стоп, закрыть).
- Phazz
- Полковник
- Сообщения: 3125
- Зарегистрирован: 17 окт 2016, 15:38
- Откуда: Сургут
- Имя: Анатолий
- Благодарил (а): 233 раза
- Поблагодарили: 114 раз
Погодозависимая автоматика для трехходового клапана
А где сам проект? Мне интересно посмотреть на ПИД для трехходового крана.
-
- Рядовой
- Сообщения: 53
- Зарегистрирован: 03 дек 2018, 00:26
- Имя: Дмитрий
Погодозависимая автоматика для трехходового клапана
[ref=#404040]Phazz[/ref], Сейчас досниму видео и выложу с объяснением, а то их миллион всяких разных делают и без теории смысла нет его смотреть. Там классический цифровой дискретный регулятор на разностном уравнение.
-
- Рядовой
- Сообщения: 53
- Зарегистрирован: 03 дек 2018, 00:26
- Имя: Дмитрий
Погодозависимая автоматика для трехходового клапана
Смысл и формула, которую я вкладывал в этот блок: https://youtu.be/qJt-AtaccJE
Сниму ещё одно видео и выложу файл Flprog полностью
[ref=#404040]Phazz[/ref], в 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;
}
Сниму ещё одно видео и выложу файл Flprog полностью
[ref=#404040]Phazz[/ref], в 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;
}
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось dimalimite 13 дек 2018, 01:51, всего редактировалось 1 раз.
Погодозависимая автоматика для трехходового клапана
Где же сам блок ? И если можно, сделайте вход ограничения интегририрования.
-
- Рядовой
- Сообщения: 53
- Зарегистрирован: 03 дек 2018, 00:26
- Имя: Дмитрий
Погодозависимая автоматика для трехходового клапана
[ref]dekorator[/ref],
Вечер добрый.
См. приложение.
Что вы имеете ввиду под входом ограничения интегрирования?
Это регулятор для трехходового механизма, на выходе он выдает импульсы открытия/закрытия.
Он сделан для самых примитивных примитивных приводов, где нет обратных сигналов по достижению крайних положений. По этому чтобы реле не щёлкали (если реле на выходе) когда привод уже стоит в крайнем положение и отключен своим концевиком, в блоке предусмотрены счетчики импульсов открытия/закрытия и когда он набирается больше чем время привода, то подаётся непрерывный сигнал на открытие/закрытие. Вот это своего рода ограничение интегрирования, хотя и без этого всё будет работать и работает именно так на многих заводских регуляторах (щёлкают бесконечно реле в крайних положениях, когда рассогласование регулируемого параметра осталось несмотря на полное открытие/закрытие механизма).
Если используется более навороченный привод с обратными сигналами по достижению крайних положений, то можно изменить блок добавив 2 входа под эти концевики и убрать счетчики.
Вечер добрый.
См. приложение.
Что вы имеете ввиду под входом ограничения интегрирования?
Это регулятор для трехходового механизма, на выходе он выдает импульсы открытия/закрытия.
Он сделан для самых примитивных примитивных приводов, где нет обратных сигналов по достижению крайних положений. По этому чтобы реле не щёлкали (если реле на выходе) когда привод уже стоит в крайнем положение и отключен своим концевиком, в блоке предусмотрены счетчики импульсов открытия/закрытия и когда он набирается больше чем время привода, то подаётся непрерывный сигнал на открытие/закрытие. Вот это своего рода ограничение интегрирования, хотя и без этого всё будет работать и работает именно так на многих заводских регуляторах (щёлкают бесконечно реле в крайних положениях, когда рассогласование регулируемого параметра осталось несмотря на полное открытие/закрытие механизма).
Если используется более навороченный привод с обратными сигналами по достижению крайних положений, то можно изменить блок добавив 2 входа под эти концевики и убрать счетчики.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось dimalimite 13 дек 2018, 01:48, всего редактировалось 1 раз.
-
- Рядовой
- Сообщения: 53
- Зарегистрирован: 03 дек 2018, 00:26
- Имя: Дмитрий
Погодозависимая автоматика для трехходового клапана
Добрый день!
Схема устройства (если вдруг кто-то захочет повторить), немного трёпа на тему почему HMI Modbus (а не Каскада), проект Flprog (с небольшими комментариями)
https://youtu.be/NzNgEdYFoJs
Схема устройства (если вдруг кто-то захочет повторить), немного трёпа на тему почему HMI Modbus (а не Каскада), проект Flprog (с небольшими комментариями)
https://youtu.be/NzNgEdYFoJs
-
- Рядовой
- Сообщения: 53
- Зарегистрирован: 03 дек 2018, 00:26
- Имя: Дмитрий
Погодозависимая автоматика для трехходового клапана
Если кто-то скачал файлы, то перекачайте пожалуйста.
Увидел косяк:))))) Исправил во всех сообщениях.
Не боги горшки обжигают!
Вот архив.
https://drive.google.com/open?id=1rzLmX ... mwXldNuXuY
Увидел косяк:))))) Исправил во всех сообщениях.
Не боги горшки обжигают!
Вот архив.
https://drive.google.com/open?id=1rzLmX ... mwXldNuXuY
Погодозависимая автоматика для трехходового клапана
Спасибо ,как раз начинаю заниматься аналогичным устройством...
- AlexCrane
- Капитан
- Сообщения: 903
- Зарегистрирован: 20 окт 2017, 13:22
- Откуда: Ульяновск
- Имя: Александр
- Поблагодарили: 12 раз
Погодозависимая автоматика для трехходового клапана
[ref]dimalimite[/ref], В видео вы говорили, что легко сделать аналоговый выход и выход ШИМ, можете добавить?
Если не знаю, то не скажу. Если скажу, то сначала проверю...
Если нет возможности отблагодарить материально, хотя бы оцени пост....
Если нет возможности отблагодарить материально, хотя бы оцени пост....
-
- Рядовой
- Сообщения: 53
- Зарегистрирован: 03 дек 2018, 00:26
- Имя: Дмитрий
Погодозависимая автоматика для трехходового клапана
[ref]AlexCrane[/ref],
Здравствуйте.
Да могу без проблем. Там минимальные изменения.
Просто это уже к этой моей поделке не подойдёт:(
Отправлено спустя 9 минут 44 секунды:
[ref]AlexCrane[/ref], Давайте новую сделаем поделку. Или может у вас есть реальный проект, где можно попробовать сразу?
Здравствуйте.
Да могу без проблем. Там минимальные изменения.
Просто это уже к этой моей поделке не подойдёт:(
Отправлено спустя 9 минут 44 секунды:
[ref]AlexCrane[/ref], Давайте новую сделаем поделку. Или может у вас есть реальный проект, где можно попробовать сразу?
- AlexCrane
- Капитан
- Сообщения: 903
- Зарегистрирован: 20 окт 2017, 13:22
- Откуда: Ульяновск
- Имя: Александр
- Поблагодарили: 12 раз
Погодозависимая автоматика для трехходового клапана
[ref]dimalimite[/ref], поделки нет, планирую поставить пид на привод шнека подачи топлива в твердотопливный котел, заданную температуру воды держать (если так будет работать конечно).
Если не знаю, то не скажу. Если скажу, то сначала проверю...
Если нет возможности отблагодарить материально, хотя бы оцени пост....
Если нет возможности отблагодарить материально, хотя бы оцени пост....
-
- Рядовой
- Сообщения: 53
- Зарегистрирован: 03 дек 2018, 00:26
- Имя: Дмитрий
Погодозависимая автоматика для трехходового клапана
[ref]AlexCrane[/ref], А привод чем управляется? Частотником?
- AlexCrane
- Капитан
- Сообщения: 903
- Зарегистрирован: 20 окт 2017, 13:22
- Откуда: Ульяновск
- Имя: Александр
- Поблагодарили: 12 раз
Погодозависимая автоматика для трехходового клапана
[ref]dimalimite[/ref], Шаговым двигателем
Если не знаю, то не скажу. Если скажу, то сначала проверю...
Если нет возможности отблагодарить материально, хотя бы оцени пост....
Если нет возможности отблагодарить материально, хотя бы оцени пост....
-
- Рядовой
- Сообщения: 53
- Зарегистрирован: 03 дек 2018, 00:26
- Имя: Дмитрий
Погодозависимая автоматика для трехходового клапана
[ref]AlexCrane[/ref], Должно работать, но придётся повозиться с настройкой. Запаздывание приличное будет у температуры = сложная настройка регулятора. Тут скорее больше вопрос к технологии подачи топлива и механике (чтобы шнек не клинило, редуктор нормальный был...вы уже делали такой привод на шнек?). Хотите его крутить постоянно, но с переменной скоростью? Или на некотором интервале времени (времени цикла) выдавать определенное число шагов? Регулятор при этом будет одинаково выглядеть, но разные настройки будут у коэффициентов ПИД и разная настройка блока управления шаговым двигателем.
- AlexCrane
- Капитан
- Сообщения: 903
- Зарегистрирован: 20 окт 2017, 13:22
- Откуда: Ульяновск
- Имя: Александр
- Поблагодарили: 12 раз
Погодозависимая автоматика для трехходового клапана
[ref]dimalimite[/ref], Все пока на стадии проекта, подача топлива будет постоянная, но с переменной скоростью (первоначально думал делать двухступенчатую, но почему не попробовать модулированную?). Плюсом к скорости вращения шнека хочу привязать скрость вращения вентилятора подачи воздуха. С шаговым думаю проблем не будет.
Если не знаю, то не скажу. Если скажу, то сначала проверю...
Если нет возможности отблагодарить материально, хотя бы оцени пост....
Если нет возможности отблагодарить материально, хотя бы оцени пост....
- AlexCrane
- Капитан
- Сообщения: 903
- Зарегистрирован: 20 окт 2017, 13:22
- Откуда: Ульяновск
- Имя: Александр
- Поблагодарили: 12 раз
Погодозависимая автоматика для трехходового клапана
[ref]dimalimite[/ref], Дмитрий, как обстоят дела с аналоговым выходом?
Если не знаю, то не скажу. Если скажу, то сначала проверю...
Если нет возможности отблагодарить материально, хотя бы оцени пост....
Если нет возможности отблагодарить материально, хотя бы оцени пост....
- Kotafey
- Лейтенант
- Сообщения: 311
- Зарегистрирован: 18 июл 2018, 15:03
- Откуда: Геленджик
- Имя: Константин
Погодозависимая автоматика для трехходового клапана
Котел фабричный?AlexCrane писал(а): 15 дек 2018, 06:07 [ref]dimalimite[/ref], Все пока на стадии проекта, подача топлива будет постоянная, но с переменной скоростью (первоначально думал делать двухступенчатую, но почему не попробовать модулированную?). Плюсом к скорости вращения шнека хочу привязать скрость вращения вентилятора подачи воздуха. С шаговым думаю проблем не будет.
- AlexCrane
- Капитан
- Сообщения: 903
- Зарегистрирован: 20 окт 2017, 13:22
- Откуда: Ульяновск
- Имя: Александр
- Поблагодарили: 12 раз
Погодозависимая автоматика для трехходового клапана
[ref]Kotafey[/ref], Котел фабричный, горелка нет
Если не знаю, то не скажу. Если скажу, то сначала проверю...
Если нет возможности отблагодарить материально, хотя бы оцени пост....
Если нет возможности отблагодарить материально, хотя бы оцени пост....
- Kotafey
- Лейтенант
- Сообщения: 311
- Зарегистрирован: 18 июл 2018, 15:03
- Откуда: Геленджик
- Имя: Константин
Погодозависимая автоматика для трехходового клапана
Я почему задал вопрос, дело в том (возможно Вы знаете, но все же) что менять в большом диапазоне количество подаваемого воздуха в твердотопливный котел нельзя. Он хорошо работает если температура сгорания топлива высока, температура теплоносителя высока. Если это не соблюдается, то, сажа, кислотный конденсат, угарные газы и прочие прелести, быстро приведут систему отопления в не надлежащее состояние. Твердотопливные котлы довольно плохо поддаются регулировке и как правило для регулирования используются доп. оборудование и элементы.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость