ПИД Регулятор.

PID_v1

Пользовательские блоки ПИД регуляторов, прочих регуляторов и для работы с ШИМ выходами
Правила форума
Рекомендации по размещению блоков:
Автор блока создает подробное описание блока, отличие от подобных(если есть на данный момент).Сложные блоки очень желательно с примерами.
При выходе новых версий редактирует/дополняет свой первый пост с указанием даты, версии, причины.
В каждой теме обсуждается только выложенный автором блок - баги, возможность (или предложение) доработки и прочие хотелки.
Свои блоки, переработанные, с другими библиотеками, протоколами и т.д.- размещаем либо сами отдельно, либо обсуждаем и дорабатываем в форуме Разработка блоков.
Пользователи улучшив блок автора и проверив его работоспособность - могут обратиться к автору или модераторам с просьбой добавить их версию блока в первое сообщение темы.
Аватара пользователя
Siberian
Лейтенант
Сообщения: 475
Зарегистрирован: 07.09.2015{, 11:51}
Репутация: 8
Откуда: СССР
Имя: Александр

ПИД Регулятор.

#1

Сообщение Siberian » 19.07.2019{, 09:55}

Здравствуйте, коллеги!
Более двух лет назад я скачал с нашего форума пользовательский блок ПИД регулятор.
Судя по описанию автора в блоке, им является AlexA.
Но, к сожалению сейчас я не могу найти пользователя с таким ником.

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

Выкладываю блок и библиотеку к нему (PID_v1).
Вложения
2019-07-19_093859.jpg
PID_v1.zip
(7.25 КБ) 549 скачиваний
ПИД_регулятор_(CODE).ubi
(69.98 КБ) 558 скачиваний

com
Капитан
Сообщения: 831
Зарегистрирован: 31.05.2018{, 22:12}
Репутация: 83
Откуда: Санкт-Петербург
Имя: Ринат

ПИД Регулятор. Отличный блок пользователя!

#2

Сообщение com » 19.07.2019{, 10:43}

А можно по подробнее по настройкам, какой пункт за что отвечает, как настроить

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

ПИД Регулятор. Отличный блок пользователя!

#3

Сообщение Siberian » 19.07.2019{, 11:18}

com писал(а):
19.07.2019{, 10:43}
А можно по подробнее по настройкам, какой пункт за что отвечает, как настроить
Подробнее и расширено можно найти в любом описании по ПИД регуляторам, нужно только немого погуглить, информации очень много.
Когда я начинал знакомиться с ПИД регулятором, перелопатил очень многое в инете. Самой простой мне показалась публикация, в котором парень рассказывал, как он делал для своего товарища блок управления оборотами двигателя. http://we.easyelectronics.ru/Theory/pid ... tikov.html

В этой публикации довольно всё просто, по народному описано.
Если Вы не разу не сталкивались с ПИД регуляторами, совету прочесть.
Про настройки описано в конце.
Если правильно настроить Kp и Ki, то настройку Kd можно оставить "0", получится ПИ регулятор.

Отправлено спустя 24 минуты 30 секунд:
------------------------------------------------------------------------------------------------------------------------
Для примера приведу один из своих инкубаторов.
* 160 яиц загрузка.
* Внутренний объем инкубатора составляет 180 литров.
* Мощность нагревателя 85 Ватт.
* Датчик температуры и влажности HTU-21
* Время нагрева инкубатора при внешней температуре +18 градусов до нагрева +38 градусов составляет 1 час.
Данные настройки ПИД.
* Kp = 1480,0
* Ki = 1,35
* Kd = 0,0
Обращаю внимание, что регулировка происходит именно по ШИМ, а не по релейному управлению.

Anydy

ПИД Регулятор.

#4

Сообщение Anydy » 19.07.2019{, 12:13}

Siberian писал(а):
19.07.2019{, 11:42}
Когда я начинал знакомиться с ПИД регулятором, перелопатил очень многое в инете. Самой простой мне показалась публикация, в котором парень рассказывал, как он делал для своего товарища блок управления оборотами двигателя. http://we.easyelectronics.ru/Theory/pid ... tikov.html
Хорошая инструкция!!! Всем полезно почитать!!!

Отправлено спустя 2 минуты 17 секунд:
Siberian писал(а):
19.07.2019{, 09:55}
Судя по описанию автора в блоке, им является AlexA.
Но, к сожалению сейчас я не могу найти пользователя с таким ником.
Да, я в админке тоже не вижу такого пользователя.....либо его нет, либо он самоудалился)))

Отправлено спустя 43 секунды:
Либо ник не верный указали...

ecoins
Полковник
Сообщения: 2923
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

ПИД Регулятор.

#5

Сообщение ecoins » 19.07.2019{, 12:22}

Siberian писал(а):
19.07.2019{, 11:42}
Подробнее и расширено можно найти в любом описании по ПИД регуляторам, нужно только немого погуглить, информации очень много.
Когда я начинал знакомиться с ПИД регулятором, перелопатил очень многое в инете. Самой простой мне показалась публикация, в котором парень рассказывал, как он делал для своего товарища блок управления оборотами двигателя. http://we.easyelectronics.ru/Theory/pid ... tikov.html
Отличная тема и отличные ссылки.
Тут же скачал библиотеку и добавил в папку libraries IDE.
И обнаружилось, что такая библиотека уже размещена автором в этой папке.
Большое спасибо, что обратили внимание на эту тему, сослались на свой успешный опыт, сделали крайне интересную для нас ссылку на публикацию, в которой особый интерес вызвал текст:
О параллелизме в программе - из http://we.easyelectronics.ru/The…Показать
В комментариях поинтересовались — зачем такие сложности с машиной состояний? С недетерминированным алгоритмом? Отвечаю: благодаря такому подходу я реализую простенький «параллелизм». Т. е. в промежутке между этапами вычислений я делаю какие-то другие действия (в моем случае общение по UART, которое может быть весьма напряженным — когда я использую сий девайс как логгер событий).
Это как раз то, что команда ecoins в настоящее время разрабатывает для микроконтроллеров и пытается привлечь к этому аспекту проектирования пользователей FLProg - пока без особого успеха.

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

ПИД Регулятор.

#6

Сообщение Siberian » 19.07.2019{, 12:42}

Anydy писал(а):
19.07.2019{, 12:16}
Siberian писал(а):
19.07.2019{, 11:42}
Когда я начинал знакомиться с ПИД регулятором, перелопатил очень многое в инете. Самой простой мне показалась публикация, в котором парень рассказывал, как он делал для своего товарища блок управления оборотами двигателя. http://we.easyelectronics.ru/Theory/pid ... tikov.html
Хорошая инструкция!!! Всем полезно почитать!!!

Отправлено спустя 2 минуты 17 секунд:
Siberian писал(а):
19.07.2019{, 09:55}
Судя по описанию автора в блоке, им является AlexA.
Но, к сожалению сейчас я не могу найти пользователя с таким ником.
Да, я в админке тоже не вижу такого пользователя.....либо его нет, либо он самоудалился)))

Отправлено спустя 43 секунды:
Либо ник не верный указали...
Может и не верный ник, я взял имя автора из описания блока.

Отправлено спустя 10 минут 28 секунд:
-------------------------------------------------------------------------------------------------------------
Я скачал этот блок еще с форума сайта flprog.ru.
В то время не было этого форума на движке phpBB
Вложения
2019-07-19_093859.jpg


Аватара пользователя
Alex16
Рядовой
Сообщения: 70
Зарегистрирован: 05.01.2016{, 01:20}
Репутация: 1
Откуда: Армавир

ПИД Регулятор.

#8

Сообщение Alex16 » 19.07.2019{, 17:12}

Siberian писал(а):
19.07.2019{, 12:52}
Может и не верный ник, я взял имя автора из описания блока.
Мой ник на форуме "Alex16"
AlexA

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

ПИД Регулятор.

#9

Сообщение Siberian » 19.07.2019{, 17:20}

Alex16, приветствую! Если блок Ваш, то Респект и Уважуха! :smile38:

Аватара пользователя
Dryundel
Полковник
Сообщения: 2401
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 783
Откуда: Ярославль
Имя: Андрей
Контактная информация:

ПИД Регулятор.

#10

Сообщение Dryundel » 20.07.2019{, 01:38}

Siberian писал(а):
19.07.2019{, 09:55}
Здравствуйте, коллеги!
Более двух лет назад я скачал с нашего форума пользовательский блок ПИД регулятор.
Судя по описанию автора в блоке, им является AlexA.
Но, к сожалению сейчас я не могу найти пользователя с таким ником.

Данный блок использую в инкубаторах.
Работает Очень Отлично!
За пару лет перепробовал очень много вариантов разных ПИД регуляторов, но ничего лучшего не нашел.
А можно поподробней, в чем преимущество данного блока перед встроенным?
Вроде как встроенный блок на той же библиотеке базируется, плюс имеет возможность выбора прямого или обратного регулирования, плюс можно задать пределы регулируемого параметра, плюс может управлять как ШИМ-ом, так и релейным выходом. Имеет весьма не плохое, понятное, описание и легко конфигурируется.

В чем фикус? Вы заметили особые отличия в работе? Данный блок реально лучше работает?

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

ПИД Регулятор.

#11

Сообщение Siberian » 20.07.2019{, 07:26}

