Кнопка нажатие, удержание (FBD)
19.02.2020 от Denis.Vaschik
- Автор: Denis.Vaschik
FLProg: https://flprog.ru/account/?user=20347
Группа VK: https://vk.com/flprog.customblocks
Скачать кнопку: Скачать
ВХОДЫ:
Активность меню — это если нужно, что бы когда вы в меню выход НАЖАТИЕ не работало.
select — кнопка
ВЫХОДЫ:
нажатие — 1 импульс при нажатии
удержание — 1 импульс при удержании
PID-регулятор для ИМ с дискретным и аналоговым управлением
03.02.2018 от Сергей Глушенко
Данный самописный PID-регулятор с успехом используется в системах на ПЛК известного Российского производителя на промышленных объектах. Регулирует температуру и давление в трубопроводах посредством дискретных и аналоговых трехходовых кранов. Также управляет частотными преобразователями трехфазных двигателей по интерфейсу 0-5В (0-10В и 4-20мА с внешними блоками преобразования на ОУ).
Представлено 2 вида регуляторов ПИД и ПД.
*******************************************************************************************
ПИД имеет 2 выхода для работы с аналоговыми исполнительными механизмами (ИМ) или ТЭНами.
1. pwm (медленный ШИМ) — дискретный выход для подключения нагревателя/холодильника.
2. PWR — аналоговый выход, показывающий текущую мощность (0..1000).
Расчет мощности по формуле PWR = Kp*E(t)+Σ(E(t)/Ki)+Kd*∆E(t).
E(t) — рассогласование (уставка — вход),
∆E(t)- дельта рассогласования по сравнению с предыдущим измерением,
Kp,Ki,Kd — коэфф ПИД.
*******************************************************************************************
У ПД 3 выхода для работы с дискретными ИМ.
Структурная схема.
1. open (открыть, медленный ШИМ) — дискретный выход для открытия крана.
2. close (закрыть, медленный ШИМ) — дискретный выход для закрытия крана.
3. dPWR — аналоговый выход, показывающий текущее изменение мощности (-1000..+1000).
Расчет изменения мощности идет по формуле dPWR = Kp*E(t)+Kd*∆E(t).
E(t) — рассогласование (уставка — вход),
∆E(t)- дельта рассогласования по сравнению с предыдущим измерением,
Kp,Kd — коэфф ПД.
*******************************************************************************************
Просто о составляющих ПИД (для простоты в качестве регулируемого параметра возьмем температуру):
Ошибка регулирования = («уставка» — «текущая температура»).
Пропорциональная составляющая — мощность на выходе равна («ошибка регулирования») * Kp,
чем больше коэфф. Kp, тем больше мощность. Если уставка = 40, температура = 30, Kp = 2, то мощность = 20%.
Если температура = уставке, то Пропорц = 0.
Интегральная составляющая — каждый период работы регулятора мощность на выходе будет увеличиваться
или уменьшаться на величину («ошибка регулирования») / Ki, можно сказать, что интегр. составл. это
накопитель мощности и чем меньше коэфф. Ki, тем быстрее мощность будет возрастать или уменьшаться.
Если уставка = 40, температура = 30, Ki = 5, то мощность будет прибавляться на 2% каждый период.
Если температура = уставке, то мощность не меняется.
Дифференциальная составляющая — мощность на выходе равна:
(«ошибка регулирования сейчас» — «ошибка регулирования в прошлом периоде») * Kd.
Этот параметр следит за скоростью изменения температуры. Если коэфф Kd = 6, сейчас ошибка регулирования = 5,
а в предыдущий период была = 10 (т.е. температура возросла на 5 градусов), то мощность на выходе будет
равна (-5*6) = -30%. Дифф составляющая уменьшила мощность, потому как температура очень сильно начала
подниматься. Если температура стабильна, то Дифф = 0.
Полная мощность ПИД-регулятора считается по формуле PWR = (пропорц + интегр + дифф).
Допустим мощность, накопленная в интегральной составляющей = 42%, тогда в нашем случае
PWR = 20+42-30 = 32%. Из этого примера видно, как «П» и «Д» оперативно помогают медленно меняющейся «И»
корректировать выходную мощность в зависимости от текущего состояния объекта регулирования.
Дискретные выходы pwm/open/close.
На данных выходах организован медленный ШИМ. Период ШИМа равен периоду работы ПИД(ПД) регулятора.
Пусть период ПИД и ШИМ равен 10 секунд, тогда длительности импульсов на выходе будут такими:
Мощность = 0%, выход отключен.
Мощность = 10%, импульс 1 секунда, пауза 9 секунд.
Мощность = 30%, импульс 3 секунды, пауза 7 секунд.
Мощность = 50%, импульс 5 секунд, пауза 5 секунд.
Мощность = 90%, импульс 9 секунд, пауза 1 секунда.
Мощность = 100%, выход включен.
*******************************************************************************************
Во всех регуляторах задается период работы медленных ШИМ (выходов pwm/open/close), он же является периодом измерения входного сигнала.
Для тестирования собрал схему из реле, нагрузочного резистора 10W и термодатчика DS18B20 — температуру держит хорошо!
Фото процесса тестирования.
В архиве блоки пользователя PID_V2, PD_V2, примеры проектов на Pro Mini и график работы ПИД-регулятора при поддержании температуры нагревателя.
Вложения
- Test_PID
Дата добавления: 03.02.2018 10:43 Размер файла: 299 КБ Кол-во скачиваний: 3483
Автор публикации
не в сети 3 дня
Сергей Глушенко
Комментарии: 16Публикации: 377Регистрация: 04-02-2018РубрикиДругиеНавигация записи
nRF24L01+ двусторонний обмен данными
5 комментариев к “PID-регулятор для ИМ с дискретным и аналоговым управлением”
- aleksandr.sergeev Здравствуйте!Подскажите пожалуйста а как этот регулятор на охлаждение использовать?
- anton_kuznetsovЗдравствуйте! А зоны нечувствительности я так понимаю тут нет ?
- skrickisВсем приет!есть довольно большой проект по управлению сушилки зерна Crocus GL-6 на регуляторе PID от автора стотьи (кому интересно могу поделится) https://failiem.lv/u/a8n5kxqhсистема пока работает полуавтоматичеком режиме.надо соеденить Ардунку( PID регулятор) с частотником (мотор для выгрузки зерна)Часотник регулируется потенциометром 10ком(10V)как бы станддарт.пробовал посреством блока эл. потенциометраhttps://ru.aliexpress.com/item/32830761516.html?dp=1f4552aa57212e1b41a5bf271bff71af&af=1010686&cv=47843&afref=&mall_affr=pr3&dp=1f4552aa57212e1b41a5bf271bff71af&af=1010686&cv=47843&afref=&mall_affr=pr3&aff_platform=aaf&cpt=1562170728443&sk=VnYZvQVf&aff_trace_key=1b0a79b293d54ffe8ba511f64999006e-1562170728443-03988-VnYZvQVf&terminal_id=872213516b714764980bd4589f305d2f как подсаединяю выводы потенциометра(даже любово однаго вывода) блока у частотника падает напрежение с 10V до 7V и видаёт ошибку и ардуинка виснетесли мерить омметрм выход блока регулируется сопротивлене 0.35ом-10ком)без нагрузки(частотника) 0-10V( пробовал на 2 разных часстотниках)с простым потенциометром всё окможет посредством такого блока подсаеденитьhttps://ru.aliexpress.com/item/32834921874.html?onelink_duration=0.919917&onelink_item_from=32834921874&onelink_item_to=32834921874&onelink_page_from=ITEM_DETAIL&onelink_page_to=ITEM_DETAIL&onelink_status=noneresult&onelink_thrd=0.015&pvid=2d136877-2220-4269-b0ff-cb27a750b356&scm=1007.22893.125780.0&dp=f53a8bf5857bd99970fbdec31ddacf81&af=1010686&cv=47843&afref=&mall_affr=pr3&dp=f53a8bf5857bd99970fbdec31ddacf81&af=1010686&cv=47843&afref=&mall_affr=pr3&aff_platform=aaf&cpt=1562170706988&sk=VnYZvQVf&aff_trace_key=5a8f9e033d864bab9a0413b3a878e939-1562170706988-09637-VnYZvQVf&terminal_id=872213516b714764980bd4589f305d2f или по простому https://failiem.lv/u/pv3jcde9 буду блогадарен за любую информацию!
- virskiyВо всех регуляторах задается период работы медленных ШИМ (выходов pwm/open/close), он же является периодом измерения входного сигнала.
- Eugene.FrolovЗдравствуйте.Подскажите, если система очень инертна, какие параметры нужно корректировать? Ну, например, прошел импульс, кран открылся и потом закрылся под действием пружины, а поднятие температуры от этого произойдет через несколько минут. И, я так понимаю, для такой системы надо использовать ПД регулятор и только выход open?
Блок работы со считывателем MFRC522
03.02.2018 от Сергей Глушенко
Блок работы со считывателем MFRC522 на 2 карты.
Блок читает карты RFID, сравнивает номер карты с ID, настроенными в параметрах пользователя.
При совпадении выставляет сигналы на выходах Card1, Card2.
При корректном чтении любой карты выставляет сигнал на выходе LED.
Так же выдает строку в UART с ID карты.
Использует аппаратный SPI + ноги D9 и D10 (настраиваются в дефайне SS_PIN, RST_PIN).
Выдает ID карты на выходе. Если карты нет, то выдает ноль.
Протестировано пользователем hrach. Все корректно работает.
Вложения
- Test_RFID_522_ID_v2
Дата добавления: 03.02.2018 10:00 Размер файла: 2 МБ Кол-во скачиваний: 1864
Блок для считывания 3 независимых RFID считывателей Wiegand 26/34 для Arduino Mega 2560
02.02.2018 от Сергей Глушенко
Параметры gateA , gateB , gateC типа Boolean.
Используется для активации/деактивации соответствующего считывателя.
Максимум 3 считывателя. Описание по подключению к ногам ниже.
The Wiegand interface is a de facto standard commonly used to connect a card reader or keypad to an electronic entry system. Wiegand interface has the ability to transmit signal over long distance with a simple 3 wires connection. This library uses interrupt pins from Arduino to read the pulses from Wiegand interface and return the code and type of the Wiegand.
## Requirements
The following are needed
Arduino Mega 2560 Any compatible board should work.
Wiegand RFID Reader.
Reader 1 :
DATA0 of Wiegand connects to Arduino PIN 2
DATA1 of Wiegand connects to Arduino PIN 3
Reader 2 :
DATA0 of Wiegand connects to Arduino PIN 21
DATA1 of Wiegand connects to Arduino PIN 20
Reader 3 :
DATA0 of Wiegand connects to Arduino PIN 19
DATA1 of Wiegand connects to Arduino PIN 18