Реализуйте запланированные на усиление ПИД-регуляторы

В этом примере показано, как реализовать запланированное на усиление управление в модели Simulink® использование семейства ПИД-регуляторов. ПИД-регуляторы настраиваются для серии установившихся рабочих точек объекта, который очень нелинеен.

Этот пример основывается на работе, сделанной в Семействе Проектов ПИД-регуляторов для Нескольких Рабочих точек. В том примере модель объекта управления непрерывного реактора смесителя (CSTR) линеаризуется в установившихся рабочих точках, которые вывели концентрации C = 2, 3..., 8, 9. Нелинейность на объекте CSTR дает к различной линеаризовавшей динамике при различных выходных концентрациях. Пример использует pidtune команда, чтобы сгенерировать и настроить отдельный ПИД-регулятор для каждой выходной концентрации.

Можно ожидать, что каждый контроллер выполнит хорошо в небольшом рабочем диапазоне вокруг его соответствующей выходной концентрации. В этом примере показано, как использовать блок PID Controller, чтобы реализовать все эти контроллеры в запланированной на усиление настройке. В такой настройке изменение коэффициентов ПИД, когда изменяется выходная концентрация. Эта настройка гарантирует хорошее управление ПИДом при любой выходной концентрации в рабочем диапазоне системы управления.

Начните с контроллеров, сгенерированных в Семействе Проектов ПИД-регуляторов для Нескольких Рабочих точек. Если эти контроллеры уже не находятся в рабочей области MATLAB®, загружают их из файла данных PIDGainSchedExample.mat.

load PIDGainSchedExample

Эта операция помещает две переменные в рабочее пространство MATLAB, Controllers и C. Массив моделей Controllers содержит восемь pid модели, каждый настроенный для одной выходной концентрации в векторном C.

Чтобы реализовать эти контроллеры в запланированной на усиление настройке, создайте интерполяционные таблицы, которые сопоставляют каждую выходную концентрацию с соответствующим набором коэффициентов ПИД. Модель Simulink PIDGainSchedCSTRExampleModel содержит такие интерполяционные таблицы, сконфигурированные, чтобы обеспечить запланированное на усиление управление для объекта CSTR. Откройте эту модель.

open_system('PIDGainSchedCSTRExampleModel')

В этой модели блок PID Controller сконфигурирован, чтобы иметь внешние входные порты для коэффициентов ПИДа. Используя внешние входные параметры позволяет коэффициентам варьироваться, когда выходная концентрация варьируется. Дважды кликните блок, чтобы исследовать настройку.

Установка параметров контроллера Source к external включает входные порты для коэффициентов.

Модель использует блок 1-D Lookup Table в каждом из коэффициентов ПИДа. В общем случае для запланированного на усиление управления ПИДом, используйте свою переменную планирования в качестве входа интерполяционной таблицы и соответствующих содействующих значений контроллера как выход. В этом примере выходная концентрация объекта CSTR является входом интерполяционной таблицы, и выход является коэффициентом ПИДа, соответствующим той концентрации. Чтобы видеть, как интерполяционные таблицы сконфигурированы, дважды кликают P Lookup Table блок.

Поле Table data содержит массив пропорциональных коэффициентов для каждого контроллера, Controllers.Kp. (Для получения дополнительной информации о свойствах pid модели в массиве Controllers, смотрите pid страница с описанием.) Каждая запись в этом массиве соответствует записи в массиве C это вводится в поле Breakpoints 1. Для значений концентрации, которые падают между записями в C, P Lookup Table блок выполняет линейную интерполяцию, чтобы определить значение пропорционального коэффициента. Чтобы настроить интерполяционные таблицы для интегральных и производных коэффициентов, сконфигурируйте I Lookup Table и D Lookup Table блоки с помощью Controllers.Ki и Controllers.Kd, соответственно. В данном примере эта конфигурация уже реализована в модели.

pid модели в Controllers экспресс массивов производный коэффициент фильтра как постоянная времени, Controllers.Tf (см. pid страница с описанием для получения дополнительной информации). Однако блок PID Controller выражает производный коэффициент фильтра как обратную константу, N. Поэтому N Lookup Table блок должен быть сконфигурирован, чтобы использовать инверсию каждого значения в Controllers.Tf. Дважды кликните N Lookup Table блокируйтесь, чтобы видеть настройку.

Симулируйте модель. Concentration Setpoint блок сконфигурирован, чтобы продвинуться через последовательность заданных значений, которая порождает рабочую линейную оболочку столбцов между C = 2 и C = 9 (отображенный желтым на осциллографе). Симуляция показывает, что запланированная на усиление настройка достигает хорошего отслеживания заданного значения через эту область значений (розовый на осциллографе).

Как был показан в Семействе Проектов ПИД-регуляторов для Нескольких Рабочих точек, объект CSTR нестабилен в рабочем диапазоне между C = 4 и C = 7. Запланированные на усиление ПИД-регуляторы стабилизируют объект и дают к хорошему отслеживанию заданного значения через целый нестабильный регион. Чтобы полностью подтвердить систему управления против нелинейного объекта, примените множество тестовых последовательностей заданного значения, которые проверяют производительность отслеживания для шагов различного размера и направления через рабочий диапазон. Можно также сравнить производительность с проектом без табличного управления путем установки всех записей в Controllers равный массив.

Смотрите также

| | |

Похожие темы