Страница 2 из 5 ПерваяПервая 1234 ... ПоследняяПоследняя
Показано с 11 по 20 из 47

Тема: ПЛК110 с ПИД-регулятором из Utils.lib

  1. #11

    По умолчанию

    Цитата Сообщение от dzukp Посмотреть сообщение
    Проблема больше не повторяется. Возможно из-за того, что проект заново перекомпилировал.
    Резюме: ПИД из util.lib работает железобетонно, неопределенная ситуация возникает, когда TN=0.
    Железобетонно - так то так, но и о проверке переполнения не забывайте, и если что перегружайте...

  2. #12

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    А переполнения тупо не будет никогда коли заданы min/max_y
    Я честно говоря не знал что можно использовать ПИД не указывая min/max_y.
    И да, както добавив ПИД без проверки переполнения, я в какойто момент обнаружил что он не работает и флаг переполнения взведен...
    Времени на разбирательство причины не было, но теперь любой пид я обвязываю проверкой (хуже то не будет)..
    В ближайшем подходящем проекте попробую поставить счетчик на переполнение, вообще самому стало интересно насколько часто это может происходить и в каких условиях..

  3. #13

    По умолчанию

    К вопросу о переполнении сделал так:
    regulator.RESET:=regulator.OVERFLOW


    Цитата Сообщение от Валенок Посмотреть сообщение


    Т.к. получение actual это не непрерывная функция, а набор точек, то вызов пида реально нужен только в момент обновления данных.
    Да, но определить когда изменились данные не всегда возможно. Точнее что они изменились можно понять, а вот что они реально не меняются не всегда.


    Или я просто не в курсе. Аналоговый вход на модуле ввода-вывода по модбасу. Как узнать, что в текущем цикле программы этот вход обновился, если его значение совпадает с предыдущим его значением?

  4. #14
    Пользователь
    Регистрация
    28.08.2008
    Адрес
    23..93..123
    Сообщений
    1,656

    По умолчанию

    Что значит:-"Работает железобетонно"???
    Вы вообще ту сферу работы выбрали?
    Ничто не препятствует вызову ФБ ПИД регулятора в каждом цикле,не делайте мозги.
    Так есть пара нюансов и никто их не упомянул ни разу:
    1. По факту регулятор только "Нагреватель", для реализации "Холодильника" надо "разворачивать" выход.
    2. Отсутствие "мертвой зоны" т.е области нечуствительности к отклонению SV-PV в определенном диапазоне.
    А вообще нормальный регулятор, я для себя доработал исходник:- добавил "Мертвую зону" .
    З.Ы А с Tn=0 некоторые ПИД регуляторы вообще не работают, этот в их числе.
    И вообще 99.5% вопросов на этом форуме решаются элементарным прочтением технических описаний(это документация такая)...
    Последний раз редактировалось Sergey666; 22.11.2018 в 23:40.

  5. #15

    По умолчанию

    Цитата Сообщение от Sergey666 Посмотреть сообщение
    1. По факту регулятор только "Нагреватель", для реализации "Холодильника" надо "разворачивать" выход.
    Что значит "разворачивать выход"? В нормальных ПИД-регуляторах для реализации холодильника достаточно сделать отрицательным коэффициент усиления. Я сомневаюсь, что в данном регуляторе это делается как-то по другому.

  6. #16

    По умолчанию

    Цитата Сообщение от Sergey666 Посмотреть сообщение
    А вообще нормальный регулятор, я для себя доработал исходник:- добавил "Мертвую зону"
    На утиловском ПИД-регуляторе мертвая зона реализуется примерно так:

    pid.SP:=SEL(ABS(task - temperature) < deadband, task, temperature)

    Или у вас есть более правильная реализация?

    Цитата Сообщение от Sergey666 Посмотреть сообщение
    З.Ы А с Tn=0 некоторые ПИД регуляторы вообще не работают, этот в их числе.
    Ну а как же ПД-регулятор? Если бы данный утиловский регулятор при Tn=0 становился ПД-регулятором можно было б изменением коэффициента менять тип регулятора. И по одной из теорий настройки ПИД, первым пунктом идет настройка только пропорциональной составляющей, а затем уже дифференциальной и интегральной. А здесь получается нужно изначально какую-то интегральную составляющую вводить. И не всегда есть возможность передать очень большое число (например при передаче коэффициентов через модбас в виде целого 2-х байтового).

  7. #17

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    А на кой она вообще нужна регулятору ? Проблемы с регулятором или с исполнительным механизмом ?
    Задачи бывают разные. Как вариант: автомат розлива газ. напитков, который должен поддерживать давление СО2 в накопительной емкости. Делается это двумя клапанами: клапан подачи углекислоты и клапан сброса. Оба работают по ПИД-закону, для поддержания давления в допустимой зоне. Они оба используют "мертвую зону", один сверху, чтобы при превышении сбросить излишки, другой снизу, чтобы при снижении добавить углекислоты. Стабильно держать на одном уровне не реально: идет розлив - давление падает, в емкость набирается напиток - давление растет и излишки сбрасываются. Если убрать мертвую зону, то растет расход углекислоты, как ни настраивай ПИД. По аналогичному принципу работает газирование продукта с сатураторах. Думаю в других сферах тоже присутствуют аналогичные задачи, где не нужно "держать" регулируемую величину с нулевой точностью.

  8. #18

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    Ну так пид-регулятору то эта зона зачем ?
    И тем не менее все нормальные промышленные пид-регуляторы данный функционал имеют. В том числе и ТРМ101. Так почему бы не иметь данный функционал в библиотечной функции, вместо того, чтобы выдумывать как бы это реализовать самому, даже если это не особо сложно?
    Цитата Сообщение от Валенок Посмотреть сообщение
    Нет ни одной сферы где кто либо отказался от возможности держания регулируемой величины с нулевой точностью. Вопрос только в физических возможностях измерения/исполнения а не в регуляторе-формуле.
    А мы сейчас находимся на форуме с тематикой "промышленная автоматизация" и обсуждаем применение ПИД-регулирования в промышленном производстве или на форуме математиков обсуждаем сферическую формулу ПИД в вакууме?
    Мало ли кто бы от чего там не отказался. В приведенном выше примере технологи бы тоже не отказались, регулировать давление углекислоты так, чтобы оно всегда было равно уставке и не сбрасывались излишки в атмосферу, но в жестокой реальности с её физическими законами набираемый в емкость продукт неизбежно выталкивает набранную туда углекислоту.
    Последний раз редактировалось SBeaR; 23.11.2018 в 18:02.

  9. #19

    По умолчанию

    Так введите ФБ зоны нечуствительности перед ПИДом. Это стандартный программистский подход.

  10. #20

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    Кстати, его каждый цикл вызываете ?
    Лично я всегда ПИД (ПД, ПИ) вызываю каждый цикл, хотя может это и не правильно.

    Цитата Сообщение от Валенок Посмотреть сообщение
    Всегда есть возможность. Кто запрещает передать REAL16 ? Или ввести соглашение о, например, $FFFF - это есть 1eДОХРЕНА ?
    В Кодесис вроде нет REAL16. Конечно можно функцию сделать, которая будет переводить real32 в real16 с потерей точности, потом передовать это в модбас. Но далеко не все клиенты могут работать с real16. Я real16 вообще никогда не встречал.
    Если позволите позанудствовать, то FFFF это не дохрена, а -1. А так да, соглашение можно.
    Все это конечно можно и в каких то ситуациях приемлемое решение, но это лишняя писанина не только на стороне ПЛК, но и на стороне модбас-клиента.
    И это всё, чтобы временно отключить И-составляющую регулятора.

    Я решил на всякий случай сделать так, а то кто-нибудь установит TN=0 и всё, приплыли:

    IF rPidI = 0 THEN
    regulator.TN := 9999999999999999999.0;
    ELSE
    regulator.TN := rPidI;
    END_IF

    К слову о мертвой зоне.
    Мой многострадальный регулятор управляет скоростью открытия/закрытия задвижки ШИМ-ом. И в пределах мертвой зоны лишний раз не хочется задижку дергать, что бы не расходовать ресурс задвижки и реле (оно там не твердотельное, но это к теме не относится).
    Последний раз редактировалось dzukp; 24.11.2018 в 00:04.

Страница 2 из 5 ПерваяПервая 1234 ... ПоследняяПоследняя

Похожие темы

  1. Помогите разобраться с ПИД регулятором
    от Айдар в разделе ПЛК1хх
    Ответов: 4
    Последнее сообщение: 07.11.2016, 15:13
  2. Помогите разобраться с ПИД-регулятором
    от Андрей Макаров в разделе ПЛК1хх
    Ответов: 9
    Последнее сообщение: 10.08.2009, 14:08
  3. Управление регулятором расхода
    от Alju в разделе Подбор Оборудования
    Ответов: 10
    Последнее сообщение: 22.08.2008, 18:05
  4. помогите с ПИД-регулятором.
    от Ден в разделе ПЛК1хх
    Ответов: 3
    Последнее сообщение: 12.08.2008, 16:42

Метки этой темы

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •