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

Этот пример показывает, как реализовать запланированное на усиление управление в модели 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 включает входные порты для коэффициентов.

Модель использует 1D блок 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.

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

| | |

Похожие темы