Dryundel писал(а):
20.07.2019{, 01:38}
А можно поподробней, в чем преимущество данного блока перед встроенным?
На встроенном блоке я не смог добиться стабильного поддерживания температуры.
А связано скорее всего с алгоритмом работы, я по разному пытался настроить Kp, Ki, Kd, но происходило следующее:
Например, установленная температура +38,0., верхний предел ШИМ 255, нижний 0.
При достижении +38,0 шим сбрасывается в 0, затем после какого-то периода времени начинает увеличиваться, но температура уже 37,9., шим увеличивается до 255, но температура уже 37,8., при достижении 38,0 снова шим сбрасывается в 0, и т.д. В таком режиме работает какое-то время, и наконец "качалка" пляшет от 37,9 до 38,1.

На пользовательском блоке такого не происходит. При достижении 38,0 шим снижается примерно до 120-140 (в зависимости от настроек Kp, Ki) и в этих пределах регулирует. Опять-же, в зависимости от настроек Kp, Ki можно добиться регулировки в пределах либо 37,9 - 38,0. либо 38,0 - 38,1 до достижения стабильного 38,0.

Отправлено спустя 19 минут 14 секунд:
Может я не смог правильно настроить встроенный блок, занимался с ним плотно два дня, но желаемого результата не получил.

Пользовательский блок от Alex16 настраивается очень легко, хорошо отзывчив к настройке коэффициентов, процедура настройки под любые задачи занимает всего один вечер.

Аватара пользователя
Dryundel
Полковник
Сообщения: 2401
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 783
Откуда: Ярославль
Имя: Андрей
Контактная информация:

ПИД Регулятор.

#12

Сообщение Dryundel » 20.07.2019{, 12:13}

Siberian писал(а):
20.07.2019{, 07:45}
На встроенном блоке я не смог добиться стабильного поддерживания температуры.
А связано скорее всего с алгоритмом работы...
Siberian писал(а):
20.07.2019{, 07:45}
Пользовательский блок от Alex16 настраивается очень легко, хорошо отзывчив к настройке коэффициентов
Странно все это. Оба блока работают на одной библиотеке. В блоке от Alex16 я не увидел дополнительных алгоритмов, только отсыл к функциям библиотеки. Поэтому осмелюсь предположить, что Вы при настройке встроенного блока сделали что то не так.
Хотя... Все может быть и все быть может и только то не может быть, чего уж точно быть не может, хотя и это может быть.
Интересно было бы послушать автора блока.
Alex16, не расскажете в чем принципиальное отличие вашего блока от встроенного? Почему Вы его создали? Не устроил встроенный? Как удалось сделать принципиально новое решение на той же библиотеке? В чем секрет? В чем отличие?

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

ПИД Регулятор.

#13

Сообщение Siberian » 20.07.2019{, 16:45}

Блок пользователя Alex16 создал еще до того, как появился встроенный блок пид в программе flprog.

ecoins
Полковник
Сообщения: 2923
Зарегистрирован: 12.02.2016{, 11:40}
Репутация: 453
Откуда: Шатура
Имя: Энвер

ПИД Регулятор.

#14

Сообщение ecoins » 20.07.2019{, 21:26}

Dryundel писал(а):
20.07.2019{, 12:13}
не расскажете в чем принципиальное отличие вашего блока от встроенного? Почему Вы его создали? Не устроил встроенный?
Во как! И не знал о встроенном ПИД-регуляторе. Буду пробовать.

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

ПИД Регулятор.

#15

Сообщение Siberian » 21.07.2019{, 15:46}

av писал(а):
20.07.2019{, 23:19}
Siberian, странно но у меня штатный блок работает отлично без всяких нареканий. Ваше описание работы штатного блока отличаются от работы в моем случае. У меня работает так же как вы описали работу пользовательского блока. А вот преимущества штатного из за дополнительных настроек описанных Ув.Dryundel,
Не буду спорить, возможно я как-то криво подошел к вопросу...
Уже привык к пользовательскому, тем более, что мне дополнительные настройки не нужны, использую только прямое регулирование ШИМ.

Аватара пользователя
ivanpost
Сержант
Сообщения: 140
Зарегистрирован: 24.09.2016{, 22:26}
Репутация: 4
Откуда: Тольятти
Имя: Иван
Контактная информация:

ПИД Регулятор.

#16

Сообщение ivanpost » 15.03.2020{, 22:16}

Коллеги! Посоветуйте, как настроить этот или встроенный ПИД-регулятор...

Потребовалось регулировать скорость вращения двигателя. с энкодером (позиционирование тоже нужно) . В данном случае простой ШИМ не совсем подходит, ввиду не всегда одинаковой нагрузки на двигателе.
Дискретность проведения замеров скорости - 20 мс . Время регулирования установил 80 мс (не совсем понятно, из чего исходить при его установке?)
Возникают незатухающие колебания при Kp=5 (Ki=0 Kd=0) Но измерить их период - довольно затруднительно - примерно 0,5-0,8 сек...
Просто думаю, решалась не раз эта задача.. А то покрутил все коэффициенты по методичке, но либо медленно едет, либо дергается...

Brand2
Лейтенант
Сообщения: 413
Зарегистрирован: 26.02.2018{, 21:27}
Репутация: 41
Откуда: Haifa
Имя: Alex

ПИД Регулятор.

#17

Сообщение Brand2 » 15.03.2020{, 23:19}

ivanpost, При коэффициентах Ki=0 и Kd=0 у Вас получается пропорциональный регулятор,и эти незатухающие колебания это нормальное явление для такого вида регулятора что связано с инерционностью системы.
Хочешь не хочешь, а нужно вводить коэффициенты в дифференциальный и интегральный каналы.
Вот тут и начинается самое интересное,для этого существует целая наука,"Tеория автоматического управления",там темный лес с высшей математикой,передаточными функциямии и всякими теориями.
Можно подобрать приблизительно и опытным путем,тут выше давалась ссылка на статью "ПИД регуляторы для чайников"
прочитав ее,уже можно понять,куда и что двигать.
Что бы посмотреть как реагирует регулируемый параметр на изменения,я выводил его значения в плоттер,и смотрел как он изменяется.Очень даже наглядно ,но я регулировал температуру .

CraCk
Лейтенант
Сообщения: 632
Зарегистрирован: 10.09.2015{, 21:51}
Репутация: 10

ПИД Регулятор.

#18

Сообщение CraCk » 16.03.2020{, 01:05}

ivanpost,
Если разбираетесь в коде. Может получиться что то позаимствовать с этого проекта. Там как раз используется двигатель и обратная связь потенциометром.
http://mal4x.ru/x-simulator-simtools/no ... -t423.html

Аватара пользователя
ivanpost
Сержант
Сообщения: 140
Зарегистрирован: 24.09.2016{, 22:26}
Репутация: 4
Откуда: Тольятти
Имя: Иван
Контактная информация:

ПИД Регулятор.

#19

Сообщение ivanpost » 16.03.2020{, 10:18}

Brand2 писал(а):
15.03.2020{, 23:19}
ivanpost,
Хочешь не хочешь, а нужно вводить коэффициенты в дифференциальный и интегральный каналы.
Вот тут и начинается самое интересное,для этого существует целая наука,"Tеория автоматического управления",там темный лес с высшей математикой,передаточными функциямии и всякими теориями.
Можно подобрать приблизительно и опытным путем,тут выше давалась ссылка на статью "ПИД регуляторы для чайников"
прочитав ее,уже можно понять,куда и что двигать.
Я читал, но там сильно врубаться надо, а хотелось то - наскоком :smile38: Опять же, приведено для медленных проектов все... Просто я думал, скорость и позиционирование по энкодеру - распространенные задачи.... Подумал - от меня что-то ускользнуло...

Brand2
Лейтенант
Сообщения: 413
Зарегистрирован: 26.02.2018{, 21:27}
Репутация: 41
Откуда: Haifa
Имя: Alex

ПИД Регулятор.

#20

Сообщение Brand2 » 17.03.2020{, 13:46}

Сейчас в связи с вирусом появилось на работе время,решил сделать проект для изучения ПИД регулятора,состоящий из нагревателя,датчика температуры и вентилятора,который охлаждает нагреватель.
В проекте используется LCD дисплей 16х2 и REMOTEXY для контроля температуры и ее задания ,а так же для изменения коэффициентов
ПИД регулятора и изучение их влияния на поведение системы.
Данные выводятся на плоттер IDE и на график в REMOTEXY,что позволяет видеть поведние системы ,точность и скорость изменения заданного параметра при внесении в нее возмущений.
PID_REMOTEXY.flp
(396.07 КБ) 145 скачиваний
Ниже приведены снимки переходных процессов системы с экрана плотера и телефона с различными параметрами ПИД регулятора.
Кнопкой GO происходит одновременное задание изменяемых параметров,при этом мигает красный индикатор вверху если запись произведена.
LCD дисплей используется как дополнительное средство контроля и может не подключатся.
СпойлерПоказать
WhatsApp Image 2020-03-17 at 11.51.03 (2).jpeg
WhatsApp Image 2020-03-17 at 11.51.03 (1).jpeg
WhatsApp Image 2020-03-17 at 11.50.03.jpeg
WhatsApp Image 2020-03-17 at 11.50.03 (1).jpeg

Ответить

Вернуться в «ПИД регуляторы (PID), блоки для ШИМ»