Страница 2 из 5

Блок ПИД регулятор

Добавлено: 20.02.2016{, 13:27}
Олег
Весь вопрос рабочий-ли сам блок, как я понял в виде скетча он у топикстартера работал, а в виде блока его еще никто не проверил, возможно он и не работает.
 Инкубатор делаете?

Блок ПИД регулятор

Добавлено: 20.02.2016{, 14:34}
Siberian
Олег писал(а):Весь вопрос рабочий-ли сам блок, как я понял в виде скетча он у топикстартера работал, а в виде блока его еще никто не проверил, возможно он и не работает. Инкубатор делаете?
И инкубатор, и освещение, обогрев для помещения содержания перепелов.
У меня товарищ начинающий перепелятник, вот я ему и помогаю в его энтузиазме.

  А по поводу блока ПИД, он у меня никак не заработал, при любых условиях на выходе ШИМ = 0, без изменений.

Добавлено (20.02.2016, 14:34)
---------------------------------------------
Похоже, что блок не рабочий.
Я его уже вдоль-поперек весь перепробовал.
Шим на выходе 0.

Блок ПИД регулятор

Добавлено: 20.02.2016{, 14:56}
Олег
Что на выход думаете вешать, что будет управлять нагрузкой? Инкубатор будет в теплом помещении стоять? Если наружная температура достаточна стабильная, то для инкубатора и просто пропорционального регулятора вполне хватит, главное термоэлемент подобрать подходящий для вашего объема. Имхо.

Блок ПИД регулятор

Добавлено: 20.02.2016{, 15:17}
hallozin
мой блок попробуйте у меня работает в железе

Добавлено (20.02.2016, 15:17)
---------------------------------------------
А вот ещё один блок может изменять битность ШИМ вплоть до 16 бит на 9 и 10 ноге
в настройках блока можно установить  битность по умолчанию 8

Блок ПИД регулятор

Добавлено: 20.02.2016{, 15:35}
Siberian
Олег писал(а):Что на выход думаете вешать, что будет управлять нагрузкой?
На выходе будет нихромовая спираль, питание 12 В, управление через полевик, на контроле-датчик температуры 18B20.

Добавлено (20.02.2016, 15:35)
---------------------------------------------
hallozin писал(а):мой блок попробуйте у меня работает в железе
Спасибо, попробую.

Блок ПИД регулятор

Добавлено: 20.02.2016{, 18:06}
gav81
Siberian писал(а):gav81, По какой формуле Вы настраивали коэффициенты
По моему их проще подбирать чем рассчитывать. Так сказать настраивать на конкретную систему.
Мне подошли 2.5.1. Попробуйте такие же. Возможно из-за нулей выход = 0.
Если не получится выложите проект я посмотрю.

Блок ПИД регулятор

Добавлено: 20.02.2016{, 19:18}
Siberian
gav81 писал(а):По моему их проще подбирать чем рассчитывать. Так сказать настраивать на конкретную систему.Мне подошли 2.5.1. Попробуйте такие же. Возможно из-за нулей выход = 0.
Если не получится выложите проект я посмотрю.
Если есть, выложите схему, пл которой Вы подключали.

Блок ПИД регулятор

Добавлено: 20.02.2016{, 19:32}
Siberian
Проект простой.
Датчик температуры, на выходе нагреватель.

Блок ПИД регулятор

Добавлено: 20.02.2016{, 20:39}
gav81
Блок действительно не работал.
Исправил, проверил.
Выкладываю блок и простенький тест.
Не забывайте выбрать параметр DIRECT или REVERS под свою систему.
С коэффициентами нужно экспериментировать. Где то видел методику подбора.
Прошу тестить и давать обратную связь.

Добавлено (20.02.2016, 20:39)
---------------------------------------------
Airis писал(а):Т.е. замыкание голубого и черного к примеру закрывает, голубого и коричневого открывает, все разомкнуты привод неподвижен.
Да, все правильно, и по научному это называется "3 - точнаяуправление" (three point control). То что
для управление таким приводом нужны 2 реле и 2 PI(D) регулятора это понятно.
Но в примере библиотеки, только одно реле. Как прикрутить туда второе я не знаю.
Пообщайтесь с Technics. Он объяснит вам принцип работы своей программы (ссылку выкладывал).
Вот видео его работы https://yadi.sk/i/_PxLhz1smc9p3

Блок ПИД регулятор

Добавлено: 20.02.2016{, 21:03}
Siberian
gav81 писал(а):Не забывайте выбрать параметр DIRECT или REVERS под свою систему
Не понял. Где выбрать эти параметры.

Блок ПИД регулятор

Добавлено: 20.02.2016{, 21:07}
Олег
Параметры блока

Блок ПИД регулятор

Добавлено: 20.02.2016{, 21:08}
Airis
gav81 писал(а):Но в примере библиотеки, только одно реле. Как прикрутить туда второе я не знаю.
Хватити одного реле, второй реле можно прикрутить к другому такому-же PID регулятору. Есть
промышленные PID регуляторы которыекак раз и состоят из двух независимых регуляторов, где все PID параметры настраивается отдельно для каждого
реле.

Блок ПИД регулятор

Добавлено: 20.02.2016{, 21:12}
gav81
Правой кнопкой по блоку -> изменить параметры -> указать 1 или 0.

Выкладываю версию 3.
Обнаружил косяк. Не компилировался проект при использовании 2 и более блоков.

Добавлено (20.02.2016, 21:12)
---------------------------------------------
Airis писал(а):Хватити одного реле, второй реле можно прикрутить к другому такому-же PID регулятору. Есть
промышленные PID регуляторы которыекак раз и состоят из двух независимых регуляторов, где все PID параметры настраивается отдельно для каждого
реле.
Ок, Aris. Попробую сделать блок на примере с одним реле.

Блок ПИД регулятор

Добавлено: 20.02.2016{, 21:28}
Siberian
Да, в общем блок заработал!
Это уже радует!
Нужно будет только подобрать точно цифры калибровок, т.к. у меня по условиям допуск всего 0,1 градус.

Добавлено (20.02.2016, 21:28)
---------------------------------------------
Вот ЗДЕСЬ есть простой способ калибровки, но еще не пробовал.

Блок ПИД регулятор

Добавлено: 20.02.2016{, 21:51}
gav81
Aris, держи блок + тест.
Если честно, не понимаю алгоритма )
Дай обратную связь если получится то что задумал.

Блок ПИД регулятор

Добавлено: 20.02.2016{, 22:14}
Airis
gav81, спосибо - в понедельник попробую.

Блок ПИД регулятор

Добавлено: 23.02.2016{, 21:46}
Airis
Проверил блок PID с выходом на реле и он не работает как надо. Долга мучился, экспериментировал, ломал голову что бы понять что тут не так. В конце концов нашел что проблема есть в самом примере от "Arduino PID Library".
Оригинально предпоследня строчка

Код: Выделить всё

if (Output< millis() - windowStartTime) digitalWrite(RELAY_PIN, HIGH);
но должнобыть

Код: Выделить всё

if (Output[b]> millis() - windowStartTime) digitalWrite(RELAY_PIN, HIGH);
После того как поменял "<" на ">" все заработала.

Параметр int WindowSize = 5000; - это максимальное значение аналогового выхода PID ругулятора. Данное значение входит библиточеную переменную PID.SetOutputLimits(0, WindowSize). По умалчанию PID.SetOutputLimits(0, 255), что пригодно для выхода ШИМ, но для PID регулятора с выходом на реле это шлишком мало. Думаю что значение 5000 - это оптимально.

P.S. Нашел пример где по мониторy COM порта можно понять как работает преобразование аналоговых данных из PID регулятора в импульсные данные на реле.

Добавлено (23.02.2016, 21:46)
---------------------------------------------
P.S.S Библиотека "ArduinoPID Library" позволяет выставлять
коефициентам Kp, Ki, Kd нулевое
значение, что дает возможность делать чисто P или PI регулятор.

Блок ПИД регулятор

Добавлено: 24.02.2016{, 06:55}
Siberian
Airis, Вы отредактируйте строчку кода в своем посте . Кто-то скопирует, потом ошибку искать будет.



Код: Выделить всё

if (Output[b]> millis() - windowStartTime) digitalWrite(RELAY_PIN, HIGH);
[/b]

Блок ПИД регулятор

Добавлено: 24.02.2016{, 21:12}
gav81
Airis, если все работает, можете подправить блок и выложить?
Может быть кому нибудь пригодится!

Блок ПИД регулятор

Добавлено: 24.02.2016{, 22:27}
rf80
Доброго времени блок очень интересен можно исправленную версию. И я так понимаю что в IDE тоже нужно скопировать библиотеку. Дайте процедуру по его пользованию
В вкратце понимаю суть работы но очень поверхностно с коэффициентами и т.п.
Есть вопрос релейный пид регулятор я так понимаю можно приколхозить к инкубатору если пользоваться лампой в самом простом варианте. Хотя надежность за счет частых включений сильно пострадает.
Тогда нужно управление на симисторе. Есть уже у кого то наметки чтобы не с нуля.
Хочу попробовать сделать инкубатор с режимом автомат с реле реального времени датчиком влажности и т.п.