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

В этом форуме можно обсудить интерфейс программы, работу встроенных блоков, взаимодейсткие с Ардуино IDE и т.д.
gav81
Рядовой
Сообщения: 48
Зарегистрирован: 07.10.2015{, 21:04}
Репутация: 1

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

#1

Сообщение gav81 » 08.02.2016{, 23:04}

Прошу испытывать. Времени проверить на железе нету пока.

Описание:
Блок составлен на базе библиотеки Arduino PID Library - Version 1.1.1
* by Brett Beauregard <br3ttb@gmail.com> brettbeauregard.com
In - Input входное значение регулируемой переменной;
SP - Setpoint уставка;
Out - Output сигнал воздействия (аналоговый выход ШИМ 0-5в)
Kp - коэффициент пропорциональности;
Ki - коэффициент интегрирования;
Kd - коэффициент дифференцирования;

В моем случае управляет сервоприводами ESBE ARA 659 0-10в и прекрасно с этим справляется.
Вложения
_-CODE-.ubi
(60.44 КБ) 175 скачиваний

Xops
Рядовой
Сообщения: 31
Зарегистрирован: 21.12.2015{, 13:32}
Репутация: 0

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

#2

Сообщение Xops » 09.02.2016{, 16:55}

Спасибо, забрал. Завтра протестирую.

krom23
Лейтенант
Сообщения: 444
Зарегистрирован: 06.09.2015{, 15:18}
Репутация: 12
Откуда: Калуга
Имя: Андрей

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

#3

Сообщение krom23 » 09.02.2016{, 21:24}

gav81, спасибо за блок, попробую. А не подскажите как вы реализовали выход 0-10в. Я для этого заказал цифровые потенциометры, но интересны и другие варианты.

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

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

#4

Сообщение gav81 » 10.02.2016{, 20:48}

krom23, на операционнике LM324. Цена вопроса 50р. См. схему
Вложения
6060323.png
Последний раз редактировалось gav81 10.02.2016{, 20:52}, всего редактировалось 1 раз.

krom23
Лейтенант
Сообщения: 444
Зарегистрирован: 06.09.2015{, 15:18}
Репутация: 12
Откуда: Калуга
Имя: Андрей

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

#5

Сообщение krom23 » 10.02.2016{, 22:41}

Красота однако, и ещё раз спасибо.

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

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

#6

Сообщение gav81 » 11.02.2016{, 20:19}

На здоровье!
Дайте обратную связь по работоспособности блока как протестите.

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

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

#7

Сообщение Siberian » 13.02.2016{, 08:54}

gav81 писал(а):Прошу испытывать. Времени проверить на железе нету пока.
И в то-же время Вы написали "В моем случае управляет сервоприводами ESBE ARA 659 0-10в и прекрасно с этим справляется."

Имелось ввиду, что прекрасно справляется в Proteus_е ?

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

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

#8

Сообщение Airis » 14.02.2016{, 00:29}

А нет ли возможности этот PID регулятор сделать с цифровым входом для управлении реле? 3-точечные регуляторы того-же ESBE более распространены и дешевле чем регулатор с 0-10V управлением.
У автора библиотеки есть пример с релейным выходам, но от этого кода я ничего не понимаю.
Последний раз редактировалось Airis 14.02.2016{, 00:31}, всего редактировалось 1 раз.

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

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

#9

Сообщение gav81 » 17.02.2016{, 21:46}

Siberian, поскольку раньше не было возможности вписать в блок код и библиотеку, после компиляции из FLprog я добавлял код в IDE вручную. Это все работает как я и сказал на железе.
Составив блок в Flprog я не заливал код в контроллер. Вот что имелось ввиду. В протеусе не тестил.

Добавлено (17.02.2016, 21:37)
---------------------------------------------
Airis писал(а):А нет ли возможности этот PID регулятор сделать с цифровым входом для управлении реле? 3-точечные регуляторы того-же ESBE более распространены и дешевле чем регулатор с 0-10V управлением.
У автора библиотеки есть пример с релейным выходам, но от этого кода я ничего не понимаю.
Не совсем то, если я Вас правильно понял. Пример из библиотеки PID_RelayOutput просто включает и отключает одно реле.
По моему, то что Вам нужно реализовано у пользователя Tehnics http://forum.flprogwiki.ru/viewtopic.php?f=18&t=89 без библиотеки, просто в коде см http://flprog.ru/_fr/0/V_2.2_new_5.04..rar плата 30,31.

Добавлено (17.02.2016, 21:46)
---------------------------------------------
Airis писал(а):3-точечные регуляторы того-же ESBE более распространены и дешевле чем регулатор с 0-10V управлением
К стати, для информации. Я нашел 3 привода ARA 659 около 3000р за штуку на AVITO и EBAY. Дешевле навряд ли что то есть...
Последний раз редактировалось gav81 17.02.2016{, 21:10}, всего редактировалось 1 раз.

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

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

#10

Сообщение Airis » 17.02.2016{, 23:36}

