Страница 1 из 2
Погодозависимая автоматика для трехходового клапана
Добавлено: 03 дек 2018, 01:40
dimalimite
Добрый день!
Ссылка на проект:
https://youtu.be/rF7Ct4CZQAQ
Железо и софт: Arduino NANO, HС-05, датчики DS18B20, программа на Flprog, интерфейс на телефоне программа HMI Modbus, протокол передачи Modbus
Функции: Погодозависимое управление трехходовым (или любым другим) клапаном. График отопления по двум точкам. ПИ-регулятор для трехпозиционных клапанов (сигналы: открыть, стоп, закрыть).
Погодозависимая автоматика для трехходового клапана
Добавлено: 03 дек 2018, 06:12
Phazz
А где сам проект? Мне интересно посмотреть на ПИД для трехходового крана.
Погодозависимая автоматика для трехходового клапана
Добавлено: 03 дек 2018, 10:33
dimalimite
[ref=#404040]Phazz[/ref], Сейчас досниму видео и выложу с объяснением, а то их миллион всяких разных делают и без теории смысла нет его смотреть. Там классический цифровой дискретный регулятор на разностном уравнение.
Погодозависимая автоматика для трехходового клапана
Добавлено: 04 дек 2018, 23:04
dimalimite
Смысл и формула, которую я вкладывал в этот блок:
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;
}
Погодозависимая автоматика для трехходового клапана
Добавлено: 10 дек 2018, 07:22
dekorator
Где же сам блок ? И если можно, сделайте вход ограничения интегририрования.
Погодозависимая автоматика для трехходового клапана
Добавлено: 11 дек 2018, 02:07
dimalimite
[ref]dekorator[/ref],
Вечер добрый.
См. приложение.
Что вы имеете ввиду под входом ограничения интегрирования?
Это регулятор для трехходового механизма, на выходе он выдает импульсы открытия/закрытия.
Он сделан для самых примитивных примитивных приводов, где нет обратных сигналов по достижению крайних положений. По этому чтобы реле не щёлкали (если реле на выходе) когда привод уже стоит в крайнем положение и отключен своим концевиком, в блоке предусмотрены счетчики импульсов открытия/закрытия и когда он набирается больше чем время привода, то подаётся непрерывный сигнал на открытие/закрытие. Вот это своего рода ограничение интегрирования, хотя и без этого всё будет работать и работает именно так на многих заводских регуляторах (щёлкают бесконечно реле в крайних положениях, когда рассогласование регулируемого параметра осталось несмотря на полное открытие/закрытие механизма).
Если используется более навороченный привод с обратными сигналами по достижению крайних положений, то можно изменить блок добавив 2 входа под эти концевики и убрать счетчики.
Погодозависимая автоматика для трехходового клапана
Добавлено: 12 дек 2018, 05:24
dimalimite
Добрый день!
Схема устройства (если вдруг кто-то захочет повторить), немного трёпа на тему почему HMI Modbus (а не Каскада), проект Flprog (с небольшими комментариями)
https://youtu.be/NzNgEdYFoJs
Погодозависимая автоматика для трехходового клапана
Добавлено: 12 дек 2018, 20:54
dimalimite
Если кто-то скачал файлы, то перекачайте пожалуйста.
Увидел косяк:))))) Исправил во всех сообщениях.
Не боги горшки обжигают!
Вот архив.
https://drive.google.com/open?id=1rzLmX ... mwXldNuXuY
Погодозависимая автоматика для трехходового клапана
Добавлено: 13 дек 2018, 10:07
mandrew
Спасибо ,как раз начинаю заниматься аналогичным устройством...
Погодозависимая автоматика для трехходового клапана
Добавлено: 13 дек 2018, 20:26
AlexCrane
[ref]dimalimite[/ref], В видео вы говорили, что легко сделать аналоговый выход и выход ШИМ, можете добавить?
Погодозависимая автоматика для трехходового клапана
Добавлено: 14 дек 2018, 01:02
dimalimite
[ref]AlexCrane[/ref],
Здравствуйте.
Да могу без проблем. Там минимальные изменения.
Просто это уже к этой моей поделке не подойдёт:(
Отправлено спустя 9 минут 44 секунды:
[ref]AlexCrane[/ref], Давайте новую сделаем поделку. Или может у вас есть реальный проект, где можно попробовать сразу?
Погодозависимая автоматика для трехходового клапана
Добавлено: 14 дек 2018, 13:13
AlexCrane
[ref]dimalimite[/ref], поделки нет, планирую поставить пид на привод шнека подачи топлива в твердотопливный котел, заданную температуру воды держать (если так будет работать конечно).
Погодозависимая автоматика для трехходового клапана
Добавлено: 14 дек 2018, 14:20
dimalimite
[ref]AlexCrane[/ref], А привод чем управляется? Частотником?
Погодозависимая автоматика для трехходового клапана
Добавлено: 14 дек 2018, 15:10
AlexCrane
[ref]dimalimite[/ref], Шаговым двигателем
Погодозависимая автоматика для трехходового клапана
Добавлено: 15 дек 2018, 01:12
dimalimite
[ref]AlexCrane[/ref], Должно работать, но придётся повозиться с настройкой. Запаздывание приличное будет у температуры = сложная настройка регулятора. Тут скорее больше вопрос к технологии подачи топлива и механике (чтобы шнек не клинило, редуктор нормальный был...вы уже делали такой привод на шнек?). Хотите его крутить постоянно, но с переменной скоростью? Или на некотором интервале времени (времени цикла) выдавать определенное число шагов? Регулятор при этом будет одинаково выглядеть, но разные настройки будут у коэффициентов ПИД и разная настройка блока управления шаговым двигателем.
Погодозависимая автоматика для трехходового клапана
Добавлено: 15 дек 2018, 06:07
AlexCrane
[ref]dimalimite[/ref], Все пока на стадии проекта, подача топлива будет постоянная, но с переменной скоростью (первоначально думал делать двухступенчатую, но почему не попробовать модулированную?). Плюсом к скорости вращения шнека хочу привязать скрость вращения вентилятора подачи воздуха. С шаговым думаю проблем не будет.
Погодозависимая автоматика для трехходового клапана
Добавлено: 19 дек 2018, 10:59
AlexCrane
[ref]dimalimite[/ref], Дмитрий, как обстоят дела с аналоговым выходом?
Погодозависимая автоматика для трехходового клапана
Добавлено: 19 дек 2018, 12:45
Kotafey
AlexCrane писал(а): 15 дек 2018, 06:07
[ref]dimalimite[/ref], Все пока на стадии проекта, подача топлива будет постоянная, но с переменной скоростью (первоначально думал делать двухступенчатую, но почему не попробовать модулированную?). Плюсом к скорости вращения шнека хочу привязать скрость вращения вентилятора подачи воздуха. С шаговым думаю проблем не будет.
Котел фабричный?
Погодозависимая автоматика для трехходового клапана
Добавлено: 19 дек 2018, 17:36
AlexCrane
[ref]Kotafey[/ref], Котел фабричный, горелка нет
Погодозависимая автоматика для трехходового клапана
Добавлено: 19 дек 2018, 21:58
Kotafey
AlexCrane писал(а): 19 дек 2018, 17:36[ref]Kotafey[/ref], Котел фабричный, горелка нет
Я почему задал вопрос, дело в том (возможно Вы знаете, но все же) что менять в большом диапазоне количество подаваемого воздуха в твердотопливный котел нельзя. Он хорошо работает если температура сгорания топлива высока, температура теплоносителя высока. Если это не соблюдается, то, сажа, кислотный конденсат, угарные газы и прочие прелести, быстро приведут систему отопления в не надлежащее состояние. Твердотопливные котлы довольно плохо поддаются регулировке и как правило для регулирования используются доп. оборудование и элементы.