Импульсный ПИД регулятор.

fader79
Offline
Зарегистрирован: 02.02.2018

Доброго времени суток всем. Подскажите пожалуйста, может кто сталкивался, как можно реализовать импульсное регулирование на ардуино, т.е. мне необходимо управлять моторизированной задвижкой, подавать сигналы открыть - закрыть при помощи двух реле? Задвижка регулирует подмес холодной воды в контуре отопления. Все примеры на которые я натыкался, с аналоговым выходом т.е 0-255, а мне нужен дискретный выход. Одно из реле должно включаться на определённое время, т.е. закрывать или открывать задвижку. Заранее спасибо!

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Ну, в тех алгоритмах, о которых Вы говорили регулировка была за счёт подавайемой мощности, а Вы регулируйте за счёт времени включения постоянной мощности. Разница-то какая? Также всё и делается.

fader79
Offline
Зарегистрирован: 02.02.2018

Это то я всё понимаю, не понимаю как реализовать обратный сигнал, т.е. включение второго реле. Если входной параметр выше уставки, то включаем первое реле на "закрытие", если меньше, то второе реле на "открытие". Задумка следующая: берётся температура на улице, перемасштабируется в диапазон температур в контуре отопления, и этот параметр является динамической уставкой для регулятора, а на вход регулятора я подаю фактическую температуру с контура отопления ("батареи") и задвижкой регулирую подмес холодной воды.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Ну, так погуглите про ПИД. Там часто есть два управляющих воздействия (условно "нагревание" и "охлаждение"). В каждой второй статье про ПИД именно так всё рассматривается.

b707
Offline
Зарегистрирован: 26.05.2017

сорри, за вопрос не по теме. А что такое "уставка"? - часто вижу это слово. именно на форумах ардуино - никогда раньше не встречал.

Это простонародное сокращение от "установки", или это не на русском?

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

нет. английский аналог - default. Значение по умолчанию(при включении чего-либо) 

b707
Offline
Зарегистрирован: 26.05.2017

DetSimen пишет:

нет. английский аналог - default. Значение по умолчанию(при включении чего-либо) 

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

как ни удивительно - это слово есть даже в ГОСТах прошлого века... До вопроса был абсолютно убежден, что это исковерканное слово "установка".

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

ну теперь и я буду знать

inspiritus
Offline
Зарегистрирован: 17.12.2012

Включайте Ваше реле на время , пропорциональное 0-255, коэффициент пропорциональности подберете экспериментально

gvslava
Offline
Зарегистрирован: 02.02.2018

По ссылке ниже этот вопрос решен.

https://groups.google.com/forum/#!topic/diy-pid-control/o5DEs6m-PSE

fader79
Offline
Зарегистрирован: 02.02.2018

Спасибо большое за ссылку. В принципе мыслил в этом направлении, а теперь мои сомнения развеялись, осталось только собрать всё и запустить.

yul-i-an
yul-i-an аватар
Offline
Зарегистрирован: 10.12.2012
trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

fader79 пишет:

Все примеры на которые я натыкался, с аналоговым выходом т.е 0-255, а мне нужен дискретный выход. Одно из реле должно включаться на определённое время, т.е. закрывать или открывать задвижку.

То есть народ уже приходит на форум с заданием: поищите за меня.

Хорошо.
Я нашёл вам готовый пример. Прямо из библиотеки.
Называется  PID_RelayOutput.ino

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

fader79 пишет:

 Задвижка регулирует подмес холодной воды в контуре отопления.

Какая задвижка?
Эта вещЧ называется миксер.
Миксер - это трёхходовой кран с капиллярным датчиком.
Типа как вы могли видеть на радиаторах.
Если не видели- гляньте тут : https://www.youtube.com/watch?v=ZqklR3bl990

Регулирует сразу температуру, а не какую-то там задвижку.
Имеется встроенный ПИД, низкое потребление- может работать веками без замены батареек.
Потому что их там нет.

fader79
Offline
Зарегистрирован: 02.02.2018

trembo, не распаляйся сильно, такое впечатление, что я тебя разбудил своим сообщением на форуме, извини если это так. Я уже сам написал код, пришлось править стандартную библиотеку PID. А тот пример в который ты попытался ткнуть меня носом, совсем не подходит только потому, что там задействовано одно реле, но я об этом примере знал ещё до того как ты мне на него указал, и на его основе я и написал свой алгоритм работы, пришлось, как я и говорил ранее, чуть подправить библиотеку. Теперь всё работает. Я думаю в моей задаче неважно для тебя какая задвижка, какая температура, какого цвета задвижка, и т.д., я пояснил, что мне нужно от пид регулятора получить сигналы "открыть"- "закрыть", и этого достаточно, я даже не просил, чтобы мне скинули уже написанный код. Пользователи выше помогли мне без всякого раздувания пузырей, за что им отдельное спасибо! А ты если хотел поумничать, то не ко мне. Извини если, что не так сказал. Удачи тебе в своих проектах. Тема закрыта. Вопрос решен.

P.S. На всякий случай. Это регулятор не для какой нибудь батареи в квартире, это регулятор для небольшой котельной в жилищном комплексе состоящем из трёх корпусов по 14 этажей. И на трубе стоит именно моторизированная задвижка, промышленного типа. Я понимаю, что ардуино не для таких масштабов, но всё же стало интересно попробовать. Здесь мой самый главный враг - это инерция системы.