gav81 писал(а):Пример из библиотеки PID_RelayOutput просто включает и отключает одно реле.
Да, мне нужно "просто" включать и выключать одно реле(понятно что для управление 3-точечным сервоприводом нужны два реле и два PID регулятора). PID регулятор с релейным выходом в промышленной автоматизации используется
очень широко, думаю что намного больше чем регулятор с управлениме по 0-10V. Вот и интересует, как "просто"
включать и выключать одно реле по настоящему PI(D) алгоритму. В PI(D) регуляторе
зависимости от уровня рассогласование меняется длительность времени включение
реле и паузы между ними. Из примера не понимаю как там включать и выключать
реле.

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

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

#11

Сообщение Siberian » 18.02.2016{, 06:39}

gav81 писал(а):Siberian, поскольку раньше не было возможности вписать в блок код и библиотеку, после компиляции из FLprog я добавлял код в IDE вручную. Это все работает как я и сказал на железе.Составив блок в Flprog я не заливал код в контроллер. Вот что имелось ввиду. В протеусе не тестил.
Понятно. Спасибо!
Последний раз редактировалось Siberian 18.02.2016{, 06:40}, всего редактировалось 1 раз.

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

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

#12

Сообщение gav81 » 18.02.2016{, 19:39}

Airis, попробую вам помочь.
Какой у вас привод? Производитель, марка?
Последний раз редактировалось gav81 18.02.2016{, 19:39}, всего редактировалось 1 раз.

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

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

#13

Сообщение Airis » 18.02.2016{, 22:38}

У менякакой то Danfoss похожий на AMV 130/140 (230V) но боле старая модель снятая с производства. Но то какай именно привод не имеет принципиальной разницы. У приводов управляемых импульсами напряжением 230V есть только один параметр - скорость полного открытие / закрытие.
PI(D) регулятор с выходом на реле это универсальная регулятор способныйуправлять как электрическим нагревателям, так и разными электромеханическими приводами.
Последний раз редактировалось Airis 18.02.2016{, 22:39}, всего редактировалось 1 раз.

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

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

#14

Сообщение gav81 » 18.02.2016{, 23:09}

Airis писал(а):У менякакой то Danfoss похожий на AMV 130/140 (230V) но боле старая модель снятая с производства. Но то какай именно привод не имеет принципиальной разницы. У приводов управляемых импульсами напряжением 230V есть только один параметр - скорость полного открытие / закрытие.
PI(D) регулятор с выходом на реле это универсальная регулятор способныйуправлять как электрическим нагревателям, так и разными электромеханическими приводами.
И так. Давайте разберемся как работает AMV 130/140.
В схеме подключения я вижу три провода. Черный - вниз, голубой - общий, коричневый - вверх. Т.е. замыкание голубого и черного к примеру закрывает, голубого и коричневого открывает, все разомкнуты привод неподвижен.
Если это так, нужно два сигнала и два реле на открытие и на закрытие. Поправьте если я не прав.
Последний раз редактировалось gav81 18.02.2016{, 23:14}, всего редактировалось 1 раз.

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

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

#15

Сообщение Siberian » 20.02.2016{, 11:00}

gav81, По какой формуле Вы настраивали коэффициенты

Kp
Ki
Kd

Добавлено (20.02.2016, 11:00)
---------------------------------------------
gav81, Похоже, что я что-то не верно понял.

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

In - датчик температуры.

SP - задал константу температуры (40 градусов)

Kp - 0
Ki -  0
Kd - 0

Out - ШИМ (через полевой транзистор подключена лампочка накаливания)

PID_MODE - константа true.

В результате на выходе ШИМ - 0

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

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

#16

Сообщение Airis » 20.02.2016{, 11:04}

gav81 писал(а):Т.е. замыкание голубого и черного к примеру закрывает, голубого и коричневого открывает, все разомкнуты привод неподвижен.
Да, все правильно, и по научному это называется "3 - точнаяуправление" (three point control). То что
для управление таким приводом нужны 2 реле и 2 PI(D) регулятора это понятно.

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

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

#17

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

Siberian, При всех нулевых коэффициентах у вас должна быть на выходе 100% мощность. При установке коэффициента пропорциональности (задается в градусах) мощность будет пропорционально уменьшатся при подходе к установленному значению. например, установленная температура 80 градусов, Кр 20, пока температура не дойдет до 60 градусов, на выходе будет 100% мощность, при 70 градусах 50%, и так далее.
Если конечно расчет идет по стандартной формуле.
Последний раз редактировалось Олег 20.02.2016{, 11:23}, всего редактировалось 1 раз.

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

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

#18

Сообщение Siberian » 20.02.2016{, 11:50}

Олег писал(а):При всех нулевых коэффициентах у вас должна быть на выходе 100% мощность
100% мощность, я так понимаю шим = 255.

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

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

#19

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

Ну да.

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

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

#20

Сообщение Siberian » 20.02.2016{, 12:24}

У меня при любых значениях коэффициентов и заданной температуре, на выходе 0

Добавлено (20.02.2016, 12:24)
---------------------------------------------
Смысл моей задачи, это прикрутить к терморегулятору ПИД.
Температуру нужно поддерживать на уровне плюс-минус 0,1 градус.
Вход - датчик температуры.
Выход - нагревательный элемент.

Ответить

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