FLProg
Вход на сайт
Логин:
Пароль:
Поиск
...
Статистика
Среда, 13.12.2017, 13:50
Приветствую Вас Гость | RSS
Главная | Регистрация | Вход

Поиск по сайту


Форум
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 3 из 7«1234567»
Модератор форума: support, Сергей, Anydy, Олег 
Форум » Основной » Обсуждение программы FLProg (Не багтрекер, и не хотелки. Делимся опытом!!) » Блок ПИД регулятор (Накидал блок на базе библиотеки Arduino PID Library)
Блок ПИД регулятор
Олег Дата: Суббота, 20.02.2016, 21:07 | Сообщение # 31
Генерал-полковник
Группа: Администраторы
Сообщений: 1142
Награды: 24
Репутация: 17
Статус: Offline
Параметры блока

Схемы на ноутбуки
 
Airis Дата: Суббота, 20.02.2016, 21:08 | Сообщение # 32
Майор
Группа: Проверенные
Сообщений: 175
Награды: 4
Репутация: 13
Статус: Offline
Цитата gav81 ()
Но в примере библиотеки, только одно реле. Как прикрутить туда второе я не знаю.
Хватити одного реле, второй реле можно прикрутить к другому такому-же PID регулятору. Есть
промышленные PID регуляторы которыекак раз и состоят из двух независимых регуляторов, где все PID параметры настраивается отдельно для каждого
реле.
 
gav81 Дата: Суббота, 20.02.2016, 21:12 | Сообщение # 33
Сержант
Группа: Проверенные
Сообщений: 39
Награды: 7
Репутация: 4
Статус: Offline
Правой кнопкой по блоку -> изменить параметры -> указать 1 или 0.

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

Добавлено (20.02.2016, 21:12)
---------------------------------------------

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


Ок, Aris. Попробую сделать блок на примере с одним реле.
Прикрепления: __v3-CODE-.ubi(60Kb)
 
Siberian Дата: Суббота, 20.02.2016, 21:28 | Сообщение # 34
Полковник
Группа: Проверенные
Сообщений: 376
Награды: 5
Репутация: 4
Статус: Offline
Да, в общем блок заработал!
Это уже радует!
Нужно будет только подобрать точно цифры калибровок, т.к. у меня по условиям допуск всего 0,1 градус.

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

 
gav81 Дата: Суббота, 20.02.2016, 21:51 | Сообщение # 35
Сержант
Группа: Проверенные
Сообщений: 39
Награды: 7
Репутация: 4
Статус: Offline
Aris, держи блок + тест.
Если честно, не понимаю алгоритма )
Дай обратную связь если получится то что задумал.
Прикрепления: PID_relay_UB.flp(221Kb) · PID_RelayOutput.ubi(63Kb)
 
Airis Дата: Суббота, 20.02.2016, 22:14 | Сообщение # 36
Майор
Группа: Проверенные
Сообщений: 175
Награды: 4
Репутация: 13
Статус: Offline
gav81, спосибо - в понедельник попробую.
 
Airis Дата: Вторник, 23.02.2016, 21:46 | Сообщение # 37
Майор
Группа: Проверенные
Сообщений: 175
Награды: 4
Репутация: 13
Статус: Offline
Проверил блок 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-wit.ino(2Kb) · toasteroven.ino(2Kb)


Сообщение отредактировал Airis - Вторник, 23.02.2016, 21:36
 
Siberian Дата: Среда, 24.02.2016, 06:55 | Сообщение # 38
Полковник
Группа: Проверенные
Сообщений: 376
Награды: 5
Репутация: 4
Статус: Offline
Airis, Вы отредактируйте строчку кода в своем посте . Кто-то скопирует, потом ошибку искать будет.


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


Сообщение отредактировал Siberian - Среда, 24.02.2016, 06:57
 
gav81 Дата: Среда, 24.02.2016, 21:12 | Сообщение # 39
Сержант
Группа: Проверенные
Сообщений: 39
Награды: 7
Репутация: 4
Статус: Offline
Airis, если все работает, можете подправить блок и выложить?
Может быть кому нибудь пригодится!
 
