MetaKit Руководство по компонентам

PID — регулирование с аналоговым выходом

PID поддерживает заданную температуру, давление или уровень, плавно меняя команду оборудованию. Например, при низком давлении он увеличивает задание частотному преобразователю насоса, а при высоком — уменьшает. Измерение приходит от Sensor; при необходимости оператор может задать выход вручную.

Выберите PID для оборудования с аналоговым заданием. Для привода с командами «Открыть» и «Закрыть» нужен PIDD. Если положение аналогового клапана уже рассчитано и его нужно только передать приводу, используйте ControlValve.

Состав и связи

PID: Sensor и управление самим механизмом подключаются отдельно. PID рассчитывает задание; пуск и защиты оборудования выполняет его компонент управления.
В рамке — состав компонента, снаружи — подключения проекта. Нажмите на схему, чтобы открыть её крупнее.

Sensor и управление самим механизмом подключаются отдельно. PID рассчитывает задание; пуск и защиты оборудования выполняет его компонент управления.

Первое подключение

Заполняйте пример в таблице «Параметры» (Params) добавленного компонента. Как добавить компонент и где искать настройки.

Рассмотрим поддержание давления 4,5 бар изменением задания частотному преобразователю насоса. Давление измеряет Sensor с ID PT101. Команды пуска, останова и защиты двигателя уже выполняет отдельный компонент управления насосом.

1. Заполните основные параметры

Параметр Значение для примера
PIDId PIC101
PIDComment Давление подачи
PIDParent CabinetController_Inst
PIDSensId PT101
PIDEnExtra bPressureControlEnable
OutRaw AO_K31

bPressureControlEnable включает и выключает автоматическое регулирование. Включайте его, когда нужно поддерживать давление. Результат записывается в переменную REAL AO_K31; подключите её к аналоговому выходу частотного преобразователя.

В PIDSensId достаточно указать PT101. PID сам возьмёт давление и сигнал ошибки из этого Sensor.

2. Задайте настройки процесса

Настройка Значение для примера
Conf.PIC101_PID_fSP 4.5 бар
Conf.PIC101_PID_fDB 0.1 бар
Conf.PIC101_PID_fYMin / Conf.PIC101_PID_fYMax 0.0 / 100.0 %
Conf.PIC101_PID_fYLoLimit / Conf.PIC101_PID_fYHiLimit 0.0 / 100.0 %
Conf.PIC101_PID_fOffValue 0.0 %

Начальные настройки — расчёт раз в 3 секунды, Kp = 1, Ti = 0, Td = 0. При наладке их подбирают по тому, как быстро меняется давление и как насос реагирует на команду.

Подробности о коэффициентах приведены после таблицы настроек.

3. Проверьте шкалу аналогового выхода

Параметр Назначение
OutRawMin Код канала, соответствующий 0 % задания
OutRawMax Код канала, соответствующий 100 % задания

По умолчанию используются константы ADC_4_IN_0_20 и ADC_MAX_VALUE. Их значения должны соответствовать выбранному модулю и настройке канала. При другой шкале укажите нужные границы.

При задании 50 % на выход передаётся середина диапазона между этими кодами. Нижний код шкалы может быть ненулевым: например, если 0 % соответствует сигналу 4 мА.

4. Как это будет работать

При включённом регулировании и исправном датчике PID пересчитывает задание через выбранный интервал. При положительном Kp низкое давление увеличивает задание насосу, высокое — уменьшает.

В примере, когда отклонение меньше 0,05 бар, регулятор перестаёт изменять задание. Уже рассчитанное значение сохраняется. После выхода из этой зоны регулирование продолжается.

В автоматическом режиме при снятии bPressureControlEnable или ошибке PT101 результат принимает значение fOffValue. В ручном режиме действует задание оператора.

Автоматическое и ручное управление

В автоматическом режиме PID сравнивает измерение с уставкой и понемногу меняет прежнее задание. Например, насос уже работает на 40 %, давление ниже заданного — регулятор добавит к этим 40 % рассчитанную поправку. Итоговое задание находится в out_fYS; именно оно передаётся аналоговому выходу.

Вручную оператор может выбрать любое значение между fYMin и fYMax. Более узкие границы fYLoLimit и fYHiLimit ограничивают только автоматическое регулирование.

При переходе на ручное управление в поле задания уже стоит текущее значение. При возврате в автоматический режим PID продолжает с того значения, которое установил оператор, а прежние отклонения измерения больше не учитывает.

В ручном режиме оператор продолжает управлять выходом даже при ошибке датчика или PIDEnExtra = FALSE. Эти условия выключают только автоматический расчёт. Если оборудование в такой ситуации должно обязательно остановиться, останов задаётся в компоненте этого оборудования.

Общие границы и рабочие ограничения

Настройки Для чего применяются
fYMin, fYMax Общий диапазон задания, ограничение ручного значения и шкала преобразования в аналоговый выход
fYLoLimit, fYHiLimit Допустимый диапазон накопленного задания при автоматическом регулировании
fOffValue Значение при отключённом автоматическом регулировании

Например, общая шкала — 0–100 %, а рабочие ограничения — 20–80 %. Автоматический регулятор работает в диапазоне 20–80 %, ручное задание доступно в диапазоне 0–100 %, а при отключении можно выдать 0 %.

Рабочие ограничения задавайте внутри общей шкалы, нижнюю границу — не выше верхней. fOffValue также выбирайте внутри общей шкалы. Преобразование аналогового выхода ограничивает результат диапазоном его кодов.

Период, зона нечувствительности и сброс

fSR задаётся в секундах и должен быть больше нуля. Если в разрешённом автоматическом режиме задать нулевой или отрицательный период, выходы регулятора становятся нулевыми; отдельная авария параметров не формируется.

fDB задаёт полную ширину зоны вокруг уставки. Например, fDB = 2 °C означает отсутствие изменений задания при отклонении меньше 1 °C. На самой границе расчёт выполняется. При fDB = 0 зона отключена.

Сигнал PIDParent.out_bWorktimeReset очищает историю отклонений и сбрасывает таймер расчёта. Он сохраняет накопленное задание и текущие выходы. Для отключения автоматического регулирования используйте PIDEnExtra.

Параметры компонента — Params

Регулятор

Параметр По умолчанию Назначение
$PID ПИД-регулятор Название группы параметров
PIDId _ID_ ID регулятора. Для PIC101 создаётся экземпляр PIC101_PID_Inst
PIDComment Комментарий Название регулируемого процесса
PIDParent CabinetController_Inst Родительский компонент; его out_bWorktimeReset сбрасывает историю отклонений и таймер расчёта
PIDEnExtra true Дополнительное разрешение автоматического расчёта, логический сигнал или выражение
PIDConf Пусто ID набора настроек регулятора. Если пусто, используется PIDId
PIDConfComment Пусто Название набора настроек. Если пусто, комментарий составляется из PIDComment и $PID
PIDSensId _ID_ ID Sensor. Измерение берётся из его SensFilter, ошибка — из Sensor

Аналоговый выход

Параметр По умолчанию Назначение
$Out Аналоговый выход Название группы параметров выхода
OutConf Пусто ID набора настроек шкалы выхода. Если пусто, используется PIDId
OutConfComment Пусто Название настроек выхода. Если пусто, комментарий составляется из PIDComment и $Out
OutRaw _AO_ Переменная REAL для записи результата в кодах аналогового канала
OutRawMin ADC_4_IN_0_20 Начальное значение нижней границы шкалы аналогового канала
OutRawMax ADC_MAX_VALUE Начальное значение верхней границы шкалы аналогового канала

Настройки во время работы — Conf

Полные имена приведены для PIDId = PIC101, пустых PIDConf и OutConf.

Настройка Тип Начальное значение Назначение
Conf.PIC101_PID_fSP REAL 0.0 Уставка в единицах измеряемой величины
Conf.PIC101_PID_fDB REAL 0.0 Полная ширина зоны нечувствительности в тех же единицах
Conf.PIC101_PID_fSR REAL 3.0 Период расчёта, с
Conf.PIC101_PID_fKp REAL 1.0 Усиление реакции на отклонение. Знак определяет направление регулирования
Conf.PIC101_PID_fTi REAL 0.0 Временной параметр дополнительного вклада текущего отклонения, с. Для начальной настройки оставьте 0.0
Conf.PIC101_PID_fTd REAL 0.0 Временной параметр реакции на изменение отклонения, с. При 0.0 этот вклад отключён
Conf.PIC101_PID_fYMin REAL 0.0 Нижняя граница общей шкалы задания
Conf.PIC101_PID_fYMax REAL 100.0 Верхняя граница общей шкалы задания
Conf.PIC101_PID_fYLoLimit REAL 0.0 Нижнее ограничение задания в автоматическом режиме
Conf.PIC101_PID_fYHiLimit REAL 100.0 Верхнее ограничение задания в автоматическом режиме
Conf.PIC101_PID_fOffValue REAL 0.0 Задание при отключённом автоматическом регулировании
Conf.PIC101_OUT_fRawMin REAL Из OutRawMin Код аналогового канала для fYMin
Conf.PIC101_OUT_fRawMax REAL Из OutRawMax Код аналогового канала для fYMax

Настройки fYMin, fYMax, fYLoLimit, fYHiLimit и fOffValue задаются в единицах управляющего воздействия: например, в процентах или герцах. Они могут отличаться от единиц измеряемой величины.

Коэффициенты регулятора

Для начала оставьте Ti = 0. Регулятор постепенно меняет выход и при таком значении. Ненулевой Ti дополнительно усиливает реакцию на текущую разницу между заданным и измеренным значениями. Сначала подбирайте Kp и период расчёта, затем при необходимости Td.

Общие настройки

PIDConf задаёт общий набор настроек регулятора, OutConf — общий набор шкалы выхода. Их можно назначать независимо.

Например, при PIDConf = Pressure и OutConf = AO420 уставка называется Conf.Pressure_PID_fSP, а нижняя граница канала — Conf.AO420_OUT_fRawMin. Команды и результаты регулятора PIC101 сохраняют его собственный ID.

Команды оператора — View

Переменная Тип Действие
View.PIC101_PID_Inst_inout_bYManual BOOL TRUE — ручное задание, FALSE — автоматическое регулирование
View.PIC101_PID_Inst_inout_fYManual REAL Ручное задание в единицах управляющего воздействия

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

Выходы компонента

Результат для примера Тип Назначение
PIC101_PID_Inst.out_fYS REAL Накопленное задание исполнительному механизму. Используется для аналогового выхода
PIC101_PID_Inst.out_fY REAL Текущий шаг регулирования после отдельного ограничения. Предназначен для анализа работы регулятора
AO_K31 REAL Накопленное задание, преобразованное в шкалу аналогового канала

out_fY показывает рассчитанную поправку с её собственным ограничением. Она может отличаться от изменения итогового задания. Для оборудования берите итог out_fYS или готовое значение аналогового выхода OutRaw.