FLProg: Прочее

Кнопка нажатие, удержание (FBD)

19.02.2020 от Denis.Vaschik

  1. Автор: 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 и график работы ПИД-регулятора при поддержании температуры нагревателя.

Вложения

  • zip Test_PID
    Дата добавления: 03.02.2018 10:43 Размер файла: 299 КБ Кол-во скачиваний: 3483

Автор публикации

не в сети 3 дня

Сергей Глушенко

692

Комментарии: 16Публикации: 377Регистрация: 04-02-2018РубрикиДругиеНавигация записи

Дисплей на TM1637 (часы)

nRF24L01+ двусторонний обмен данными

5 комментариев к “PID-регулятор для ИМ с дискретным и аналоговым управлением”

  1. aleksandr.sergeev Здравствуйте!Подскажите пожалуйста а как этот регулятор на охлаждение использовать?
  2. anton_kuznetsovЗдравствуйте! А зоны нечувствительности я так понимаю тут нет ?
  3. 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 буду блогадарен за любую информацию! 
  4. virskiyВо всех регуляторах задается период работы медленных ШИМ (выходов pwm/open/close), он же является периодом измерения входного сигнала.
  5. 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. Все корректно работает.

Вложения

  • zip 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

Скачать