rf80 Дата: Среда, 24.02.2016, 22:27 | Сообщение # 40
Лейтенант
Группа: Проверенные
Сообщений: 74
Награды: 1
Репутация: 0
Статус: Offline
Доброго времени блок очень интересен можно исправленную версию. И я так понимаю что в IDE тоже нужно скопировать библиотеку. Дайте процедуру по его пользованию
В вкратце понимаю суть работы но очень поверхностно с коэффициентами и т.п.
Есть вопрос релейный пид регулятор я так понимаю можно приколхозить к инкубатору если пользоваться лампой в самом простом варианте. Хотя надежность за счет частых включений сильно пострадает.
Тогда нужно управление на симисторе. Есть уже у кого то наметки чтобы не с нуля.
Хочу попробовать сделать инкубатор с режимом автомат с реле реального времени датчиком влажности и т.п.
 
Airis Дата: Среда, 24.02.2016, 23:43 | Сообщение # 41
Майор
Группа: Проверенные
Сообщений: 175
Награды: 4
Репутация: 13
Статус: Offline
Выкладываюизмененный блок PID регулятора с выходом на реле. Блок "PID_RelayOutput" оригинальный от gav81 сисправлением.

Сам немного оптимизировал данный блок спрятав коэффициенты в "Параметры пользователя". Ситуацию когда какой ни будь коэффициент надо менять "на лету" очень редка. В блоке "PID (RelayOutput+An)" дополнительно выведен аналадогвый выход PID регулятора. Данный выход чисто для отладки, чтобы видеть что творится в регуляторе.

Приэкспериментах с PID регуляторам обнаружил проблему с тем что при неправильных коэффициентах регулятор тот "перебегает" уставленное значение , и продолжает щелкать реле. Для одного регулятора это неприятно но не критично, но если использовать 2 регулятора для управление электрическим кранам, то может получится что одновременно включится оба реле. Устраниться данный недостаток можно сравнивая In и SP, и когда in > SP реле больше не включается. Хотелось этот запрет вписать в сам блок, но еще не понимаю как туда записать два "if" подряд.
Прикрепления: PID.ubl(106Kb)


Сообщение отредактировал Airis - Среда, 24.02.2016, 23:45
 
jonik22sm Дата: Понедельник, 11.04.2016, 07:02 | Сообщение # 42
Подполковник
Группа: Проверенные
Сообщений: 256
Награды: 0
Репутация: 1
Статус: Offline
Я вот попробовал для инкубатора (ФИГНЯ)
мне нужна температура 38,7 а он при нагреве только при 38,7 начинает снижать шим
пришлось ограничить условием
а включается при 38,59, что он не успевает набрать мощность и температура падает до 38,4 очень медленно он отрабатывает
Параметры стоят
2
10
10
шим 100
блок на реле с шимом чтоб смотреть 
использую мега 2560


Спектр Бытовых Услуг в Краснодаре
http://sbu23.ru


Сообщение отредактировал jonik22sm - Понедельник, 11.04.2016, 07:03
 
Олег Дата: Понедельник, 11.04.2016, 10:06 | Сообщение # 43
Генерал-полковник
Группа: Администраторы
Сообщений: 1142
Награды: 24
Репутация: 17
Статус: Offline
Вся сила ПИД в настройках, которые делаются под конкретный объект. Чтобы мощность начинала снижаться раньше надо увеличивать коэффициент пропорциональности. Поищите в интернете на тему настройки ПИД, инструкций много.

Схемы на ноутбуки
 
Siberian Дата: Понедельник, 11.04.2016, 16:41 | Сообщение # 44
Полковник
Группа: Проверенные
Сообщений: 376
Награды: 5
Репутация: 4
Статус: Offline
Да, здесь очень большую роль играют настройки. Но пид с помощью управления через реле так и не получилось полностью согласовать с управлением до десятых долей градуса. Через выходной каскад шим работает хорошо.
 
Олег Дата: Понедельник, 11.04.2016, 17:35 | Сообщение # 45
Генерал-полковник
Группа: Администраторы
Сообщений: 1142
Награды: 24
Репутация: 17
Статус: Offline
Тут еще важен точный подбор ТЭНа, чтобы маленькая тепловая инерция была.

Схемы на ноутбуки

Сообщение отредактировал Олег - Понедельник, 11.04.2016, 17:36
 
Форум » Основной » Обсуждение программы FLProg (Не багтрекер, и не хотелки. Делимся опытом!!) » Блок ПИД регулятор (Накидал блок на базе библиотеки Arduino PID Library)
Страница 3 из 7«1234567»
Поиск:

FLProg © 2017
Яндекс.Метрика