Цифровой ПИД регулятор с аналоговым, трехпозиционным и ШИМ выходом

Пользовательские блоки ПИД регуляторов, прочих регуляторов и для работы с ШИМ выходами
Правила форума
Рекомендации по размещению блоков:
Автор блока создает подробное описание блока, отличие от подобных(если есть на данный момент).Сложные блоки очень желательно с примерами.
При выходе новых версий редактирует/дополняет свой первый пост с указанием даты, версии, причины.
В каждой теме обсуждается только выложенный автором блок - баги, возможность (или предложение) доработки и прочие хотелки.
Свои блоки, переработанные, с другими библиотеками, протоколами и т.д.- размещаем либо сами отдельно, либо обсуждаем и дорабатываем в форуме Разработка блоков.
Пользователи улучшив блок автора и проверив его работоспособность - могут обратиться к автору или модераторам с просьбой добавить их версию блока в первое сообщение темы.
dimalimite
Рядовой
Сообщения: 43
Зарегистрирован: 03.12.2018{, 00:26}
Репутация: 13
Имя: Дмитрий

Цифровой ПИД регулятор с аналоговым, трехпозиционным и ШИМ выходом

#1

Сообщение dimalimite » 20.12.2018{, 13:12}

Добрый день.
Цифровой ПИД регулятор с аналоговым, трехпозиционным и ШИМ выходом. Сделаны на классическом разностном уравнение.
Программа и блоки прикреплены к сообщению или можно скачать с диска.
Если есть желание посмотреть/послушать теорию как работают, то
Реакция на ступенчатые воздействия одновременно трех регуляторов
Диск

04.01.2019 Добавил версию регулятора c аналоговым выходом _V1. Теперь не требуется подача внешнего импульса 100 мс по фронту. Всё в одном блоке.
05.01.2019 Добавил версию регулятора c ШИМ выходом _V1. Теперь не требуется подача внешнего импульса 50 мс по фронту. Всё в одном блоке.
06.01.2019 Добавил версию регулятора c трехпозиционным выходом _V1. Теперь не требуется подача внешнего импульса 100 мс по фронту. Всё в одном блоке. См. сообщение №5 ниже.
09.01.2019 Добавил версию регулятора c аналоговым выходом _V11. Расширены ограничения на время цикла (от 0,05 сек), время исполнительного механизма (от 0,05 сек), время интегрирования Ти (от 0,05 сек). См. сообщение №11 ниже.
27.01.2019 Добавил версию регулятора с ШИМ выходом_V12. См. сообщение №28 ниже. Добавлен для информации выход текущей мощности в % (НЕ ИСПОЛЬЗОВАТЬ ДЛЯ УПРАВЛЕНИЯ АНАЛОГОВЫМИ МЕХАНИЗМАМИ!!!!) и возможность изменения мин. длительности импульса от 0 до Цикл/2 сек в режиме РЕЛЕ.
Вложения
ANALOG_PID_V1_(CODE).ubi
(88.12 КБ) 78 скачиваний
PWM_PID_(CODE).ubi
(102.14 КБ) 101 скачивание
ANALOG_PID_(CODE).ubi
(86.49 КБ) 83 скачивания
3_WAY_PID_(CODE).ubi
(65.25 КБ) 88 скачиваний
3_TYPE_PID.flp
(508.73 КБ) 108 скачиваний
Последний раз редактировалось dimalimite 28.01.2019{, 16:39}, всего редактировалось 6 раз.

dimalimite
Рядовой
Сообщения: 43
Зарегистрирован: 03.12.2018{, 00:26}
Репутация: 13
Имя: Дмитрий

Цифровой ПИД регулятор с аналоговым, трехпозиционным и ШИМ выходом

#21

Сообщение dimalimite » 27.01.2019{, 19:31}

Phazz, А настройки какие у вас?

dimalimite
Рядовой
Сообщения: 43
Зарегистрирован: 03.12.2018{, 00:26}
Репутация: 13
Имя: Дмитрий

Цифровой ПИД регулятор с аналоговым, трехпозиционным и ШИМ выходом

#22

Сообщение dimalimite » 27.01.2019{, 19:32}

Phazz, можете 0 поставить. Там в программе автоматически подставится 9999.0. То есть влияния И практически не будет

