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

В этом форуме можно обсудить интерфейс программы, работу встроенных блоков, взаимодейсткие с Ардуино IDE и т.д.
Аватара пользователя
Олег
Полковник
Сообщения: 1532
Зарегистрирован: 13.10.2015{, 16:47}
Репутация: 63
Контактная информация:

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

#21

Сообщение Олег » 20.02.2016{, 13:27}

Весь вопрос рабочий-ли сам блок, как я понял в виде скетча он у топикстартера работал, а в виде блока его еще никто не проверил, возможно он и не работает.
 Инкубатор делаете?

Аватара пользователя
Siberian
Лейтенант
Сообщения: 475
Зарегистрирован: 07.09.2015{, 11:51}
Репутация: 8
Откуда: СССР
Имя: Александр

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

#22

Сообщение Siberian » 20.02.2016{, 14:34}

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

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

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

Аватара пользователя
Олег
Полковник
Сообщения: 1532
Зарегистрирован: 13.10.2015{, 16:47}
Репутация: 63
Контактная информация:

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

#23

Сообщение Олег » 20.02.2016{, 14:56}

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

hallozin
Рядовой
Сообщения: 26
Зарегистрирован: 01.10.2015{, 16:29}
Репутация: 0

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

#24

Сообщение hallozin » 20.02.2016{, 15:17}

мой блок попробуйте у меня работает в железе

Добавлено (20.02.2016, 15:17)
---------------------------------------------
А вот ещё один блок может изменять битность ШИМ вплоть до 16 бит на 9 и 10 ноге
в настройках блока можно установить  битность по умолчанию 8
Вложения
PWM-CODE-.ubi
(4.44 КБ) 143 скачивания
PID1-CODE-.ubi
(61.98 КБ) 115 скачиваний
Последний раз редактировалось hallozin 20.02.2016{, 15:23}, всего редактировалось 1 раз.

Аватара пользователя
Siberian
Лейтенант
Сообщения: 475
Зарегистрирован: 07.09.2015{, 11:51}
Репутация: 8
Откуда: СССР
Имя: Александр

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

#25

Сообщение Siberian » 20.02.2016{, 15:35}

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

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

gav81
Рядовой
Сообщения: 48
Зарегистрирован: 07.10.2015{, 21:04}
Репутация: 1

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

#26

Сообщение gav81 » 20.02.2016{, 18:06}

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

Аватара пользователя
Siberian
Лейтенант
Сообщения: 475
Зарегистрирован: 07.09.2015{, 11:51}
Репутация: 8
Откуда: СССР
Имя: Александр

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

#27

Сообщение Siberian » 20.02.2016{, 19:18}

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

Аватара пользователя
Siberian
Лейтенант
Сообщения: 475
Зарегистрирован: 07.09.2015{, 11:51}
Репутация: 8
Откуда: СССР
Имя: Александр

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

#28

Сообщение Siberian » 20.02.2016{, 19:32}

Проект простой.
Датчик температуры, на выходе нагреватель.
Вложения
PID_Test.flp
(108.04 КБ) 120 скачиваний

gav81
Рядовой
Сообщения: 48
Зарегистрирован: 07.10.2015{, 21:04}
Репутация: 1

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

#29

Сообщение gav81 » 20.02.2016{, 20:39}

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

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

Аватара пользователя
Siberian
Лейтенант
Сообщения: 475
Зарегистрирован: 07.09.2015{, 11:51}
Репутация: 8
Откуда: СССР
Имя: Александр

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

#30

Сообщение Siberian » 20.02.2016{, 21:03}

gav81 писал(а):Не забывайте выбрать параметр DIRECT или REVERS под свою систему
Не понял. Где выбрать эти параметры.

Аватара пользователя
Олег
Полковник
Сообщения: 1532
Зарегистрирован: 13.10.2015{, 16:47}
Репутация: 63
Контактная информация:

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

#31

Сообщение Олег » 20.02.2016{, 21:07}

Параметры блока

Airis
Сержант
Сообщения: 175
Зарегистрирован: 24.09.2015{, 07:27}
Репутация: 0

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

#32

Сообщение Airis » 20.02.2016{, 21:08}

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

gav81
Рядовой
Сообщения: 48
Зарегистрирован: 07.10.2015{, 21:04}
Репутация: 1

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

#33

Сообщение gav81 » 20.02.2016{, 21:12}

Правой кнопкой по блоку -> изменить параметры -> указать 1 или 0.

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

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

Аватара пользователя
Siberian
Лейтенант
Сообщения: 475
Зарегистрирован: 07.09.2015{, 11:51}
Репутация: 8
Откуда: СССР
Имя: Александр

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

#34

Сообщение Siberian » 20.02.2016{, 21:28}

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

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

gav81
Рядовой
Сообщения: 48
Зарегистрирован: 07.10.2015{, 21:04}
Репутация: 1

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

#35

Сообщение gav81 » 20.02.2016{, 21:51}

Aris, держи блок + тест.
Если честно, не понимаю алгоритма )
Дай обратную связь если получится то что задумал.
Вложения
PID_RelayOutput.ubi
(62.73 КБ) 146 скачиваний
PID_relay_UB.flp
(221.41 КБ) 118 скачиваний

Airis
Сержант
Сообщения: 175
Зарегистрирован: 24.09.2015{, 07:27}
Репутация: 0

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

#36

Сообщение Airis » 20.02.2016{, 22:14}

gav81, спосибо - в понедельник попробую.

Airis
Сержант
Сообщения: 175
Зарегистрирован: 24.09.2015{, 07:27}
Репутация: 0

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

#37

Сообщение Airis » 23.02.2016{, 21:46}

Проверил блок 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 регулятор.
Вложения
toasteroven.ino
(1.96 КБ) 75 скачиваний
toasteroven-wit.ino
(2.02 КБ) 86 скачиваний
Последний раз редактировалось Airis 23.02.2016{, 21:36}, всего редактировалось 1 раз.

Аватара пользователя
Siberian
Лейтенант
Сообщения: 475
Зарегистрирован: 07.09.2015{, 11:51}
Репутация: 8
Откуда: СССР
Имя: Александр

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

#38

Сообщение Siberian » 24.02.2016{, 06:55}

Airis, Вы отредактируйте строчку кода в своем посте . Кто-то скопирует, потом ошибку искать будет.



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

if (Output[b]> millis() - windowStartTime) digitalWrite(RELAY_PIN, HIGH);
[/b]
Последний раз редактировалось Siberian 24.02.2016{, 06:57}, всего редактировалось 1 раз.

gav81
Рядовой
Сообщения: 48
Зарегистрирован: 07.10.2015{, 21:04}
Репутация: 1

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

#39

Сообщение gav81 » 24.02.2016{, 21:12}

Airis, если все работает, можете подправить блок и выложить?
Может быть кому нибудь пригодится!

rf80
Рядовой
Сообщения: 76
Зарегистрирован: 26.11.2015{, 20:29}
Репутация: 0

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

#40

Сообщение rf80 » 24.02.2016{, 22:27}

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

Ответить

Вернуться в «Обсуждение программы FLProg (Не багтрекер, и не хотелки. Делимся опытом!!)»