В этом примере показано, как реализовать запланированное на усиление управление в модели 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
равный массив.
n-D Lookup Table | pid
| PID Controller | pidtune