Phazz
Капитан
Сообщения: 862
Зарегистрирован: 17.10.2016{, 15:38}
Репутация: 46
Откуда: Сургут
Имя: Анатолий

Цифровой ПИД регулятор с аналоговым, трехпозиционным и ШИМ выходом

#23

Сообщение Phazz » 27.01.2019{, 19:55}

А почему если температура выше уставки и происходит резкое понижение температуры, то тэн включается еще не достигнув уставки. Настройки вот такие.
2019-01-27_21-51-37.png
2019-01-27_21-51-37.png (8.01 КБ) 434 просмотра

dimalimite
Рядовой
Сообщения: 43
Зарегистрирован: 03.12.2018{, 00:26}
Репутация: 13
Имя: Дмитрий

Цифровой ПИД регулятор с аналоговым, трехпозиционным и ШИМ выходом

#24

Сообщение dimalimite » 27.01.2019{, 20:04}

Phazz,
Резкое понижение это как? Объясните подробнее пожалуйста.
П=100, то есть на изменение в 1 градус моментально выдаётся полная мощность. Нейтральная зона есть?
У вас не режим РЕЛЕ случайно стоит?

Phazz
Капитан
Сообщения: 862
Зарегистрирован: 17.10.2016{, 15:38}
Репутация: 46
Откуда: Сургут
Имя: Анатолий

Цифровой ПИД регулятор с аналоговым, трехпозиционным и ШИМ выходом

#25

Сообщение Phazz » 27.01.2019{, 20:15}

dimalimite, Режим реле.
Уставка 30гр., текущая 45гр., при понижении на 5гр реле уже включается. Настройки как на скриншоте.
Как я понимаю, если выставлен только Пропорциональный, то не должно включаться реле пока температура не упадет ниже уставки.

dimalimite
Рядовой
Сообщения: 43
Зарегистрирован: 03.12.2018{, 00:26}
Репутация: 13
Имя: Дмитрий

Цифровой ПИД регулятор с аналоговым, трехпозиционным и ШИМ выходом

#26

Сообщение dimalimite » 27.01.2019{, 21:29}

Phazz,
Прочитайте пожалуйста сообщение №14 про режим РЕЛЕ и Цикл=1 секунда. Вот у вас ровно так и работает или 0, или 50, или 100%.
В режиме РЕЛЕ регулятор "пытается" беречь ресурс вашего реле и мин. включение 0,5 сек и мин. перерыв между включения 0,5 сек или вообще не выключается.
Если у вас реле, то как минимум цикл 2 сек. и более. Для получения более-менее качественного регулирования. Поставьте для начала 5 секунд, так у вас будет мощность или 0, или от 10 до 90, или 100%.
П=100 %/С это вообще максимальное усиление для этого регулятора. Если хотите только П, то начните хотя бы с 10 %/С и если будет сильно не доходить до вашей уставки, то тогда уже увеличивайте.
Phazz писал(а):
27.01.2019{, 20:15}
Как я понимаю, если выставлен только Пропорциональный, то не должно включаться реле пока температура не упадет ниже уставки.
Нет всё совсем не так. Регуляторы П, ПИ, ПД, ПИД не так работают.
Рассмотрим только П регулятор, как у вас с П=100%/С:
Уставка SP=30, текущая PV=45, рассогласование Етек=SP-PV, приращение мощности на текущем шаге dPower=П*(Етек-Етек-1), итоговая мощность Powerтек=Powerтек-1 + dPower.
Вот у вас допустим была Powerтек=0. И установившейся режим
Шаг 1 (установившейся режим) : dPower=100*(-15-(-15))=0% Powerтек=0+0=0%
Шаг 2 (ваше резкое изменение с 45 на 40 градусов) : dPower=100*(-10-(-15))=500%!!!!!Powerтек=0+500=500% Программа лимитирует до Powerтек=100%.
и т.д.
Если бы П был = 1%/С, то dPower=1*(-10-(-15))=5%, Powerтек=0+5=5%.
Если у вас есть время, то посмотрите видео ссылка на которые есть в сообщение №1.

Phazz
Капитан
Сообщения: 862
Зарегистрирован: 17.10.2016{, 15:38}
Репутация: 46
Откуда: Сургут
Имя: Анатолий

Цифровой ПИД регулятор с аналоговым, трехпозиционным и ШИМ выходом

#27

Сообщение Phazz » 27.01.2019{, 21:57}

dimalimite, Смотрел, посмотрю еще раз видимо что-то пропустил ).
Штатный блок пид работает немного по-другому. Если температура выше уставки, то пид не реагирует пока температура не упадет ниже.

Отправлено спустя 9 минут 50 секунд:
Завтра погоняю на реальном ТЭНе. А еще есть возможность добавить вход для изменения этого параметра
dimalimite писал(а):
27.01.2019{, 21:29}
включение 0,5 сек и мин. перерыв между включения 0,5 сек

dimalimite
Рядовой
Сообщения: 43
Зарегистрирован: 03.12.2018{, 00:26}
Репутация: 13
Имя: Дмитрий

Цифровой ПИД регулятор с аналоговым, трехпозиционным и ШИМ выходом

#28

Сообщение dimalimite » 27.01.2019{, 22:12}

Phazz, поставьте цикл=5 секунд и П=10 %/С для начала, а уже от этого скорректируете (100%/С - это незатухающие колебания гарантированные).
Я сомневаюсь, что он иначе работает. Особенно в П части. Там другого не дано.

Отправлено спустя 44 минуты 51 секунду:
Phazz,
Phazz писал(а):
27.01.2019{, 22:07}
Завтра погоняю на реальном ТЭНе. А еще есть возможность добавить вход для изменения этого параметра
см. Приложение
MIN_PULSE_RELAY = constrain( MIN_PULSE_RELAY, (0.0), (CYCLE / 2.0) ); // Минимальное время включение/выключение РЕЛЕ 0...CYCLE/2 сек
То есть 0 сек до CYCLE/2 сек.
Категорически не рекомендую вам цикл 1 сек в режиме РЕЛЕ (тем более скорее всего 1 сек. цикл опроса датчика температурного). Начните с 5 сек.
Вложения
PWM_PID_V12_(CODE).ubi
(149.56 КБ) 45 скачиваний

Phazz
Капитан
Сообщения: 862
Зарегистрирован: 17.10.2016{, 15:38}
Репутация: 46
Откуда: Сургут
Имя: Анатолий

Цифровой ПИД регулятор с аналоговым, трехпозиционным и ШИМ выходом

#29

Сообщение Phazz » 28.01.2019{, 13:49}

У меня твердотельное реле поэтому износа не будет. А длинный ШИМ нужен чтобы не было частого мигания ламп освещения в такт ТЭНу.
Мигание конечно всё равно есть, но оно хоть не такое раздражающее.

Отправлено спустя 15 минут 50 секунд:
dimalimite,
Проверил, работает.
Настройки для чайника получились такие:
Цикл - 5 сек
П - 20
И - 150
Д - 0
мин. импульс 0.1 сек

dimalimite
Рядовой
Сообщения: 43
Зарегистрирован: 03.12.2018{, 00:26}
Репутация: 13
Имя: Дмитрий

Цифровой ПИД регулятор с аналоговым, трехпозиционным и ШИМ выходом

#30

Сообщение dimalimite » 28.01.2019{, 15:10}

Phazz, получается не отслеживает переключение через ноль ваша твердотелка?
Я рад, что всё получилось:).

Phazz
Капитан
Сообщения: 862
Зарегистрирован: 17.10.2016{, 15:38}
Репутация: 46
Откуда: Сургут
Имя: Анатолий

Цифровой ПИД регулятор с аналоговым, трехпозиционным и ШИМ выходом

#31

Сообщение Phazz » 28.01.2019{, 15:23}

dimalimite, Отслеживает, но просадки напряжения всё равно есть и частые пульсации раздражают.
Но штатный блок ПИД всё же почему-то совсем не так работает. Там мне хватило только П кофициента но на снижение температуры реакции не было пока не перейдет температуру уставки. Может от того что не понятно в каких единицах там задаются коофиценты. Понятно только что время в миллисекундах.

dimalimite
Рядовой
Сообщения: 43
Зарегистрирован: 03.12.2018{, 00:26}
Репутация: 13
Имя: Дмитрий

