Tag Archives: ПИД регулятор

Регулировка 2-позиционной задвижки с аналоговым управлением

Задача: Для поддержания определенной температуры необходимо управлять задвижкой с аналоговым управлением.

При реализации системы управления может быть выбран любой контроллер из серий ПЛК100, ПЛК150 и др. Для контроллеров, которые не имеют аналогового входа и аналогового выхода, результаты измерения регулируемой величины должны поступать в функциональный блок программы от внешнего измерителя, а сигналы управления передаваться на внешний модуль управления.

Программа для выполнения задачи показана на рис. 1.

 

Рис.1. Структура программы

 

 

Пояснения по фрагментам программы:

0001 – на входе SP ПИД-регулятора указывается значение необходимого регулируемого параметра, например температуры. На вход PV подается измеренное значение регулируемого параметра.

Параметры на входах _IMIN, _IMAX выбраны экспертным методом. Блок MAX в выходном сигнале убирает отрицательные значения. Следующий блок – DIV – делит числовое значение на 100. Далее переменная pvm подается на модуль соответствующего выхода контроллера, например, для управления аналоговым выходом – «Analog output»;

0002 – сигнал anr_state блоком EQ сравнивается с нулем и поступает на вход START_ANR ПИД-регулятора для управления работой автонастройки. Автонастройка прекращается, когда на выходе STATE_ANR установится ненулевое значение.

 

    Поддержание заданной температуры

    Задача: в сушильном шкафу необходимо поддерживать определенную температуру. Выбор нужного значения температуры (+80 ºС или +90 ºС) и переключение режима производится оператором. Система должна с максимально возможной скоростью выходить на заданный режим.

    Для реализации системы выбран контроллер ПЛК150-220.У-L, электрическая принципиальная схема подключения которого приведена на рис. 1. Программа для контроллера показана на рис. 2.

     

    Рис.1. Схема подключения контроллера

     

    Рис. 2. Структура программы

     

    Пояснения по фрагментам программы:

    0001 – на входе SP ПИД-регулятора в градусах Цельсия указывается значение необходимой температуры (sp_value=80 или 90). На вход PB подается измеренное значение температуры с модуля «RTD sensor», рис. 3. Параметры на входах TI_, TD_, _IMIN, _IMAX выбраны экспертным методом. Блок MAX в выходном сигнале убирает отрицательные значения;

    0002 – сигнал out_val с ПИД-регулятора поступает на блок MUL для умножения на 655,35 с целью линейного преобразования выходной мощности регулятора (от 0 до 100) к мощности, подаваемой на ШИМ (0…65535). Дальше значение передает его на блок REAL_TO_WORD для преобразования типа данных из REAL в WORD. С выхода переменная heater подается на модуль соответствующего выхода контроллера в канал широтно-импульсной модуляции – «Pulse-wide modulator», рис. 3.

     

    Рис. 3. Настройки PLC-Browser

     

    Рис. 4. Диаграммы, поясняющие работу.

    Цветам линий соответствуют сигналы:

    –– (синяя) задание на входе (SP); –– (зеленая) состояние объекта (PV);

    — — — (красная) сигнал управления на выходе «heater»

    На рис. 3. показаны сигналы во время работы программы с реальной нагрузкой – нагревательным элементом. При изменении оператором задания с +80 до +90 ºС (это отражает ступенька на графике), система постепенно выходит на новый режим стабилизации (зеленая линия).

     

      Терморегулятор с ПИД-управлением в CoDeSys

      Задача: моделирование работы ПИД – регулятора температуры. По первому выходу осуществляется непосредственно ПИД-регулирование, по второму – сигнализация режима работы по гистерезисной, П или U – логике.

      Чему можно научиться: работа со стандартным ПИД-регулятором, разработка гистерезисных  алгоритмов на языках ST и CFC

      Основная программа разработана на языке CFC. Такой выбор объясняется наибольшей наглядностью работы с функциональными блоками по сравнению с другими языками программирования ПЛК.

      Итак, ПИД – регулятор.

      ПИД-регулирование является наиболее точным и эффективным методом поддержания контролируемой величины на заданном уровне. На рис. 1 приведена функциональная схема ПИД-регулятора. Основное назначение регулятора – формирование управляющего сигнала Y, задающего выходную мощность исполнительного механизма (ИМ) и направленного на уменьшение рассогласования Е или отклонения текущего значения регулируемой величины Т от величины уставки Туст.

      пропорционально-интегрально-дифференциальное регулирование

      рис1 Схема ПИД-регулятора

      ПИД-регулятор состоит из трех основных частей: пропорциональной Кп, интегральной 1/р×Ти и дифференциальной р×Тд. На практике, для формирования цифровых регуляторов используются разностные формулы, позволяющие работать не с непрерывным во времени сигналом, а с квантованным по времени. Таким образом, для расчета управляющего сигнала на выходе цифрового ПИД-регулятора  используется формула:

      Xp полоса пропорциональности;
      Ei рассогласование или разность между уставкой Туст и текущим значением измеренной величины Тi;
      tд дифференциальная постоянная;
      DEi разность между двумя соседними рассогласованиями Ei и Ei–1;
      Dtизм время между двумя соседними измерениями Ti и Ti–1;
      tи интегральная постоянная;
      накопленная в i-й момент времени сумма рассогласований (интегральная сумма).

      Пропорциональная составляющая зависит от рассогласования Ei и отвечает за реакцию на мгновенную ошибку регулирования.

      Интегральная составляющая содержит в себе накопленную ошибку регулирования и позволяет добиться максимальной скорости достижения уставки.

      Дифференциальная составляющая зависит от скорости изменения рассогласования и позволяет улучшить качество переходного процесса.

      В CoDeSys в библиотеке UTIL.lib реализован стандартный блок ПИД-регулятора, который показан на рис.2

      рис2 ПИД-регулятор в CoDeSys

      Функциональный блок реализует ПИД закон регулирования:

      где Y_OFFSET – стационарное значение, KP – коэффициент передачи, TN – постоянная интегрирования (ms), TV – постоянная дифференцирования (ms), e(t) — сигнал ошибки (SET_POINT-ACTUAL).

      Входы ACTUAL, SET_POINT, KP, Y_OFFSET, Y_MIN Y_MAX типа REAL. Входы TN и TV типа

      DWORD, RESET и MANUAL типа BOOL.

      Выходы Y – REAL, LIMITS_ACTVE и OVERFLOW типа BOOL.

      Значение выхода Y ограничено Y_MIN и Y_MAX. При достижении Y границ ограничения, выход

      LIMITS_ACTVE, (BOOL) принимает значение TRUE. Если ограничение выхода не требуется, Y_MIN

      и Y_MAX должны быть равны 0.

      Неправильная настройка регулятора может вызвать неограниченный рост интегральной составляющей. Для обнаружения такой ситуации предназначен выход OVERFLOW. При переполнении он принимает значение TRUE, одновременно останавливается работа регулятора. Для его включения необходимо использовать рестарт.

      Теперь собственно о программе.

      Для начала, как обычно – список переменных. По традиции – это самая длинная часть программы. Список переменных  включает в себя параметры 2 регуляторов (ПИД и 2-х позиционного) и входы / выходы системы управления.

      рис 3 Переменные проекта

      рис 3 Переменные проекта

      Далее собственно программа управления.

      рис4 Проект ПИД-регулятора в CoDeSys

      рис4 Проект ПИД-регулятора в CoDeSys

      В алгоритме ПИД-регулятора реализовано ограничение по мощности регулирования (0-100%). Двухпозиционный регулятор реализован в виде подпрограммы, которая выглядит, например, так:

      рис5 Переменные подпрограммы 2-х позиционного регулятора

      рис5 Переменные подпрограммы 2-х позиционного регулятора

      Программа на ST

      рис8 Подпрограмма работы 2-х позиционного регулятора на языке ST

      рис8 Подпрограмма работы 2-х позиционного регулятора на языке ST

      Ну и то же самое на языке CFC

      рис9 2-хпозиционный регулятор на языке CFC

      рис9 2-хпозиционный регулятор на языке CFC

      рис10 Подпрограмма на CFC (продолжение)

      рис10 Подпрограмма на CFC (продолжение)

       

      Мой блог находят по следующим фразам