PID — регулирование с аналоговым выходом
PID поддерживает заданную температуру, давление или уровень, плавно меняя команду оборудованию. Например, при низком давлении он увеличивает задание частотному преобразователю насоса, а при высоком — уменьшает. Измерение приходит от Sensor; при необходимости оператор может задать выход вручную.
Выберите PID для оборудования с аналоговым заданием. Для привода с командами «Открыть» и «Закрыть» нужен PIDD. Если положение аналогового клапана уже рассчитано и его нужно только передать приводу, используйте ControlValve.
Состав и связи
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.