Цифровой ПИД регулятор с аналоговым, трехпозиционным и ШИМ выходом

#32

Сообщение dimalimite » 28.01.2019{, 15:41}

Phazz,
Phazz писал(а):
28.01.2019{, 15:23}
Отслеживает, но просадки напряжения всё равно есть и частые пульсации раздражают.
Но штатный блок ПИД всё же почему-то совсем не так работает. Там мне хватило только П кофициента но на снижение температуры реакции не было пока не перейдет температуру уставки. Может от того что не понятно в каких единицах там задаются коофиценты. Понятно только что время в миллисекундах.
Бог его знает. Вообще чудес не бывает). А есть возможность посмотреть что внутри блока? Или описание развернутое?
А как он на неизменное ступенчатое воздействие отрабатывает? Изменяет выход постоянно или только 1 раз при возмущение?

Phazz
Капитан
Сообщения: 862
Зарегистрирован: 17.10.2016{, 15:38}
Репутация: 46
Откуда: Сургут
Имя: Анатолий

Цифровой ПИД регулятор с аналоговым, трехпозиционным и ШИМ выходом

#33

Сообщение Phazz » 28.01.2019{, 16:12}

Только код который формируется в ide

Отправлено спустя 3 минуты 10 секунд:
Описание есть в справке. Но я думаю нет необходимости заморачиваться. Ваши блоки покрывают все потребности. Спасибо.

Отправлено спустя 7 минут 46 секунд:
Еще не плохо бы поместить эту информацию в описание блока. А то заходить в редактирование блока, чтобы посмотреть назначение и допустимые значения входов как-то не сразу в голову приходит )
СпойлерПоказать
2019-01-28_18-18-14.png

dimalimite
Рядовой
Сообщения: 43
Зарегистрирован: 03.12.2018{, 00:26}
Репутация: 13
Имя: Дмитрий

Цифровой ПИД регулятор с аналоговым, трехпозиционным и ШИМ выходом

#34

Сообщение dimalimite » 28.01.2019{, 17:00}

Phazz,
Phazz писал(а):
28.01.2019{, 16:23}
Еще не плохо бы поместить эту информацию в описание блока. А то заходить в редактирование блока, чтобы посмотреть назначение и допустимые значения входов как-то не сразу в голову приходит )
Будет время сделаю. Было бы классно если бы можно было скопировать всё разом, а не получается:((((.
Phazz писал(а):
28.01.2019{, 16:23}
Только код который формируется в ide
Там просто библиотека вызывается. В справке у меня его кстати почему-то нет:(
Посмотреть бы формулу и сразу бы всё прояснилось. Я как будет время, ради интереса, подам на него ступеньку в П-режиме только и посмотрю как он отрабатывает.
Просто у меня именно классика ПИД сделана. И работает как классика из учебника.
А есть куча разных других реализаций и они тоже работают без проблем. Например, в соседней ветке Boroda регуляторы. Формула другая и кстати если в П-режиме и выше уставки, тоже не будет изменять выход увеличивать пока ниже не опустится (будет только уменьшать на 0 сразу). Но это не классический ПИД и если снять характеристики работы, то не будет как ПИД себя вести.
Последний раз редактировалось dimalimite 04.02.2019{, 02:42}, всего редактировалось 1 раз.

Phazz
Капитан
Сообщения: 862
Зарегистрирован: 17.10.2016{, 15:38}
Репутация: 46
Откуда: Сургут
Имя: Анатолий

Цифровой ПИД регулятор с аналоговым, трехпозиционным и ШИМ выходом

#35

Сообщение Phazz » 28.01.2019{, 17:13}

dimalimite писал(а):
28.01.2019{, 17:00}
В справке у меня его кстати почему-то нет:(
https://flprog.ru/bez-rubriki/helppage/ ... e=PIDBlock

dimalimite
Рядовой
Сообщения: 43
Зарегистрирован: 03.12.2018{, 00:26}
Репутация: 13
Имя: Дмитрий

Цифровой ПИД регулятор с аналоговым, трехпозиционным и ШИМ выходом

#36

Сообщение dimalimite » 05.06.2019{, 04:09}

Добрый день.
Если кому-нибудь будет интересно - видео с разбором кода этих функциональных блоков

Ответить

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

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость